Add option to also output original string

This is useful for debugging and testing

Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
pull/21833/head
Stefan Parviainen 2017-12-09 14:22:20 +01:00
parent 7118f7a38f
commit 713230e082
1 changed files with 19 additions and 1 deletions

View File

@ -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 <span className='translated-string' data-orig-string={text}>{substituted}</span>;
}
}
else {
return substituted;
}
}
/*