reactjs 是否可以对redux操作使用i18n本地化?

xwmevbvl  于 2023-03-01  发布在  React
关注(0)|答案(2)|浏览(125)

我尝试为Redux Action函数实现i18 n本地化,但是我经常收到不同的钩子错误。当我用这种方式实现i18 n时,我收到错误。

  • 第428:17行:在函数“sendDataRequest”中调用React钩子“useTranslation”,该函数既不是React函数组件,也不是自定义React钩子函数。*
import { useTranslation } from "react-i18next";

export const sendDataRequest = (requestId) => {
  const { t } = useTranslation();
  return async (dispatch) => {
    try {
      dispatch(sendDataRequest());
      await dataAPI.sendDataRequest({ requestId });
      notification.success({
        message: t('infoPage.requestSentSuccessfully'),      
     });
      dispatch(sendDataSuccess());
    } catch (error) {
      dispatch(sendDataFailure());
      console.error(error);
    }
  }
}

然后我移动了**const { t } = useTranslation();**在return语句内部。但是我收到了另一个错误x1c 0d1x。看起来我显然用错了。但是我找不到任何关于i18 n在操作中使用的例子。有人知道在操作中使用i18 b的可能性吗?

iyfjxgzm

iyfjxgzm1#

checkout https://github.com/i18next/react-i18next/issues/909
你需要访问你的i18next示例,你在你的代码库中创建的示例,通过这个示例你可以简单的调用i18n.t("my.translation.key")来翻译,这是完全独立于react的。

ruarlubt

ruarlubt2#

是的,有可能。
1.您需要将您的i18n示例导入到您的actions/reducer中:
从"../i18n初始化文件"导入国际化;
1.之后,您可以在操作中使用示例,如下所示:
i18n.t("待翻译字符串");

更改语言("新位置"). then();

相关问题