I18n: Add default locale server config option (#51035)

* I18n: Set default locale in server config and expose in grafanaBootData

* put default locale behind feature flag

* update tests now that default locale is behind feature flag

* little bit of PR feedback

* update sample.ini
This commit is contained in:
Josh Hunt
2022-06-21 11:12:49 +01:00
committed by GitHub
parent 370d6a6f7b
commit dcf786f3a9
6 changed files with 142 additions and 30 deletions
+22 -5
View File
@@ -5,22 +5,25 @@ import (
"errors"
"time"
"github.com/grafana/grafana/pkg/services/featuremgmt"
pref "github.com/grafana/grafana/pkg/services/preference"
"github.com/grafana/grafana/pkg/services/sqlstore/db"
"github.com/grafana/grafana/pkg/setting"
)
type Service struct {
store store
cfg *setting.Cfg
store store
cfg *setting.Cfg
features *featuremgmt.FeatureManager
}
func ProvideService(db db.DB, cfg *setting.Cfg) pref.Service {
func ProvideService(db db.DB, cfg *setting.Cfg, features *featuremgmt.FeatureManager) pref.Service {
return &Service{
store: &sqlStore{
db: db,
},
cfg: cfg,
cfg: cfg,
features: features,
}
}
@@ -51,7 +54,17 @@ func (s *Service) GetWithDefaults(ctx context.Context, query *pref.GetPreference
res.HomeDashboardID = p.HomeDashboardID
}
if p.JSONData != nil {
res.JSONData = p.JSONData
if p.JSONData.Locale != "" {
res.JSONData.Locale = p.JSONData.Locale
}
if len(p.JSONData.Navbar.SavedItems) > 0 {
res.JSONData.Navbar = p.JSONData.Navbar
}
if p.JSONData.QueryHistory.HomeTab != "" {
res.JSONData.QueryHistory.HomeTab = p.JSONData.QueryHistory.HomeTab
}
}
}
@@ -217,5 +230,9 @@ func (s *Service) GetDefaults() *pref.Preference {
JSONData: &pref.PreferenceJSONData{},
}
if s.features.IsEnabled(featuremgmt.FlagInternationalization) {
defaults.JSONData.Locale = s.cfg.DefaultLocale
}
return defaults
}