shithub: hugo

Download patch

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") {