fix(i18n): obj_fmtstr 裸调用 ReferenceError——必须走 bricks 命名空间

utils.js 定义的是 bricks.obj_fmtstr(挂命名空间), 而 i18n.js 的 _() 里写的是
裸 obj_fmtstr(obj, mt) → ReferenceError, 导致带参翻译整体失效。

此前该行从未被执行(没有调用方给 i18n._ 传 obj), 直到 i18n_params 动态文本特性
(widget.js 透传 params)才暴露。实测: 商机产线数据参考弹窗渲染出字面 ${p0},
console 报 ReferenceError: obj_fmtstr is not defined。

对照: 同文件 objget 是 var 全局函数(utils.js:415), 裸调用合法, 无需改。
已全仓核查 obj_fmtstr 裸调用清零。
This commit is contained in:
yumoqing 2026-09-14 20:08:44 +08:00
parent 458b599061
commit 449631732a

View File

@ -31,7 +31,10 @@ bricks.I18n = class {
var msgs = this.lang_msgs[this.lang].msgs || {};
mt = msgs[txt] || txt;
if (obj instanceof Object){
outt = obj_fmtstr(obj, mt);
// 🔴 必须用 bricks.obj_fmtstr该函数定义在 utils.js 的 bricks 命名空间下,
// 裸 obj_fmtstr 是 ReferenceError。此前这行从未被执行无调用方传 obj
// 直到 i18n_params 动态文本特性widget.js 传 params才暴露此 bug。
outt = bricks.obj_fmtstr(obj, mt);
} else {
outt = mt;
}