1
PC-20250623MANY\Administrator
2025-08-26 82710753a6be96cb08c12b99da61e46fe4e53e40
src/lang/index.js
@@ -1,53 +1,20 @@
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
});