我需要将我们的应用程序从 create-react-app 转换为 Next.js,但我坚持使用 nextjs 的 nextI18next...
我的设置:
next.config.js:
const { nextI18NextRewrites } = require("next-i18next/rewrites");
const localeSubpaths = {
en: "en",
hu: "hu"
};
module.exports = {
rewrites: async () => nextI18NextRewrites(localeSubpaths),
publicRuntimeConfig: {
localeSubpaths
}
};
i18n.js
const NextI18Next = require("next-i18next").default;
const { localeSubpaths } = require("next/config").default().publicRuntimeConfig;
const path = require("path");
module.exports = new NextI18Next({
otherLanguages: ["en", "hu"],
defaultNS: "translate",
localeSubpaths,
localePath: path.resolve("./public/static/locales")
});
主页:
function HomePage({ initialData, t }) {
const homePageData = { initialData }.initialData.homePageData;
const events = { initialData }.initialData.events;
return(<>{t("highlights")}</>)
HomePage.getInitialProps = async () => {
const initialData = {};
await registerTempUser();
const homeData = await homePageData;
const events = await eventList;
initialData.homePageData = homeData.data;
initialData.events = events.data;
return { initialData: initialData, namespacesRequired: ["translate"] };
};
HomePage.propTypes = {
t: PropTypes.func.isRequired
};
export default withTranslation("translate")(HomePage);
翻译文件位于: public/static/locales/hu 和 /en
translate.json //hu
translate
{
"translations": {
"details": "részletek"
}
}
translate.json //en
translate
{
"translations": {
"details": "Details"
}
}
我做错了什么?