|
|
@@ -0,0 +1,42 @@
|
|
|
+import { App } from "vue";
|
|
|
+import { createI18n, I18n as BaseI18n } from "vue-i18n";
|
|
|
+import { params } from "@/example/env";
|
|
|
+import zh from "./locales/zh.json";
|
|
|
+
|
|
|
+type I18n = BaseI18n & {
|
|
|
+ global: {
|
|
|
+ t: I18nGlobalTranslation;
|
|
|
+ change(langName: langNameEum): void;
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+// 语言支持
|
|
|
+export enum langNameEum {
|
|
|
+ zh = "zh",
|
|
|
+}
|
|
|
+
|
|
|
+export const lang = params.value.lang || langNameEum.zh;
|
|
|
+export const availableLocales = {
|
|
|
+ [langNameEum.zh]: "中文",
|
|
|
+}
|
|
|
+const i18n: I18n = createI18n({
|
|
|
+ legacy: false,
|
|
|
+ fallbackLocale: langNameEum.zh,
|
|
|
+ availableLocales: availableLocales,
|
|
|
+ locale: lang,
|
|
|
+ sync: true,
|
|
|
+ silentTranslationWarn: true,
|
|
|
+ missingWarn: false,
|
|
|
+ silentFallbackWarn: true,
|
|
|
+}) as I18n;
|
|
|
+i18n.global.setLocaleMessage(langNameEum.zh, zh);
|
|
|
+
|
|
|
+i18n.global.change = (lang) => {
|
|
|
+ params.value.lang = lang
|
|
|
+ // location.reload()
|
|
|
+}
|
|
|
+export const ui18n = i18n.global
|
|
|
+export const setupI18n = (app: App) => {
|
|
|
+ app.config.globalProperties.$t = i18n.global.t
|
|
|
+ app.use(i18n)
|
|
|
+}
|