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

i18n字符串中间嵌入变量失败,寻求有效实现方案

解决i18n翻译文本中的变量替换问题

你之前的做法无效,是因为i18n库不会解析翻译文案里的框架模板语法(比如{{totalParticipation}}),需要用i18n方案本身提供的变量替换机制来实现,以下是主流i18n库的通用解决方式:

1. 修改翻译文案的占位符格式

不要在翻译文案中写框架模板语法,改用i18n库支持的占位符,比如{{count}}这类格式(不同库占位符语法可能略有差异,以你使用的库文档为准):

// 示例翻译文件(如en.json)
{
  "counter.description": "This promotion is limited to {{count}} participants"
}

2. 在调用翻译函数时传入变量

调用i18n的翻译函数(你代码里的__函数)时,第二个参数传入包含变量的对象,将占位符替换为实际值:

// 适配你的模板写法
{{ __("counter.description", { count: totalParticipation }) }}

如果是其他框架或i18n库,逻辑完全一致:

  • React + react-i18next:{t('counter.description', { count: totalParticipation })}
  • 原生JS场景:i18next.t('counter.description', { count: totalParticipation })

核心逻辑是:翻译文案只负责定义带占位符的模板,变量传递和替换由i18n库完成,而非依赖框架的模板语法解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:37:06