@nuxtjs/i18n区域设置刷新后更改



我有一个应用程序,我试图把语言管理,但我面临一个困难。我用的是最新版本的@nuxtjs/i18n。当我改变语言,我的URl改变,我的标签改变,一切都很好。但是,当我刷新页面时,系统会恢复到原来的语言。

下面是我的配置文件:

[
'@nuxtjs/i18n',
{
locales,
defaultLocale,
lazy: true,
langDir: 'locales/',
vueI18n: {
fallbackLocale: defaultLocale,
},
},
],
['~/.build/merge-and-compare-locales.js', { defaultLocale }],
export const locales = [
{
code: 'en',
file: 'en.json',
},
{
code: 'fr',
file: 'fr.json',
},
]
export const defaultLocale = 'fr'

我还需要做些什么来使它在刷新前保持语言?

我指定使用这个方法来更改语言:

changeLocale(code: string) {
this.$i18n.setLocale(code)
},

在本地可以正常工作。另一方面,在任何其他环境下它都不起作用,刷新会返回到默认语言

我也有同样的问题,它来自ssr…在您的存储/索引中,您应该有一个nsi(下一个服务器初始化)函数像这样。

async nuxtServerInit(ssrContext: Context) 
{
if (this.$i18n.locale==='ar') {
ssrContext.redirect("/ar");
}
else if (this.$i18n.locale === 'fa')
{
ssrContext.redirect('/')
}
}

相关内容

  • 没有找到相关文章