gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/i18n/index.ts · v0.3.2
Source
1 6badc43 Mrdn 2y ago import dayjs from 'dayjs';
2 6badc43 Mrdn 2y ago import i18n from 'i18next';
3 6badc43 Mrdn 2y ago import LanguageDetector from 'i18next-browser-languagedetector';
4 6badc43 Mrdn 2y ago import HttpApi from 'i18next-http-backend';
5 6badc43 Mrdn 2y ago import { initReactI18next } from 'react-i18next';
6 6badc43 Mrdn 2y ago
7 6badc43 Mrdn 2y ago declare module 'i18next' {
8 a0e778c Mrdn 2y ago interface CustomTypeOptions {
9 a0e778c Mrdn 2y ago returnNull: false;
10 a0e778c Mrdn 2y ago }
11 6badc43 Mrdn 2y ago }
12 6badc43 Mrdn 2y ago
13 6badc43 Mrdn 2y ago i18n
14 a0e778c Mrdn 2y ago .use(LanguageDetector)
15 a0e778c Mrdn 2y ago .use(HttpApi)
16 a0e778c Mrdn 2y ago .use(initReactI18next)
17 a0e778c Mrdn 2y ago .init({
18 a0e778c Mrdn 2y ago debug: process.env.NODE_ENV === 'development',
19 a0e778c Mrdn 2y ago fallbackLng: 'en',
20 a0e778c Mrdn 2y ago interpolation: {
21 a0e778c Mrdn 2y ago escapeValue: false,
22 a0e778c Mrdn 2y ago },
23 a0e778c Mrdn 2y ago react: {
24 a0e778c Mrdn 2y ago useSuspense: false,
25 a0e778c Mrdn 2y ago },
26 a0e778c Mrdn 2y ago load: 'languageOnly',
27 a0e778c Mrdn 2y ago detection: {
28 a0e778c Mrdn 2y ago order: ['localStorage', 'sessionStorage', 'cookie', 'navigator'],
29 a0e778c Mrdn 2y ago },
30 a0e778c Mrdn 2y ago backend: {
31 a0e778c Mrdn 2y ago loadPath: `/locales/{{lng}}.json`,
32 a0e778c Mrdn 2y ago },
33 a0e778c Mrdn 2y ago supportedLngs: ['en', 'kur', 'kmr', 'ckb', 'fa', 'ru'],
34 a0e778c Mrdn 2y ago })
35 a0e778c Mrdn 2y ago .then(() => {
36 a0e778c Mrdn 2y ago dayjs.locale(i18n.language);
37 a0e778c Mrdn 2y ago });
38 6badc43 Mrdn 2y ago
39 6badc43 Mrdn 2y ago i18n.on('languageChanged', (lng) => {
40 a0e778c Mrdn 2y ago dayjs.locale(lng);
41 6badc43 Mrdn 2y ago });
42 6badc43 Mrdn 2y ago
43 6badc43 Mrdn 2y ago export default i18n;