常见问题

开始之前,您需要了解的关于 i18n-keyless 的一切。

我需要管理翻译文件吗?

不。没有 JSON 文件,没有键提取步骤,也没有构建时插件。您用源语言编写句子,SDK 在首次请求时将它们发送到 API,API 使用 AI 进行翻译,之后的每次请求都从缓存中提供。您的代码是唯一的真理来源。

当我更改源文本时会发生什么?

源文本是键。修改它,你会得到一个新的键,并获得全新的AI翻译。旧键将不再被请求,仪表板会在30天未使用后自动清理。修正拼写错误也是一样:在代码中修正它,部署,新文本将在首次请求时被翻译。

多少钱?

自托管:完全免费,无限项目,无需订阅且无使用限制 — 安装 Docker 镜像,使用您自己的 AI 密钥。喜欢吗?请我喝杯咖啡!托管:每个项目每月固定价格,按月活跃用户计算 — 1,000 以内 4 欧元,5,000 以内 9 欧元,50,000 以内 29 欧元,500,000 以内 99 欧元 — 按月计费,随时取消。两种方案均无按座位、按字数或按字符串的定价。

我可以导出我的翻译吗?

是的。仪表板有一个“导出 JSON”按钮,可将项目中的所有翻译下载为单个 JSON 文件。导出包括所有行,而不仅仅是最近 30 天使用的行,因此这是一个完整的备份。没有锁定:您的数据随时可通过一键访问。

它支持哪些框架?

React、React Native、Vue、Svelte、Vanilla JS、Node.js、Ruby on Rails、Python、Go、Swift 和 Kotlin。每个 SDK 的工作方式相同:将文本包裹在翻译调用中,API 会返回当前语言的翻译。服务器 SDK 是线程安全的,并在内存中缓存翻译。

支持多少种语言?

48种语言,包括地区变体如zh-Hans / zh-Hant、en / en-GB、fr / fr-CA、pt / pt-BR和es / es-MX。阿拉伯语、希伯来语和乌尔都语也在列表中,因此从右到左的语言也能正常工作。在仪表板中单击即可为项目添加新语言。

它是否与服务器端渲染一起工作?

是的。Node.js SDK 使用 AsyncLocalStorage,因此您的加载器、head 函数和服务器组件可以在无需 React 提供者的情况下进行翻译。在客户端,React 提供者从服务器渲染的 HTML 进行水合。文档中提供了适用于 Next.js、Nuxt 和 TanStack Start 的分步指南。

这会减慢我的应用程序吗?

当首次请求一个新字符串时,API 会调用 AI 模型——短 UI 字符串大约需要半秒,段落则需要更长时间。之后的每个请求都从数据库提供,这是常规的缓存命中。SDK 还会在本地缓存翻译,因此返回的用户不会看到任何网络延迟。如果十个用户同时请求同一个字符串,只会发起一次 AI 调用。

如果服务中断会发生什么?

每个 SDK 都会在本地缓存翻译——在网页端使用 localStorage,在移动端使用 AsyncStorage,在服务器端使用内存。如果 API 无法访问,SDK 将提供缓存的翻译。您的用户将看到最后一次已知的翻译,永远不会看到空字符串。当 API 恢复时,SDK 会静默刷新。

它使用哪个AI提供商?

支持五个提供商:Mistral、OpenAI、Anthropic、Google,以及任何兼容 OpenAI 的端点,例如 Ollama、Groq 或 Together。操作员可以从仪表板或环境中选择提供商和模型。在 i18n-keyless.com 上默认使用 Mistral。自托管用户可以在本地运行 Ollama,并且不会向第三方发送任何内容。

我可以覆盖AI翻译吗?

是的。点击仪表板中的任意单元格,输入正确的文本,然后保存。修复是永久性的:API 永远不会覆盖手动设置的值。您还可以通过 API 或 MCP 服务器覆盖翻译,因此 AI 编码代理可以为您修复翻译。

我可以从 i18next 或其他库迁移吗?

是的。文档中有 i18next、react-intl 和 Lokalise 的分步迁移指南。API 有一个迁移端点,可以逐一导入您现有的翻译,无需 AI 调用,也不会产生任何费用。MCP 服务器也有相同的工具,因此 AI 代理可以为您完成迁移。

有免费计划吗?

自托管版本完全免费,支持无限项目——安装Docker镜像,使用您自己的AI密钥,并将数据保存在自己的服务器上。无时间限制,无功能门控。如果您不想运行服务器,托管计划从每个项目每月4欧元起。

源代码是否可用?

服务器、仪表板和 Docker 镜像在 GitHub 上以 Elastic License 2.0 发布。您可以阅读每一行代码、运行代码并修改它。SDK(如 React、Vue、Node、Rails 等)采用 MIT 许可证。唯一限制:您不得将软件作为托管服务提供给第三方。

一位维护者:如果项目停止会发生什么?

SDK 采用 MIT 许可证,并保留在 npm、PyPI、RubyGems 和其他注册表中。服务器在 Elastic License 2.0 下公开,且它们之间的协议已记录,因此任何人都可以运行、分叉或编写针对它的服务器。您的翻译会在任何时间以单个 JSON 导出文件保存。如果托管服务停止:已安装的应用会继续提供其缓存的翻译,新客户端会回退到源语言,而将 SDK 指向您自己的实例(通过 API_URL)即可恢复一切。您将失去的只是 i18n-keyless.com 上新字符串的 AI 翻译——而不是您的数据或应用。

阅读完整答案,包括代码
上下文难道不只是一个伪装的键吗?

不。每个字符串都必须有一个键,该键必须唯一,并且存在于你手动维护的全局命名空间中。上下文是可选的,仅附加到少数意义模糊的字符串上——比如“Close”可以指关闭窗口或“接近”距离——它描述的是含义,而不是字符串的名称。大多数字符串不带上下文。源文本始终作为查找依据,无论是否有上下文;两个相同的文本带有两个不同的上下文时,它们只是两行。

阅读完整答案,包括代码
我可以在拉取请求中审核副本吗?

是的。源字符串在代码中,因此任何措辞变更都是审核者在拉取请求中以普通语言(而非键名)阅读的差异。不在Git中的内容是其他语言的翻译:它存储在数据库中,就像任何翻译平台那样,你可以在仪表板中审核它,其中每个单元格的“已审核”标记将人工检查的内容与AI生成的内容区分开来,或在JSON导出中查看。

阅读完整答案,包括代码
为什么不选择同样开源的Tolgee呢?

Tolgee 是一个基于键的翻译平台,采用 Apache 2.0 许可。它支持上下文编辑、截图上下文和翻译记忆;如果你需要这些功能,或者需要翻译人员参与,这是一个不错的选择。i18n-keyless 没有键,没有区域设置文件,默认使用 AI 翻译(但 AI 不会重写手动覆盖),服务器采用 Elastic License 2.0,并集成 MIT SDK。此外,它还提供一个自托管镜像,可在单个容器中运行 SQLite。要进行上下文修复,请截图并将其提供给连接到 MCP 服务器的 AI 代理:它会找到字符串并覆盖翻译。文档中的对比页面将价格并排显示。

阅读完整答案,包括代码
自托管还是订阅:选择哪一个?

自托管:在您自己的服务器上使用完全相同的 Docker 镜像,完全免费且项目无限,拥有自己的 AI 密钥和本地数据。喜欢吗?给我打赏!订阅:我们运行它,更新自动进行,每个项目每月仅需 4 欧元起。如果您不想运行服务器,请选择订阅。

阅读完整答案,包括代码
如何处理动态值,例如姓名或计数?

使用替换选项。编写带有占位符的句子 — "你好 {name},你有 {count} 个项目" — 并在渲染时通过 replace 传递值:{ "{name}": userName, "{count}": String(n) }。AI 看到占位符并将其保留在每个翻译中。SDK 在运行时替换值。

我如何处理复数形式?

编写一个包含 {count} 的形式,其中数字会被替换,并将数字作为 count 传递。API 为每种语言存储一条 ICU 复数消息,包含该语言所需的确切形式——法语为两个,俄语为四个,阿拉伯语为六个——并通过 Intl.PluralRules 验证,SDK 会选择正确的形式。为排名添加序数(1st、2nd)。你永远不需要自己编写分支。

阅读完整答案,包括代码
我如何处理性别?

在 select 中传递值 — select={{ gender: "female" }} — 然后模型会为每个值在每种语言中写出一个变体,并考虑语言需求。值是封闭集合中的标识符,每个变量最多10个,每个句子最多2个变量;可以组合 select 和计数。像姓名这样的开放值仍然是替换。

阅读完整答案,包括代码
如何格式化日期、数字和货币?

SDK 不会格式化它们,而是由你的运行时处理。使用 Intl.DateTimeFormat 和 Intl.NumberFormat,结合 SDK 中的当前语言,然后用 replace 将结果插入句子。一句话,一句翻译,每种语言都有正确的格式。

阅读完整答案,包括代码
我可以自定义翻译提示吗?

不,你也不需要这样做。提示会读取每个键的上下文:这就是语气、受众和含义所在的地方,也是同一个词在不同地方翻译不同的原因。任何翻译都可以在仪表板中手动覆盖;API 永远不会覆盖你写的内容。

阅读完整答案,包括代码
它有用于AI编码代理的MCP服务器吗?

是的。API 也是一个 MCP 服务器,采用 OAuth 2.1 认证。AI 代理可以列出翻译、翻译字符串、覆盖值、导入现有翻译,并管理项目成员——与人类在仪表板中执行的相同操作。通过 Claude Code、Cursor、Windsurf 或任何兼容 MCP 的客户端连接它。

我可以用它来处理后端字符串和电子邮件吗?

是的。Node.js、Ruby on Rails、Python 和 Go SDK 在服务器上运行。像翻译 UI 字符串一样翻译邮件主题、错误消息或推送通知。服务器 SDK 会将翻译缓存在内存中并在后台刷新,因此它们不会增加请求的延迟。

我的整个团队可以一起处理翻译吗?

是的。从仪表板或通过API将团队成员添加到项目中。每个成员都可以查看所有翻译、覆盖任何值并添加语言。管理员创建项目并管理成员。没有按席位定价:根据需要添加任意数量的人员。

如何修复输入错误?

源文本就是键。修复源文本中的错别字后,你会得到一个新的键及其全新的翻译;旧字符串不再被请求,仪表板会在30天未使用后自动清理。翻译中的错别字:在仪表板中编辑单元格,修复将永久生效。

阅读完整答案,包括代码