Update style of i18n, pull it in via preload instead of .html
parent
1ad2b080c8
commit
f86a6ef752
@ -1,29 +1,34 @@
|
|||||||
/*
|
/* eslint-env node */
|
||||||
* vim: ts=4:sw=4:expandtab
|
|
||||||
*/
|
|
||||||
;(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
// preload.js loads this, pulling it from main.js (where it was loaded from disk)
|
exports.setup = (locale, messages) => {
|
||||||
var messages = window.config.localeMessages;
|
if (!locale) {
|
||||||
var locale = window.config.locale;
|
throw new Error('i18n: locale parameter is required');
|
||||||
|
}
|
||||||
|
if (!messages) {
|
||||||
|
throw new Error('i18n: messages parameter is required');
|
||||||
|
}
|
||||||
|
|
||||||
window.i18n = function (message, substitutions) {
|
function getMessage(key, substitutions) {
|
||||||
if (!messages[message]) {
|
const entry = messages[key];
|
||||||
return;
|
if (!entry) {
|
||||||
}
|
console.error(`i18n: Attempted to get translation for nonexistent key '${key}'`);
|
||||||
var s = messages[message].message;
|
return '';
|
||||||
if (substitutions instanceof Array) {
|
}
|
||||||
substitutions.forEach(function(sub) {
|
|
||||||
s = s.replace(/\$.+?\$/, sub);
|
|
||||||
});
|
|
||||||
} else if (substitutions) {
|
|
||||||
s = s.replace(/\$.+?\$/, substitutions);
|
|
||||||
}
|
|
||||||
return s;
|
|
||||||
};
|
|
||||||
|
|
||||||
i18n.getLocale = function() {
|
const { message } = entry;
|
||||||
return locale;
|
if (substitutions instanceof Array) {
|
||||||
};
|
return substitutions.reduce(
|
||||||
})();
|
(result, substitution) => result.replace(/\$.+?\$/, substitution),
|
||||||
|
message
|
||||||
|
);
|
||||||
|
} else if (substitutions) {
|
||||||
|
return message.replace(/\$.+?\$/, substitutions);
|
||||||
|
}
|
||||||
|
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
getMessage.getLocale = () => locale;
|
||||||
|
|
||||||
|
return getMessage;
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue