vue2项目使用vue-i18n

1、安装插件。

npm install --save vue-i18n@8.0.0

2、scr目录下新建i18n文件夹,下边创建三个文件,分别是入口文件以及你所需的语言文件。
3、项目中引用。

import VueI18n from "vue-i18n";
Vue.use(VueI18n);
import i18n from "./i18n/index"; //文件中新建的i18n文件
new Vue({
  i18n, //使用国际化
  render: (h) => h(App),
}).$mount("#app");

4、i18n文件下的入口文件内容。

import Vue from "vue";
import VueI18n from "vue-i18n";

// 引入各个语言配置文件
import zh from "./zh.js";
import en from "./en.js";

Vue.use(VueI18n);
// 获取当前域名
let currentLanguage = localStorage.getItem("accept_language");

if (!currentLanguage) {
  if (!isShowEn) {
    localStorage.setItem("accept_language", "th");
  } else {
    localStorage.setItem("accept_language", "en");
  }
}

// 创建vue-i18n实例i18n
const i18n = new VueI18n({
  // 设置默认语言
  locale: localStorage.getItem("accept_language") || "zh", // 语言标识
  // 添加多语言(每一个语言标示对应一个语言文件)
  messages: {
    en,
    zh,
  },
});
// 暴露i18n
export default i18n;

5、页面头部可以使用下拉选切换语言。

    <!-- <div>
        <el-dropdown @command="handleCommand">
          <span class="el-dropdown-link" style="color: #fff">
            {{ currentLan }}<i class="el-icon-arrow-down el-icon--right"></i>
          </span>
          <el-dropdown-menu slot="dropdown">
            <el-dropdown-item
              v-for="(lang, index) in langs"
              :key="index"
              :command="lang"
              >{{ lang.text }}</el-dropdown-item
            >
          </el-dropdown-menu>
        </el-dropdown>
      </div> -->
  data() {
    return {
      curLanguage: localStorage.getItem("accept_language"),
      currentLan: "",
      langs: [
        { text: "English", value: "en" },
        { text: "中文", value: "zh" },
      ],
    };
  },
  methods: {
    handleCommand(command) {
      localStorage.setItem("accept_language", command.value);
      this.$i18n.locale = command.value;
      console.log(command.value, "command.value");
      this.currentLan = this.langs.find(
        (item) => item.value === command.value
      )?.text;
      window.location.reload();
    },
  },
  created() {
    this.currentLan = this.langs.find(
      (item) => item.value === this.curLanguage
    )?.text;
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值