05e43c70b7
* Minimal Viable Navigation Menu Translation with new namespace I18Next configuration leaning on default separator and namespace Broom: i18n + debug:false * Minimal Viable Navigation Menu Test entry for Toolbar.test.jsx * Translation.json : Changes in translation for new namespace About : broom About lines 17-26 Nav component : changes in keys KeyboardShortcutModal.jsx: Key now in Common * Voice Over Labels in Preferences:index Labels included in translations.json * Voice Over Labels in Preferences:index Labels included in translations.json * Voice Over Labels in Preferences:index Labels included in translations.json * Voice Over Labels in Preferences:index Labels included in translations.json Snapshot updated npm run test -- -u * translations.json ARIA labels adjacent to respective label Updated names to call the labels Common namespace without currently used entries * Update Nav.jsx Missing Common.p5logoARIA key * Update Toolbar.test.jsx Deleting commented line 78 * Update in keys Co-authored-by: Andrew Nicolaou <me@andrewnicolaou.co.uk>
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
import i18n from 'i18next';
|
|
import { initReactI18next } from 'react-i18next';
|
|
import LanguageDetector from 'i18next-browser-languagedetector';
|
|
import Backend from 'i18next-http-backend';
|
|
|
|
const fallbackLng = ['en-US'];
|
|
const availableLanguages = ['en-US', 'es-419'];
|
|
|
|
const options = {
|
|
loadPath: '/locales/{{lng}}/translations.json',
|
|
requestOptions: { // used for fetch, can also be a function (payload) => ({ method: 'GET' })
|
|
mode: 'no-cors'
|
|
},
|
|
allowMultiLoading: false, // set loadPath: '/locales/resources.json?lng={{lng}}&ns={{ns}}' to adapt to multiLoading
|
|
};
|
|
|
|
i18n
|
|
.use(initReactI18next) // pass the i18n instance to react-i18next.
|
|
// .use(LanguageDetector)// to detect the language from currentBrowser
|
|
.use(Backend) // to fetch the data from server
|
|
.init({
|
|
lng: 'en-US',
|
|
fallbackLng, // if user computer language is not on the list of available languages, than we will be using the fallback language specified earlier
|
|
debug: false,
|
|
backend: options,
|
|
getAsync: false,
|
|
initImmediate: false,
|
|
useSuspense: true,
|
|
whitelist: availableLanguages,
|
|
interpolation: {
|
|
escapeValue: false, // react already safes from xss
|
|
},
|
|
saveMissing: false, // if a key is not found AND this flag is set to true, i18next will call the handler missingKeyHandler
|
|
missingKeyHandler: false // function(lng, ns, key, fallbackValue) { } custom logic about how to handle the missing keys
|
|
});
|
|
|
|
export default i18n;
|