diff options
author | Joram Wilander <jwawilander@gmail.com> | 2016-01-28 10:41:30 -0500 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2016-01-28 10:41:30 -0500 |
commit | 211fa8e5cc2e1f559098cefead42e1503073624d (patch) | |
tree | f1708e2eccb347107576290867d768265eaacd67 | |
parent | 67808124b3cc95d0e0c1bb33c3c8a247ad3beff2 (diff) | |
parent | c7c30a063da5c45a66b0447c07c0089379c5a99b (diff) | |
download | chat-211fa8e5cc2e1f559098cefead42e1503073624d.tar.gz chat-211fa8e5cc2e1f559098cefead42e1503073624d.tar.bz2 chat-211fa8e5cc2e1f559098cefead42e1503073624d.zip |
Merge pull request #2007 from mattermost/PLT-7-server-fallback
PLT-7 Adding english fallback to server
-rw-r--r-- | utils/i18n.go | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/utils/i18n.go b/utils/i18n.go index 05154bd92..e809ae883 100644 --- a/utils/i18n.go +++ b/utils/i18n.go @@ -44,7 +44,7 @@ func GetTranslationsBySystemLocale() i18n.TranslateFunc { panic("Failed to load system translations for '" + model.DEFAULT_LOCALE + "'") } - translations, _ := i18n.Tfunc(locale) + translations := TfuncWithFallback(locale) if translations == nil { panic("Failed to load system translations") } @@ -58,22 +58,34 @@ func GetUserTranslations(locale string) i18n.TranslateFunc { locale = model.DEFAULT_LOCALE } - translations, _ := i18n.Tfunc(locale) + translations := TfuncWithFallback(locale) return translations } func SetTranslations(locale string) i18n.TranslateFunc { - translations, _ := i18n.Tfunc(locale) + translations := TfuncWithFallback(locale) return translations } func GetTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) { headerLocale := strings.Split(strings.Split(r.Header.Get("Accept-Language"), ",")[0], "-")[0] if locales[headerLocale] != "" { - translations, _ := i18n.Tfunc(headerLocale) + translations := TfuncWithFallback(headerLocale) return translations, headerLocale } - translations, _ := i18n.Tfunc(model.DEFAULT_LOCALE) + translations := TfuncWithFallback(model.DEFAULT_LOCALE) return translations, model.DEFAULT_LOCALE } + +func TfuncWithFallback(pref string) i18n.TranslateFunc { + t, _ := i18n.Tfunc(pref) + return func(translationID string, args ...interface{}) string { + if translated := t(translationID, args...); translated != translationID { + return translated + } + + t, _ := i18n.Tfunc("en") + return t(translationID, args...) + } +} |