ref: a40d1f6ed2aedddc99725658993258cd557640ed
parent: 635b3bb4eb873978c7d52e6c0cb85da0c4d25299
author: Albert Nigmatzianov <[email protected]>
date: Tue May 2 15:01:05 EDT 2017
i18n: Improve the detection of untranslated string Fix #2607
--- a/i18n/i18n.go
+++ b/i18n/i18n.go
@@ -76,7 +76,21 @@
tFunc, err := bndl.Tfunc(currentLang)
if err != nil {
jww.WARN.Printf("could not load translations for language %q (%s), will use default content language.\n", lang, err)
- } else if translated := tFunc(translationID, args...); translated != translationID {
+ }
+
+ translated := tFunc(translationID, args...)
+ // If there is no translation for translationID,
+ // then Tfunc returns translationID itself.
+ if translated == translationID {
+ // But if user set same translationID and translation, we should check
+ // if it really untranslated this way:
+ // If bndl contains the translationID for specified currentLang,
+ // then the translationID is actually translated.
+ _, contains := bndl.Translations()[currentLang][translationID]
+ if contains {
+ return translated
+ }
+ } else {
return translated
}
if t.cfg.GetBool("logI18nWarnings") {