Простой многоязычный сайт с Nuxt.js и nuxt-i18n

A simple multi-language site with Nuxt.js and nuxt-i18n

Перевод статьи на medium.com

В этой статье мы рассмотрим, как создать простой мультиязычный веб-сайт с использованием Nuxt.js и модуля nuxt-i18n.

👉🏻 Ссылка на модуль: https://nuxt-community.github.io/nuxt-i18n/

Установка nuxt-i18n

Прежде всего установим nuxt-i18n

После установки настроим его так, как нам необходимо.

Настройки

Добавим модуль nuxt-i18n в наш файл nuxt.config.js

и пропишем следующие настройки

В данном случае мы создали массив locales и задали два языка: итальянский и английский. Для каждого языка мы указали имя, код языка, iso и имя файла, который содержит наши переводы.
Мы также указали язык по умолчанию, указав параметр defaultLocale и имя папки, в которой находятся наши файлы переводов (langDir).
Теперь давайте перейдем к созданию этих файлов. В корне проекта создадим новую папку с именем lang. Внутри него создайте файл it-IT.js и файл en-US.js.

Теперь мы можем использовать данные переводы в окружении нашего Nuxt.js приложения с помощью команды: $t('key')
Давайте добавим сообщение Hello world в наш файл index:

Отлично!

Навигация по сайту

Теперь, когда мы определили языки, создадим файлы с переводами и узнаем, как добавить перевод на наши страницы и компоненты, давайте добавим на наш веб-сайт навигацию .
В простом nuxt.js приложении мы создаем навигационную ссылку следующим образом:

Использование модуля i18n очень похоже. Основное отличие состоит в том, что мы будем использовать метод localePath('page-name') для указания на страницу.

👉🏻 https://nuxt-community.github.io/nuxt-i18n/basic-usage.html#nuxt-link

Языковая навигация и переключение языков

Чтобы пользователь мог переключать язык, мы можем использовать два способа.
В первом способе мы отображаем все доступные языки:

Во втором мы создаем переключатель:

URL переводов

До сих пор наша карта сайта была такой:

Чтобы перевести наши URL страницы, мы должны указать путь к страницам.
Мы можем достичь этого двумя разными способами. Установка параметров внутри наших параметров конфигурации в файле nuxt.config.js или внутри каждой из наших страниц.
Если мы выберем первый метод внутри нашего конфигурационного файла, то нужно добавить:

Во втором случае, на нашей странице-компоненте добавим:

При втором подходе проще установить мастер путь для подстраниц с использованием родительского компонента (parent component).
👉🏻 https://nuxtjs.org/guide/routing#nested-routes
Давайте предположим, что у нас следующая структура:

Если мы добавим родительский компонент

внутри него мы можем определить путь и автоматически передать его всем подстраницам.

Заключение
За несколько шагов мы создали простой многоязычный веб-сайт с Nuxt.js и nuxt-i18n.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий.