diff --git a/binaries/data/l10n/messages.json b/binaries/data/l10n/messages.json index bd4e645643..336963b781 100644 --- a/binaries/data/l10n/messages.json +++ b/binaries/data/l10n/messages.json @@ -22,6 +22,7 @@ "MarkForTranslationWithContext": [[1], 2] }, "commentTags": [ + "dennis-ignore:", "Translation:" ] } diff --git a/binaries/data/mods/public/gui/common/functions_global_object.js b/binaries/data/mods/public/gui/common/functions_global_object.js index 3736e4d6e2..eec460565a 100644 --- a/binaries/data/mods/public/gui/common/functions_global_object.js +++ b/binaries/data/mods/public/gui/common/functions_global_object.js @@ -66,6 +66,7 @@ function updateCounters() let counters = []; if (Engine.ConfigDB_GetValue("user", "overlay.fps") === "true") + // dennis-ignore: * counters.push(sprintf(translate("FPS: %(fps)4s"), { "fps": Engine.GetFPS() })); if (Engine.ConfigDB_GetValue("user", "overlay.realtime") === "true") diff --git a/binaries/data/mods/public/gui/locale/locale_advanced.js b/binaries/data/mods/public/gui/locale/locale_advanced.js index ca6ad5e7b2..39f38eee91 100644 --- a/binaries/data/mods/public/gui/locale/locale_advanced.js +++ b/binaries/data/mods/public/gui/locale/locale_advanced.js @@ -89,7 +89,7 @@ function updateResultingLocale() } else { - resultingLocaleText.caption = translate(""); + resultingLocaleText.caption = translate("invalid locale"); dictionaryFile.caption = ""; var acceptButton = Engine.GetGUIObjectByName("acceptButton"); acceptButton.enabled = false; diff --git a/binaries/data/mods/public/l10n/messages.json b/binaries/data/mods/public/l10n/messages.json index 4aeca5a54e..c70f06b83a 100644 --- a/binaries/data/mods/public/l10n/messages.json +++ b/binaries/data/mods/public/l10n/messages.json @@ -259,6 +259,7 @@ "markForPluralTranslation": [1, 2] }, "commentTags": [ + "dennis-ignore:", "Translation:" ] } diff --git a/build/jenkins/lint-translations.sh b/build/jenkins/lint-translations.sh new file mode 100755 index 0000000000..a29260181a --- /dev/null +++ b/build/jenkins/lint-translations.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +# This script uses the Dennis PO(T) linter to find issues. +# See http://dennis.readthedocs.io/en/latest/index.html for +# installation instructions. + +set +e # Lint everything without failing + +# Move to the root of the repository (this script is in build/jenkins/) +cd "$(dirname $0)"/../../ + +# Configuration for the linter +# Ignore +# - W302: Translated string is identical to source string +parameters='--excluderules W302' + +# Run lint and output to a file that will be posted on Phabricator +echo "Running Dennis..." +{ + echo "Linting templates..." + echo "Engine" + dennis-cmd lint ${parameters} binaries/data/l10n/*.pot + echo "Mod mod" + dennis-cmd lint ${parameters} binaries/data/mods/mod/l10n/*.pot + echo "Public mod" + dennis-cmd lint ${parameters} binaries/data/mods/public/l10n/*.pot + + echo "Linting translations..." + echo "Engine" + dennis-cmd lint ${parameters} binaries/data/l10n/*.po + echo "Mod mod" + dennis-cmd lint ${parameters} binaries/data/mods/mod/l10n/*.po + echo "Public mod" + dennis-cmd lint ${parameters} binaries/data/mods/public/l10n/*.po +} > .phabricator-comment diff --git a/source/gui/scripting/ScriptFunctions.cpp b/source/gui/scripting/ScriptFunctions.cpp index 8918091222..a0d7205701 100644 --- a/source/gui/scripting/ScriptFunctions.cpp +++ b/source/gui/scripting/ScriptFunctions.cpp @@ -828,6 +828,7 @@ std::wstring GetBuildTimestamp(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), i else { // Translation: First item is a date and time, item between parenthesis is the Subversion revision number of the current build. + // dennis-ignore: * sprintf_s(buf, ARRAY_SIZE(buf), g_L10n.Translate("%s (%ls)").c_str(), dateTimeString.c_str(), svn_revision); } }