| | |
| | | import Vue from 'vue' |
| | | import VueI18n from 'vue-i18n' |
| | | import Cookies from 'js-cookie' |
| | | import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang |
| | | import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang |
| | | import elementEsLocale from 'element-ui/lib/locale/lang/es'// element-ui lang |
| | | import elementJaLocale from 'element-ui/lib/locale/lang/ja'// element-ui lang |
| | | import enLocale from './en' |
| | | import zhLocale from './zh' |
| | | // import esLocale from './es' |
| | | // import jaLocale from './ja' |
| | | import Vue from "vue"; |
| | | import VueI18n from "vue-i18n"; |
| | | import en from "./en.json"; |
| | | import india from "./hi.json"; |
| | | import zh from "./zh.json"; |
| | | import es from "./es.json"; |
| | | import cht from "./cht.json"; |
| | | |
| | | // 启用 Vue I18n:使其可以在 Vue 应用中使用。 |
| | | Vue.use(VueI18n) |
| | | Vue.use(VueI18n); |
| | | |
| | | // 定义翻译信息: 创建一个名为 messages 的对象,其中包含不同语言的翻译信息。每个语言都由一个键值对表示,包括自定义的应用文本翻译和 Element UI 组件库的翻译信息。 |
| | | const messages = { |
| | | en: { |
| | | ...enLocale, |
| | | ...elementEnLocale |
| | | export const i18n = new VueI18n({ |
| | | locale: window.localStorage.getItem("language") || "en", // 从localStorage中获取 默认英文 |
| | | messages: { |
| | | zh, // 中文语言包 |
| | | en, // 英文语言包 |
| | | hi: india, // 印度语言包 |
| | | es, // 西班牙语言包 |
| | | "zh-Hant": cht, // 繁体中文语言包 |
| | | }, |
| | | zh: { |
| | | ...zhLocale, |
| | | ...elementZhLocale |
| | | } |
| | | } |
| | | // 确定用户语言偏好: 定义名为 getLanguage 的函数,根据用户选择的语言和浏览器语言设置来确定应该使用的语言。如果用户未选择语言或浏览器语言无匹配项,则默认使用英语。 |
| | | export function getLanguage() { |
| | | const chooseLanguage = Cookies.get('language') |
| | | if (chooseLanguage) return chooseLanguage |
| | | |
| | | // if has not choose language |
| | | const language = (navigator.language || navigator.browserLanguage).toLowerCase() |
| | | const locales = Object.keys(messages) |
| | | for (const locale of locales) { |
| | | if (language.indexOf(locale) > -1) { |
| | | return locale |
| | | } |
| | | } |
| | | return 'en' |
| | | } |
| | | |
| | | // 创建 Vue I18n 实例: 使用 VueI18n 的构造函数创建一个名为 i18n 的实例。在构造函数中,通过传递当前语言代码和翻译信息来初始化实例。 |
| | | const i18n = new VueI18n({ |
| | | // set locale |
| | | // options: en | zh | es |
| | | locale: getLanguage(), |
| | | // set locale messages |
| | | messages |
| | | }) |
| | | |
| | | // 导出 I18n 实例 |
| | | export default i18n |
| | | }); |