will-core
Version:
core module
49 lines (48 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LabelConfig = void 0;
const LabelUtility_1 = require("./LabelUtility");
const datalabel = {};
class LabelConfig {
constructor(configname, language = "EN") {
this.configname = configname;
this.language = language;
this.label = {};
}
async load(workdir, labelpath = "label") {
let util = new LabelUtility_1.LabelUtility(this.configname);
this.label = await util.loadAndBuild(workdir, labelpath);
if (!datalabel.default_label) {
let defutil = new LabelUtility_1.LabelUtility("default_label");
datalabel["default_label"] = await defutil.loadAndBuild(workdir, labelpath);
}
}
get(key, defaultLabel, language) {
if (!language)
language = this.language;
let result = undefined;
if (this.label.hasOwnProperty(language)) {
let langmap = this.label[language];
if (langmap.hasOwnProperty(key)) {
result = langmap[key];
}
}
if (!result) {
if (datalabel.hasOwnProperty("default_label")) {
let deflabel = datalabel["default_label"];
if (deflabel) {
if (deflabel.hasOwnProperty(language)) {
let deflabellang = deflabel[language];
if (deflabellang) {
if (deflabellang.hasOwnProperty(key)) {
result = deflabellang[key];
}
}
}
}
}
}
return result ? result : defaultLabel;
}
}
exports.LabelConfig = LabelConfig;