diff --git a/PC/InterFace.Dash/src/lang/en.js b/PC/InterFace.Dash/src/lang/en.js new file mode 100644 index 0000000..ce590f5 --- /dev/null +++ b/PC/InterFace.Dash/src/lang/en.js @@ -0,0 +1,5 @@ +export default { + common: { + home:'home' + } +} \ No newline at end of file diff --git a/PC/InterFace.Dash/src/lang/index.js b/PC/InterFace.Dash/src/lang/index.js new file mode 100644 index 0000000..1d1c3a5 --- /dev/null +++ b/PC/InterFace.Dash/src/lang/index.js @@ -0,0 +1,49 @@ +// lang/index.js +import Vue from "vue" +import ElementUI from "element-ui" +import VueI18n from "vue-i18n" +// elment-ui +import locale from "element-ui/lib/locale" +import zhLocale from "element-ui/lib/locale/lang/zh-CN" +import enLocale from "element-ui/lib/locale/lang/en" +// 自己的多语言文件 +import zh from "./zh" +import en from "./en" + +Vue.use(VueI18n) + +const messages = { + "zh-CN": { + ...zh, + ...zhLocale, + }, + "en": { + ...en, + ...enLocale, + } +} +console.log(localStorage.getItem("browserLanguage")) +const i18n = new VueI18n({ + messages, + fallbackLocale: "zh-CN", // 匹配不到时默认的语言 + silentTranslationWarn: true, // 控制台的warning + locale: localStorage.getItem("browserLanguage") || "zh-CN", // set locale +}) + +locale.use(ElementUI, { + i18n: (key, value) => i18n.t(key, value), +}) + +// *** +// 非 vue 文件中使用这个方法 +const translate = (localeKey) => { + const locale = localStorage.getItem("language") || "zh-CN" + const hasKey = i18n.te(localeKey, locale) // 使用i18n的 te 方法来检查是否能够匹配到对应键值 + const translatedStr = i18n.t(localeKey) + if (hasKey) { + return translatedStr + } + return localeKey +} + +export { i18n, messages, translate } \ No newline at end of file diff --git a/PC/InterFace.Dash/src/lang/zh.js b/PC/InterFace.Dash/src/lang/zh.js new file mode 100644 index 0000000..7460042 --- /dev/null +++ b/PC/InterFace.Dash/src/lang/zh.js @@ -0,0 +1,5 @@ +export default { + common: { + home:'系统首页' + } +} \ No newline at end of file diff --git a/PC/InterFace.Dash/src/main.js b/PC/InterFace.Dash/src/main.js index 8863957..8f3f400 100644 --- a/PC/InterFace.Dash/src/main.js +++ b/PC/InterFace.Dash/src/main.js @@ -6,7 +6,7 @@ import App from './App' import store from './store' import router from './router' import watchLocal from '@/utils/watcLlocalstorage'//用于监听本地缓存 - +import i18n from './lang' import "./utils/utils" /** @@ -70,5 +70,6 @@ new Vue({ el: '#app', router, store, + i18n, render: h => h(App) }) diff --git a/PC/InterFace.Dash/src/router/index.js b/PC/InterFace.Dash/src/router/index.js index 2e7a46d..b1671db 100644 --- a/PC/InterFace.Dash/src/router/index.js +++ b/PC/InterFace.Dash/src/router/index.js @@ -1,6 +1,6 @@ import Vue from 'vue' import Router from 'vue-router' - +import { translate as $t } from "@/lang" Vue.use(Router) @@ -71,7 +71,7 @@ export let constantRoutes = [ name: 'Dashboard', meta: { keepAlive : true, - title: localStorage.getItem('browserLanguage') == 'zh-Hans' ? '系统首页' : 'Dashboard', + title: $t('common.home'), icon: 'svg_dashboard', outerFirst:true // affix: true