自託管

無痛的i18n,擴展到您自己的視野 無需花費 數千美元。

完全免費。無限制專案,支援全部48種語言,無到期時間,無需授權金鑰。

永久免費
€0永遠

無限制專案。全部48種語言。無到期時間。

  • 所有48種語言,無限次翻譯
  • 儀表板、MCP 伺服器、每個 SDK
  • 無需購買,無需輸入,只需您的AI密鑰
免費安裝
給我小費
你喜歡它嗎?

i18n 現在毫不費力,你可以親身體驗。我不介意為此獲得小費。

  • 當你感受到它
  • 如果你願意的話
  • 從1美元到100萬美元,不超過

由 Stripe 提供安全付款。授權金鑰會送到您的收件匣——它會在儀表板中靜音捐贈提示。

你得到的

  • 無限專案,支援48種語言,永不過期
  • 無限制翻譯,無使用上限
  • 儀表板,您的代理的MCP伺服器,每個SDK
  • 一個容器,一個用於備份的SQLite檔案
  • 離線檢查的許可證:您的伺服器從不呼叫家庭
  • 每次更新,終身受益:docker compose pull

你帶來的東西

  • 一台帶有Docker的機器:一個4歐元的VPS就足夠了
  • 一個AI API金鑰(Mistral、OpenAI、Anthropic、Google或任何與OpenAI相容的提供商)。翻譯在您自己的帳戶上運行,每個應用只需幾美分
  • 五分鐘

支援透過電子郵件提供,盡最大努力。需要有人待命嗎?託管計劃就是為您準備的。

它如何運行

安裝,建立管理員,貼上您的AI金鑰。每個專案永久免費。

使用 ONCE — 一個新伺服器、一個網域、五分鐘

curl -fsSL https://get.once.com | sh
once   # add an app: ghcr.io/ambroselli-io/i18n-keyless:latest, pick a host name
# then open it: create the admin, paste your AI key on Settings
# fully free, unlimited projects — donate if you want
# ONCE does the domain, the TLS, the updates and the backups

使用 Docker Compose — 任何執行 Docker 的機器

mkdir i18n-keyless && cd i18n-keyless
curl -fsSL https://i18n-keyless.com/self-hosted/docker-compose.yml -o docker-compose.yml
docker compose up -d
# → http://localhost:1800: create the admin, paste your AI key on Settings
# fully free, unlimited projects — donate if you want

然後將您的 SDK 指向您的伺服器:

I18nKeyless.init({
  API_KEY: "your-project-key",
  API_URL: "https://i18n.example.com",
  // …
});

完整指南: https://docs.i18n-keyless.com/docs/guides/self-hosting

為什麼捐款?

因為你自己管理VPS和AI API金鑰。我沒有理由向你收取訂閱費。我自己也討厭訂閱。所以,改為:你來決定這個軟體對你的價值,而我繼續開發它。

該圖像免費安裝並運行無限項目,支援所有語言且無到期時間。

購買前的問題? 寫信給我們

設置 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 系統。程式碼庫依然保持優雅。

從第一天開始添加 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.

您的代理可以操作它,而不僅僅是撰寫它

透過MCP伺服器,代理會列出缺失的翻譯,讀取其中一條,覆蓋錯誤的翻譯,或匯入你已有的副本——使用其自帶的OAuth登入,無需貼上任何金鑰。

閱讀MCP指南
完美適合 MVP

自第一天起全球啟動

不要因為複雜性而延遲 i18n 的實施。5 分鐘內完成,而不是幾天。保持你的開發速度,就好像沒有實施 i18n 一樣。

  • 5分鐘實現。不是開玩笑。

    一個簡單的配置物件,你就完成了。

  • 維持開發速度

    假裝 i18n 完全沒有實作一樣編寫程式碼。

  • 運往全球市場

    擴展到新語言時無需重構。

  • SSR 與 SEO 已就緒

    與 Next.js、Remix、TanStack Start 和 Astro 搭配使用。為搜索引擎伺服器端渲染任何語言 — 相同的 5 分鐘設置。

傳統 i18n

設置密鑰系統(1小時)
建立翻譯檔案(2小時)
重構元件 (4 小時)
測試所有語言(2小時)
修復佈局問題(3小時)
超過12小時的工作

i18n-無鍵

新增套件(1 分鐘)
使用 API 金鑰進行配置(2 分鐘)
包裹文字元件 (2 分鐘)
5分鐘的工作
它如何運作

設置這個一點兒都不費腦筋

只需最簡單的配置物件,您就可以準備好邁向全球。
而且更多,您的代理會為您設定。

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

為每個十二個 SDK 快速設置

翻譯如何運作

i18n-keyless 是一個函式庫,結合 API 服務,讓您無需使用金鑰即可翻譯文字。

如果找不到翻譯,將會異步呼叫 I18nKeyless 的 API,透過 AI API 獲取翻譯。

此操作通常在開發模式下進行,當您正在編碼時。如果您錯過了一個,在生產環境中,只有第一個缺少翻譯的用戶會看到一個小故障,然後它會立即在全球用戶中可用。

App Store 與 Google Play

您的商店列表在每種語言、每次發行時

每次更新都代表新的發行說明、描述和關鍵字 — 每種語言在兩個商店中都有。這就是阻止你添加語言的原因。不是應用程式本身。

  • 為每種語言發布說明,透過一次呼叫

    寫一次更新。awaitForTranslation 會將其返回為您銷售的每種語言,您的商店配置會將其傳遞給 EAS 或 fastlane。

  • 48種語言,已對應到App Store的插槽

    pt-BR 和 pt-PT 是兩個列表;en-GB、en-AU 和 en-CA 是三個。toAppStoreLocale 將每個翻譯放在正確的位置。

  • 修復一個未發布的糟糕翻譯

    在應用程式中,儀表板中的一個覆蓋一次只能啟用一個——沒有熱修復構建,沒有商店審核。在列表中,重新推送。

  • 非按字計價

    翻譯大約每字收費0.10歐元。2,000個字串乘以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文件,就像討厭看到國際化翻譯服務提供商的高昂費用一樣。所以我只能自己動手,而且我超愛這樣。現在我的所有應用預設都支援國際化。

AA

Arnaud Ambroselli

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 天使用的列,因此這是一個完整的備份。沒有鎖定:您的資料隨時可透過一鍵存取。

一位維護者:如果專案停止會發生什麼事?

SDK 採用 MIT 授權,並保留在 npm、PyPI、RubyGems 和其他註冊表中。伺服器在 Elastic License 2.0 下公開,且它們之間的協議已記錄,因此任何人都可以運行、分叉或編寫針對它的伺服器。您的翻譯會在任何時間以單個 JSON 匯出檔案保存。如果託管服務停止:已安裝的應用會繼續提供其快取的翻譯,新客戶端會回退到原始語言,而將 SDK 指向您自己的實例(透過 API_URL)即可恢復一切。您將失去的只是 i18n-keyless.com 上新字串的 AI 翻譯——而不是您的資料或應用。

閱讀完整答案,包括程式碼
自己嘗試

觀看演示

觀看這段短片,了解 i18n-keyless 的實際運作