在我们的 Next.js 应用程序中,我们使用vinissimus/next-translate包进行翻译。我们进行相应的设置:
next.config.js:
const nextTranslate = require('next-translate')
module.exports = nextTranslate()
Run Code Online (Sandbox Code Playgroud)
i18n.js 配置文件:
{
"locales": ["en"],
"defaultLocale": "en",
"pages": {
"*": ["en"],
"/": ["en"],
}
}
Run Code Online (Sandbox Code Playgroud)
通过useTranslation钩子在组件内部使用它:
const App = () => {
const { t, lang } = useTranslation();
return (
<Homepage>
<span>{t(`${lang}:homepage.title.header`)}</span>
</Homepage>
Run Code Online (Sandbox Code Playgroud)
我的问题是如何用反应测试库来测试它?
当我在测试中渲染组件时,翻译不起作用,仅返回密钥。另外,我想通过getByText / findByText并通过来测试它:
{t(`${lang}:homepage.header`)}
Run Code Online (Sandbox Code Playgroud)
如果我在应用程序中没有使用任何i18nProvider而仅使用此i18n.js配置,如何设置某种包装器或配置进行测试?
internationalization reactjs jestjs next.js react-testing-library