26 lines
624 B
JavaScript
26 lines
624 B
JavaScript
export default class Lang {
|
|
|
|
constructor({translations = {}, prefix = '', locale = 'en'} = {}) {
|
|
this.translations = translations;
|
|
this.prefix = prefix;
|
|
this.locale = locale;
|
|
}
|
|
|
|
get(sLangId = '', params = []) {
|
|
if(sLangId === '') return '';
|
|
|
|
const asParams = Array.isArray(params) ? params : [params];
|
|
|
|
if(Object.prototype.hasOwnProperty.call(this.translations, sLangId)) {
|
|
let sText = this.translations[sLangId];
|
|
asParams.forEach((sParam, iIndex) => {
|
|
sText = sText.replace('$' + iIndex, sParam);
|
|
});
|
|
return sText;
|
|
}
|
|
|
|
console.warn('Missing translation:', sLangId);
|
|
return sLangId;
|
|
}
|
|
}
|