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

如何使用GetX实现含参数文本的本地化?

GetX 实现带参数文本本地化的正确方式

1. 规范定义本地化Key与占位符

不要把带动态参数的整句文本作为本地化Key,而是用语义化的固定Key,并在翻译文本中加入占位符。比如在你的翻译类中:

class AppTranslations extends Translations {
  @override
  Map<String, Map<String, String>> get keys => {
        'en_US': {
          // 用@name作为占位符,语义清晰
          'profile_suggest_like': 'Put something @name might like',
        },
        'zh_CN': {
          'profile_suggest_like': '选一些@name可能喜欢的内容',
        }
      };
}

2. 在Text组件中传递参数

使用GetX提供的trParams(命名参数)或trArgs(索引参数)方法,把动态值传入占位符:

方式一:命名参数(推荐,可读性更高)

Text(
  'profile_suggest_like'.trParams({'name': widget.profileA}),
),

方式二:索引参数

如果翻译文本用索引占位符(比如Put something {0} might like),则用trArgs:

// 翻译类中对应条目改为:
// 'profile_suggest_like': 'Put something {0} might like',

Text(
  'profile_suggest_like'.trArgs([widget.profileA]),
),

为什么之前的方式不合理

把'Put something ${widget.profileA} might like'作为Key的话,每一个不同的widget.profileA值都会生成一个新的Key,导致本地化文件里充斥着重复结构的文本,不仅维护成本极高,也完全违背了本地化的初衷——同一语义的文本只需要维护一套翻译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:25:48