index.ts 870 B

123456789101112131415161718192021222324252627282930
  1. import i18next from 'i18next';
  2. import resourcesToBackend from 'i18next-resources-to-backend';
  3. import LanguageDetector from 'i18next-browser-languagedetector';
  4. import { createI18nStore, isLoading as isLoadingStore } from './store';
  5. i18next
  6. .use(
  7. resourcesToBackend((language, namespace) => import(`./locales/${language}/${namespace}.json`))
  8. )
  9. .use(LanguageDetector)
  10. .init({
  11. debug: true,
  12. detection: {
  13. order: ['querystring', 'localStorage', 'navigator'],
  14. caches: ['localStorage'],
  15. lookupQuerystring: 'lang',
  16. lookupLocalStorage: 'locale'
  17. },
  18. fallbackLng: 'en',
  19. ns: 'common',
  20. // backend: {
  21. // loadPath: '/locales/{{lng}}/{{ns}}.json'
  22. // }
  23. interpolation: {
  24. escapeValue: false // not needed for svelte as it escapes by default
  25. }
  26. });
  27. const i18n = createI18nStore(i18next);
  28. export default i18n;
  29. export const isLoading = isLoadingStore;