Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import i18n from 'i18next'
import LngDetector from 'i18next-browser-languagedetector'
import { initReactI18next } from 'react-i18next'
import en from 'locales/en/translation.yml'
import ja from 'locales/ja/translation.yml'
export default () => {
const lngDetector = new LngDetector()
lngDetector.addDetector({
name: 'userSetting',
lookup(options) {
const userContextHydrate = document.getElementById('user-context-hydrate')
const textContent = userContextHydrate ? userContextHydrate.textContent || '{}' : '{}'
const { config = {} } = JSON.parse(textContent)
const { lang = null } = config
return lang
},
cacheUserLanguage(lng, options) {},
})
i18n
.use(lngDetector)
.use(initReactI18next)
.init({
fallbackLng: 'en',
debug: process.env.NODE_ENV === 'development',
interpolation: { escapeValue: false },
react: {
wait: false,
bindI18n: 'languageChanged loaded',
bindStore: 'added removed',
nsMode: 'default',
},
resources: {
en: { translation: en },
ja: { translation: ja },
},
detection: {
order: ['userSetting', 'querystring', 'cookie', 'localStorage', 'navigator', 'htmlTag', 'path', 'subdomain'],
},
})
}
|