Token导航 LogoToken导航TokenDH.com
Translation Manager MCP logo
运维云端未说明官方级别未说明来源级核验

Translation Manager MCP

MCP Server

一个用于管理翻译的MCP服务器,具有审查工作流、自动非断行空格插入和实时文件监控功能。

工具数

9

提示词数

0

GitHub Stars

0

资源数

0
JavaScriptClaude云端部署Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lukaszolek

提供方

lukaszolek

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

翻译管理器 MCP 服务器

一个用于管理翻译的MCP(模型上下文协议)服务器,支持审核工作流、自动插入不间断空格以及实时文件监控。

特点/功能

  • 📝 翻译管理从JSON文件中加载、编辑和保存翻译内容
  • 审查工作流程跟踪哪些翻译已被检查/审核
  • 🔄(这个符号在中文中通常被解释为“循环”或“重复”的意思,但直接翻译时可能无法找到完全对应的中文词汇,因此保留原符号或根据上下文解释其含义) 自动保存当翻译更新时,自动保存更改(无需手动保存)
  • 👁️ 文件监视监控翻译文件的外部更改并自动重新加载
  • 🌍 表示地球或全球。 不间断空格自动应用特定语言的不间断空格规则
  • 🎯(瞄准目标) 缺失翻译检测识别任何语言环境中缺少翻译的键(支持分页)
  • 🔍(放大镜图标,通常表示搜索、查看细节或调查) 基于前缀的操作按键前缀搜索、筛选和删除翻译(支持分页)
  • 📊 表格 翻译状态获取翻译完成度的全面状态报告
  • 💾 代表“软盘”或“存储设备”的符号。 高效回应最小化令牌使用,API响应简洁明了
  • 🌐(地球或互联网的符号,常用于表示全球、网络等概念) 特定于区域的删除删除特定区域的语言键,而不影响其他区域

支持非断行空格的语言

服务器内置了规则,用于在以下情况下正确插入不间断空格:

  • 🇵🇱 波兰语 (pl)
  • 🇨🇿 捷克语 (cs)
  • 🇸🇰 斯洛伐克语(sk)
  • 🇫🇷 法语 (fr)
  • 🇩🇪 德语(de)
  • 🇭🇺 匈牙利语(hu)
  • 🇪🇸 西班牙语 (es)
  • 🇮🇹 意大利语(it)
  • 🇳🇱 荷兰语 (nl)

安装

作为一个npm包

npm install @framky/translation-manager-mcp

来自源头

git clone https://github.com/framky/translation-manager-mcp.git
cd translation-manager-mcp
npm install

与Claude桌面版的使用

将此配置添加到您的Claude桌面配置文件中:

macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json Windows%APPDATA%\Claude\claude_desktop_config.json

基本配置

{
  "mcpServers": {
    "translation-manager": {
      "command": "npx",
      "args": ["@framky/translation-manager-mcp"]
    }
  }
}

自定义消息目录

您可以使用(指定)来为您的翻译文件指定一个自定义目录 MESSAGES_DIR 环境变量:

{
  "mcpServers": {
    "translation-manager": {
      "command": "npx",
      "args": ["@framky/translation-manager-mcp"],
      "env": {
        "MESSAGES_DIR": "/absolute/path/to/your/messages"
      }
    }
  }
}

本地安装

如果你已将包安装在本地:

{
  "mcpServers": {
    "translation-manager": {
      "command": "node",
      "args": ["/path/to/translation-manager-mcp/index.js"],
      "env": {
        "MESSAGES_DIR": "/path/to/your/project/translations"
      }
    }
  }
}

如果 MESSAGES_DIR 如果未指定,服务器将在(相应位置)寻找翻译 messages/ 相对于当前工作目录的目录。

文件结构

服务器期望您的翻译按照以下方式组织:

your-project/
├── messages/
│   ├── en-us.json        (or en.json)
│   ├── pl-pl.json        (or pl.json)
│   ├── fr-fr.json        (or fr.json)
│   └── translation-check.json  (auto-generated)
└── .translation-state.json     (auto-generated, at server root)

服务器不再创建备份。请使用版本控制系统(例如 Git)来跟踪翻译文件的更改。

支持的文件命名约定

服务器支持翻译文件的两种命名约定:

  1. 完整的本地化格式: pl-pl.jsonen-us.jsonfr-fr.json
  2. 仅语言格式: pl.jsonen.jsonfr.json

这两种格式的工作方式相同。语言代码会自动提取,以应用不间断空格规则。

翻译文件格式

翻译文件应使用嵌套的JSON结构:

{
  "common": {
    "button": {
      "save": "Save",
      "cancel": "Cancel"
    }
  },
  "auth": {
    "login": "Log in",
    "logout": "Log out"
  }
}

键在内部会自动转换为点符号表示(例如。, common.button.save)。

可用工具

1. get_messages_to_check

获取接下来N条未审核的翻译以供审查。

参数:

  • n (数字,默认值:10):要返回的消息数量

示例:

{
  "n": 5
}

返回值:

{
  "translation.key": {
    "pl-pl": "Polish translation",
    "en-us": "English translation"
  }
}

2. update_translations

更新一个或多个键和语言环境的翻译。更改会自动保存到JSON文件中。

参数:

  • updates (对象):带结构的翻译更新 { key: { locale: translation } }

示例:

{
  "updates": {
    "common.button.save": {
      "en-us": "Save",
      "pl-pl": "Zapisz"
    },
    "common.button.cancel": {
      "en-us": "Cancel",
      "pl-pl": "Anuluj"
    }
  }
}

返回值:

{
  "success": true,
  "updatedKeys": 2
}

3. mark_checked

标记一个或多个翻译键为已审阅。状态会自动保存。

参数:

  • keys (字符串 | 数组):单个键或键的数组,用于标记为已选中

示例:

{
  "keys": ["common.button.save", "common.button.cancel"]
}

返回值:

{
  "success": true,
  "markedCount": 2
}

4. get_checked_keys

获取所有已标记为已检查的翻译键的列表。

返回:

{
  "count": 42,
  "keys": ["common.button.save", "common.button.cancel", ...]
}

5. get_missing_translation_keys

获取一个分页列表,其中包含在一个或多个语言环境中缺少翻译的键。

参数:

  • page (数字,默认值: 1):页码
  • pageSize (数字,默认:50):每页的项目数量

示例:

{
  "page": 1,
  "pageSize": 20
}

返回值:

{
  "count": 123,
  "totalPages": 7,
  "currentPage": 1,
  "pageSize": 20,
  "keys": [
    {
      "key": "common.button.submit",
      "missingLocales": ["fr-fr", "de-de"],
      "existingTranslations": {
        "en-us": "Submit",
        "pl-pl": "Wyślij"
      }
    }
  ]
}

6. get_translation_by_key_prefix

获取以特定前缀开头的所有键的翻译,并支持分页。

参数:

  • keyPrefix (字符串,必填):要搜索的前缀
  • page (数字,默认值:1):页码
  • pageSize (数字,默认:50):每页显示的项目数

示例:

{
  "keyPrefix": "common.button",
  "page": 1,
  "pageSize": 25
}

返回值:

{
  "count": 45,
  "totalPages": 2,
  "currentPage": 1,
  "pageSize": 25,
  "keys": {
    "common.button.save": {
      "en-us": "Save",
      "pl-pl": "Zapisz"
    },
    "common.button.cancel": {
      "en-us": "Cancel",
      "pl-pl": "Anuluj"
    }
  }
}

7. add_translations

添加新的翻译键及其对应的翻译。更改会自动保存到JSON文件中。

参数:

  • translations (对象):带有结构的新翻译 { key: { locale: translation } }

示例:

{
  "translations": {
    "common.button.submit": {
      "en-us": "Submit",
      "pl-pl": "Wyślij",
      "fr-fr": "Soumettre"
    }
  }
}

返回值:

{
  "success": true,
  "addedKeys": 1,
  "addedLocales": ["en-us", "pl-pl", "fr-fr"]
}

8. delete_keys_by_prefix

删除具有指定前缀的翻译键。可以选择从所有语言环境或仅特定语言环境中删除。更改会自动保存。

参数:

  • prefix (字符串,必填):要删除的键的前缀
  • locales (数组,可选):要从中删除的区域设置代码数组(例如。, ["pl-pl", "en-gb"])。 如果未提供,则从所有语言环境中删除整个键。

示例1 - 从所有语言环境中删除:

{
  "prefix": "old.deprecated"
}

示例2 - 仅从特定语言环境删除:

{
  "prefix": "HomePage.hero",
  "locales": ["pl-pl", "de-de"]
}

返回:

{
  "success": true,
  "deletedCount": 12
}

9. get_translation_status

获取所有语言环境的翻译状态概览。

返回值:

{
  "total": 150,
  "missingTranslations": 12,
  "waitingForCheck": 35
}

不换行空格

服务器在保存翻译时会自动应用针对特定语言的不间断空格规则。此过程是透明的,且会自动进行,您无需调用任何特殊函数。

波兰语、捷克语、斯洛伐克语

  • 在单字母单词(a, i, o, u, w, z)之后
  • 在短介词和连词之后
  • 数字与单位之间
  • 当它们作为单独的单词出现时,在个位数之前

法国的

  • 在特殊标点符号(: ; ! ? »)之前
  • 单字母词之后
  • 在数字与单位之间

其他语言

  • 针对德语、匈牙利语、西班牙语、意大利语和荷兰语的自定义规则
  • 数字与其单位之间(所有支持的语言)

自动功能

自动保存

以下操作会自动将更改保存到JSON文件中:

  • update_translations - 仅保存修改过的语言环境
  • add_translations - 保存所有受影响的语言环境
  • delete_keys_by_prefix - 保存所有受影响的文件
  • mark_checked - 保存选中状态

你无需手动调用保存功能——每次修改后它都会自动保存。

文件监视

服务器自动监控 messages/ 翻译文件更改的目录。当检测到更改时:

  1. 更改会进行防抖处理(500毫秒),以避免多次快速重新加载
  2. 加载之前的状态以检测哪些内容发生了变化
  3. 从磁盘重新加载翻译
  4. 新的/修改过的翻译被标记为未检查

这允许您在外部(例如,在您的集成开发环境(IDE)中)编辑翻译文件,并使这些更改自动反映在MCP服务器上。

发展

在本地运行

npm start

测试

运行综合测试套件:

npm test

测试套件包含41个自动化测试,涵盖:

  • 所有API响应格式
  • 分页功能
  • 自动保存功能
  • 特定于区域的删除
  • 不间断空格的应用
  • 未创建备份文件

看见 TESTING.md 翻译为中文是:“测试说明文件.md” 或者 “测试文档.md”(具体翻译可能根据上下文有所调整,但基本意思是“关于测试的说明/文档文件”)。这里,“.md”通常表示这是一个Markdown格式的文件 以获取详细的测试文档。

手动测试

服务器通过stdio使用MCP协议进行通信。您可以使用Claude Desktop或任何MCP兼容的客户端进行测试。

许可证

麻省理工学院(MIT)

做出贡献

欢迎贡献!请随时提交拉取请求。

支持

对于问题和功能请求,请使用 。

目录标签

目录标签

JavaScriptClaude云端部署翻译管理本地部署多语言支持JSON处理自动保存文件监控

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP