Files
iD/modules/util/locale.js
Tom MacWright af776501d3 Require locale, second pass (#3259)
* Require locale, second pass

* Remove t global, remove t where it isn't needed
2016-07-21 16:20:13 -04:00

37 lines
914 B
JavaScript

var locale = { _current: 'en' };
window.locale = locale;
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;
};
export 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); // eslint-disable-line
return missing;
}