I18n: Add 13 new languages for translations (#102971)

I18n: Remove extraLanguages toggle
This commit is contained in:
Josh Hunt
2025-03-27 12:58:52 +00:00
committed by GitHub
parent 69d8419109
commit 3a9370083f
7 changed files with 51 additions and 76 deletions
@@ -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
@@ -1033,10 +1033,6 @@ export interface FeatureToggles {
*/
inviteUserExperimental?: boolean;
/**
* Enables additional languages
*/
extraLanguages?: boolean;
/**
* Disables backdrop blur
*/
noBackdropBlur?: boolean;
-7
View File
@@ -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",
-1
View File
@@ -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
1 Name Stage Owner requiresDevMode RequiresRestart FrontendOnly
234 grafanaManagedRecordingRulesDatasources experimental @grafana/alerting-squad false false false
235 infinityRunQueriesInParallel privatePreview @grafana/oss-big-tent false false false
236 inviteUserExperimental experimental @grafana/sharing-squad false false true
extraLanguages experimental @grafana/grafana-frontend-platform false false true
237 noBackdropBlur experimental @grafana/grafana-frontend-platform false false true
238 alertingMigrationUI experimental @grafana/alerting-squad false false true
239 unifiedStorageHistoryPruner experimental @grafana/search-and-storage false false false
-4
View File
@@ -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"
+2 -1
View File
@@ -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",
@@ -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<Namespace extends string = string> {
loader: Record<Namespace, LocaleFileLoader>;
}
// 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<LanguageDefinition<'grafana'>>;
if (config.featureToggles?.extraLanguages) {
LANGUAGES.push(...NEW_LANGUAGES);
}
if (process.env.NODE_ENV === 'development') {
LANGUAGES.push({
code: PSEUDO_LOCALE,