Files
iD/js/lib/locale.js
2013-11-25 17:05:02 -08:00

36 lines
866 B
JavaScript

window.locale = { _current: 'en' };
locale.current = function(_) {
if (!arguments.length) return locale._current;
if (locale[_] !== undefined) locale._current = _;
else if (locale[_.split('-')[0]]) locale._current = _.split('-')[0];
return locale;
};
function t(s, o, loc) {
loc = loc || locale._current;
var path = s.split(".").reverse(),
rep = locale[loc];
while (rep !== undefined && path.length) rep = rep[path.pop()];
if (rep !== undefined) {
if (o) for (var k in o) rep = rep.replace('{' + k + '}', o[k]);
return rep;
}
if (loc !== 'en') {
return t(s, o, 'en');
}
if (o && 'default' in o) {
return o['default'];
}
var missing = 'Missing ' + loc + ' translation: ' + s;
if (typeof console !== "undefined") console.error(missing);
return missing;
}