Add vary accept-language header
Cette révision appartient à :
Parent
c1cafb9d9a
révision
521064b946
1 fichiers modifiés avec 5 ajouts et 4 suppressions
|
@ -2,8 +2,8 @@ package languages
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/nicksnyder/go-i18n/i18n"
|
|
||||||
"github.com/ewhal/nyaa/service/user"
|
"github.com/ewhal/nyaa/service/user"
|
||||||
|
"github.com/nicksnyder/go-i18n/i18n"
|
||||||
"html/template"
|
"html/template"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
@ -22,7 +22,7 @@ func TfuncWithFallback(language string, languages ...string) (i18n.TranslateFunc
|
||||||
|
|
||||||
if err1 != nil && err2 != nil {
|
if err1 != nil && err2 != nil {
|
||||||
// fallbackT is still a valid function even with the error, it returns translationID.
|
// fallbackT is still a valid function even with the error, it returns translationID.
|
||||||
return fallbackT, err2;
|
return fallbackT, err2
|
||||||
}
|
}
|
||||||
|
|
||||||
return func(translationID string, args ...interface{}) string {
|
return func(translationID string, args ...interface{}) string {
|
||||||
|
@ -42,7 +42,7 @@ func GetAvailableLanguages() (languages map[string]string) {
|
||||||
/* Translation files should have an ID with the translated language name.
|
/* Translation files should have an ID with the translated language name.
|
||||||
If they don't, just use the languageTag */
|
If they don't, just use the languageTag */
|
||||||
if languageName := T("language_name"); languageName != "language_name" {
|
if languageName := T("language_name"); languageName != "language_name" {
|
||||||
languages[languageTag] = languageName;
|
languages[languageTag] = languageName
|
||||||
} else {
|
} else {
|
||||||
languages[languageTag] = languageTag
|
languages[languageTag] = languageTag
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ func SetTranslationFromRequest(tmpl *template.Template, r *http.Request, default
|
||||||
userLanguage := ""
|
userLanguage := ""
|
||||||
user, _, err := userService.RetrieveCurrentUser(r)
|
user, _, err := userService.RetrieveCurrentUser(r)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
userLanguage = user.Language;
|
userLanguage = user.Language
|
||||||
}
|
}
|
||||||
|
|
||||||
cookie, err := r.Cookie("lang")
|
cookie, err := r.Cookie("lang")
|
||||||
|
@ -78,5 +78,6 @@ func SetTranslationFromRequest(tmpl *template.Template, r *http.Request, default
|
||||||
|
|
||||||
// go-i18n supports the format of the Accept-Language header, thankfully.
|
// go-i18n supports the format of the Accept-Language header, thankfully.
|
||||||
headerLanguage := r.Header.Get("Accept-Language")
|
headerLanguage := r.Header.Get("Accept-Language")
|
||||||
|
r.Header.Add("Vary", "Accept-Encoding")
|
||||||
return SetTranslation(tmpl, userLanguage, cookieLanguage, headerLanguage, defaultLanguage)
|
return SetTranslation(tmpl, userLanguage, cookieLanguage, headerLanguage, defaultLanguage)
|
||||||
}
|
}
|
||||||
|
|
Référencer dans un nouveau ticket