@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentscope-ai/i18n",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "A tool for translating Chinese content in frontend code repositories",
5
5
  "keywords": [
6
6
  "i18n",
@@ -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
- 页面加载后调用 `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. **保存**点击「保存」按钮。
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`(块级)