From 34b461c1b291e701f3a396a9daa622bd4f27fc11 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Fri, 22 Jan 2016 10:33:41 -0600 Subject: PLT-7 adding loc header --- utils/i18n.go | 81 ++++------------------------------------------------------- 1 file changed, 5 insertions(+), 76 deletions(-) (limited to 'utils') diff --git a/utils/i18n.go b/utils/i18n.go index e02fee558..47796da8d 100644 --- a/utils/i18n.go +++ b/utils/i18n.go @@ -12,10 +12,6 @@ import ( "github.com/nicksnyder/go-i18n/i18n" ) -const ( - SESSION_LOCALE = "MMLOCALE" -) - var T i18n.TranslateFunc var locales map[string]string = make(map[string]string) @@ -71,80 +67,13 @@ func SetTranslations(locale string) i18n.TranslateFunc { return translations } -// 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) - cookie := &http.Cookie{ - Name: SESSION_LOCALE, - Value: lang, - Path: "/", - MaxAge: maxAge, - } - - http.SetCookie(w, cookie) -} - -// var keyRegexp = regexp.MustCompile(`:[[:word:]]+`) -// func MaybeExpandNamedText(text string, args ...interface{}) string { -// var ( -// arg = args[0] -// argval = reflect.ValueOf(arg) -// ) -// if argval.Kind() == reflect.Ptr { -// argval = argval.Elem() -// } - -// if argval.Kind() == reflect.Map && argval.Type().Key().Kind() == reflect.String { -// return expandNamedText(text, func(key string) reflect.Value { -// return argval.MapIndex(reflect.ValueOf(key)) -// }) -// } -// if argval.Kind() != reflect.Struct { -// return text -// } - -// return expandNamedText(text, argval.FieldByName) -// } - -// func expandNamedText(text string, keyGetter func(key string) reflect.Value) string { -// return keyRegexp.ReplaceAllStringFunc(text, func(key string) string { -// val := keyGetter(key[1:]) -// if !val.IsValid() { -// return key -// } -// newVar, _ := val.Interface().(string) -// return newVar -// }) -// } - func GetTranslationsAndLocale(w http.ResponseWriter, r *http.Request) (i18n.TranslateFunc, string) { - var translations i18n.TranslateFunc - var _ error - localeCookie := "" - if cookie, err := r.Cookie(SESSION_LOCALE); err == nil { - localeCookie = cookie.Value - if locales[localeCookie] != "" { - translations, _ = i18n.Tfunc(localeCookie) - return translations, localeCookie - } - } - - localeCookie = strings.Split(strings.Split(r.Header.Get("Accept-Language"), ",")[0], "-")[0] - if locales[localeCookie] != "" { - translations, _ = i18n.Tfunc(localeCookie) - SetLocaleCookie(w, localeCookie, 10) - return translations, localeCookie + headerLocale = strings.Split(strings.Split(r.Header.Get("Accept-Language"), ",")[0], "-")[0] + if locales[headerLocale] != "" { + translations, _ := i18n.Tfunc(locale) + return translations, headerLocale } - translations, _ = i18n.Tfunc(model.DEFAULT_LOCALE) - SetLocaleCookie(w, model.DEFAULT_LOCALE, 10) + translations, _ := i18n.Tfunc(model.DEFAULT_LOCALE) return translations, model.DEFAULT_LOCALE } -- cgit v1.2.3-1-g7c22