我已经改变了我的应用程序,使它与nuxt i18n工作,翻译似乎是可行的,当我直接访问路线。
例如http://localhost:3000/fr/step/1
我的应用程序中有下面的结构,每一步都是一个页面,里面有不同的组件。
我的nuxt配置:
在文档中,它说我需要为我的nuxt链接添加localePath
,以使它与i18n插件一起工作。https://nuxt-community.github.io/nuxt-i18n/basic-usage.html#nuxt-link
例如:
<nuxt-link to="localePath('about')">About</nuxt-link>
在我的应用程序中,我经常以编程的方式导航到下一步:
this.$router.push({ path: `step/${this.currentStep + 1}` });
现在我有两个问题(问题):
localePath
以编程方式导航到路由?例如,this.localePath('step/2')
不起作用。它总是重定向到首页。<nuxt-link :to="localePath('step/2')">Foo</nuxt-link>
,但它也不起作用。当我尝试这样的东西时:
<nuxt-link :to="localePath('success')">Foo</nuxt-link>
工作,因为success
页面在第一级。似乎在路由或我处理子页面的方式上有问题。有人能帮我吗?
发布于 2020-07-08 11:06:23
下面为我工作。我有这样一个Nuxt页面结构。
/pages/settings/car-form.vue
这是带有工作localePath()
的这个子页面的Nuxt链接。注意路径中缺少的斜杠。
<nuxt-link :to="localePath({ name: 'settings-car-form' })">Car form</nuxt-link>
作为Nuxt医生建议:您必须链接到(Nuxt)路由name
。斜线在路径上成为一个破折号。请参阅文件页上的文件页数组。
您可以在Nuxt生成的name
.nuxt/routes.json
-file中查找项目的Nuxt路由的-file。使用添加到__en
属性中的__de
(英文或德语)后缀,您可以找到您的路径。将上面的localePath()
指向没有__en
后缀的名称(如上面的示例所示)。
发布于 2019-11-11 09:55:17
好吧,我想我找到了解决问题的方法,但我不确定这样做是否正确:
要使用当前的区域设置切换路由,这对我来说是可行的:
this.$router.push({ path: this.localePath({ path: `step/${this.currentStep + 1}` }) });
在它使用的模板中:
<nuxt-link
:to="localePath({ path: `step/${currentStep + 1}` })">
Next step
</nuxt-link>
https://stackoverflow.com/questions/58798151
复制相似问题