uptime-kuma/src/i18n.js

75 lines
1.9 KiB
JavaScript
Raw Normal View History

import { createI18n } from "vue-i18n/dist/vue-i18n.esm-browser.prod.js";
2022-12-27 10:11:53 +00:00
import en from "./lang/en.json";
2021-10-13 06:44:31 +00:00
const languageList = {
"ar-SY": "العربية",
2022-01-18 07:50:11 +00:00
"cs-CZ": "Čeština",
2021-11-26 08:31:19 +00:00
"zh-HK": "繁體中文 (香港)",
"bg-BG": "Български",
"de-DE": "Deutsch (Deutschland)",
"de-CH": "Deutsch (Schweiz)",
2021-11-26 08:31:19 +00:00
"nl-NL": "Nederlands",
"nb-NO": "Norsk",
"es-ES": "Español",
2022-06-23 11:29:37 +00:00
"eu": "Euskara",
2021-11-26 08:31:19 +00:00
"fa": "Farsi",
2022-07-26 01:07:38 +00:00
"pt-PT": "Português (Portugal)",
2021-11-26 08:31:19 +00:00
"pt-BR": "Português (Brasileiro)",
"fi": "Suomi",
2021-11-26 08:31:19 +00:00
"fr-FR": "Français (France)",
2023-02-28 17:45:35 +00:00
"he-IL": "עברית",
2021-11-26 08:31:19 +00:00
"hu": "Magyar",
"hr-HR": "Hrvatski",
"it-IT": "Italiano (Italian)",
"id-ID": "Bahasa Indonesia (Indonesian)",
"ja": "日本語",
"da-DK": "Danish (Danmark)",
"sr": "Српски",
"sl-SI": "Slovenščina",
2021-11-26 08:31:19 +00:00
"sr-latn": "Srpski",
"sv-SE": "Svenska",
"tr-TR": "Türkçe",
"ko-KR": "한국어",
"ru-RU": "Русский",
"zh-CN": "简体中文",
"pl": "Polski",
"et-EE": "eesti",
"vi-VN": "Tiếng Việt",
2022-03-31 08:24:28 +00:00
"zh-TW": "繁體中文 (台灣)",
2023-03-04 18:49:47 +00:00
"uk-UA": "Українська",
2022-05-19 12:44:59 +00:00
"th-TH": "ไทย",
2022-10-07 08:55:12 +00:00
"el-GR": "Ελληνικά",
2023-01-24 17:58:12 +00:00
"yue": "繁體中文 (廣東話 / 粵語)",
2023-02-06 07:21:31 +00:00
"ro": "Limba română",
2023-02-16 14:12:18 +00:00
"ur": "Urdu"
2021-11-26 08:31:19 +00:00
};
let messages = {
en,
};
2021-11-26 08:31:19 +00:00
for (let lang in languageList) {
messages[lang] = {
languageName: languageList[lang]
};
}
const rtlLangs = [ "fa", "ar-SY", "ur" ];
2021-10-04 21:33:52 +00:00
2021-10-07 15:59:15 +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 = () => {
2021-10-04 21:33:52 +00:00
return rtlLangs.includes(currentLocale()) ? "rtl" : "ltr";
};
export const i18n = createI18n({
locale: currentLocale(),
fallbackLocale: "en",
silentFallbackWarn: true,
2021-10-04 21:33:52 +00:00
silentTranslationWarn: true,
2021-11-26 08:31:19 +00:00
messages: messages,
});