2023-11-11 14:18:37 +00:00
|
|
|
// @ts-ignore Performance issue when using "vue-i18n", so we use "vue-i18n/dist/vue-i18n.esm-browser.prod.js", but typescript doesn't like that.
|
|
|
|
import { createI18n } from "vue-i18n/dist/vue-i18n.esm-browser.prod.js";
|
|
|
|
import en from "./lang/en.json";
|
|
|
|
|
|
|
|
const languageList = {
|
2023-11-20 10:14:00 +00:00
|
|
|
"bg-BG": "Български",
|
2023-11-20 05:23:08 +00:00
|
|
|
"es": "Español",
|
2023-11-20 19:51:32 +00:00
|
|
|
"de": "Deutsch",
|
2023-11-19 09:19:33 +00:00
|
|
|
"fr": "Français",
|
2023-11-21 16:04:51 +00:00
|
|
|
"pl-PL": "Polski",
|
2023-11-20 05:23:08 +00:00
|
|
|
"pt": "Português",
|
2023-11-23 00:46:20 +00:00
|
|
|
"pt-BR": "Português-Brasil",
|
2023-11-21 10:12:54 +00:00
|
|
|
"sl": "Slovenščina",
|
2023-11-19 09:30:09 +00:00
|
|
|
"tr": "Türkçe",
|
2023-11-19 16:55:00 +00:00
|
|
|
"zh-CN": "简体中文",
|
2023-11-25 05:08:14 +00:00
|
|
|
"zh-TW": "繁體中文(台灣)",
|
2023-11-20 15:52:35 +00:00
|
|
|
"ur": "Urdu",
|
2023-11-20 05:23:41 +00:00
|
|
|
"ko-KR": "한국어",
|
2023-11-22 10:53:42 +00:00
|
|
|
"ru": "Русский",
|
2023-11-23 02:19:58 +00:00
|
|
|
"cs-CZ": "Čeština",
|
2023-11-23 13:27:38 +00:00
|
|
|
"ar": "العربية",
|
2023-12-03 12:41:59 +00:00
|
|
|
"th": "ไทย",
|
|
|
|
"it-IT": "Italiano",
|
|
|
|
"sv-SE": "Svenska",
|
|
|
|
"uk-UA": "Українська",
|
|
|
|
"da": "Dansk",
|
|
|
|
"ja": "日本語",
|
|
|
|
"nl": "Nederlands",
|
|
|
|
"ro": "Română",
|
2023-11-11 14:18:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
let messages = {
|
|
|
|
en,
|
|
|
|
};
|
|
|
|
|
|
|
|
for (let lang in languageList) {
|
|
|
|
messages[lang] = {
|
|
|
|
languageName: languageList[lang]
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2023-12-05 08:57:10 +00:00
|
|
|
const rtlLangs = [ "fa", "ar-SY", "ur", "ar" ];
|
2023-11-11 14:18:37 +00:00
|
|
|
|
|
|
|
export const currentLocale = () => localStorage.locale
|
|
|
|
|| languageList[navigator.language] && navigator.language
|
|
|
|
|| languageList[navigator.language.substring(0, 2)] && navigator.language.substring(0, 2)
|
|
|
|
|| "en";
|
|
|
|
|
|
|
|
export const localeDirection = () => {
|
|
|
|
return rtlLangs.includes(currentLocale()) ? "rtl" : "ltr";
|
|
|
|
};
|
|
|
|
|
|
|
|
export const i18n = createI18n({
|
|
|
|
locale: currentLocale(),
|
|
|
|
fallbackLocale: "en",
|
|
|
|
silentFallbackWarn: true,
|
|
|
|
silentTranslationWarn: true,
|
|
|
|
messages: messages,
|
|
|
|
});
|