vue使用i18n

在这里插入图片描述

🎈个人主页:靓仔很忙i
💻B 站主页:👉B站👈
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:前端
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!


1.安装模块,不引入6可能会报错
npm install vue-i18n@6

2.在src下创建一个lang文件夹存放相关文件

3.在lang文件夹下创建一个index.js文件

import Vue from "vue"; // 引入Vue
import VueI18n from "vue-i18n"; // 引入国际化的包
import ElementLocale from 'element-ui/lib/locale'
import enLocale from 'element-ui/lib/locale/lang/en' //引入el自带得国际化语言包,防止内部插件出现乱码
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'//引入el自带得国际化语言包,防止内部插件出现乱码
Vue.use(VueI18n); // 全局注册国际化包
 
 
// 准备翻译的语言环境信息
const i18n = new VueI18n({
  locale: localStorage.getItem('locale')||"zh", // 从cookie中获取语言类型 获取不到就是中文
  messages: {
    'zh': Object.assign(require('./zh.js')) ,   // 中文语言包
    'ja': Object.assign(require('./ja.js')) ,  // 英文语言包
  }
}); 
 
ElementLocale.i18n((key, value) => i18n.t(key, value))
export default i18n

4.在lang下创建js.js,zh.js
ja.js文件

module.exports = {
  home: {
    hello:"こんにちは!",
    welcome:'本システムへようこそ',
    jumpPage:'前のページにジャンプ',
    message:'多くの人はこの世界を改造しようとしているが、自分を改造しようとする人は少ない'
  },
  head:{
    switch:'言語の切り替え',
    changePwd:'パスワードの変更',
    personInfo:'個人情報',
    exit:'終了'
  },
  sys:{
    title:'バックグラウンド管理システム'
  }
 }

zh.js文件

/**zh.js文件**/
module.exports = {
    home: {
        hello:"您好!",
        welcome:'欢迎使用本系统',
        jumpPage:'跳转到前端页面',
        message:'大多数人想要改造这个世界,但却罕有人想改造自己'
      },
      head:{
        switch:'切换语言',
        changePwd:'修改密码',
        personInfo:'个人信息',
        exit:'退出'
      },
      sys:{
        title:'后台管理系统'
      }
   }

5.在main.js中引入下面代码

import i18n from "@/lang/index";
import locale from 'element-ui/lib/locale/lang/en'
Vue.use(ElementUI,{locale});
new Vue({
  router,
  store,
  i18n,
  render: h => h(App)
}).$mount("#app");

6.使用
6.1 src/components/Header.vue中添加如下代码,进行语言切换

<template>
...省略代码...
 <el-dropdown-menu slot="dropdown" style="width: 100px; text-align: center">
        <el-dropdown-item style="font-size: 14px; padding: 5px 0">
          <div style="text-decoration: none"  @click="switchLang">切换语言</div>
        </el-dropdown-item>
...省略代码...
</el-dropdown-menu> 
</template>
 
<script>
export default {
    methods: {
    switchLang(){
        if(this.$i18n.locale=="zh"){
          this.$i18n.locale="ja"
        }else{
          this.$i18n.locale="zh"
        }
      }
  },
};
</script>


6.2 代码中国际化
//将字符串直接替换为{{$t(‘xxx.xxx’)}}
//例如:src/views/Home.vue中template段代码替换如下

//将字符串直接替换为{{$t('xxx.xxx')}}
//例如:src/views/Home.vue中template段代码替换如下

  <template>
  <div style="color: #666;font-size: 14px;">
    <div style="padding-bottom: 20px">
      <b>{{$t('home.hello')}}{{ user.nickname }}</b>
    </div>
    <el-card>
      {{$t('home.welcome')}} | <a href="/front/home"><span style="color: #E6A23C">{{$t('home.jumpPage')}}</span></a>
      <el-divider />
      {{$t('home.message')}}
    </el-card>
  </div>
</template>    

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue使用i18n(国际化)库来处理动态数据,可以按照以下步骤进行: 1. 首先,确保你已经安装了vue-i18n库。你可以使用npm或yarn命令进行安装: ```bash npm install vue-i18n --save ``` 2. 在你的Vue应用的入口文件(通常是main.js)中,导入vue-i18n并创建实例: ```javascript import Vue from 'vue' import VueI18n from 'vue-i18n' import messages from './locales' // 导入语言包 Vue.use(VueI18n) const i18n = new VueI18n({ locale: 'en', // 默认语言 messages // 设置语言包 }) new Vue({ i18n, render: h => h(App) }).$mount('#app') ``` 3. 创建一个locales文件夹,并在其中创建各种语言的JSON文件,例如en.json和zh.json。这些文件将包含你的翻译内容。例如,en.json文件可以如下所示: ```json { "hello": "Hello", "dynamicData": "The dynamic data is {data}" } ``` 4. 在Vue组件中使用i18n库来获取翻译内容并渲染动态数据。你可以使用`$t`函数来获取翻译内容,并通过传递参数来替换动态数据。例如: ```html <template> <div> <p>{{ $t('hello') }}</p> <p>{{ $t('dynamicData', { data: dynamicValue }) }}</p> </div> </template> <script> export default { data() { return { dynamicValue: 'example' } } } </script> ``` 在上面的例子中,`$t('hello')`将返回翻译后的"Hello",而`$t('dynamicData', { data: dynamicValue })`将返回"动态数据是 example",其中"example"是由`dynamicValue`变量提供的动态数据。 这样,你就可以在Vue使用i18n库来处理动态数据了。记得在切换语言时更新动态数据的翻译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

靓仔很忙i

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

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

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

打赏作者

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

抵扣说明:

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

余额充值