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 52b10040c0e..9ad0bfaee3b 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -25,7 +25,6 @@ Some stable features are enabled by default. You can disable a stable feature by | `featureHighlights` | Highlight Grafana Enterprise features | | | `exploreMixedDatasource` | Enable mixed datasource in Explore | Yes | | `dataConnectionsConsole` | Enables a new top-level page called Connections. This page is an experiment that provides a better experience when you install and configure data sources and other plugins. | Yes | -| `internationalization` | Enables internationalization | Yes | | `topnav` | Enables new top navigation and page layouts | Yes | | `cloudWatchCrossAccountQuerying` | Enables cross-account querying in CloudWatch datasources | Yes | | `newPanelChromeUI` | Show updated look and feel of grafana-ui PanelChrome: panel header, icons, and menu | Yes | diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 2579b746ba3..7437cb2d7e3 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -45,7 +45,6 @@ export interface FeatureToggles { disableSecretsCompatibility?: boolean; logRequestsInstrumentedAsUnknown?: boolean; dataConnectionsConsole?: boolean; - internationalization?: boolean; topnav?: boolean; grpcServer?: boolean; entityStore?: boolean; diff --git a/pkg/api/index.go b/pkg/api/index.go index b04c2c214fa..e12ae6bd2a1 100644 --- a/pkg/api/index.go +++ b/pkg/api/index.go @@ -49,7 +49,7 @@ func (hs *HTTPServer) setIndexViewData(c *contextmodel.ReqContext) (*dtos.IndexV locale := "en-US" language := "" // frontend will set the default language - if hs.Features.IsEnabled(featuremgmt.FlagInternationalization) && prefs.JSONData.Language != "" { + if prefs.JSONData.Language != "" { language = prefs.JSONData.Language } diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index a0d9172e344..6a281976423 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -186,13 +186,6 @@ var ( Expression: "true", // turned on by default Owner: grafanaPluginsPlatformSquad, }, - { - Name: "internationalization", - Description: "Enables internationalization", - State: FeatureStateStable, - Expression: "true", // enabled by default - Owner: grafanaUserEssentialsSquad, - }, { Name: "topnav", Description: "Enables new top navigation and page layouts", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index 37633d2b1f2..14ff26b7517 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -26,7 +26,6 @@ scenes,alpha,@grafana/dashboards-squad,false,false,false,true disableSecretsCompatibility,alpha,@grafana/hosted-grafana-team,false,false,true,false logRequestsInstrumentedAsUnknown,alpha,@grafana/hosted-grafana-team,false,false,false,false dataConnectionsConsole,stable,@grafana/plugins-platform-backend,false,false,false,false -internationalization,stable,@grafana/user-essentials,false,false,false,false topnav,stable,@grafana/user-essentials,false,false,false,false grpcServer,beta,@grafana/grafana-app-platform-squad,false,false,false,false entityStore,alpha,@grafana/grafana-app-platform-squad,true,false,false,false diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 3b37f31d16e..2658624ba55 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -115,10 +115,6 @@ const ( // Enables a new top-level page called Connections. This page is an experiment that provides a better experience when you install and configure data sources and other plugins. FlagDataConnectionsConsole = "dataConnectionsConsole" - // FlagInternationalization - // Enables internationalization - FlagInternationalization = "internationalization" - // FlagTopnav // Enables new top navigation and page layouts FlagTopnav = "topnav" diff --git a/pkg/services/preference/prefimpl/pref.go b/pkg/services/preference/prefimpl/pref.go index 57219d8155e..976a01802a3 100644 --- a/pkg/services/preference/prefimpl/pref.go +++ b/pkg/services/preference/prefimpl/pref.go @@ -224,10 +224,7 @@ func (s *Service) GetDefaults() *pref.Preference { HomeDashboardID: 0, JSONData: &pref.PreferenceJSONData{}, } - - if s.features.IsEnabled(featuremgmt.FlagInternationalization) { - defaults.JSONData.Language = s.cfg.DefaultLanguage - } + defaults.JSONData.Language = s.cfg.DefaultLanguage return defaults } diff --git a/pkg/services/preference/prefimpl/pref_test.go b/pkg/services/preference/prefimpl/pref_test.go index 9463901ce7f..de666af5be2 100644 --- a/pkg/services/preference/prefimpl/pref_test.go +++ b/pkg/services/preference/prefimpl/pref_test.go @@ -45,7 +45,9 @@ func TestGetDefaults(t *testing.T) { Theme: "light", Timezone: "UTC", HomeDashboardID: 0, - JSONData: &pref.PreferenceJSONData{}, + JSONData: &pref.PreferenceJSONData{ + Language: "en-US", + }, } if diff := cmp.Diff(expected, preference); diff != "" { t.Fatalf("Result mismatch (-want +got):\n%s", diff) @@ -56,32 +58,6 @@ func TestGetDefaults(t *testing.T) { query := &pref.GetPreferenceWithDefaultsQuery{OrgID: 1} preference, err := prefService.GetWithDefaults(context.Background(), query) require.NoError(t, err) - expected := &pref.Preference{ - WeekStart: &weekStart, - Theme: "light", - Timezone: "UTC", - HomeDashboardID: 0, - JSONData: &pref.PreferenceJSONData{}, - } - if diff := cmp.Diff(expected, preference); diff != "" { - t.Fatalf("Result mismatch (-want +got):\n%s", diff) - } - }) -} - -func TestGetDefaultsWithI18nFeatureFlag(t *testing.T) { - prefService := &Service{ - store: newFake(), - cfg: setting.NewCfg(), - features: featuremgmt.WithFeatures(featuremgmt.FlagInternationalization), - } - weekStart := "" - prefService.cfg.DefaultLanguage = "en-US" - prefService.cfg.DefaultTheme = "light" - prefService.cfg.DateFormats.DefaultTimezone = "UTC" - - t.Run("GetDefaults", func(t *testing.T) { - preference := prefService.GetDefaults() expected := &pref.Preference{ WeekStart: &weekStart, Theme: "light", diff --git a/public/app/core/components/SharedPreferences/SharedPreferences.test.tsx b/public/app/core/components/SharedPreferences/SharedPreferences.test.tsx index c2e3cc7c8c8..949fe893309 100644 --- a/public/app/core/components/SharedPreferences/SharedPreferences.test.tsx +++ b/public/app/core/components/SharedPreferences/SharedPreferences.test.tsx @@ -7,19 +7,6 @@ import { Preferences as UserPreferencesDTO } from '@grafana/schema/src/raw/prefe import SharedPreferences from './SharedPreferences'; -jest.mock('@grafana/runtime', () => { - const originalModule = jest.requireActual('@grafana/runtime'); - return { - ...originalModule, - config: { - ...originalModule.config, - featureToggles: { - internationalization: true, - }, - }, - }; -}); - jest.mock('app/core/services/backend_srv', () => { return { backendSrv: { diff --git a/public/app/core/components/SharedPreferences/SharedPreferences.tsx b/public/app/core/components/SharedPreferences/SharedPreferences.tsx index d7113e85888..937e5f0ddfc 100644 --- a/public/app/core/components/SharedPreferences/SharedPreferences.tsx +++ b/public/app/core/components/SharedPreferences/SharedPreferences.tsx @@ -49,8 +49,6 @@ function getLanguageOptions(): Array> { return options; } -const i18nFlag = Boolean(config.featureToggles.internationalization); - export class SharedPreferences extends PureComponent { service: PreferencesService; themeOptions: SelectableValue[]; @@ -195,27 +193,25 @@ export class SharedPreferences extends PureComponent { /> - {i18nFlag ? ( - - - Language - - - - } - data-testid="User preferences language drop down" - > - lang.value === language)} + onChange={(lang: SelectableValue) => this.onLanguageChanged(lang.value ?? '')} + options={languages} + placeholder={t('shared-preferences.fields.locale-placeholder', 'Choose language')} + inputId="locale-select" + /> +