From 458b59906199b7001b7bb2329c5318a0cc480f16 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 14 Sep 2026 19:18:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(Text):=20=E5=8A=A8=E6=80=81=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E5=9B=BD=E9=99=85=E5=8C=96=20i18n=5Fparams=20?= =?UTF-8?q?=E9=80=8F=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TextBase.set_attrs/set_otext 把 opts.i18n_params 传给 i18n._(otext, params), 支持 otext 用占位符由后端传值(切语言重渲染同样带参)。 此前 i18n._ 已支持 obj 参数, 但 widget 层未透传 -> 后端声明 i18n_params 的 控件渲染出字面占位串。商机产线"数据参考"弹窗实测: 全部主题显示为原始占位符 而非条数/预算数字。 bundle(dist/bricks.js) 被 gitignore, 由部署侧 build.sh 构建。 --- bricks/widget.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bricks/widget.js b/bricks/widget.js index bbab4ad..a956ff5 100644 --- a/bricks/widget.js +++ b/bricks/widget.js @@ -467,9 +467,14 @@ bricks.TextBase = class extends bricks.JsWidget { if (this.opts.hasOwnProperty('i18n')){ this.i18n = this.opts.i18n; } + if (this.opts.hasOwnProperty('i18n_params')){ + // 动态文本国际化:otext 用 ${name} 占位,i18n_params 提供替换值 + // 切语言时 set_i18n_text→set_otext 会带 i18n_params 重新 obj_fmtstr + this.i18n_params = this.opts.i18n_params; + } this.set_style('flexShrink', '0'); if (this.i18n && this.otext) { - this.text = bricks.app.i18n._(this.otext); + this.text = bricks.app.i18n._(this.otext, this.i18n_params); } this.dom_element.innerHTML = this.text || ''; } @@ -477,7 +482,7 @@ bricks.TextBase = class extends bricks.JsWidget { var text; this.otext = otxt || ''; if (this.i18n) { - text = bricks.app.i18n._(this.otext); + text = bricks.app.i18n._(this.otext, this.i18n_params); } else { text = this.otext; }