首页 > 解决方案 > 如何使用 i18next 作为我的组件库的对等依赖项?

问题描述

我正在构建一个包含一些翻译的 React 组件库,但我希望这些翻译由我的包的用户提供。

这样做的原因是这些翻译应该是可定制的,我不想在这个包中包含所有可能的语言。

所以我想要实现的是useTranslations在我的组件库中使用这样的:

import React from 'react';
import { useTranslation } from 'react-i18next';

const MyComponent = () => {
    const { t } = useTranslation();

    return <div>{t('helloWorld')}</div>;
};

不知何故'helloWorld',图书馆的用户应该可以配置翻译。

有什么办法可以做到这一点?

标签: javascriptreactjsinternationalizationi18nextreact-i18next

解决方案


显然这是由于yarn link使用了两个版本的react-i18next.

为了解决这个问题,我将我的应用程序配置为使用react-i18next我的包的版本:

cd my-package/node_modules/react-i18next
yarn link

cd my-app
yarn link react-i18next

现在我的包使用i18next在我的应用程序中配置的实例。


推荐阅读