You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中i18next翻译文本不显示问题排查

React Native i18next 国际化不生效问题排查与解决

核心问题:资源文件结构不符合i18next规范

i18next要求翻译资源必须嵌套在**translation**命名空间下,你当前的语言文件直接导出键值对,缺少外层的translation包裹,导致i18next无法识别这些翻译项。

修复语言文件

修改src/localization/ta/index.ts:

export default {
  translation: {
    account_handle: "பயனர் கணக்கு",
    change_language: "Change Language",
    forgot_password: "கடவுச்சொல் மறந்ததோ",
    password: "கடவுச்சொல்",
    sign_in: "உள்ளே போ",
  }
};

src/localization/en/index.ts需要做同样的修改,将所有翻译项包裹在translation对象内。

可选优化:确保i18n初始化与组件树绑定

虽然你已经引入了i18n.ts,但使用I18nextProvider包裹应用可以确保i18n实例在组件树中正确传递,避免异步初始化导致的渲染问题:

修改App.tsx:

import { AuthProvider } from "./src/context/AuthContext";
import { AppNav } from "./src/context/AppNav";
import i18n from "./src/localization/i18n";
import { I18nextProvider } from "react-i18next";

function App() {
  return (
    <I18nextProvider i18n={i18n}>
      <AuthProvider>
        <AppNav />
      </AuthProvider>
    </I18nextProvider>
  );
}

export default App;

排查辅助:打印i18n状态确认问题

如果问题仍存在,可以在SignIn组件中打印i18n的状态,验证资源是否加载、当前语言是否正确:

import { useTranslation, useI18n } from "react-i18next";
import { Text } from "react-native";

const SignIn = () => {
  const { t } = useTranslation();
  const i18n = useI18n();

  console.log("当前语言:", i18n.language);
  console.log("已加载的翻译资源:", i18n.services.resourceStore.data);

  return <Text>{t("sign_in")}</Text>;
};

export default SignIn;

内容的提问来源于stack exchange,提问作者Sankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:35:22