From 4b48751132e05dd67c2ce956ac7031e8a5c20a2a Mon Sep 17 00:00:00 2001 From: Miguel Angel Mulero Martinez Date: Fri, 23 Mar 2018 11:49:14 +0100 Subject: [PATCH] Accept interpolation of i18next --- locales/en/messages.json | 3 ++- src/js/localization.js | 14 ++++++++++++-- src/js/main.js | 4 +++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 2f724e25..4cd54cf7 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -371,7 +371,8 @@ }, "infoVersions": { - "message" : "Running - OS: $1, Chrome: $2, Configurator: $3" + "message" : "Running - OS: {{operatingSystem}}, Chrome: {{chromeVersion}}, Configurator: {{configuratorVersion}}", + "description": "Message that appears in the GUI log panel indicating operating system, Chrome version and Configurator version" }, "releaseCheckLoaded": { "message" : "Loaded release information for $1 from GitHub." diff --git a/src/js/localization.js b/src/js/localization.js index 8f14b309..3777121e 100644 --- a/src/js/localization.js +++ b/src/js/localization.js @@ -39,9 +39,19 @@ i18n.init = function(cb) { } i18n.getMessage = function(messageID, parameters) { - var translatedString = i18next.t(messageID + '.message'); - if (parameters !== undefined) { + var translatedString; + + // Option 1, no parameters or Object as parameters (i18Next type parameters) + if ((parameters === undefined) || ((parameters.constructor !== Array) && (parameters instanceof Object))) { + translatedString = i18next.t(messageID + '.message', parameters); + + // Option 2: parameters as $1, $2, etc. + // (deprecated, from the old Chrome i18n + } else { + + translatedString = i18next.t(messageID + '.message'); + if (parameters.constructor !== Array) { parameters = [parameters]; } diff --git a/src/js/main.js b/src/js/main.js index 3320ce0b..326921c2 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -18,7 +18,9 @@ function startProcess() { i18n.localizePage(); // alternative - window.navigator.appVersion.match(/Chrome\/([0-9.]*)/)[1]; - GUI.log(i18n.getMessage('infoVersions',[GUI.operating_system, window.navigator.appVersion.replace(/.*Chrome\/([0-9.]*).*/, "$1"), getManifestVersion()])); + GUI.log(i18n.getMessage('infoVersions',{operatingSystem: GUI.operating_system, + chromeVersion: window.navigator.appVersion.replace(/.*Chrome\/([0-9.]*).*/, "$1"), + configuratorVersion: getManifestVersion()})); $('#logo .version').text(getManifestVersion()); updateStatusBarVersion();