48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
import i18n from 'i18next';
|
|
// import XHR from 'i18next-xhr-backend';
|
|
import LanguageDetector from 'i18next-browser-languagedetector';
|
|
import resBundle from 'i18next-resource-store-loader!./locales/index.js';
|
|
import { isDevelopment } from './common/constants';
|
|
|
|
/*function loadLocales (url, options, callback, data) {
|
|
try {
|
|
let waitForLocale = require('bundle!./locales/' + url + '.json');
|
|
waitForLocale((locale) => {
|
|
callback(locale, {status: '200'});
|
|
})
|
|
} catch (e) {
|
|
callback(null, {status: '404'});
|
|
}
|
|
}*/
|
|
|
|
i18n
|
|
// .use(XHR)
|
|
.use(LanguageDetector)
|
|
.init({
|
|
fallbackLng: 'en',
|
|
ns: ['common'],
|
|
defaultNS: 'common',
|
|
|
|
debug: isDevelopment,
|
|
|
|
interpolation: {
|
|
escapeValue: false, // not needed for react!!
|
|
formatSeparator: ',',
|
|
format: (value, format, lng) => {
|
|
if (format === 'uppercase') return value.toUpperCase();
|
|
return value;
|
|
}
|
|
},
|
|
resources: resBundle,
|
|
/*backend: {
|
|
loadPath: '{{lng}}/{{ns}}',
|
|
parse: (data) => data,
|
|
ajax: loadLocales
|
|
},*/
|
|
detection: {
|
|
order: ['localStorage', 'cookie', 'navigator', 'querystring', 'htmlTag']
|
|
}
|
|
});
|
|
|
|
export default i18n;
|