使用i18n

时间:2019-05-13 22:37:22

标签: vue.js localization vue-router vue-i18n

我不知道如何在vue.router中使用i18n来翻译用于面包屑的meta标签

main.js

import vuexI18n from 'vuex-i18n';
Vue.use(vuexI18n.plugin, store);
const i18n = Vue.i18n
import es_es from '@/assets/langs/es_es';
import en_us from '@/assets/langs/en_us';
i18n.add('es_es', es_es)
i18n.add('en_us', en_us)
i18n.set('en_us')

router.js

import vuexI18n from 'vuex-i18n'
Vue.use(Router)
Vue.use(vuexI18n.plugin, store)
const i18n = Vue.i18n

尝试翻译的路线的键

{
    path: '/clientes/nuevo',
    name: 'CustomersNew',
    beforeEnter: (to, from, next) => { 
         Auth(to, from, next); 
         CheckPermission(to, from, next, "customers@add_customer");
    },
    component: CustomersNew,
    meta: {
        breadcrumb: {
            title: Vue.i18n.translate('customers.title'),
            links: [ "Customers", "new"]
        }
    }
}

任何模板中使用的翻译都可以正常翻译。

1 个答案:

答案 0 :(得分:0)

您可以将密钥作为字符串传递,而不直接在路由器上进行翻译,而直接在面包屑组件中进行翻译

{
path: '/clientes/nuevo',
name: 'CustomersNew',
beforeEnter: (to, from, next) => { 
     Auth(to, from, next); 
     CheckPermission(to, from, next, "customers@add_customer");
},
component: CustomersNew,
meta: {
    breadcrumb: {
        title: "key.to.translate.as.string',
        links: [ "Customers", "new"]
    }
}

}

在组件中,一如既往地进行翻译。