summaryrefslogtreecommitdiffstats
path: root/utils/i18n.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/i18n.go')
-rw-r--r--utils/i18n.go36
1 files changed, 23 insertions, 13 deletions
diff --git a/utils/i18n.go b/utils/i18n.go
index 4fc8c725a..e02fee558 100644
--- a/utils/i18n.go
+++ b/utils/i18n.go
@@ -36,15 +36,16 @@ func InitTranslations() {
func GetTranslationsBySystemLocale() i18n.TranslateFunc {
locale := model.DEFAULT_LOCALE
if userLanguage, err := jibber_jabber.DetectLanguage(); err == nil {
- locale = userLanguage
+ if _, ok := locales[userLanguage]; ok {
+ locale = userLanguage
+ } else {
+ l4g.Error("Failed to load system translations for '%v' attempting to fall back to '%v'", locale, model.DEFAULT_LOCALE)
+ locale = model.DEFAULT_LOCALE
+ }
}
if locales[locale] == "" {
- l4g.Error("Failed to load system translations for '%v' attempting to fall back to '%v'", locale, model.DEFAULT_LOCALE)
-
- if locales[model.DEFAULT_LOCALE] == "" {
- panic("Failed to load system translations for '" + model.DEFAULT_LOCALE + "'")
- }
+ panic("Failed to load system translations for '" + model.DEFAULT_LOCALE + "'")
}
translations, _ := i18n.Tfunc(locale)
@@ -56,19 +57,28 @@ func GetTranslationsBySystemLocale() i18n.TranslateFunc {
return translations
}
-func SetTranslations(locale string) i18n.TranslateFunc {
+func GetUserTranslations(locale string) i18n.TranslateFunc {
+ if _, ok := locales[locale]; !ok {
+ locale = model.DEFAULT_LOCALE
+ }
+
translations, _ := i18n.Tfunc(locale)
return translations
}
-func GetTranslations(w http.ResponseWriter, r *http.Request) i18n.TranslateFunc {
- translations, _ := getTranslationsAndLocale(w, r)
+func SetTranslations(locale string) i18n.TranslateFunc {
+ translations, _ := i18n.Tfunc(locale)
return translations
}
-func GetTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) {
- return getTranslationsAndLocale(w, r)
-}
+// func GetTranslations(w http.ResponseWriter, r *http.Request) i18n.TranslateFunc {
+// translations, _ := getTranslationsAndLocale(w, r)
+// return translations
+// }
+
+// func GetTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) {
+// return getTranslationsAndLocale(w, r)
+// }
func SetLocaleCookie(w http.ResponseWriter, lang string, sessionCacheInMinutes int) {
maxAge := (sessionCacheInMinutes * 60)
@@ -115,7 +125,7 @@ func SetLocaleCookie(w http.ResponseWriter, lang string, sessionCacheInMinutes i
// })
// }
-func getTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) {
+func GetTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) {
var translations i18n.TranslateFunc
var _ error
localeCookie := ""