在我的laravel 5.6 / vue.js 2.5.7中/我使用 vue-i18n 7.8和laravel-vue-i18n-generator支持多语言:
以及在resources / assets / js / app.js文件中,我喜欢:
...
let lang = 'fr';
const i18n = new VueI18n({ // https://github.com/caouecs/Laravel-lang - Additive langs
locale: lang, // set locale
messages : Locale, // set locale messages
})
new Vue({ router, i18n,
data:{
...
In my vue file wnen I need to read my current locale I can use like :
created() {
this.current_locale = this.$i18n;
...
要切换到其他语言环境,我可以使用以下功能:
switchLocale () {
if (this.$i18n.locale === 'fr') {
this.$i18n.locale = 'en'
} else {
this.$i18n.locale = 'fr'
}
}
问题是,当我移至其他页面时,在哪里保存当前语言?我的意思是
let lang = 'fr';
在我的代码顶部的是一些默认语言环境,但是如果语言环境已更改,那么从哪里读取呢?请提供一些简单的解决方案。 在url中生成前缀似乎很复杂。
谢谢!
答案 0 :(得分:1)
您可以使用localStorage。
switchLocale () {
if (this.$i18n.locale === 'fr') {
this.$i18n.locale = 'en'
} else {
this.$i18n.locale = 'fr'
}
localStorage.setItem('locale', this.$i18n.locale)
}
然后在下一页:
this.$i18n.locale = localStorage.getItem('locale');