From 3d53614bce1c1f7a85b1b70659d2f24fe4645e21 Mon Sep 17 00:00:00 2001 From: Itms Date: Sat, 27 May 2017 12:26:26 +0000 Subject: [PATCH] Add a script to lint the translations with Dennis. Two of our printf calls are not compatible with python-format and will be ignored until Dennis supports the corresponding formats. Also removed meaningless enclosing characters that were wrongly considered HTML. Reviewed By: leper Differential Revision: https://code.wildfiregames.com/D214 This was SVN commit r19669. --- binaries/data/l10n/messages.json | 1 + .../gui/common/functions_global_object.js | 1 + .../mods/public/gui/locale/locale_advanced.js | 2 +- binaries/data/mods/public/l10n/messages.json | 1 + build/jenkins/lint-translations.sh | 35 +++++++++++++++++++ source/gui/scripting/ScriptFunctions.cpp | 1 + 6 files changed, 40 insertions(+), 1 deletion(-) create mode 100755 build/jenkins/lint-translations.sh 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); } }