vue2如何使用vue-i18n搭建多语言切换环境

 更新时间:2023年12月07日 11:12:01   作者:小沐°  
这篇文章主要介绍了vue2-使用vue-i18n搭建多语言切换环境的相关知识,在data(){}中获取的变量存在更新this.$i18n.locale的值时无法自动切换的问题,需要刷新页面才能切换语言,感兴趣的朋友一起看看吧

安装

注意:vue2.0要用8版本的,使用9版本的会报错

npm install vue-i18n@8.27.0 --save

创建相关的语言包文件

在src目录下,新建i18n文件夹

在新文件夹i18n中新建langs文件夹,里边放语言文本文件.js
      zh.js:存放所有的中文显示内容
      en.js:存放所有的英文显示内容
 与langs文件夹同级,创建index.js:用于配置i18n,并导出i18n

 

zh.js

export default {
    //中文
    变量名:"中文"
}

en.js

export default {
    //英文
    变量名:"英文"
}

index.js

import Vue from "vue"
import VueI18n from "vue-i18n"
//引入自定义语言配置  
import zh from './langs/zh'
import en from './langs/en'
import fan from './langs/fan'
Vue.use(VueI18n); // 全局注册国际化包
// 准备翻译的语言环境信息
const i18n = new VueI18n({
  locale: sessionStorage.getItem('lang') || "简", //将语言标识存入localStorage或sessionStorage中,首次默认中文显示,非首次则以localStorage为准
  messages: {
    // 繁体语言包
    '繁': {
      ...fan
    },
    // 中文语言包
    '简': {
      ...zh
    },
    //英文语言包
    'ENG': {
      ...en
    }
  },
  silentTranslationWarn: true, //解决vue-i18n黄色警告"value of key 'xxx' is not a string"和"cannot translate the value of keypath 'xxx'.use the value of keypath as default",可忽略
  globalInjection: true, // 全局注入
  fallbackLocale: '简', // 指定的locale没有找到对应的资源或当前语种不存在时,默认设置当前语种为中文
});
export default i18n

在main里导入语言包文件

main.js

import i18n from './i18n'
Vue.use(
  {
    i18n: (key, value) => i18n.t(key, value) // 在注册Element时设置i18n的处理方法,可以实现当点击切换按钮后,elementUI可以自动调用.js语言文件实现多语言切换
  }
)
new Vue({
  render: h => h(App),
  i18n
}).$mount('#app')

切换语言

this.$i18n.locale = "ENG";//切换为英文

基本使用

1.在模板字符串中使用

{{ $t("变量名") }}
<button>{{ $t("submit") }}</button>

2.绑定属性使用

:属性名="$t('变量名')"
<input type="text" :placeholder="$t('FromSub.content.placeholder1')"/>

3.在script中使用

this.$t('变量名')

注意:用这种方法在data(){}中获取的变量存在更新this.$i18n.locale的值时无法自动切换的问题,需要刷新页面才能切换语言。

解决方案:

1)调整写法

2)写在计算属性computed:{…}中,不要写在data(){return{…}}中

到此这篇关于vue2-使用vue-i18n搭建多语言切换环境的文章就介绍到这了,更多相关vue-i18n多语言切换环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue+ts大文件切片上传的实现示例

    vue+ts大文件切片上传的实现示例

    在Vue项目中,大图片和多数据Excel等大文件的上传是一个非常常见的需求,本文主要介绍了vue+ts大文件切片上传,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • vue如何实现关闭对话框后刷新列表

    vue如何实现关闭对话框后刷新列表

    这篇文章主要介绍了vue如何实现关闭对话框后刷新列表,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue3组合式api实现v-lazy图片懒加载的方法实例

    vue3组合式api实现v-lazy图片懒加载的方法实例

    vue作为前端主流的3大框架之一,目前在国内有着非常广泛的应用,下面这篇文章主要给大家介绍了关于vue3组合式api实现v-lazy图片懒加载的相关资料,需要的朋友可以参考下
    2022-09-09
  • vue自定义权限指令的实现

    vue自定义权限指令的实现

    本文主要介绍了vue自定义权限指令的实现
    2024-05-05
  • vue parseHTML 函数源码解析AST基本形成

    vue parseHTML 函数源码解析AST基本形成

    这篇文章主要为大家介绍了vue parseHTML 函数源码解析AST基本形成,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Vue加入购物车判断token添加登录提示功能

    Vue加入购物车判断token添加登录提示功能

    加入购物车,是一个登录后的用户 才能进行的操作,所以需要进行鉴权判断,判断用户token是否存在,这篇文章主要介绍了Vue加入购物车判断token添加登录提示,需要的朋友可以参考下
    2023-11-11
  • Vue生产环境如何自动屏蔽console

    Vue生产环境如何自动屏蔽console

    这篇文章主要介绍了Vue生产环境如何自动屏蔽console问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Vue组件库ElementUI实现表格列表分页效果

    Vue组件库ElementUI实现表格列表分页效果

    这篇文章主要为大家详细介绍了Vue组件库ElementUI实现表格列表分页效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • vite项目配置less全局样式的实现步骤

    vite项目配置less全局样式的实现步骤

    最近想实现个项目,需要配置全局less,本文主要介绍了vite项目配置less全局样式的实现步骤,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • vue中v-model指令与.sync修饰符的区别详解

    vue中v-model指令与.sync修饰符的区别详解

    本文主要介绍了vue中v-model指令与.sync修饰符的区别详解,详细的介绍了两个的用法和区别,感兴趣的可以了解一下
    2021-08-08

最新评论