vue2中使用i18n配置elementUi切换语言

1、下载插件

npm i vue-i18n@8.22.2
2、新建文件夹i18n

3、编写index.js文件 

import Vue from "vue";
import VueI18n from "vue-i18n";
import locale from 'element-ui/lib/locale';
// 引入 elementui 的多语言
import enLocale from 'element-ui/lib/locale/lang/en'
import zhCnLocale from 'element-ui/lib/locale/lang/zh-CN'
// 引入自己定义的 I18n 文件
import en from "./lan/en.json";
import zh from "./lan/zh.json";
Vue.use(VueI18n); // 全局挂载
export const i18n = new VueI18n({
  locale: localStorage.getItem("lang") || "zh", // 从localStorage中获取 默认英文
  messages: {
    zh: Object.assign(zh, zhCnLocale), // 中文语言包
    en: Object.assign(en, enLocale) // 英文语言包
  }
});
locale.i18n((key, value) => i18n.t(key, value));
export default i18n;

 4、编写en.json文件和zh.json文件

5、修改main.js文件 

import Vue from 'vue'
import Element from 'element-ui'
import './assets/styles/element-variables.scss'
import { i18n } from './i18n/index'
new Vue({
  el: '#app',
  i18n,
  render: h => h(App)
})
6、 页面显示的语法
   <!-- 这个按钮方便我们用来切换语言 -->
      <template>   
        <div class="full" @click="changeLangEvent()">
          <span class="lan">{{language}}</span>
          <h3 class="title">{{ $t('login.WelcomeToLogin') }}</h3>
        </div>
      </template>
 
<script>
  export default {
data (){
     return {
         language: localStorage.getItem("lang") ||"en"
        }
    },
 methods:{
       changeLangEvent() {
      if (this.language == "en") {
        this.$i18n.locale = 'zh';
        this.$message({
          message: "切换为中文!",
          type: "success"
        });
        localStorage.setItem("lang", "zh");
        this.language = "zh";
      } else if (this.language == "zh") {
        this.$i18n.locale = 'en';
        this.$message({
          message: "Switch to English!",
          type: "success"
        });
        localStorage.setItem("lang", "en");
        this.language = "en";
      }
    },
    }
</script>

Element Plus 的 i18n 实现中英文随时切换的步骤如下: 1. 在项目中安装 `vue-i18n` 包 ```bash npm install vue-i18n --save ``` 2. 在入口文件 `main.js` 中引入 `vue-i18n` 并且配置 ```javascript import Vue from 'vue' import VueI18n from 'vue-i18n' import ElementUI from 'element-ui' import locale from 'element-ui/lib/locale' import App from './App.vue' Vue.use(VueI18n) Vue.use(ElementUI) const messages = { 'zh-CN': require('./assets/lang/zh'), // 中文语言包 'en-US': require('./assets/lang/en') // 英文语言包 } const i18n = new VueI18n({ locale: 'zh-CN', // set locale messages // set locale messages }) locale.i18n((key, value) => i18n.t(key, value)) // 兼容element-ui的国际化 new Vue({ el: '#app', i18n, render: h => h(App) }) ``` 3. 在项目中创建语言包 在 `src/assets/lang` 目录下创建 `zh.js` 和 `en.js` 文件,分别用于存放中文和英文语言包。例如: ```javascript // zh.js 中文语言包 module.exports = { message: { hello: '你好', about: '关于我们', contact: '联系我们' } } ``` ```javascript // en.js 英文语言包 module.exports = { message: { hello: 'Hello', about: 'About Us', contact: 'Contact Us' } } ``` 4. 在组件中使用 `$t` 方法进行语言切换 ```vue <template> <div> <p>{{ $t('message.hello') }}</p> <p>{{ $t('message.about') }}</p> <p>{{ $t('message.contact') }}</p> <el-button @click="changeLocale('zh-CN')">中文</el-button> <el-button @click="changeLocale('en-US')">English</el-button> </div> </template> <script> export default { methods: { changeLocale(locale) { this.$i18n.locale = locale } } } </script> ``` 在组件中使用 `$t` 方法可以获取当前语言下对应的翻译文本。使用 `this.$i18n.locale` 可以修改当前语言环境,从而实现中英文随时切换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端程序猿i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值