Создать приложение React - загрузка переводов i18n по относительному пути

Приложение My React загружается по относительному пути, задав homepageпеременная в package.json. Однако i18next-http-backend все еще пытается загрузить переводы из http://localhost:3000/locales/en/translation.json вместо http://localhost:3000/myapp/locales/en/translation.json. Я даже попытался установить опцию loadPath (хотя не уверен в синтаксисе), но это не сработало. См. Ниже:

i18n
  .use(Backend)
  .use(initReactI18next)
  .init({
    fallbackLng: 'en',
    debug: true,
    loadPath: `${process.env.PUBLIC_URL}/locales/{{lng}}/{{ns}}.json`,

    interpolation: {
      escapeValue: false // not needed for react as it escapes by default
    }
  })

Как я могу заставить это работать?

1 ответ

Решение

В loadPath должен быть установлен как часть инициализации Backend, поэтому вам нужно сделать следующее...

i18n
  .use(Backend)
  .use(initReactI18next)
  .init({
    fallbackLng: 'en',
    debug: true,
    backend: {
        loadPath: `${process.env.PUBLIC_URL}/locales/{{lng}}/{{ns}}.json`,
    }
    interpolation: {
      escapeValue: false // not needed for react as it escapes by default
    }
  })
Другие вопросы по тегам