@dragon11
web программист

Vue, как я могу использовать Vue I18n в routre?

Добрый день.
Я в файле router.js хочу использовать title: Vue.i18n.t('about') для заголовка,
но он его не видит.
Подскажите как это можно подключить?
{
    path: '/about',
    component: About,
    meta: { title: Vue.i18n.t('about') }     <--- Не работает
}
с этим подключением в консоле выдает ошибку
  • Вопрос задан
  • 3863 просмотра
Решения вопроса 1
potapchino
@potapchino
у вас порядок инициализации неправильный. разбейте лучше все по файлам

// i18n.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import english from '@/lang/english.js'
import russian from '@/lang/russian.js'

Vue.use(VueI18n)

let messages = {
    en : english,
    ru : russian,
}

export default new VueI18n({
    //locale: 'ru',
    locale: window.localStorage.Language || 'ru',

    fallbackLocale: 'ru',
    messages
})


// router.js
...
import i18n from '@/path/to/i18n.js'
...
{
    path: '/about',
    component: About,
    meta: { title: i18n.t('about') }
}


// main.js
import Vue from 'vue'
import App from './App'
import Vuetify from 'vuetify'
import router from './router'
import axios from 'axios'
import store from './store';
import i18n from '@/path/to/i18n.js'

Vue.config.productionTip = false

Vue.use(Vuetify)

Vue.axios = Vue.prototype.$http = axios.create({
    baseURL: 'http://localhost:5000/api'
})


/* eslint-disable no-new */
new Vue({
    el: '#app',
    i18n,
    router,
    store,
    components: { App },
    template: '<App/>',
    created() {
      this.$vuetify.theme.primary = '#01579B'
    }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы