69 lines
1.7 KiB
JavaScript
69 lines
1.7 KiB
JavaScript
/* 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._ = _; |