Как я могу перевести приложение без перезагрузки страницы в vue.js? - PullRequest
1 голос
/ 26 марта 2019

Я хочу перевести мое приложение с английского на немецкий.в случае изменения языка я написал этот код

changeLocale (locale) {
      i18n.locale = locale.language
      VueCookies.set('UserLanguage', locale.language)
      // window.location.reload() this one is reloading page 
      this.$root.reload() // this one is not working 
    },

и хочу перевести эти данные в файл vuejs:

 DashboardData: [{'name': this.$t('IVR')}, {'name': this.$t('DTML')}, {'name': this.$t('SSH')}]

, если я сделаю window.location.reload (),он работает отлично, но я не хочу перезагружать страницу, поэтому я думаю перезагрузить root в vue, я не уверен в этом.

Есть ли способ перезагрузить корневой элемент или все свойствавсе приложение?

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Зачем перезагружать? Я использую vue-i18n и не перезагружаю свою страницу. Вот код:

home.vue

<v-list-tile @click="locale='fr'">
...
watch:{
   locale(val) {
       this.$i18n.locale=val;
    } 
},
mounted: function() {
   this.locale = this.$i18n.locale;
},

my app.js

...
import VueI18n from 'vue-i18n';
import messages from './lang/messages'
import dateTimeFormats from './lang/dateTimeFormats'
import numberFormats from './lang/numberFormats'
...
Vue.use(VueI18n);
let locale = navigator.language;
const i18n = new VueI18n({
  fallbackLocale: 'gb',
  locale: locale,
  messages,
  dateTimeFormats,
  numberFormats
})
...
const app = new Vue({
    el: '#app',
    router,
    store,
    i18n,
    components:{
        App
    }
});
0 голосов
/ 26 марта 2019

Если вы просто пытаетесь выполнить безопасную перезагрузку через vue.js, есть простой метод, который вы можете использовать ...

vm.$forceUpdate();

для получения дополнительной информации вы можете перейти здесь

...