37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
const debug = require('@tryghost/debug')('i18n');
|
|
|
|
/** @type {import('i18next').i18n} */
|
|
let i18nInstance;
|
|
|
|
module.exports.init = function () {
|
|
const i18n = require('@tryghost/i18n');
|
|
const events = require('../lib/common/events');
|
|
const settingsCache = require('../../shared/settings-cache');
|
|
const labs = require('../../shared/labs');
|
|
|
|
let locale = 'en';
|
|
|
|
if (labs.isSet('i18n')) {
|
|
locale = settingsCache.get('locale');
|
|
}
|
|
|
|
module.exports = i18nInstance = i18n(locale, 'ghost');
|
|
|
|
events.on('settings.labs.edited', () => {
|
|
if (labs.isSet('i18n')) {
|
|
debug('labs i18n enabled, updating i18n to', settingsCache.get('locale'));
|
|
i18nInstance.changeLanguage(settingsCache.get('locale'));
|
|
} else {
|
|
debug('labs i18n disabled, updating i18n to en');
|
|
i18nInstance.changeLanguage('en');
|
|
}
|
|
});
|
|
|
|
events.on('settings.locale.edited', (model) => {
|
|
if (labs.isSet('i18n')) {
|
|
debug('locale changed, updating i18n to', model.get('value'));
|
|
i18nInstance.changeLanguage(model.get('value'));
|
|
}
|
|
});
|
|
};
|