i18n-mcp-server 0.0.1 → 0.0.2

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.
Files changed (2) hide show
  1. package/README.md +210 -32
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,63 +1,241 @@
1
1
  # i18n-MCP-Server
2
2
 
3
- 面向前端国际化工作流的 MCP Server,提供以下四类能力:
3
+ `i18n-mcp-server` 是一个面向前端国际化工作流的 MCP Server,帮助你在 Vue / React / TS 项目里完成文案提取、翻译健康检查、Key 重构和同步扩展。
4
4
 
5
- - `extract_replace`:提取硬编码文本并返回源码与语言文件 diff。
6
- - `doctor_lint`:检查缺失 key、死 key 和硬编码风险点。
7
- - `refactor_key`:批量重命名 i18n key。
8
- - `sync_catalog`:预留翻译平台同步适配器接口。
5
+ ## Features
9
6
 
10
- ## 设计原则
7
+ - 提取代码中的硬编码中日韩文本,替换为 `t('key')`
8
+ - 自动生成 i18n key,并更新本地语言 JSON
9
+ - 检查缺失翻译、死 key、残留硬编码文本
10
+ - 批量重命名 i18n key,并同步更新代码与 JSON
11
+ - 预留 Lokalise / 通用 JSON 同步能力
11
12
 
12
- - 默认不静默写入文件,所有修改都先以 unified diff 返回。
13
- - JS / TS 使用 Babel AST,Vue 使用 SFC 解析器。
14
- - 保留 JSON 原始缩进风格,减少 Git 噪音。
15
- - 默认以 `zh-CN.json` 作为基准语言。
13
+ ## Installation
16
14
 
17
- ## 快速开始
15
+ ### 方式 1:通过 `npx` 直接运行
16
+
17
+ 这是最推荐的方式,不需要全局安装:
18
18
 
19
19
  ```bash
20
- npm install
21
- npm run build
22
- npm start
20
+ npx -y i18n-mcp-server
23
21
  ```
24
22
 
25
- ## MCP 工具
23
+ ### 方式 2:全局安装
24
+
25
+ ```bash
26
+ npm install -g i18n-mcp-server
27
+ ```
28
+
29
+ 安装后可以直接运行:
30
+
31
+ ```bash
32
+ i18n-mcp-server
33
+ ```
34
+
35
+ ## MCP Client 配置
36
+
37
+ 这个包是一个标准的 `stdio` MCP Server,适用于 Claude Desktop、Cherry Studio、Cline、Cursor MCP 插件等支持 MCP 的客户端。
38
+
39
+ ### 通用配置示例
40
+
41
+ 使用 `npx`:
42
+
43
+ ```json
44
+ {
45
+ "mcpServers": {
46
+ "i18n": {
47
+ "command": "npx",
48
+ "args": ["-y", "i18n-mcp-server"]
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ 使用全局安装命令:
55
+
56
+ ```json
57
+ {
58
+ "mcpServers": {
59
+ "i18n": {
60
+ "command": "i18n-mcp-server"
61
+ }
62
+ }
63
+ }
64
+ ```
65
+
66
+ ### Windows 兼容写法
67
+
68
+ 如果你的 MCP 客户端在 Windows 下对命令解析比较严格,可以这样配置:
69
+
70
+ ```json
71
+ {
72
+ "mcpServers": {
73
+ "i18n": {
74
+ "command": "cmd",
75
+ "args": ["/c", "npx", "-y", "i18n-mcp-server"]
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
81
+ ## Quick Start
82
+
83
+ 把 MCP Server 接入客户端后,你可以直接让 AI 调用这些工具。
84
+
85
+ 示例指令:
86
+
87
+ - “调用 `project_info`,检查当前项目的 i18n 框架”
88
+ - “调用 `doctor_lint`,扫描 `src` 和 `src/locales`”
89
+ - “调用 `extract_replace`,处理 `src/pages/UserProfile.tsx`”
90
+ - “调用 `refactor_key`,把 `common.btn.save` 改成 `common.actions.save`”
91
+
92
+ ## Tools
26
93
 
27
94
  ### `project_info`
28
95
 
29
- 读取项目 `package.json`,自动识别 `vue-i18n`、`react-i18next`、`@angular/localize` 等国际化方案。
96
+ 读取项目 `package.json`,自动识别当前项目使用的国际化方案:
97
+
98
+ - `vue-i18n`
99
+ - `react-i18next`
100
+ - `@angular/localize`
101
+
102
+ 示例参数:
103
+
104
+ ```json
105
+ {
106
+ "cwd": "C:\\your-project"
107
+ }
108
+ ```
30
109
 
31
110
  ### `extract_replace`
32
111
 
33
- 输入源码文件与语言目录,扫描静态文本并返回:
112
+ 从源码文件中提取静态文本,生成 key,并返回源码与语言文件的 unified diff。
34
113
 
35
- - 提议生成的 key
36
- - 源码 diff
37
- - 语言 JSON diff
114
+ 支持文件类型:
38
115
 
39
- 默认只生成补丁,不直接写盘。
116
+ - `.vue`
117
+ - `.tsx`
118
+ - `.jsx`
119
+ - `.ts`
120
+ - `.js`
121
+
122
+ 示例参数:
123
+
124
+ ```json
125
+ {
126
+ "cwd": "C:\\your-project",
127
+ "filePath": "src/pages/UserProfile.tsx",
128
+ "localesDir": "src/locales",
129
+ "baseLocale": "zh-CN",
130
+ "targetLocales": ["zh-CN", "en-US", "ja-JP"],
131
+ "keyStrategy": "semantic",
132
+ "namespace": "userProfile"
133
+ }
134
+ ```
135
+
136
+ 说明:
137
+
138
+ - 默认只返回 diff,不静默写盘
139
+ - `keyStrategy` 支持 `semantic` 和 `hash`
140
+ - 当前版本默认假设源码上下文中已经可以使用 `t()`
40
141
 
41
142
  ### `doctor_lint`
42
143
 
43
- 以 `zh-CN.json` 为基准:
144
+ 检查翻译文件健康状况,包括:
145
+
146
+ - 缺失翻译 key
147
+ - 死 key
148
+ - 未国际化的中日韩硬编码文本
44
149
 
45
- - 对比其他语言缺失 key
46
- - 扫描代码中未引用的死 key
47
- - 检测剩余的中日韩硬编码文本
150
+ 示例参数:
151
+
152
+ ```json
153
+ {
154
+ "cwd": "C:\\your-project",
155
+ "srcDir": "src",
156
+ "localesDir": "src/locales",
157
+ "baseLocale": "zh-CN",
158
+ "compareLocales": ["en-US", "ja-JP"]
159
+ }
160
+ ```
48
161
 
49
162
  ### `refactor_key`
50
163
 
51
- 对代码中的 `t('oldKey')` 与多语言 JSON 做联动重命名,返回完整影响文件列表和统一 diff。
164
+ 批量重命名 i18n key,并联动更新代码引用和语言文件。
165
+
166
+ 示例参数:
167
+
168
+ ```json
169
+ {
170
+ "cwd": "C:\\your-project",
171
+ "srcDir": "src",
172
+ "localesDir": "src/locales",
173
+ "locales": ["zh-CN", "en-US", "ja-JP"],
174
+ "oldKey": "common.btn.save",
175
+ "newKey": "common.actions.save"
176
+ }
177
+ ```
52
178
 
53
179
  ### `sync_catalog`
54
180
 
55
- MVP 先保留 provider 适配器入口,后续可继续接入 Lokalise / Crowdin / 本地 JSON 导入导出。
181
+ 当前是 MVP 预留接口,用于未来对接:
182
+
183
+ - Lokalise
184
+ - Crowdin
185
+ - 本地 JSON 导入导出
186
+
187
+ 示例参数:
188
+
189
+ ```json
190
+ {
191
+ "provider": "json",
192
+ "mode": "pull",
193
+ "lang": "de"
194
+ }
195
+ ```
196
+
197
+ ## Output Behavior
198
+
199
+ 为了降低误改代码和误写翻译文件的风险,当前版本默认采用“建议变更”模式:
200
+
201
+ - 返回结构化 JSON 结果
202
+ - 返回受影响文件列表
203
+ - 返回 unified diff
204
+ - 不默认直接改写文件
205
+
206
+ 这让 MCP Client 可以在应用补丁前先做确认。
207
+
208
+ ## Recommended Project Structure
209
+
210
+ 推荐项目目录类似这样:
211
+
212
+ ```text
213
+ src/
214
+ pages/
215
+ components/
216
+ locales/
217
+ zh-CN.json
218
+ en-US.json
219
+ ja-JP.json
220
+ ```
221
+
222
+ ## Local Development
223
+
224
+ 如果你要在本地开发这个 MCP Server:
225
+
226
+ ```bash
227
+ npm install
228
+ npm run check
229
+ npm run build
230
+ npm start
231
+ ```
232
+
233
+ ## Current Limitations
56
234
 
57
- ## 当前边界
235
+ - Vue 模板替换目前是偏保守的 MVP 实现
236
+ - `extract_replace` 还不会自动补 `t()` 的 import 或 hook 注入
237
+ - `sync_catalog` 目前还没有接入真实 provider API
58
238
 
59
- 这一版已经具备可编译、可接入的服务骨架,但仍有几项明确的后续增强点:
239
+ ## License
60
240
 
61
- - Vue 模板替换当前是偏保守的 MVP 方案,复杂模板场景还可以继续细化 AST 级改写。
62
- - `extract_replace` 目前默认依赖调用侧已有 `t()` 上下文,尚未自动补充 import / hook 注入。
63
- - `sync_catalog` 目前只保留接口和返回结构,尚未接入真实 provider API。
241
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18n-mcp-server",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "MCP server for frontend i18n extraction, linting, refactoring, and sync workflows.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",