rosetta
Version:
A general purpose internationalization library in 298 bytes
28 lines (22 loc) • 528 B
JavaScript
import dlv from 'dlv';
import tmpl from 'templite';
export default function (obj) {
var locale='', tree = obj || {};
return {
set(lang, table) {
tree[lang] = Object.assign(tree[lang] || {}, table);
},
locale(lang) {
return (locale = lang || locale);
},
table(lang) {
return tree[lang];
},
t(key, params, lang) {
var val = dlv(tree[lang || locale], key, '');
if (typeof val === 'function') return val(params);
if (typeof val === 'string') return tmpl(val, params);
return val;
}
};
}