diff --git a/public/src/translator.js b/public/src/translator.js index 76c9d347f7..1802e858d8 100644 --- a/public/src/translator.js +++ b/public/src/translator.js @@ -6,6 +6,12 @@ var translator = {}, languages = {}; + var regexes = { + match: /\[\[.*?\]\]/g, + split: /[,][\s]*/, + replace: /\]+$/ + }; + module.exports = translator; translator.addTranslation = function(language, filename, translations) { @@ -36,7 +42,7 @@ case 'pt_BR': languageCode = 'pt-br'; break; - + case 'nb': languageCode = 'no'; break; @@ -69,7 +75,7 @@ } }; - translator.translate = function (data, language, callback) { + translator.translate = function (text, language, callback) { if (typeof language === 'function') { callback = language; if ('undefined' !== typeof window && config) { @@ -80,69 +86,70 @@ } } - if (!data) { - return callback(data); - } - - function insertLanguage(text, key, value, variables) { - if (value) { - for (var i = 1, ii = variables.length; i < ii; i++) { - var variable = variables[i].replace(']]', ''); - value = value.replace('%' + i, variable); - } - - text = text.replace(key, value); - } else { - var string = key.split(':'); - text = text.replace(key, string[string.length-1].replace(/\]+$/, '')); - } - - return text; + if (!text) { + return callback(text); } - var keys = data.match(/\[\[.*?\]\]/g), - loading = 0; + var keys = text.match(regexes.match); if (!keys) { - return callback(data); + return callback(text); } - for (var i=0; i