Как использовать i18next со страницами github - PullRequest
0 голосов
/ 11 января 2020

Я разработал приложение Reaction с интернационализацией с использованием библиотеки activ-i18next. У меня есть обычный конфиг для этого (как в readme библиотеки):

import i18n from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import Backend from 'i18next-xhr-backend';
import { initReactI18next } from 'react-i18next';

i18n
  .use(Backend)
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    fallbackLng: "en",
    interpolation: {
      escapeValue: false
    }
  });

  export default i18n;

И мои файлы перевода помещаются в public/locales/de/translation.json (и отличные от de папки), так же, как в документах.

Работает в режиме разработки. Я развернул приложение к героку, там тоже все отлично работает. Но мне нужно, чтобы он работал на сайте github pages, и мои jsons (перевод. json файлы) не загружаются туда, и я получаю эти ошибки (из консоли браузера):

Failed to load http://hereIsMyUsername.github.io/locales/en/translation.json resource: the server responded with a status of 404 ()

После создания приложения реагирования у меня есть следующая структура моей папки build:

build
- locales
- static
  - css
  - js
  - media

Таким образом, в целом мое приложение отлично работает на страницах github, за исключением того, что оно не может загружать jsons. Я прочитал в документах, что это потому, что страницы github пытаются загрузить эти jsons из каталога root и не могут найти их там, потому что они хранятся в локалях / {lang} /translation.json. Поэтому рекомендуемый способ - поместить все json и другие файлы в root. Но так как у меня много разных файлов перевода. json, это не способ управлять им.

Итак, мой вопрос: как заставить страницы github работать с ним? Или как настроить мой i18n для работы на страницах github?

1 Ответ

0 голосов
/ 12 января 2020

Для gh-страниц вам нужно адаптировать loadPath в опциях бэкэнда: https://github.com/i18next/i18next-xhr-backend/blob/master/README.md#backend -options

Поскольку ваши gh-страницы обслуживаются по дополнительному пути (обычно название репо)

...