zulip/static/js/translations.js

42 lines
1.1 KiB
JavaScript

// commonjs code goes here
import i18next from 'i18next';
import localstorage from './localstorage';
window.i18n = i18next;
i18next.init({
lng: 'lang',
resources: {
lang: {
translation: page_params.translation_data,
},
},
nsSeparator: false,
keySeparator: false,
interpolation: {
prefix: "__",
suffix: "__",
},
returnEmptyString: false, // Empty string is not a valid translation.
});
// garbage collect all old-style i18n translation maps in localStorage.
$(function () {
if (!localstorage.supported()) {
return;
}
// this collects all localStorage keys that match the format of:
// i18next:dddddddddd:w+ => 1484902202:en
// these are all language translation strings.
const translations = Object.keys(localStorage).filter(function (key) {
return /^i18next:\d{10}:\w+$/.test(key);
});
// remove cached translations of older versions.
translations.forEach(function (translation_key) {
localStorage.removeItem(translation_key);
});
return this;
});