Modernizes the whole i18n stack:
- 48 translate([], {wait:true}) / translate() HOCs -> withTranslation()
- react.wait:true -> react.useSuspense:false
- whitelist -> supportedLngs; added compatibilityJSON: 'v3' so our
natural-language keys + v3 _plural layout keep working (custom
separators ss/eth/dj preserved)
- backends: xhr -> i18next-http-backend (client), sync-fs ->
i18next-fs-backend (server); dropped i18next-localstorage-cache
(was enabled:false); languagedetector 2 -> 8
- ReSendEmail: <Interpolate> (removed in v10) -> <Trans values={{email}}/>,
dropped the removed bare t export
- saveMissing handler signature (lngs, ns, key, fallbackValue)
Silences the per-component Translate/I18n legacy-context warnings.
Browser-verified es/en switch and <Trans> interpolation on /fires;
REST smoke byte-identical.
32 lines
865 B
JavaScript
32 lines
865 B
JavaScript
import { Meteor } from 'meteor/meteor';
|
|
import i18n from 'i18next';
|
|
import backend from 'i18next-fs-backend';
|
|
import i18nOpts from '../common/i18n';
|
|
// import moment from 'moment';
|
|
// import { T9n } from 'meteor-accounts-t9n';
|
|
|
|
// vi ostrio:meteor-root
|
|
i18nOpts.backend.loadPath = `${Meteor.rootPath}/../web.browser/app/${i18nOpts.backend.loadPath}`;
|
|
i18nOpts.backend.addPath = `${Meteor.rootPath}/../web.browser/app/${i18nOpts.backend.addPath}`;
|
|
|
|
// console.log(i18nOpts.backend.loadPath);
|
|
i18nOpts.debug = false;
|
|
i18nOpts.saveMissing = Meteor.isDevelopment;
|
|
i18nOpts.initImmediate = false;
|
|
|
|
i18n
|
|
.use(backend)
|
|
.init(i18nOpts, (err) => {
|
|
if (err) {
|
|
console.error(err);
|
|
}
|
|
});
|
|
|
|
/* export function setUserLang (lng) {
|
|
* moment.locale(lng);
|
|
* T9n.setLanguage(lng);
|
|
* } */
|
|
|
|
// console.log(i18n.t('Servidor arrancado'));
|
|
|
|
export default i18n;
|