Vue国际化在js文件中的使用

Vue国际化在js文件中的使用

如何在js文件中使用i18n国际化

描述:在前后端分离项目中,我们会常常使用到js文件,但是如何对js文件里的文字进行国际化?

示例:在下面示例中是前后端分离项目常用到的对axios的封装,当请求令牌失效时对系统进行提示。但是如果我们想要进行国际化,常规的引用Vue是不可行的。

      if (res.code === 'C1000002') {
        MessageBox.confirm('内容', '标题'), {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
         //TODO
        })
      }

解决:在main.js文件中把Vue对象赋值给一个变量

//window.vm = new Vue()
window.vm = new Vue({
  el: '#app',
  i18n,
  router,
  store,
  template: '<App/>',
  components: { App }
})

然后在示例代码中进行如下修改

if (res.code === 'C1000002') {
    //使用window.vm.$t() 即可达到国际化效果
        MessageBox.confirm(window.vm.$t('authentication.failed.message'), window.vm.$t('authentication.failed.confirmLogout'), {
          confirmButtonText: window.vm.$t('authentication.failed.reLogin'),
          cancelButtonText: window.vm.$t('authentication.failed.cancel'),
          type: 'warning'
        })
      }

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Vue使用i18n国际化,可以在vue文件使用`$t`方法获取文本信息,也可以在js文件使用`$t`方法获取文本信息。对于js文件使用方式,可以参考下面的步骤: 1. 在Vue实例引入和初始化i18n插件,并在Vue实例传入i18n实例。具体代码如下: ```javascript import Vue from 'vue' import VueI18n from 'vue-i18n' import messages from './lang' Vue.use(VueI18n) const i18n = new VueI18n({ locale: 'zh-CN', messages }) new Vue({ i18n, render: h => h(App) }) ``` 其,`messages`是一个对象,包含了所有语言的key-value对。 2. 在js文件,通过`Vue.prototype.$t`方法获取对应语言的文本信息。具体代码如下: ```javascript import Vue from 'vue' Vue.prototype.$t('message.hello') ``` 其,`message.hello`是对应语言的key值,可以根据需要进行修改。如果需要获取带有变量的文本信息,则可以使用`$t`方法的第二个参数,如下所示: ```javascript Vue.prototype.$t('message.welcome', { name: 'John' }) ``` 其,`message.welcome`是对应语言的key值,`{ name: 'John' }`是一个对象,包含了需要替换的变量信息,可以在对应语言的value值使用`{变量名}`进行替换。例如: ```javascript const messages = { 'zh-CN': { welcome: '欢迎{name}使用本系统' }, 'en-US': { welcome: 'Welcome {name} to use this system' } } ``` 以上就是在Vue使用i18n国际化的基本流程和js文件使用`$t`方法的示例代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值