Этот коммит содержится в:
=Corey Hulen
2016-01-28 09:51:37 -05:00
родитель c7d9754f4b
Коммит c7c30a063d

Просмотреть файл

@@ -44,7 +44,7 @@ func GetTranslationsBySystemLocale() i18n.TranslateFunc {
panic("Failed to load system translations for '" + model.DEFAULT_LOCALE + "'") panic("Failed to load system translations for '" + model.DEFAULT_LOCALE + "'")
} }
translations, _ := TfuncWithFallback(locale) translations := TfuncWithFallback(locale)
if translations == nil { if translations == nil {
panic("Failed to load system translations") panic("Failed to load system translations")
} }
@@ -58,32 +58,34 @@ func GetUserTranslations(locale string) i18n.TranslateFunc {
locale = model.DEFAULT_LOCALE locale = model.DEFAULT_LOCALE
} }
translations, _ := TfuncWithFallback(locale) translations := TfuncWithFallback(locale)
return translations return translations
} }
func SetTranslations(locale string) i18n.TranslateFunc { func SetTranslations(locale string) i18n.TranslateFunc {
translations, _ := TfuncWithFallback(locale) translations := TfuncWithFallback(locale)
return translations return translations
} }
func GetTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) { func GetTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) {
headerLocale := strings.Split(strings.Split(r.Header.Get("Accept-Language"), ",")[0], "-")[0] headerLocale := strings.Split(strings.Split(r.Header.Get("Accept-Language"), ",")[0], "-")[0]
if locales[headerLocale] != "" { if locales[headerLocale] != "" {
translations, _ := TfuncWithFallback(headerLocale) translations := TfuncWithFallback(headerLocale)
return translations, headerLocale return translations, headerLocale
} }
translations, _ := TfuncWithFallback(model.DEFAULT_LOCALE) translations := TfuncWithFallback(model.DEFAULT_LOCALE)
return translations, model.DEFAULT_LOCALE return translations, model.DEFAULT_LOCALE
} }
func TfuncWithFallback(pref string, prefs ...string) TranslateFunc { func TfuncWithFallback(pref string) i18n.TranslateFunc {
t := i18n.MustTfunc(pref, prefs...) t, _ := i18n.Tfunc(pref)
return func(translationID string, args ...interface{}) string { return func(translationID string, args ...interface{}) string {
if translated := t(translationID, args...); translated != translationID { if translated := t(translationID, args...); translated != translationID {
return translated return translated
} }
return i18n.MustTfunc("en", args...)
t, _ := i18n.Tfunc("en")
return t(translationID, args...)
} }
} }