You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.7 KiB

/* global systemDictionary: true */
'use strict';
let systemLang = 'en';
let systemDictionary = {};
/* eslint-disable quotes */
systemDictionary = {
"was not executed, while debug mode is active": {
"en": 'was not executed, while debug mode is active',
"de": 'was not executed, while debug mode is active',
"ru": 'was not executed, while debug mode is active'
}
};
/* eslint-enable quotes */
function setLanguage(language) {
systemLang = language;
}
function translateWord(text, lang, dictionary) {
if (!text) return '';
lang = lang || systemLang;
dictionary = dictionary || systemDictionary;
if (dictionary[text]) {
let newText = dictionary[text][lang];
if (newText) {
return newText;
} else if (lang !== 'en') {
newText = dictionary[text].en;
if (newText) {
return newText;
}
}
} else if (typeof text === 'string' && !text.match(/_tooltip$/)) {
console.log('"' + text + '": {"en": "' + text + '", "de": "' + text + '", "ru": "' + text + '"},');
} else if (typeof text !== 'string') {
console.warn('Trying to translate non-text:' + text);
}
return text;
}
function _(text, arg1, arg2, arg3) {
text = translateWord(text);
let pos = text.indexOf('%s');
if (pos !== -1) {
text = text.replace('%s', arg1);
} else {
return text;
}
pos = text.indexOf('%s');
if (pos !== -1) {
text = text.replace('%s', arg2);
} else {
return text;
}
pos = text.indexOf('%s');
if (pos !== -1) {
text = text.replace('%s', arg3);
}
return text;
}
module.exports.setLanguage = setLanguage;
module.exports._ = _;