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

如何在i18nexus中翻译数据库来源的动态变量productName?

解决动态值i18n翻译失效问题

以下是针对你遇到的动态值(如数据库返回的productName)翻译失效问题的排查和解决步骤:

1. 验证翻译模板的占位符正确性

确保你的语言包文件(如zh-CN.json、en.json)中,common:product_name对应的文案正确使用了与参数名完全匹配的占位符(大小写敏感):

// 示例中文语言包
{
  "common": {
    "product_name": "商品名称:{productName}"
  }
}

// 示例英文语言包
{
  "common": {
    "product_name": "Product Name: {productName}"
  }
}

若占位符拼写错误(比如写成{productname}),动态值将无法被替换。

2. 确认参数传递与t函数的正确性

检查你的调用代码:

{t("common:product_name", { productName: "Название товара" })}
  • 确保参数对象的键名productName和翻译模板中的占位符完全一致
  • 若使用Vue I18n等库,确认t函数是通过正确方式导入(如组合式API的useI18n),未混用错误的API写法

3. 检查命名空间配置完整性

如果common是命名空间,需确认:

  • 语言包已正确挂载到common命名空间下(参考步骤1的示例结构)
  • i18n初始化时已正确加载对应语言包的命名空间内容,例如:
const i18n = createI18n({
  locale: 'zh-CN',
  messages: {
    'zh-CN': require('./locales/zh-CN.json'),
    'en': require('./locales/en.json')
  }
})

若命名空间未正确注册,t("common:product_name")会直接返回键名而非翻译内容。

4. 排查动态值的有效性

如果productName来自数据库异步请求:

  • 在调用t函数前打印productName,确认其已正确获取(不是undefined/null)
  • 确保组件在数据加载完成后再渲染翻译内容,避免初始渲染时参数为空导致的异常

5. 先测试静态翻译是否正常

暂时移除动态参数,调用{t("common:product_name")},若无法返回静态文案,说明翻译键或命名空间配置存在基础问题,优先解决该问题后再添加动态参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:46:12