mcpField
B
better-i18n

better-i18n

github.com/better-i18n开发8191 次安装24 周前更新
代码仓库

关于 better-i18n

better-i18n 是面向现代应用的本地化基础设施技能,覆盖翻译管理、内容和发布流程。它为多种框架提供 SDK,并可通过 MCP 工具辅助管理翻译键与译文。

主要功能

  1. 01多框架 SDK 与工具
  2. 02CLI 扫描及同步翻译键
  3. 03CDN 或 GitHub 发布译文
  4. 04CMS 管理本地化内容
  5. 05分析覆盖率与本地化健康度

适用场景

  1. 01扫描代码中的硬编码文本
  2. 02检查翻译覆盖率和键同步
  3. 03将译文发布到 CDN 或 GitHub

MCP 相关

提供 MCP 工具,用于 AI 辅助的翻译键和译文管理;另有 @better-i18n/mcp 与 @better-i18n/mcp-content 软件包。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/better-i18n/skills --skill better-i18n

安装后在 Claude Code 中输入/better-i18n确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
cdn.md
cli.md
content.md
file-formats.md
github-sync.md
key-naming.md
mcp.md
publish-and-analytics.md
sdk-mobile.md
sdk-next.md
sdk-react.md

详细介绍

better-i18n — 面向现代应用的本地化基础设施。CMS + TMS + CDN + AI + MCP。 控制台:https://better-i18n.com · 文档:https://docs.better-i18n.com · CDN:https://cdn.better-i18n.com · Skills:https://github.com/better-i18n/skills

软件包版本

软件包版本安装
@better-i18n/next0.7.2npm install @better-i18n/[email protected]
@better-i18n/use-intl0.5.0npm install @better-i18n/[email protected]
@better-i18n/core0.5.0npm install @better-i18n/[email protected]
@better-i18n/expo0.7.5npm install @better-i18n/[email protected]
@better-i18n/sdk3.2.0npm install @better-i18n/[email protected]
@better-i18n/cli0.2.6npx @better-i18n/[email protected]
@better-i18n/mcp0.15.5npx -y @better-i18n/[email protected]
@better-i18n/mcp-content0.8.1npx -y @better-i18n/[email protected]

安装前请务必在 npm 上查看最新版本。

SDK 选择

框架软件包参考文档
Next.js(App Router 或 Pages Router)@better-i18n/next<references/sdk-next.md>
React + TanStack Router / use-intl@better-i18n/use-intl<references/sdk-react.md>
Hono / Node.js 服务@better-i18n/server<references/sdk-react.md>
Remix / Shopify Hydrogen@better-i18n/remix<references/sdk-react.md>
React Native / Expo@better-i18n/expo<references/sdk-mobile.md>
Swift(iOS / macOS / visionOS)通过 SPM 使用 BetterI18n<references/sdk-mobile.md>
Flutter / Dartbetter_i18n pub.dev<references/sdk-mobile.md>
无头 / Vanilla JS@better-i18n/core<references/sdk-react.md>

框架快速入门

框架文档页面
Next.js App Routerhttps://docs.better-i18n.com/frameworks/nextjs.mdx
TanStack Start(SSR)https://docs.better-i18n.com/frameworks/tanstack-start.mdx
Vite + Reacthttps://docs.better-i18n.com/frameworks/vite.mdx
Vite + React Routerhttps://docs.better-i18n.com/frameworks/vite/react-router.mdx
Remix / Hydrogenhttps://docs.better-i18n.com/frameworks/remix.mdx
Expo / React Nativehttps://docs.better-i18n.com/frameworks/expo.mdx
iOS / Swifthttps://docs.better-i18n.com/frameworks/ios.mdx
Flutter / Darthttps://docs.better-i18n.com/frameworks/flutter.mdx
Hono / Node.jshttps://docs.better-i18n.com/frameworks/server-sdk/hono.mdx
Express / Fastifyhttps://docs.better-i18n.com/frameworks/server-sdk/node.mdx
tRPChttps://docs.better-i18n.com/frameworks/server-sdk/trpc.mdx
Supabase Edgehttps://docs.better-i18n.com/frameworks/server-sdk/supabase.mdx

工作流选择

任务方案参考
上传 JSON 文件,无需 GitHubCDN 优先<references/cdn.md>
基于 GitHub PR 同步翻译GitHub App + 发布流程<references/github-sync.md>
借助 AI 管理键和翻译MCP 工具<references/mcp.md>
本地化 CMS 内容(博客、文档、页面)内容 CMS + SDK<references/content.md>
扫描代码库中的硬编码字符串CLI scan<references/cli.md>
检查翻译覆盖率和键同步情况CLI sync / check<references/cli.md>
全面分析 i18n 健康状况并评分CLI doctor<references/cli.md>
定义键命名和命名空间结构键约定<references/key-naming.md>
选择 JSON 文件格式文件格式<references/file-formats.md>
将翻译发布到 CDN 或 GitHub发布流程<references/publish-and-analytics.md>
跟踪覆盖率、健康趋势、CDN 用量分析<references/publish-and-analytics.md>
格式化日期、数字、货币、相对时间格式化<references/sdk-react.md>
根据国家/地区或 Accept-Language 检测区域设置地理位置检测<references/cdn.md>
类型安全的 t("key") 自动补全TypeScript<references/sdk-react.md>
在发布/键变更事件发生时触发 Webhook出站 Webhook<references/publish-and-analytics.md>

编写任何代码前,请先阅读相关参考资料。

关键规则(适用于所有场景)

  • 项目标识符始终为 "org/project",例如 "acme/dashboard" 或 "stripe/web"
  • CDN 上的区域设置代码采用小写 BCP 47 格式:"pt-BR" → "pt-br"。构建 CDN 路径前务必调用 normalizeLocale()。
  • 单例——createI18n(Next.js)、createServerI18n、createRemixI18n、createI18nCore 必须在模块作用域中实例化一次。切勿在函数、请求处理程序或组件内实例化。
  • createKeys 与 updateKeys——createKeys 只会创建新键。对现有键使用它会导致虚假键不断累积(有记录的事故:一次操作中产生 1,005 个重复键)。务必先通过 listKeys 获取键 ID,再调用 updateKeys。
  • CDN 始终返回 HTTP 200——检查 JSON 正文中的 { fallback: true },而不是 HTTP 状态码。
  • CDN 路径中的默认命名空间 → "translations"——命名空间 "default" 在内部存储为 "translations"。对于扁平键项目,请使用 null 命名空间。
  • 免费开始使用——所有 SDK 和 CLI 均为开源。付费方案可解锁更多语言、历史记录和团队功能。

评论

支持 Markdown