From a40d1f6ed2aedddc99725658993258cd557640ed Mon Sep 17 00:00:00 2001 From: Albert Nigmatzianov Date: Tue, 2 May 2017 19:01:05 +0200 Subject: [PATCH] i18n: Improve the detection of untranslated string Fix #2607 --- i18n/i18n.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/i18n/i18n.go b/i18n/i18n.go index ce268fac3..80fc5bb04 100644 --- a/i18n/i18n.go +++ b/i18n/i18n.go @@ -76,7 +76,21 @@ func (t Translator) initFuncs(bndl *bundle.Bundle) { 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") {