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

配置i18n时输出键而非对应值,求排查问题原因

i18n输出键而非对应值的常见排查点
  • 语言文件加载路径错误
    确认i18n配置中指向语言文件的路径是否正确,比如你的en.json是否放在配置指定的目录下。以i18next为例,若配置中指定的资源路径不对,会导致无法加载翻译内容,最终输出键名。
    示例正确配置:

    import i18n from 'i18next';
    import { initReactI18next } from 'react-i18next';
    // 确保这个路径指向你的en.json文件
    import enTranslations from './locales/en.json';
    
    i18n.use(initReactI18next).init({
      resources: {
        en: {
          translation: enTranslations // 正确挂载语言资源
        }
      },
      lng: 'en',
      fallbackLng: 'en',
      interpolation: {
        escapeValue: false
      }
    });
    
  • 语言资源未正确注册
    部分i18n库需要明确将JSON翻译内容注册到对应locale下,若遗漏这一步,库无法读取到翻译值,会直接返回键名。比如Node.js的i18n模块:

    const i18n = require('i18n');
    i18n.configure({
      locales: ['en'],
      directory: __dirname + '/locales', // 确保目录包含en.json
      defaultLocale: 'en'
    });
    
  • 调用函数的参数格式错误
    检查__函数的传参是否符合所用库的要求。很多库的翻译函数第一个参数直接是键名,而非包含phrase和locale的对象。比如正确调用可能是:

    __('hi', { name: 'Marcus' });
    

    若错误传递对象作为第一个参数,库无法识别键名,会直接返回传入的对象内容或键名。

  • 插值语法不匹配(次要但需确认)
    你使用的{{name}}插值语法需与所用i18n库匹配,比如i18next默认支持该语法,但有些库使用%s或{name}。不过语法不匹配一般不会直接导致输出键名,但若同时存在加载问题则可能叠加影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:36:23