From 6f9a9dcf6f2dd439f187154fb36893a3b6b2ce3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Fern=C3=A1ndez?= Date: Wed, 16 Apr 2025 15:34:00 +0200 Subject: [PATCH] [release-12.0.0] i18n: Move locale code behind the feature toggle in internationalization/dates.ts (#104089) --- public/app/core/internationalization/dates.ts | 15 +++++++++++---- public/test/jest-setup.ts | 4 +++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/public/app/core/internationalization/dates.ts b/public/app/core/internationalization/dates.ts index bdadd9ba863..ca7590bd74f 100644 --- a/public/app/core/internationalization/dates.ts +++ b/public/app/core/internationalization/dates.ts @@ -4,8 +4,12 @@ import memoize from 'micro-memoize'; import { config } from 'app/core/config'; +import { getI18next } from './index'; + const deepMemoize: typeof memoize = (fn) => memoize(fn, { isEqual: deepEqual }); +const isLocaleEnabled = config.featureToggles.localeFormatPreference; + const createDateTimeFormatter = deepMemoize((locale: string, options: Intl.DateTimeFormatOptions) => { return new Intl.DateTimeFormat(locale, options); }); @@ -20,17 +24,20 @@ export const formatDate = deepMemoize( return formatDate(new Date(value), format); } - const locale = config.locale; - const dateFormatter = createDateTimeFormatter(locale, format); + const i18n = getI18next(); + const currentLocale = isLocaleEnabled ? config.locale : i18n.language; + + const dateFormatter = createDateTimeFormatter(currentLocale, format); return dateFormatter.format(value); } ); export const formatDuration = deepMemoize( (duration: Intl.DurationInput, options: Intl.DurationFormatOptions = {}): string => { - const locale = config.locale; + const i18n = getI18next(); + const currentLocale = isLocaleEnabled ? config.locale : i18n.language; - const dateFormatter = createDurationFormatter(locale, options); + const dateFormatter = createDurationFormatter(currentLocale, options); return dateFormatter.format(duration); } ); diff --git a/public/test/jest-setup.ts b/public/test/jest-setup.ts index 6bbdf952ece..af0f1565616 100644 --- a/public/test/jest-setup.ts +++ b/public/test/jest-setup.ts @@ -23,7 +23,9 @@ const settings: Partial = { }; global.grafanaBootData = { settings, - user: {}, + user: { + locale: 'en-US', + }, navTree: [], };