告别手动搬砖: JoyCode + i18n-mcp 实现前端项目多语言自动化

京东云开发者
• 阅读 0

作者:王元

1. 背景与痛点:存量代码的“多语言噩梦”

在前端开发中,将一个成熟的中文存量项目进行国际化多语言(i18n)改造,往往面临着以下困境:

•工作量巨大: 项目包含数百个 .vue/.js/.ts 等文件,散落着成千上万个硬编码的中文字符串。

•人工易错: 手动提取容易遗漏,且极其枯燥,极易产生 Copy/Paste 错误。

•命名困难: 为每一个中文词条想一个语义化的英文 Key(如 homePageTitle)不仅耗时,而且难以保证团队风格统一。

•维护成本高: 翻译文件(zh.ts/en.ts)的维护和代码中的替换需要同步进行,稍有不慎就会导致报错。

如果按照传统的人工查找替换方式,预计需要耗费数周的人力。为了打破这一僵局,我决定利用 JoyCode 结合我开发的 i18n-mcp 工具,打造一套自动化的国际化多语言解决方案。



2. 解决方案:JoyCode + i18n-mcp

我基于 MCP (Model Context Protocol) 开发了一个工具 i18n-mcp,通过 JoyCode 的 AI 能力来调度和执行以下三个核心步骤,实现了从“提取”到“替换”的全链路自动化。

流程图

以下是i18n-mcp的流程图(由JoyCode生成)

告别手动搬砖: JoyCode + i18n-mcp 实现前端项目多语言自动化

核心流程拆解

第一步:智能提取中文与去重

i18n-mcp 自动扫描所有源文件。利用正则或 AST(抽象语法树)精准识别代码中的中文字符串(包括 Template、Script 和 JSX 部分)。

•全量扫描(full-project-scan工具): 文件过多的时候,全量扫描会有问题。可以通过指定文件夹的方式,扫描该文件夹下面的文件。

•增量扫描(git-change工具):针对git变更的文件,进行扫描。精准定位变更文件,仅处理本次变更涉及的代码,大幅提升效率。

•智能去重: 对提取出的文本进行去重,确保相同的中文文案(如“确认”、“取消”)只生成一个 Key,避免冗余。

第二步:AI 辅助翻译与文件生成

•翻译缓存: 优先查询 数据存储层 中的 Translation Cache,已翻译过的文案直接复用,显著降低 Token 消耗并加速流程。

•自动化翻译: 提取的中文列表没有在缓存中或zh文件中的,被发送给 LLM,自动翻译成英文。

•语义化 Key 生成: 区别于传统 Hash 值,LLM 根据代码上下文(Context)自动生成符合语义的 Key(如将“请输入密码”生成为 pleaseInputPassword),提升代码可读性。

•文件落地: 自动在 lang 文件夹下生成标准的 zh.tsen.ts 文件。



生成示例: zh.ts: { "pleaseSelect": "请选择" } en.ts: { "pleaseSelect": "Please Select" }





第三步:一键代码替换

•变更预览 (Preview): 在实际修改前,可调用 preview-changes 工具展示即将变更的代码对比,确保修改符合预期。

•AST 节点替换: 使用 extract-and-replace 工具,将源代码中的硬编码字符串精准替换为国际化方法(如 $t('pleaseSelect'))。

•无损格式保持: 基于 AST 的替换策略能够完美保留原代码的缩进、换行和注释,修改后的代码无需二次 Lint 即可直接提交。





3. 成果与收益:从“数周”到“数小时”

通过引入 JoyCode + i18n-mcp 的实践,我在项目的国际化改造中取得了显著的成效:

📊 定量收益

维度 传统人工方式 JoyCode + i18n-mcp 提升幅度
单页面改造耗时 约 10-30 分钟 < 1 分钟 效率提升 90%+
词条遗漏率 质量显著提升
变量命名耗时 需人工构思 AI 秒级生成 完全自动化

💡 定性收益

1.解放生产力: 从枯燥的“搬运工”工作中解脱出来,可以专注于业务逻辑和核心功能的开发。

2.代码规范统一: AI 生成的 Key 风格高度统一(全驼峰),避免了“千人千面”的命名混乱。

3.可维护性增强: 建立了自动化的语言包管理机制,后续新增词条只需运行脚本即可。



4. i18n-mcp开发

i18n-mcp是我首次开发MCP,整体难度相对较低。对于前端部分,基于github模板进行开发,随后发布至公司NPM私服即可。

核心代码主要由JoyCode的编码功能协助完成。按照上述核心流程步骤通过问答交互的方式,引导JoyCode完成核心代码的开发工作。

整个i18n-mcp架构图如下所示(架构图亦由JoyCode生成)。

告别手动搬砖: JoyCode + i18n-mcp 实现前端项目多语言自动化



MCP配置如下

{
  "mcpServers": {
    "i18n-mcp": {
      "autoApprove": [],
      "disabled": true,
      "timeout": 180,
      "command": "npx",
      "type": "stdio",
      "transportType": "stdio",
      "args": [
        "-y",
        "@jd/i18n-mcp@latest"
      ],
      "env": {}
    }
  }
}

效果

配置之后,输入prompt “调用i18n-mcp的auto-i18n-process方法”

效果如下:

告别手动搬砖: JoyCode + i18n-mcp 实现前端项目多语言自动化

5. 总结

尽管目前 i18n-mcp 仍存在一些不足,例如在全面扫描大量文件时可能出现连接错误、翻译和替换结果不够准确等问题,仍需人工进行二次校验,但其在短时间内辅助开发的价值依然显著。在本次实践过程中,我主要通过 JoyCode 的交互式问答完成开发工作。JoyCode 不仅在代码补全方面发挥了重要作用,更凭借其强大的智能调度和自动化执行能力,成为高效处理复杂任务的核心中枢。结合 i18n-mcp 的开发,AI技术的深度赋能得以充分体现,大幅提升了开发的效率。

后续,我将持续研究 AI 在前端开发中的落地场景,充分发挥 AI 辅助开发的强大能力。通过深入探索和应用 AI 技术,进一步释放其在业务创新与效率提升方面的巨大潜力。

点赞
收藏
评论区
推荐文章
烽烟 烽烟
4年前
vue+ts项目对app类型限制
描述做一个tsvueelementplus项目的时候总是有警告消除警告1.将src/plugins/element.js文件后缀名改成ts2.在element里面还要对脚手架现有的代码进行类型限制在element.ts中引入jsimportAppfrom'vue'在element.ts中对参数app和函数返回值进行类型限制jse
Easter79 Easter79
4年前
springboot2之优雅处理返回值
前言最近项目组有个老项目要进行前后端分离改造,应前端同学的要求,其后端提供的返回值格式需形如{"status":0,"message":"success","data":{}}方便前端数据处理。要实现前端同学这个需求,其实也挺简单的,
徐小夕 徐小夕
5年前
《精通react/vue组件设计》之用纯css打造类materialUI的按钮点击动画并封装成react组件
前言作为一个前端框架的重度使用者,在技术选型上也会非常注意其生态和完整性.笔者先后开发过基于vue,react,angular等框架的项目,碧如vue生态的elementUI,antdesignvue,iView等成熟的UI框架,react生态的antdesign,materialUI等,这些第三方UI框架极大的降低了我们开发一个项目的成本和
Wesley13 Wesley13
4年前
ThinkPhp多语言如何实现你了解过吗?
❝最近项目比较忙,就没有怎么写文章。本文主要内容为多语言的后台是如何实现的。❞前言公司需要写一个多语言后台,以前也没做过,于是到面向百度了一下。这是用了TP框架俩年了,第一次发现框架是自带的多语言切换功能。这里着实给点一个赞。接下来我们来实现一下这个功能。一、后台实现多语言使用框架为
Stella981 Stella981
4年前
Gitalk
Gitalk是一个基于GithubIssue和Preact开发的评论组件。特性使用Github登录支持多语言\en,zhCN,zhTW\支持个人或组织项目无干扰模式(设置distractionFreeMode为true开启)
liam liam
3年前
这个API文档,太拽了吧!
一、前言在当前主流的前端后端分离模式开发下,拥有一个接口文档并且是好用的接口文档是很有必要的一个东西。PS:😖以下观点是真实开发场景下碰到并且悟出来的痛点。1.在项目的开发过程中,有一个接口文档的存在能让前端后端工程师保持的数据信息概念是统一的。例如:”项目需求的接口字段,参数字段。所有只要请求的返回参数记录到文档中的情况后,前后端工程师编写代码的同时就能
陈哥聊测试 陈哥聊测试
1年前
你在测试金字塔的哪一层(上)
在准备将软件上线到生产环境之前需要进行测试。随着软件测试方式日趋成熟,软件开发团队的测试也在取代大量手动测试,逐渐实现自动化测试。
系统国际化之多语言解决方案| 京东物流技术团队
1.背景随着京东各业务板块国际化进程的不断推进,诸多业务已经融入了多元文化中,一个一体化的多语言系统解决方案成为各个技术团队讨论的焦点。国际物流系统凭借在国际化领域多年的经验,特别是在系统多语言处理上长期的经验积累,总结了一套标准的系统多语言框架,旨在为大
幂简集成 幂简集成
1年前
程序员喜欢的7个免费公共API
本文介绍七个程序员喜爱的免费公共API,涉及天气、翻译、数据等多领域。如用于测试的JSONPlaceholder,多语言翻译的GoogleTranslate,提供天气数据的OpenWeatherMap等。这些API易用且功能全,助力开发者实现项目需求,还提及相关文章系列。