маршрутизация nuxt i18n не работает для подстраниц - PullRequest
0 голосов
/ 11 ноября 2019

Я изменил свое приложение, чтобы оно работало с nuxt i18n, и перевод, кажется, работает, когда я получаю доступ к маршрутам напрямую.

Например http://localhost:3000/fr/step/1

У меня есть следующая структура в моем приложении, и каждый шаг представляет собой одну страницу с различными компонентами внутри.

enter image description here

Моя конфигурация nuxt:

enter image description here

В документации сказано, что мне нужно добавить localePath для моих ссылок nuxt, чтобы сделатьэто работает с плагином i18n. https://nuxt -community.github.io / nuxt-i18n / basic-use.html # nuxt-link

Например:

<nuxt-link to="localePath('about')">About</nuxt-link>

В моем приложенииРаньше я программно переходил к следующему шагу, например:

this.$router.push({ path: `step/${this.currentStep + 1}` });

Теперь у меня есть две проблемы (вопросы):

  1. Как мне программно перейти к маршруту с помощью localePath? Например, this.localePath('step/2') не работает. Он всегда перенаправляет на главную страницу.
  2. Почему не работает обычная ссылка в шаблоне? Я проверил это:<nuxt-link :to="localePath('step/2')">Foo</nuxt-link> но это тоже не работает. Когда я пытаюсь что-то вроде:<nuxt-link :to="localePath('success')">Foo</nuxt-link> это работает, потому что страница success находится на первом уровне.

Кажется, что-то не так в маршрутизации или в способе обработки подстраниц. Кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 11 ноября 2019

Хорошо, думаю, я нашел решение своей проблемы, но я не уверен, что это правильный способ сделать это:

Чтобы переключить маршрут с текущей локалью, это работает для меня:

this.$router.push({ path: this.localePath({ path: `step/${this.currentStep + 1}` }) });

В шаблоне он работает с:

<nuxt-link
  :to="localePath({ path: `step/${currentStep + 1}` })">
  Next step
</nuxt-link>
...