1import i18n from "i18next";
2import {initReactI18next} from "react-i18next";
3import LanguageDetector from 'i18next-browser-languagedetector';
4import HttpApi from 'i18next-http-backend';
5import EnglishFlag from "@/common/assets/languages/en.webp";
6import BulgarianFlag from "@/common/assets/languages/bg.webp";
7import ChineseFlag from "@/common/assets/languages/zh.webp";
8import DutchFlag from "@/common/assets/languages/nl.webp";
9import FranceFlag from "@/common/assets/languages/fr.webp";
10import ItalianFlag from "@/common/assets/languages/it.webp";
11import PortugueseBrazilFlag from "@/common/assets/languages/br.webp";
12import RussianFlag from "@/common/assets/languages/ru.webp";
13import SpanishFlag from "@/common/assets/languages/es.webp";
14import TurkishFlag from "@/common/assets/languages/tr.webp";
15import DanishFlag from "@/common/assets/languages/da.webp";
16import PolishFlag from "@/common/assets/languages/pl.webp";
17import IndonesianFlag from "@/common/assets/languages/id.webp";
18
19export const languages = [
20 {name: 'English', code: 'en', flag: EnglishFlag},
21 {name: 'Български', code: 'bg', flag: BulgarianFlag},
22 {name: '中文', code: 'zh', flag: ChineseFlag},
23 {name: 'Nederlands', code: 'nl', flag: DutchFlag},
24 {name: 'Français', code: 'fr', flag: FranceFlag},
25 {name: 'Italiano', code: 'it', flag: ItalianFlag},
26 {name: 'Português do Brasil', code: 'pt', flag: PortugueseBrazilFlag},
27 {name: 'Русский', code: 'ru', flag: RussianFlag},
28 {name: 'Español', code: 'es', flag: SpanishFlag},
29 {name: 'Dansk', code: 'da', flag: DanishFlag},
30 {name: 'Polski', code: 'pl', flag: PolishFlag},
31 {name: 'Türkçe', code: 'tr', flag: TurkishFlag},
32 {name: 'Bahasa Indonesia', code: 'id', flag: IndonesianFlag}
33]
34
35const detectedLanguage = (localStorage.getItem('language') || navigator.language).split('-')[0];
36const selectedLanguage = languages.some(language => language.code === detectedLanguage) ? detectedLanguage : 'en';
37localStorage.setItem('language', selectedLanguage);
38
39i18n.use(initReactI18next).use(LanguageDetector).use(HttpApi).init({
40 supportedLngs: languages.map(lang => lang.code),
41 fallbackLng: 'en',
42 backend: {
43 loadPath: '/assets/locales/{{lng}}.json'
44 },
45 detection: {
46 order: ['localStorage'],
47 lookupLocalStorage: 'language'
48 }
49});
50
51export default i18n;