From 713230e0824b6c50b7ecb73971f051a4479d8b2a Mon Sep 17 00:00:00 2001 From: Stefan Parviainen Date: Sat, 9 Dec 2017 14:22:20 +0100 Subject: [PATCH] Add option to also output original string This is useful for debugging and testing Signed-off-by: Stefan Parviainen --- src/languageHandler.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/languageHandler.js b/src/languageHandler.js index 59d71505a4..e732927a75 100644 --- a/src/languageHandler.js +++ b/src/languageHandler.js @@ -23,6 +23,10 @@ import SettingsStore, {SettingLevel} from "./settings/SettingsStore"; const i18nFolder = 'i18n/'; +// Control whether to also return original, untranslated strings +// Useful for debugging and testing +const ANNOTATE_STRINGS = false; + // We use english strings as keys, some of which contain full stops counterpart.setSeparator('|'); // Fall back to English @@ -84,7 +88,21 @@ export function _t(text, variables, tags) { // The translation returns text so there's no XSS vector here (no unsafe HTML, no code execution) const translated = safeCounterpartTranslate(text, args); - return substitute(translated, variables, tags); + let substituted = substitute(translated, variables, tags); + + // For development/testing purposes it is useful to also output the original string + // Don't do that for release versions + if (ANNOTATE_STRINGS) { + if (typeof substituted === 'string') { + return `@@${text}##${substituted}@@` + } + else { + return {substituted}; + } + } + else { + return substituted; + } } /*