Перевести метатеги в vue-router с i18n - PullRequest
0 голосов
/ 14 мая 2019

Я не могу понять, как использовать i18n внутри vue.router для перевода мета-тегов, которые используются для моей крошки

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 голосов
/ 16 мая 2019

Вместо того, чтобы пытаться выполнить перевод непосредственно на маршрутизаторе, вы можете передать ключ в виде строки и выполнить перевод непосредственно в компоненте хлебных крошек

{
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"]
    }
}

}

И вкомпонент, переводи как всегда.

...