vue+vue-i18n来实现国际化功能(语言切换)

安装vue-i18n依赖包

这里有一个坑(我使用的时vue2,不限制vue-i18n的版本时,会默认安装最新版本,最新版本适配的vue3,所以这里使用的5.2.2版本)

npm install vue-i18n@5.2.2 --save-dev
或者
yarn add vue-i18n@5.2.2 --save-dev

创建语言文件包

在src目录下,创建一个i18n文件,创建一个index.js文件,对i18n进行配置

import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
// 注册i18n实例并引入语言文件,文件格式等下解析
const i18n = new VueI18n({
    locale: 'zh',  //默认显示为中文
    messages: {
        'zh': require('../lang/zh.json'),
        'en': require('../lang/en.json')
    }
})
export default i18n

在main.js文件中引入i18n,并挂载到全局

import Vue from 'vue'
import App from './App.vue'
import i18n from './i18n/index.js'   //引入i18n文件
import { Table, TableColumn, Button  } from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.config.productionTip = false
Vue.use(Table)
Vue.use(TableColumn)
Vue.use(Button)

new Vue({
  i18n,   //挂载到全局
  render: h => h(App),
}).$mount('#app')

 

在sr此文件下创建一个languages文件,对语言进行配置,这里创建了两个文件分别为 zh.json和en.json文件,分别配置中文和英文 (注意要一一对应)

zh.json

{
    "common": {
        "home": "首页",
        "login": "登录",
        "exit": "退出"
    },
    "test": {
        "userMng": "用户管理",
        "deptMng": "机构管理",
        "roleMng": "角色管理",
        "menuMng": "菜单管理",
        "logMng": "日志管理"
    }
}

en.json

{
    "common": {
        "home": "Home",
        "login": "Login",
        "exit": "Exit"
    },
    "test": {
        "userMng": "User Manage",
        "deptMng": "Dept Manage",
        "roleMng": "Role Manage",
        "menuMng": "Menu Manage",
        "logMng": "Log Manage"
    }
}

主要配置就这些了,接下来是详细使用

在需要使用的地方,这里$t是i18n自带的方法,必须用这种写法

<template>
  <div id="app">
    <ul>
      <li>{{$t("common.home")}}</li>
      <li>{{$t("common.login")}}</li>
      <li>{{$t("common.exit")}}</li>
    </ul>
    <ul>
      <li>{{$t("test.userMng")}}</li>
      <li>{{$t("test.deptMng")}}</li>
      <li>{{$t("test.roleMng")}}</li>
      <li>{{$t("test.menuMng")}}</li>
      <li>{{$t("test.logMng")}}</li>
    </ul>
    <!-- 语言切换 -->
    <div>
      <el-button type="success" @click="chngeLanguage('zh')">中文</el-button>
      <el-button type="success" @click="chngeLanguage('en')">英文</el-button>
    </div>
  </div>
</template>

<script>
export default {
  name: 'App',
  methods:{
    chngeLanguage(lang){
      this.$i18n.locale=lang
    }
  }
}
</script>

<style>

</style>

以上就是一个简单的国际化功能,有任何问题,随时私聊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用vue-i18n实现Vue 3中的内容中英文切换。首先,你需要安装vue-i18n包。你可以使用以下命令来安装: ``` npm install vue-i18n ``` 然后,在你的Vue 3项目中,创建一个i18n.js文件,用于配置和管理国际化相关的内容。在这个文件中,你可以定义不同语言版本的文本和翻译。 ```javascript // i18n.js import { createI18n } from 'vue-i18n' // 定义语言版本和翻译内容 const messages = { en: { message: { hello: 'Hello, world!' } }, zh: { message: { hello: '你好,世界!' } } } // 创建i18n实例 const i18n = createI18n({ locale: 'en', // 默认语言版本 messages // 语言版本和翻译内容 }) export default i18n ``` 接下来,在你的组件中,你可以使用`useI18n`函数来获取i18n实例,并使用`$t`方法来获取翻译后的文本。 ```javascript // YourComponent.vue <template> <div> {{ $t('message.hello') }} </div> </template> <script> import { useI18n } from 'vue-i18n' export default { setup() { const { t } = useI18n() return { $t: t } } } </script> ``` 最后,你可以通过修改`locale`属性来切换不同的语言版本。 ```javascript // YourComponent.vue <script> import { useI18n } from 'vue-i18n' export default { setup() { const { t, locale } = useI18n() // 切换语言版本 const toggleLanguage = () => { locale.value = locale.value === 'en' ? 'zh' : 'en' } return { $t: t, toggleLanguage } } } </script> ``` 通过调用`toggleLanguage`方法,你可以在运行时切换组件中的内容的语言版本。 希望这可以帮助你实现Vue 3中的内容中英文切换

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值