当前位置:   article > 正文

中英文切换,vue项目国际化使用教程(国际化使用详细,i18n国际化)_已开发的vue项目加中英文切换的工作量

已开发的vue项目加中英文切换的工作量

简述:在工作中,我们难免会遇到把文字切换成外语的需求,这里来记录下如何在项目中点击切换成英语,这里会用到i18n,它是一个支持国际化功能的插件,这里来分享下它的使用过程。

1、首先,我们需要在项目中执行此命令,下载安装相关依赖。

npm install vue-i18n

2、创建语言包文件,langue 文件夹,在该文件夹下再分别创建与默认语言与翻译语言的文件,例如zh.js和en.js,在文件中写入你需要展示和翻译的文本,然后导出,最后在新建一个i18n.js文件引入zh.js和en.js文件,这样的话总体结构比较清晰明了,像下面这样 。

zh.js:

  1. export default {
  2. demo1: {
  3. welcome: "你好,世界",
  4. },
  5. demo2: {
  6. name1: "托尼",
  7. name2: "杰克",
  8. },
  9. }

  en.js:

  1. export default {
  2. demo1: {
  3. welcome: "Hello,world!"
  4. },
  5. demo2: {
  6. name1: "toni",
  7. name2: "jack",
  8. },
  9. }

 在i18n.js文件中引入需要用到的文件,并处理数据后导出;

  1. import Vue from "vue";
  2. import VueI18n from "vue-i18n";
  3. Vue.use(VueI18n);
  4. import zhLocale from "./zh";
  5. import enLocale from "./en";
  6. const messages = {
  7. zh: {
  8. ...zhLocale,
  9. },
  10. en: {
  11. ...enLocale
  12. }
  13. }
  14. const i18n = new VueI18n({
  15. locale: "zh",
  16. messages
  17. })
  18. export default i18n;

3、在main.js中引入挂载使用;

  1. import i18n from "../src/langue/i18n.js"
  2. console.log(i18n);
  3. new Vue({
  4. router,
  5. store,
  6. i18n,
  7. render: (h) => h(App),
  8. }).$mount("#app");

控制台输出i18n,VueI18n打印成功:

4、具体使用

通过  {{$t('')}}  和  v-text="$t('')"  展示文本:

  1. <div>{{$t('demo1.welcome')}}</div>
  2. <div v-text="$t('demo1.welcome')"></div>

                通过  this.$i18n.locale  来修改语言显示状态,当你赋值为‘zh’时,就变成中文,

当赋值为 ‘en’时,就变成英文:

  1. // 点击事件
  2. choseLanguage() {
  3. const res = this.$i18n.locale;
  4. this.$i18n.locale = res == 'zh' ? res = 'en' : res = 'zh';
  5. }

          this.$i18n.locale用于获取当前语言环境的值,也可以被用于动态地改变语言环境。你可以将它的值更改为另一个支持的语言代码,从而切换到该语言环境。例如:this.$i18n.locale = 'fr'将把应用程序的语言环境更改为法语。

5、最终效果 

tips: 当然,如果数据两较少的话,可以直接在main.js中引入后,配置使用,使用方式同样:

  1. import VueI18n from 'vue-i18n'
  2. Vue.use(VueI18n)
  3. const i18n = new VueI18n({
  4. locale: 'zh',
  5. messages: {
  6. en: {
  7. loginTxt: "login",
  8. change: 'change'
  9. },
  10. zh: {
  11. loginTxt: '登录',
  12. change: '切换'
  13. }
  14. }
  15. })
  16. new Vue({
  17. router,
  18. store,
  19. i18n,
  20. render: (h) => h(App),
  21. }).$mount("#app");

更多,详见>>

Vue I18n官方网站https://kazupon.github.io/vue-i18n/zh/installation.html#%E5%85%BC%E5%AE%B9%E6%80%A7%E8%AF%B4%E6%98%8E

感觉有用,就一键三连,感谢(●'◡'●)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/332242
推荐阅读
相关标签
  

闽ICP备14008679号