翻译PO MCP服务器
用于管理和翻译.po(gettext)文件的模型上下文协议(MCP)服务器。此服务器提供了一套全面的工具,用于加载、搜索、更新和管理翻译文件。
特性
- 加载翻译文件:加载单个.po文件或整个翻译文件目录
- 搜索功能:高级搜索,支持正则表达式、区分大小写选项和过滤
- 翻译管理:一次更新单个或多个翻译
- 统计:获取详细的翻译统计数据(翻译、未翻译、模糊、过时)
- 文件组织:按文件对翻译进行分组,并获取特定于文件的数据
- 批量操作:高效处理多个翻译更新
安装
首先,使用pnpm安装依赖项(根据您的喜好):
pnpm install构建
编译TypeScript代码:
pnpm run build用法
该服务器作为MCP服务器运行,并通过stdio进行通信。它可以与任何兼容MCP的客户端集成。
可用工具
文件加载
load_po_file:加载单个.po文件load_translation_project:从目录递归加载所有.po文件
搜索和发现
search_translations:具有多个条件的高级搜索get_untranslated_strings:获取所有需要翻译的字符串get_fuzzy_translations:获取所有模糊(需要审查)的翻译get_file_translations:从特定文件获取所有翻译
翻译管理
update_translation:更新单个翻译update_multiple_translations:批量更新多个翻译
统计和信息
get_translation_stats:获取翻译统计信息get_translations_by_file:按文件对翻译进行分组get_loaded_files:列出当前加载的所有文件
工具使用示例
加载翻译项目
{
"name": "load_translation_project",
"arguments": {
"directory": "./locales"
}
}搜索翻译
{
"name": "search_translations",
"arguments": {
"query": "welcome",
"searchIn": "msgid",
"caseSensitive": false,
"includeUntranslated": true
}
}更新翻译
{
"name": "update_translation",
"arguments": {
"filePath": "./locales/fr/messages.po",
"msgid": "Welcome",
"msgstr": "Bienvenue"
}
}获取翻译统计信息
{
"name": "get_translation_stats",
"arguments": {
"filePath": "./locales/fr/messages.po"
}
}建筑
该项目遵循以下结构的关注点分离:
src/types/:TypeScript类型定义src/services/POFileService.ts:低级PO文件操作src/services/TranslationService.ts:高级翻译管理src/index.ts:MCP服务器实现
类型安全
所有操作都是完全类型化的,具有全面的TypeScript接口:
TranslationEntry:个人翻译条目POFile:完整的.po文件表示SearchOptions:搜索配置TranslationStats:统计信息UpdateTranslationRequest:翻译更新请求
错误处理
服务器包括强大的错误处理功能:
- 无效的文件路径将得到妥善处理
- 报告格式错误的.po文件,并显示特定的错误消息
- 正则表达式查询的搜索模式验证
- 批量操作状态报告
发展
脚本
pnpm run build:编译TypeScriptpnpm run dev:观看模式编译pnpm run start:运行已编译的服务器pnpm run lint:运行ESLintpnpm run format:使用Prettier格式化代码
依赖项
@modelcontextprotocol/sdk:用于服务器实现的MCP SDKpofile:PO文件解析和操作glob:用于查找的文件模式匹配
许可证
麻省理工学院
