mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 05:37:22 +01:00
* Re-organize common folder * fix: Correct paths in tests * fix: move new content to proper folder * chore: Move audio folder to assets * Move sprites to sprites assets directory * Move css sprites to assets directory * Split out readmes for common code and sprites * Move images to assets directory * Move destinatin of shared browserified file * remove unused file * move compiled js to client-old * Fix karma tests * fix: Correct paths for sprites
64 lines
1.3 KiB
JavaScript
64 lines
1.3 KiB
JavaScript
import _ from 'lodash';
|
|
|
|
let i18n = {
|
|
strings: null,
|
|
translations: {},
|
|
t, // eslint-disable-line no-use-before-define
|
|
};
|
|
|
|
function t (stringName) {
|
|
let vars = arguments[1];
|
|
let locale;
|
|
|
|
if (_.isString(arguments[1])) {
|
|
vars = null;
|
|
locale = arguments[1];
|
|
} else if (arguments[2]) {
|
|
locale = arguments[2];
|
|
}
|
|
|
|
let i18nNotSetup = !i18n.strings && !i18n.translations[locale];
|
|
|
|
if (!locale || i18nNotSetup) {
|
|
locale = 'en';
|
|
}
|
|
|
|
let string;
|
|
|
|
if (i18n.strings) {
|
|
string = i18n.strings[stringName];
|
|
} else {
|
|
string = i18n.translations[locale] && i18n.translations[locale][stringName];
|
|
}
|
|
|
|
let clonedVars = _.clone(vars) || {};
|
|
|
|
clonedVars.locale = locale;
|
|
|
|
if (string) {
|
|
try {
|
|
return _.template(string)(clonedVars);
|
|
} catch (_error) {
|
|
return 'Error processing the string. Please see Help > Report a Bug.';
|
|
}
|
|
} else {
|
|
let stringNotFound;
|
|
|
|
if (i18n.strings) {
|
|
stringNotFound = i18n.strings.stringNotFound;
|
|
} else if (i18n.translations[locale]) {
|
|
stringNotFound = i18n.translations[locale] && i18n.translations[locale].stringNotFound;
|
|
}
|
|
|
|
try {
|
|
return _.template(stringNotFound)({
|
|
string: stringName,
|
|
});
|
|
} catch (_error) {
|
|
return 'Error processing the string. Please see Help > Report a Bug.';
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = i18n;
|