我有一个应用程序,我试图把语言管理,但我面临一个困难。我用的是最新版本的@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('/')
}
}