@agentscope-ai/i18n 0.1.4 → 0.1.5

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentscope-ai/i18n",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "A tool for translating Chinese content in frontend code repositories",
5
5
  "keywords": [
6
6
  "i18n",
@@ -105,29 +105,51 @@ description: 国际化(i18n)自动化助手。当用户要对项目目录执行i
105
105
 
106
106
  使用 Chrome DevTools MCP 的 `new_page`(不要用 `navigate_page`,它会关闭当前页)打开上述 URL。
107
107
 
108
- 3. **操作美杜莎页面(一次快照完成所有操作)**
108
+ 3. **操作美杜莎页面(最小化交互次数)**
109
109
 
110
- 页面加载后调用 `take_snapshot` 获取快照,从快照中识别以下元素的 uid:
111
- - `zh_CN` textarea(`value="当前中文值"`)
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. **填入文案** — 通过 `evaluate_script` 设置 textarea 的值(`fill` 会追加而非替换):
117
+ a. **填入文案** — 对每个需要修改的 textarea,通过 `evaluate_script` 设置值(可以在**一次调用**中同时处理多个 textarea):
118
118
  ```javascript
119
- (el) => {
120
- const setter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value').set;
121
- setter.call(el, '<新文案>');
122
- el.dispatchEvent(new Event('input', { bubbles: true }));
123
- el.dispatchEvent(new Event('change', { bubbles: true }));
124
- return el.value;
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 标签**如果快照中标签区域没有 `do_not_trans`:点击标签 combobox → 从下拉列表中点击 `do_not_trans` 选项 → 按 Escape 关闭下拉
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. **保存并发布** — 点击「保存」按钮(带 `includeSnapshot: true` 确认结果),然后截图展示当前状态,等待用户确认后再点击「立即发布」按钮。
131
153
 
132
154
  ## 注意事项
133
155