news 2026/9/1 9:32:08

Claude Code Router 多语言 i18n 配置:新增一门语言只动 2 个文件的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Code Router 多语言 i18n 配置:新增一门语言只动 2 个文件的完整指南

Claude Code Router 多语言 i18n 配置:新增一门语言只动 2 个文件的完整指南

【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router

Claude Code Router 是统一管理多个 AI Agent 的本地控制平面,其管理界面内置了中英文国际化(i18n)多语言能力。如果你的需求是"给界面加一门日语或韩语",最短路径是:2 个文件、2 行配置、0 处组件改动。下面从一个真实问题讲起——到底要动哪几处,动到什么程度算够。

一、先定位:界面里的文字是从哪来的

这一步你会得到一个明确结论:界面文案只集中在两个 JSON 文件和一个初始化文件里,组件本身不存任何翻译。

Claude Code Router 的国际化基于 i18next 框架。运行时的逻辑链条只有三段:

  1. LanguageDetector插件读取浏览器语言偏好,决定当前语言;
  2. resources对象把各语言 JSON 文件挂载进 i18next;
  3. 组件通过useTranslation钩子拿到t函数,用键名换取对应语言的文案。

组件里不写死任何界面文字,写死的只有键名。这决定了改语言的边界:翻译在数据文件里,逻辑在初始化文件里,组件永远不用碰

二、新增一门语言的最短路径:只加不改

这一步你会拿到从零到可用的完整操作清单——以日语为例,全程不修改任何现有代码。

第 1 步:创建语言文件。新建ui/src/locales/ja.json。先完整复制ui/src/locales/en.json的键结构,再逐条替换 value 为日语。注意:键照抄,只改值,任何一条键的增删都会导致界面出现未翻译的裸键名。

第 2 步:在初始化文件里注册。打开ui/src/i18n.ts,改动只有 2 行——一段 import,加上 resources 里的一行登记:

import ja from "./locales/ja.json"; resources: { en: { translation: en }, zh: { translation: zh }, ja: { translation: ja }, // 新增的 1 行 },

第 3 步:构建验证。把浏览器语言环境切到日语(或在地址栏手动指定语言),刷新页面。LanguageDetector会自动识别到已注册的ja并启用,无需额外配置。

这条路径的价值在于"只加不改":en.jsonzh.json和所有 React 组件一行不动,现有中英文用户零感知。

三、翻译键地图:键怎么组织、怎么安全地新增与改名

这一步你会看清键的层级规则,以及一个改名操作前后要同步的完整清单。

翻译键是两层结构:

  • 第一层:功能模块,如commonapplogin
  • 第二层:模块内的具体文案,如titledescriptionsave

命名用 snake_case,且同一把键在所有语言文件里必须完全一致——i18next 靠键对齐来切换语言,键不一致等于这条文案在该语言下失踪。

新增键很简单:在app下加一行"welcome": "欢迎回来,{{name}}",然后组件里t("app.welcome")即可。但改名是另一回事,改前 / 改后对比:

// 改前:扁平命名 { "login": { "api_key_input": "API Key" } }
// 改后:按语义归位 { "login": { "apiKey": "API Key" } }

一次改名要同步 3 处:en.jsonzh.json(以及你新加的任何语言文件)、所有引用t("login.api_key_input")的组件。所以规则只有一条:上线后不轻易改键名,宁可新增同义键,也不批量重命名

四、让它更聪明:自动检测、回退与参数化

这一步你会用到 3 个进阶能力:不用用户手动选语言、缺翻译不露馅、一句话模板适配多个值。

语言自动检测。LanguageDetector从浏览器的navigator.language读取偏好,用户装好日语环境后无需任何设置。个别场景需要强制指定时,1 行代码:

i18n.changeLanguage("zh");

回退语言fallbackLng初始化时配置了fallbackLng: "en",意味着日语文件里哪怕漏了一条app.save,界面会显示英文 "Save" 而不是键名app.save。新增小语种时这层兜底非常关键——你可以先交付一个"日语 + 英文补丁"的半成品,不阻塞上线。

参数化翻译。动态内容不要拼接字符串,用 i18next 的{{name}}占位符:

{ "app": { "welcome": "欢迎回来,{{name}}" } }
t("app.welcome", { name: userName });

模板写在语言文件里、变量写在调用处,各语言可以按自己的语法调整语序和敬语,代码侧完全不用分支判断。

五、🔍 i18n 排错速查表

这一步你得到一个对照表:90% 的国际化问题都能在这里对号入座。

现象可能原因解法
界面显示裸键名(如app.save组件里的键与语言文件中的键拼写不一致对照en.json逐字符核对键名
新语言切了不生效,仍显示英文新语言没在resources里注册检查i18n.ts的 import 与登记行
某条新文案是英文只在部分语言文件里加了条目en.json为基准补齐所有语言
切换语言后布局溢出、换行错乱中日英文本长度差异大容器用自适应宽度,不要写死像素
界面原样显示{{name}}调用t()时参数名与占位符不一致对齐t("app.welcome", { name: ... })的变量名
改完语言文件后界面不更新浏览器缓存或构建产物未刷新强制刷新页面或重新构建

六、收尾:一句话价值 + 关键文件

Claude Code Router 的多语言支持把翻译收敛成"数据问题":新语言是加文件,不是改逻辑,这也是它能低成本扩展到更多语言的底层原因。

关键文件一览:

  • 官方文档:README.md
  • i18n 初始化配置:ui/src/i18n.ts
  • 英文语言文件:ui/src/locales/en.json
  • 中文语言文件:ui/src/locales/zh.json
  • 项目背景:blog/zh/项目初衷及原理.md

【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 9:29:41

Claude Code Router 智能路由快速上手:新手完整配置教程

Claude Code Router 智能路由快速上手:新手完整配置教程 【免费下载链接】claude-code-router One local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control. 项目地址: https://git…

作者头像 李华
网站建设 2026/9/1 9:28:19

PC 微信防撤回与多开如何搞定:RevokeMsgPatcher 实测完整指南

PC 微信防撤回与多开如何搞定:RevokeMsgPatcher 实测完整指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://git…

作者头像 李华
网站建设 2026/9/1 9:24:18

DeepTutor:AI 个性化辅导学习工作区,三步本地跑起来

DeepTutor:AI 个性化辅导学习工作区,三步本地跑起来 【免费下载链接】DeepTutor DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/. 项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor DeepTutor 是一个可自托管…

作者头像 李华
网站建设 2026/9/1 9:23:42

ArcGIS 10.2.2动态表格扩展模块:实现分幅图图廓表格批量自动刷新

简介:Mapping and Charting Solutions(资源一)是ArcGIS 10.2.2环境下的动态表格扩展模块,主要面向GIS开发工程师、制图人员以及需要在地图中加入交互式表格的中高级用户,用来弥补ArcGIS原生属性表在动态展示、联动查询…

作者头像 李华
网站建设 2026/9/1 9:23:20

基于SpringBoot的知识分享平台设计与实现(源码+文档+部署+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华