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

React/TypeScript中useTranslation失效,显示翻译key而非内容

React/TypeScript 中 useTranslation 不生效问题

环境版本

"i18next": "22.4.9",
"react-i18next": "12.1.4"

现有配置与代码

i18n配置文件(config.js)

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

i18n.use(initReactI18next).init({
  fallbackLng: 'en',
  lng: 'en',
  resources: {
    en: {
      translations: require('./locales/en/translations.json')
    }
  },
  ns: ['translations'],
  defaultNS: 'translations'
});

i18n.languages = ['en'];

export default i18n;

翻译文件(i18n/locales/en/translations.json)

{    
    "errorMessage": "Please try again later."
}

App.tsx代码

import { useTranslation } from 'react-i18next';

const App = () => {
    const { t } = useTranslation();
    return (<>
        {t('errorMessage')}
    </>)
}

export default App

运行后页面显示errorMessage而非预期翻译文本,以下是排查和解决步骤:

排查与解决步骤

  • 确保项目入口引入了i18n配置
    必须在项目入口文件(如index.tsx/main.tsx)中导入i18n配置,否则i18n未完成初始化,无法读取翻译资源。示例:

    // index.tsx
    import './i18n/config'; // 导入你的i18n配置文件
    import React from 'react';
    import ReactDOM from 'react-dom/client';
    import App from './App';
    
    const root = ReactDOM.createRoot(document.getElementById('root')!);
    root.render(
      <React.StrictMode>
        <App />
      </React.StrictMode>
    );
    
  • 检查翻译文件路径是否正确
    确认require('./locales/en/translations.json')的相对路径是否匹配文件实际位置。若配置文件不在i18n目录下,路径会出错。可在浏览器控制台查看是否有资源加载失败的报错,或调整为绝对路径测试。

  • 验证i18n初始化状态
    在配置的init方法中添加回调,确认资源是否加载成功:

    i18n.use(initReactI18next).init({
      // 原有配置项
      callback: (err, t) => {
        if (err) console.error('i18n初始化失败:', err);
        console.log('测试翻译:', t('errorMessage')); // 若输出正确文本,说明资源加载正常
      }
    });
    
  • 显式指定命名空间
    尽管已设置defaultNS: 'translations',仍可尝试在useTranslation中显式传入命名空间:

    const { t } = useTranslation('translations');
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:37:36