From 3a9370083fe66f8f34b9a5f6aebbf342341b39ff Mon Sep 17 00:00:00 2001 From: Josh Hunt Date: Thu, 27 Mar 2025 12:58:52 +0000 Subject: [PATCH] I18n: Add 13 new languages for translations (#102971) I18n: Remove extraLanguages toggle --- .../feature-toggles/index.md | 1 - .../src/types/featureToggles.gen.ts | 4 - pkg/services/featuremgmt/registry.go | 7 -- pkg/services/featuremgmt/toggles_gen.csv | 1 - pkg/services/featuremgmt/toggles_gen.go | 4 - pkg/services/featuremgmt/toggles_gen.json | 3 +- .../core/internationalization/constants.ts | 107 ++++++++---------- 7 files changed, 51 insertions(+), 76 deletions(-) diff --git a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md index 4b9a5b41780..cb99a39d857 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -222,7 +222,6 @@ Experimental features might be changed or removed without prior notice. | `newLogsPanel` | Enables the new logs panel in Explore | | `pluginsCDNSyncLoader` | Load plugins from CDN synchronously | | `assetSriChecks` | Enables SRI checks for Grafana JavaScript assets | -| `extraLanguages` | Enables additional languages | ## Development feature toggles diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index cbaefc28634..59699d7de91 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -1033,10 +1033,6 @@ export interface FeatureToggles { */ inviteUserExperimental?: boolean; /** - * Enables additional languages - */ - extraLanguages?: boolean; - /** * Disables backdrop blur */ noBackdropBlur?: boolean; diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 33f7c06337e..50dc21fbc0f 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -1772,13 +1772,6 @@ var ( HideFromDocs: true, FrontendOnly: true, }, - { - Name: "extraLanguages", - Description: "Enables additional languages", - Stage: FeatureStageExperimental, - Owner: grafanaFrontendPlatformSquad, - FrontendOnly: true, - }, { Name: "noBackdropBlur", Description: "Disables backdrop blur", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index b1ec0b3eddf..3fde4d5a683 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -234,7 +234,6 @@ alertRuleRestore,preview,@grafana/alerting-squad,false,false,false grafanaManagedRecordingRulesDatasources,experimental,@grafana/alerting-squad,false,false,false infinityRunQueriesInParallel,privatePreview,@grafana/oss-big-tent,false,false,false inviteUserExperimental,experimental,@grafana/sharing-squad,false,false,true -extraLanguages,experimental,@grafana/grafana-frontend-platform,false,false,true noBackdropBlur,experimental,@grafana/grafana-frontend-platform,false,false,true alertingMigrationUI,experimental,@grafana/alerting-squad,false,false,true unifiedStorageHistoryPruner,experimental,@grafana/search-and-storage,false,false,false diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 1845d8704be..058e30627c4 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -947,10 +947,6 @@ const ( // Renders invite user button along the app FlagInviteUserExperimental = "inviteUserExperimental" - // FlagExtraLanguages - // Enables additional languages - FlagExtraLanguages = "extraLanguages" - // FlagNoBackdropBlur // Disables backdrop blur FlagNoBackdropBlur = "noBackdropBlur" diff --git a/pkg/services/featuremgmt/toggles_gen.json b/pkg/services/featuremgmt/toggles_gen.json index 8484fd2c274..7fcea76d0fc 100644 --- a/pkg/services/featuremgmt/toggles_gen.json +++ b/pkg/services/featuremgmt/toggles_gen.json @@ -1735,7 +1735,8 @@ "metadata": { "name": "extraLanguages", "resourceVersion": "1741626708204", - "creationTimestamp": "2025-03-10T17:11:48Z" + "creationTimestamp": "2025-03-10T17:11:48Z", + "deletionTimestamp": "2025-03-27T09:58:35Z" }, "spec": { "description": "Enables additional languages", diff --git a/public/app/core/internationalization/constants.ts b/public/app/core/internationalization/constants.ts index 32088f5d4dc..a535790989c 100644 --- a/public/app/core/internationalization/constants.ts +++ b/public/app/core/internationalization/constants.ts @@ -1,8 +1,6 @@ import { ResourceKey } from 'i18next'; import { uniq } from 'lodash'; -import { config } from '@grafana/runtime'; - export const ENGLISH_US = 'en-US'; export const FRENCH_FRANCE = 'fr-FR'; export const SPANISH_SPAIN = 'es-ES'; @@ -40,8 +38,55 @@ export interface LanguageDefinition { loader: Record; } -// New languages added recently without translations available yet -const NEW_LANGUAGES: LanguageDefinition[] = [ +export const LANGUAGES: LanguageDefinition[] = [ + { + code: ENGLISH_US, + name: 'English', + loader: { + grafana: () => import('../../../locales/en-US/grafana.json'), + }, + }, + + { + code: FRENCH_FRANCE, + name: 'Français', + loader: { + grafana: () => import('../../../locales/fr-FR/grafana.json'), + }, + }, + + { + code: SPANISH_SPAIN, + name: 'Español', + loader: { + grafana: () => import('../../../locales/es-ES/grafana.json'), + }, + }, + + { + code: GERMAN_GERMANY, + name: 'Deutsch', + loader: { + grafana: () => import('../../../locales/de-DE/grafana.json'), + }, + }, + + { + code: CHINESE_SIMPLIFIED, + name: '中文(简体)', + loader: { + grafana: () => import('../../../locales/zh-Hans/grafana.json'), + }, + }, + + { + code: BRAZILIAN_PORTUGUESE, + name: 'Português Brasileiro', + loader: { + grafana: () => import('../../../locales/pt-BR/grafana.json'), + }, + }, + { code: CHINESE_TRADITIONAL, name: '中文(繁體)', @@ -145,62 +190,8 @@ const NEW_LANGUAGES: LanguageDefinition[] = [ grafana: () => import('../../../locales/tr-TR/grafana.json'), }, }, -]; - -export const LANGUAGES: LanguageDefinition[] = [ - { - code: ENGLISH_US, - name: 'English', - loader: { - grafana: () => import('../../../locales/en-US/grafana.json'), - }, - }, - - { - code: FRENCH_FRANCE, - name: 'Français', - loader: { - grafana: () => import('../../../locales/fr-FR/grafana.json'), - }, - }, - - { - code: SPANISH_SPAIN, - name: 'Español', - loader: { - grafana: () => import('../../../locales/es-ES/grafana.json'), - }, - }, - - { - code: GERMAN_GERMANY, - name: 'Deutsch', - loader: { - grafana: () => import('../../../locales/de-DE/grafana.json'), - }, - }, - - { - code: CHINESE_SIMPLIFIED, - name: '中文(简体)', - loader: { - grafana: () => import('../../../locales/zh-Hans/grafana.json'), - }, - }, - - { - code: BRAZILIAN_PORTUGUESE, - name: 'Português Brasileiro', - loader: { - grafana: () => import('../../../locales/pt-BR/grafana.json'), - }, - }, ] satisfies Array>; -if (config.featureToggles?.extraLanguages) { - LANGUAGES.push(...NEW_LANGUAGES); -} - if (process.env.NODE_ENV === 'development') { LANGUAGES.push({ code: PSEUDO_LOCALE,