|
import i18next from 'i18next' |
|
import LanguageDetector from 'i18next-browser-languagedetector' |
|
import commonEn from './locales/en.json' |
|
import commonZh_CN from './locales/zh-CN.json' |
|
import commonZh_TW from './locales/zh-TW.json' |
|
import commonZh_HK from './locales/zh-HK.json' |
|
import commonJa_JP from './locales/ja.json' |
|
import commonDe from './locales/de.json' |
|
import commonSp from './locales/sp.json' |
|
|
|
export const resources = { |
|
en: { common: commonEn }, |
|
zh: { common: commonZh_CN }, |
|
'zh-TW': { common: commonZh_TW }, |
|
'zh-HK': { common: commonZh_HK }, |
|
ja: { common: commonJa_JP }, |
|
de: { common: commonDe }, |
|
sp: { common: commonSp }, |
|
} |
|
|
|
export const LanguageMapping: Record<string, string> = { |
|
en: 'English', |
|
zh: '简体中文', |
|
'zh-TW': '繁體中文(台灣)', |
|
'zh-HK': '繁體中文(香港)', |
|
ja: '日本語', |
|
de: 'Deutsch', |
|
sp: 'español', |
|
} |
|
|
|
const options = { |
|
order: ['querystring', 'localStorage', 'navigator'], |
|
lookupQuerystring: 'lng', |
|
} |
|
|
|
i18next.use(LanguageDetector).init({ |
|
|
|
detection: options, |
|
fallbackLng: 'en', |
|
debug: true, |
|
ns: ['common'], |
|
defaultNS: 'common', |
|
supportedLngs: Object.keys(resources), |
|
interpolation: { |
|
escapeValue: false, |
|
}, |
|
resources: resources, |
|
}) |
|
|
|
export function IsChina() { |
|
return ( |
|
i18next.language === 'zh-CN' || |
|
window.navigator.language === 'zh-CN' || |
|
window.navigator.language?.includes('zh-CN') |
|
) |
|
} |
|
|
|
export default i18next |
|
|