Добавить перевод на стороне сервера только с помощью next-i18next

Сценарий:

  • У нас есть сервер, который отвечает на несколько доменов (70+)
  • У каждого домена есть свой язык (уже в отдельном файле JSON)
  • У меня есть карта "domain":"translation.json"
  • У каждого клиента один язык: пользователь, посетивший example.com, увидит сайт только на английском языке. Посетитель example.es увидит его на испанском языке. Нет возможности изменить язык текущего сайта, просто укажите ссылку на другой домен.

Проблема

Я не хочу загружать 70+ переводов на стороне клиента, потому что клиент никогда не сможет это изменить.

Как я могу применить эту карту в моем приложении NextJS, но не передавать клиенту другие ресурсы?

PS: на SO нет тега для "next-i18next" (а для nextjs их 2).


person Falci    schedule 08.01.2020    source источник


Ответы (1)


Next-i18next имеет 2 режима,

  1. На стороне сервера он загружает соответствующий файл перевода с помощью i18next-node-fs-backend
  2. На стороне клиента он загружает соответствующий файл перевода с помощью i18next-xhr-backend.

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

person felixmosh    schedule 08.01.2020
comment
Должен ли я инициировать использование i18next + (node-fs-backend) в _app.js? Я немного потерялся здесь - person Falci; 08.01.2020
comment
Нет, next-i18next сделает это за вас, пожалуйста, перейдите в папку примеров этой библиотеки, запустите ее и проверьте, что вы получили. - person felixmosh; 08.01.2020