@agentscope-ai/i18n 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/i18n-helper/SKILL.md +39 -15
package/package.json
CHANGED
|
@@ -105,33 +105,57 @@ description: 国际化(i18n)自动化助手。当用户要对项目目录执行i
|
|
|
105
105
|
|
|
106
106
|
使用 Chrome DevTools MCP 的 `new_page`(不要用 `navigate_page`,它会关闭当前页)打开上述 URL。
|
|
107
107
|
|
|
108
|
-
3.
|
|
108
|
+
3. **操作美杜莎页面(最小化交互次数)**
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
- `zh_CN` textarea
|
|
112
|
-
- `en_US` textarea(`value="当前英文值"`)
|
|
110
|
+
使用 `wait_for` 等待 `en_US` 或 `zh_CN` 文本出现(它会自动返回快照,无需再调 `take_snapshot`)。从快照中识别:
|
|
111
|
+
- `zh_CN` textarea、`en_US` textarea 的 uid
|
|
113
112
|
- 标签区域是否已有 `do_not_trans`
|
|
113
|
+
- 「保存」按钮 uid
|
|
114
114
|
|
|
115
|
-
|
|
115
|
+
**只修改用户指定的语言**,未指定的不要动。按以下顺序操作:
|
|
116
116
|
|
|
117
|
-
a. **填入文案** —
|
|
117
|
+
a. **填入文案** — 对每个需要修改的 textarea,通过 `evaluate_script` 设置值(可以在**一次调用**中同时处理多个 textarea):
|
|
118
118
|
```javascript
|
|
119
|
-
(
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
119
|
+
(zh, en) => {
|
|
120
|
+
const set = (el, v) => {
|
|
121
|
+
if (!el || v === null) return;
|
|
122
|
+
const setter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value').set;
|
|
123
|
+
setter.call(el, v);
|
|
124
|
+
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
125
|
+
el.dispatchEvent(new Event('change', { bubbles: true }));
|
|
126
|
+
};
|
|
127
|
+
set(zh, '新中文值或null');
|
|
128
|
+
set(en, '新英文值或null');
|
|
129
|
+
return 'ok';
|
|
125
130
|
}
|
|
126
131
|
```
|
|
132
|
+
> 不需要修改的语言传 `null`,对应 `args` 中仍需传一个占位 uid(任意元素即可)。
|
|
127
133
|
|
|
128
|
-
b. **添加 do_not_trans
|
|
134
|
+
b. **添加 do_not_trans 标签**(如果快照中已有则**跳过此步**) — 通过 `evaluate_script` 一次完成:
|
|
135
|
+
```javascript
|
|
136
|
+
(combobox) => {
|
|
137
|
+
combobox.click();
|
|
138
|
+
return new Promise(resolve => {
|
|
139
|
+
setTimeout(() => {
|
|
140
|
+
const opt = [...document.querySelectorAll('[role="option"]')].find(el => el.textContent.trim() === 'do_not_trans');
|
|
141
|
+
if (opt) opt.click();
|
|
142
|
+
setTimeout(() => {
|
|
143
|
+
combobox.blur();
|
|
144
|
+
document.body.click();
|
|
145
|
+
resolve('done');
|
|
146
|
+
}, 200);
|
|
147
|
+
}, 300);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
```
|
|
129
151
|
|
|
130
|
-
c.
|
|
152
|
+
c. **保存** — 点击「保存」按钮。
|
|
153
|
+
d. **保存** — 点击「立即发布」按钮,然后结束流程,等待用户手动确认即可。
|
|
131
154
|
|
|
132
155
|
## 注意事项
|
|
133
156
|
|
|
157
|
+
- **静默执行**:执行过程中不要输出中间状态描述(如 uid、当前值、按钮信息等),直接操作即可。仅在最终完成或出错时输出一句简短结果
|
|
134
158
|
- 美杜莎是阿里内网平台,需要连接内网/VPN 才能访问
|
|
135
159
|
- `do_not_trans` 标签表示产品指定的中英文文案,不需要翻译同学翻译
|
|
136
160
|
- key 中不支持模板字符串或表达式,全部使用字符串字面量
|
|
137
|
-
- 忽略翻译可使用注释:`// @i18n-ignore`(文件级)、`// @i18n-ignore-line`(行级)、`// @i18n-ignore-block-start/end`(块级)
|
|
161
|
+
- 忽略翻译可使用注释:`// @i18n-ignore`(文件级)、`// @i18n-ignore-line`(行级)、`// @i18n-ignore-block-start/end`(块级)
|