创建 React App - 从相对路径加载 i18n 翻译
Create React App - loading i18n translations from relative path
我的 React 应用程序通过在 package.json 中设置 homepage
变量从相对路径加载。然而,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
}
})
我怎样才能使这个工作?
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
}
})
我的 React 应用程序通过在 package.json 中设置 homepage
变量从相对路径加载。然而,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
}
})
我怎样才能使这个工作?
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
}
})