Skip to content

Use configured browser locales for date formatting

Lukas Eipert requested to merge leipert-better-absolute-date into master

What does this MR do?

This allows us to decide a little better what a user wants as a locale for using with the Intl browser APIs. If they have set their GitLab to a language, it will check whether navigator.languages contains matching ones. This function always adds en as a fallback in order to have date renders if all fails before it.

  • Example one: GitLab language is en and browser languages are: ['en-GB', 'en-US']. We would choose ['en-GB', 'en-US', 'en'] as the preferred locales, the Intl APIs would try to format first as British English, if that isn't available US or any English.
  • Example two: GitLab language is en and browser languages are: ['de-DE', 'de']. We would choose ['en'], so the Intl APIs would prefer English formatting in order to not have German dates mixed with English GitLab UI texts. If the user wants for example British English formatting (24h, etc), they could set their browser languages to ['de-DE', 'de', 'en-GB'].
  • Example three: GitLab language is de and browser languages are
    ['en-US', 'en']. We would choose ['de', 'en'], aligning German dates with the chosen translation of GitLab.

This function is currently only used for absolute dates:

Changelog: changed

Screenshots or Screencasts (strongly suggested)

GitLab Language Browser Locale Result Screenshot
en en Created May 18, 2021, 3:55 PM en
en en-US Created May 18, 2021, 3:55 PM en
en en-GB Created 18 May 2021, 15:55 en-GB
en en-AU Created 18 May 2021, 3:55 pm en-AU
de en-GB Created 18.05.2021, 15:55 de

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Lukas Eipert

Merge request reports