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

React-Admin升级至3.18版本后翻译失效,UI显示i18n键名问题求助

问题根因

React Admin 从3.17.0版本开始移除了默认内置的英文i18n配置,旧版本未传入i18nProvider时会自动加载英文翻译,3.17.0之后未正确配置该属性就会直接渲染i18n键名。你此前添加配置后未生效,属于配置不规范或者依赖版本兼容问题,可按以下步骤排查修复:


修复步骤

  • 第一步:对齐所有react-admin相关依赖版本,排除版本不兼容问题
// package.json 调整后示例
"react-admin": "3.18.1",
"ra-language-english": "3.18.1",
"ra-i18n-polyglot": "3.18.1"

调整后删除node_modules和包锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新安装依赖清除缓存影响。

  • 第二步:正确初始化i18nProvider并传入根级<Admin>组件,示例代码如下:
import React from 'react';
import { Admin, Resource } from 'react-admin';
import polyglotI18nProvider from 'ra-i18n-polyglot';
import englishMessages from 'ra-language-english';

// 无自定义翻译直接初始化即可
const i18nProvider = polyglotI18nProvider(() => englishMessages, 'en');

const App = () => (
  <Admin i18nProvider={i18nProvider}>
    {/* 项目原有Resource配置 */}
  </Admin>
);

export default App;
  • 第三步:如果项目有自定义翻译需求,合并翻译时要保留react-admin的默认翻译字段,避免覆盖导致失效:
const customMessages = {
  en: {
    ...englishMessages, // 必须保留默认翻译的展开引入
    custom: {
      tip: '自定义文案'
    }
  }
}
const i18nProvider = polyglotI18nProvider(locale => customMessages[locale], 'en');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:39:05