Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tpl
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-09-08 17:04:04 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-09-08 17:18:11 +0300
commitfe0c270577325dcd08d5e21faa42c5288a205f93 (patch)
treeeb2b17eb9b7cfdf6220f53a72c8859c5d6f71b0e /tpl
parent5ef45bec63b157eb8e1bd3a6a4c6cb1e98a43a94 (diff)
Reset the i18n func map on reload
Also improve the error message on missing resource bundles.
Diffstat (limited to 'tpl')
-rw-r--r--tpl/template_i18n.go20
1 files changed, 11 insertions, 9 deletions
diff --git a/tpl/template_i18n.go b/tpl/template_i18n.go
index e46e49bdb..7abe29980 100644
--- a/tpl/template_i18n.go
+++ b/tpl/template_i18n.go
@@ -33,21 +33,22 @@ type translate struct {
current bundle.TranslateFunc
}
-var translater *translate = &translate{translateFuncs: make(map[string]bundle.TranslateFunc)}
+var translator *translate
// SetTranslateLang sets the translations language to use during template processing.
// This construction is unfortunate, but the template system is currently global.
func SetTranslateLang(lang string) error {
- if f, ok := translater.translateFuncs[lang]; ok {
- translater.current = f
+ if f, ok := translator.translateFuncs[lang]; ok {
+ translator.current = f
} else {
jww.WARN.Printf("Translation func for language %v not found, use default.", lang)
- translater.current = translater.translateFuncs[viper.GetString("DefaultContentLanguage")]
+ translator.current = translator.translateFuncs[viper.GetString("DefaultContentLanguage")]
}
return nil
}
func SetI18nTfuncs(bndl *bundle.Bundle) {
+ translator = &translate{translateFuncs: make(map[string]bundle.TranslateFunc)}
defaultContentLanguage := viper.GetString("DefaultContentLanguage")
var (
defaultT bundle.TranslateFunc
@@ -66,10 +67,10 @@ func SetI18nTfuncs(bndl *bundle.Bundle) {
if err != nil {
jww.WARN.Printf("could not load translations for language %q (%s), will use default content language.\n", lang, err)
- translater.translateFuncs[currentLang] = defaultT
+ translator.translateFuncs[currentLang] = defaultT
continue
}
- translater.translateFuncs[currentLang] = func(translationID string, args ...interface{}) string {
+ translator.translateFuncs[currentLang] = func(translationID string, args ...interface{}) string {
if translated := tFunc(translationID, args...); translated != translationID {
return translated
}
@@ -85,8 +86,9 @@ func SetI18nTfuncs(bndl *bundle.Bundle) {
}
func I18nTranslate(id string, args ...interface{}) (string, error) {
- if translater == nil || translater.current == nil {
- return "", fmt.Errorf("i18n not initialized, have you configured everything properly?")
+ if translator == nil || translator.current == nil {
+ helpers.DistinctErrorLog.Printf("i18n not initialized, check that you have language file (in i18n) that matches the site language or the default language.")
+ return "", nil
}
- return translater.current(id, args...), nil
+ return translator.current(id, args...), nil
}