ggejs
Version:
A powerful JavaScript library for interacting with the server of Goodgame Empire: Four Kingdoms
44 lines (41 loc) • 1.35 kB
JavaScript
const languages = require('e4k-data').languages;
/** @type {{text(client:Client, textId:string, ...args:string): string}} */
const Localize = {
text(client, textId, ...args) {
if (client == null) return textId;
if (typeof client === 'string') {
console.error('expected client, received: ' + client);
return client;
}
let val = _getValue(client, textId);
let i = 0;
for (let a of args) {
val = val.replaceAll(`{${i}}`, a);
i++;
}
return val;
}
}
/**
* @param {Client} client
* @param {string} textId
* @return {string}
* @private
*/
function _getValue(client, textId) {
const language = client._language;
if (languages[language] == null) return "";
for (let type in languages[language]) {
if (type === 'generic_flash') {
for (let subType in languages[language][type]) {
let translations = languages[language][type][subType];
if (translations[textId] != null) return translations[textId];
}
} else {
let translations = languages[language][type];
if (translations[textId] != null) return translations[textId];
}
}
return textId;
}
module.exports = Localize;