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

Flutter国际化:Text组件含变量时翻译失效问题求助

解决Flutter国际化带变量文本翻译失效问题

问题出在你把变量直接拼接在翻译key里了——'Expected_Date = $dueDate'.tr会把整个带变量的字符串当作翻译key去查找,但你的翻译表中根本不存在这个动态生成的key,自然拿不到正确翻译。

正确做法:

  1. 修改翻译文件:在对应语言的翻译配置文件(如json/yaml)中,添加带占位符的固定条目。示例:

    • 英文配置:"expected_date": "Expected Date","expected_date_with_value": "Expected Date = {date}"
    • 中文配置:"expected_date": "预计日期","expected_date_with_value": "预计日期 = {date}"
  2. 代码中传递变量参数:使用翻译库的参数替换功能,把变量传给tr方法:

date == null
    ? Text('expected_date'.tr)
    : Text('expected_date_with_value'.tr(namedArgs: {'date': dueDate.toString()})),

如果用的是不支持命名参数的国际化库,也可以用位置参数:

// 对应翻译文件占位符改为 "Expected Date = %1$s"
date == null
    ? Text('expected_date'.tr)
    : Text('expected_date_with_value'.tr(args: [dueDate.toString()])),

核心逻辑:翻译key必须是固定纯文本,变量通过翻译库的参数机制动态替换到翻译后的字符串中,不能把变量直接拼在key里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:10:36