最便宜且最有效的代理式编码 i18n
无钥匙i18n 您的编码代理第一次就能正确处理:只需编辑一个文件,无需加载本地JSON,无合并冲突,从每月4欧元起。
5分钟设置
你的完整i18n实现仅需5分钟。不是在开玩笑。
无钥匙系统
你的大脑不应该参与这样的无意义的任务。
从第一天开始全球化
不需要额外的努力就可以将产品运送到国际市场。
设置i18n,保持代码库整洁并快速发布
当前的i18n解决方案存在多个PITA。痛苦如此之大,以至于你尽可能推迟i18n。
它消耗了你应该在海滩上度过的时间
设置密钥系统:至少1小时高级开发人员时间
每个新密钥往返:每个密钥1分钟,x500密钥,x2语言=17小时
使用 i18n-keyless,您不需要关心 i18n 系统。您可以去海滩并点一杯莫吉托。
今天,大多数系统使用密钥来翻译文本
这很痛苦生成。这很痛苦维护。
当你在应用程序中看到一段文字,并且想要更新它时,你需要找到对应的键。
使用 i18n-keyless,你完全不需要关心 i18n 系统。把你的大脑用在更有趣的事情上。
将翻译留给AI
使用密钥系统,您需要在应用程序中管理翻译。
否则,您的用户将在应用程序中看到 someheader.welcome.title。
使用i18n-keyless,您完全不需要关心i18n系统。只需编写好的标题,专注于营销,获得销售。
代码库很美... 直到i18n键的感染
使用键系统时,读取代码和内容时,必须读取键,而不是自然语言。
有时,你需要做一个修正,因为一个句子在语法上是不正确的。但你不知道这一点,因为你读的是键。
使用i18n-keyless,你完全不需要关心i18n系统。代码库保持美观。
MCP 服务器,满足您所有的国际化需求
系统如此优化以支持智能编码的另外六个原因。
没有名字可发明
键是一个命名决策,没有正确答案。两个代理分别为同一个按钮写下 login.submit 和 auth.button.send。没有键,就没有决策可做。
编辑一个文件,而不是二十个
一个键控的更改会影响组件以及每个区域设置的JSON文件,代理会遗忘文件。在这里,复制更改是单个文件的编辑。
代理车队中零合并冲突
五个代理在五个分支上都编辑 en.json:冲突在所难免。没有共享文件,因此工作树和后台代理永远不会发生冲突。
代币便宜
要重复使用键,代理必须在每次编辑时将区域设置文件加载到上下文中。无键加载不做任何操作:文本直接存在于组件中。
可读差异
拉取请求显示真实的句子。人类或审查代理可以在不深入了解键代表什么的情况下判断副本。
您的 CLAUDE.md 中的一个规则
你编写的每一条 i18n 规则都是代理可能违反的规则。这一条只需要一行——而回退是真实文本,因此错误不会在屏幕上显示 a.b.c。
您的代理只需要的唯一 i18n 规则
# CLAUDE.md Write the UI copy in English and wrap it in <T>…</T> from i18n-keyless-react. That is the whole i18n setup.
从第一天开始全球发布
停止因复杂性而拖延i18n。在5分钟内实现,而不是几天。保持开发速度,就像i18n没有实现一样。
- 5分钟实施。不是开玩笑。
一个简单的配置对象,你就完成了。
- 保持开发速度
像i18n根本没有实现一样编码。
- 发货到全球市场
在扩展到新语言时,不需要重构。
- SSR 与 SEO 就绪
与 Next.js、Remix、TanStack Start 和 Astro 配合使用。为搜索引擎提供服务器端渲染的任何语言 — 相同的 5 分钟设置。
传统的i18n
i18n-keyless
设置非常简单
只需要最简单的配置对象,你就可以准备好全球化。
不仅如此,您的代理还会为您设置。
1. 基本设置
import * as I18nKeyless from "i18n-keyless-react";
I18nKeyless.init({
API_KEY: "YOUR_API_KEY",
storage: window.localStorage,
languages: {
primary: "en",
supported: ["en", "fr"],
},
});2. 组件使用(此处为 React;在 Vue、Angular、Flutter、Swift 和 Kotlin 中相同)
import { I18nKeylessText } from "i18n-keyless-react";
// import { T } from "i18n-keyless-react"; // also works
// Just write in your primary language
<I18nKeylessText>
Welcome to our website
</I18nKeylessText>3. 服务器端使用(此处为 Node.js;在 Laravel、Rails、Python 和 Go 中的相同调用)
import { awaitForTranslationOrFallbackToOriginal, type Lang } from 'i18n-keyless-node';
const title = await awaitForTranslationOrFallbackToOriginal('Come see my app!', user.lang as Lang);
const body = await awaitForTranslationOrFallbackToOriginal('So many new stuff!', user.lang as Lang);
await sendExpoPushNotification({ user, title, body });4. 组件外的文本
import { getTranslation } from "i18n-keyless-react";
export default function Navigation() {
return (
<HomeTabs.Navigator>
<HomeTabs.Screen
options={{ tabBarLabel: getTranslation("Welcome") }}
name="WELCOME"
/>
</HomeTabs.Navigator>
);
}5. 选择您的 SDK:一行安装,无处不在的相同 API
- React, React Native, Expo, Next.js, Remix, TanStack Start, Astronpm install i18n-keyless-react
- Vue, Nuxtnpm install i18n-keyless-vue
- Angularnpm install i18n-keyless-angular
- Plain HTML, Svelte, Alpine, htmx, one script tagnpm install i18n-keyless-browser
- Node.jsnpm install i18n-keyless-node
- Laravel, PHPcomposer require i18n-keyless/laravel
- Rails, Rubybundle add i18n-keyless-rails
- Flutter, Dartflutter pub add i18n_keyless
- Swift, iOS, macOS, VaporSwiftPM: arnaudambro/i18n-keyless-swift
- Kotlin, Android, Ktorio.github.arnaudambro:i18n-keyless-kotlin
- Python, Django, Flask, FastAPIpip install i18n-keyless
- Gogo get github.com/arnaudambro/i18n-keyless/ports/go/v3
翻译如何工作
i18n-keyless 是一个结合了 API 服务的库,它可以让你在不需要使用键的情况下翻译你的文本。
如果找不到翻译,将异步获取I18nKeyless的API,通过AI API调用获取翻译。
此操作通常在开发模式下进行,当您在编码时。如果你漏掉了一个,在生产环境中只有缺少翻译的第一个用户会看到一个闪烁,然后它将立即对全球用户可用。
您的商店列表在每种语言、每次发布时
每次更新都意味着新的发行说明、描述和关键词 — 每种语言在两个商店中都有。这就是阻止你添加语言的原因。不是应用本身。
- 为每种语言发布说明,通过一次调用
写一次更新。awaitForTranslation 会将其返回为您销售的每种语言,您的商店配置会将其传递给 EAS 或 fastlane。
- 48种语言,已映射到App Store的插槽
pt-BR 和 pt-PT 是两个列表;en-GB、en-AU 和 en-CA 是三个。toAppStoreLocale 将每个翻译放在正确的位置。
- 修复一个未发布的糟糕翻译
在应用中,仪表板中的一个覆盖一次只能激活一个——没有热修复构建,没有商店审核。在列表中,重新推送。
- 非按字计价
翻译大约每字收费0.10欧元。2000个字符串乘以10种语言,这是一个独立开发者无法承担的预算。在这里,字数不计算。
一个 Expo 应用的完整配方
// store.config.js — EAS Metadata awaits an async config
const { init, awaitForTranslation, toAppStoreLocale } = require("i18n-keyless-node");
const LANGS = ["en", "fr", "de", "ja", "pt-BR"];
const DESCRIPTION = "Bibi translates your app while you sleep…";
module.exports = async () => {
init({ API_KEY: process.env.I18N_KEYLESS_KEY, languages: { primary: "en", supported: LANGS } });
const info = {};
for (const lang of LANGS) {
info[toAppStoreLocale(lang)] = {
title: await awaitForTranslation("Bibi", lang, { context: "App Store app name, 30 characters max" }),
subtitle: await awaitForTranslation("Keyless i18n", lang, { context: "App Store subtitle, 30 characters max" }),
description: await awaitForTranslation(DESCRIPTION, lang, { context: "App Store description" }),
};
}
return { configVersion: 0, apple: { info } };
};相同的调用为 Google Play 写入 fastlane 元数据文件。大写字母仅供参考:在上下文中设置限制并在推送前检查长度。
互动沙盒
查看i18n-keyless如何实时工作
打开一个实时可编辑的 StackBlitz 项目,边输入边查看翻译的解析。
我为什么要建造这个
我总是推迟国际化,直到我的客户如此渴望,以至于我别无选择。我讨厌阅读代码中带有国际化键的内容,也讨厌维护JSON文件,就像讨厌看到国际化翻译服务提供商的高昂费用一样。所以我只能自己动手,而且我超爱这样。现在我的所有应用默认都支持国际化。
Arnaud Ambroselli
i18n-keyless 的创始人
简单、可预测的定价
一个固定价格,适合您的规模。
每个计划中的每个功能。
无按词收费,无代币计算。
每月最多1,000名活跃用户
适用于独立应用和新产品
每月最多5,000名活跃用户
为了找到受众的应用
每月最多50,000名活跃用户
适用于真正有吸引力的应用
最多50万月活跃用户
用于大规模生产的产品
或拥有它:免费安装,每次30欧元,无限制项目。
相同的API、仪表板和MCP服务器,在一个带有SQLite的Docker容器中,在您的服务器上,使用您自己的Mistral密钥。一个项目永久免费;€30的终身许可解锁无限项目。无订阅,无使用限制,终身更新。
每个计划都包括:
所有48种语言。整个世界,从第一天开始
无限制翻译,包括人工智能。新字符串在生产中自动翻译
用户生成内容(UGC)的实时翻译
随时升级、降级或取消
超过50万月活跃用户? 联系我们
同一款应用在其他地方的价格是多少
移动两个滑块。账单涵盖您的应用程序的所有48种语言版本。
| 解决方案 | 您的月度账单 | 您按每次支付 | 翻译 | 语言 |
|---|---|---|---|---|
| i18n-keyless我们 | €4/ 月 | 月活跃用户 双赢。 | 人工智能,无限,包含 | 全部48个,从第一天开始 |
| Crowdin | €88/ 月1 | 托管词汇:您的词 × 48 | Crowdin AI,配额内 | 你逐一添加 |
| Intlayer | €27/ 月2 | 座位和项目 | AI 生成,在配额内 | 你逐一添加 |
| Lingo.dev | €91/ 月3 | 基础费用,然后是AI代币 | AI账单直接发送给您 | 你逐一添加 |
| Locize | €77/ 月4 | 单词 × 48,以及 CDN 下载 | 你自带自己的AI密钥 | 最大已发布计划中的10 |
| Lokalise | €132/ 月5 | 座位,然后钥匙 | 翻译费用单独计费 | 你逐一添加 |
| Phrase | €483/ 月6 | 座位,然后是受管理的词 | 每字起价 $0.06,分开计费 | 你逐一添加 |
| Smartling | €552/ 月7 | 每一个词,每一种语言 | AI翻译,每词起价0.06美元 | 你逐一添加 |
| Tolgee | €49/ 月8 | 钥匙和座位 | 机器翻译署名 | 你填满每一个 |
| Weglot | €1,678/ 月9 | 单词 × 语言,在网页上 | 机器,在配额内 | 最大发布计划中的20 |
公开列表价格,于2026年8月阅读。供应商会更改这些价格,因此请检查。每张账单是我们对已发布阶梯的读取,我们总是选择能保留您的应用的最便宜付费计划。当供应商首次开具一次翻译费用时,我们会将其分摊十二个月。
1 Crowdin 每月发布 44 欧元,用于专业计划中的 60,000 个托管词,按年计费。一个托管词是目标语言中的一个词。超过 60,000 个词时,我们会重复该区块价格。
2 Intlayer 是开源的。每月 29 美元购买 CMS 和 AI 生成配额。超过配额后,您可以使用自己的 AI 密钥,因此我们会在每百万个 token 上额外收取 10 美元的模型费用,分 12 个月支付。
3 Lingo.dev 每月发布 99 美元,加上每百万基础设施代币额外 2 美元,并将模型账单转嫁给您。我们按每个单词 1.4 个代币和每百万模型代币 10 美元计算。基本费用是这个数字的大部分。
4 Locize 每月发布 7 欧元、19 欧元和 49 欧元,分别对应 15,000、30,000 和 60,000 字,以及 100 万、300 万和 500 万次 CDN 下载。超过后,每额外 1,000 字收费 0.50 欧元,每额外 100 万次下载收费 5 欧元。我们每月为每个用户计算 30 次下载。已发布的计划不包含 48 种语言。
5 Lokalise 每月发布 $144、$375 和 $999 版本,且无密钥限制。我们假设这三个计划分别包含 5,000、20,000 和 100,000 个密钥,以及每个密钥十二个单词。人工翻译另行计费。
6 该短语在软件计划中每月发布525美元用于管理100万字,以及300万字的1,245美元。我们为每种语言中的每个单词计算一个管理字,并将上述1,245美元区块重复用于300万字。
7 Smartling 不发布平台价格。我们仅计算AI翻译,按发布的每字0.06美元计算,分摊十二个月。您的实际账单更高。
8 Tolgee 按键计费,而不是按字数,因此我们将每个键视为十二个字。它每年计费,2,000 个键 €49,5,000 个键 €179,20,000 个键 €499。超过后,我们重复 €499 的区块。机器翻译积分单独计算。
9 Weglot 翻译的是网页,而不是应用程序。其最大的已发布计划是每月 699 欧元支持 20 种语言,因此我们将该价格扩展到 48 种语言。您的文字适用于这些计划中的每一个。
每隔一行都随着您的产品增长。我们的价格是固定的。
常见问题
我需要管理翻译文件吗?
不。没有 JSON 文件,没有键提取步骤,也没有构建时插件。您用源语言编写句子,SDK 在首次请求时将它们发送到 API,API 使用 AI 进行翻译,之后的每次请求都从缓存中提供。您的代码是唯一的真理来源。
当我更改源文本时会发生什么?
源文本是键。修改它,你会得到一个新的键,并获得全新的AI翻译。旧键将不再被请求,仪表板会在30天未使用后自动清理。修正拼写错误也是一样:在代码中修正它,部署,新文本将在首次请求时被翻译。
多少钱?
托管版:每月固定价格,按月活跃用户数收费 — 1,000用户以内4欧元,5,000用户以内9欧元,50,000用户以内29欧元,500,000用户以内99欧元 — 月结,随时取消。自托管版:免费安装,一个项目永久免费,30欧元一次性解锁无限项目,无订阅且无使用限制。两种版本均无按席位、按字数或按字符串的定价。
我可以导出我的翻译吗?
是的。仪表板有一个“导出 JSON”按钮,可将项目中的所有翻译下载为单个 JSON 文件。导出包括所有行,而不仅仅是最近 30 天使用的行,因此这是一个完整的备份。没有锁定:您的数据随时可通过一键访问。
观看演示
观看这段短视频,看看i18n-keyless的运作
获取一个应用的API密钥
5分钟完成的i18n实现。iykyk。