痛みのないi18n、あなた自身の視野に拡張 数千ドルを費やすことなく。
完全に無料。無制限のプロジェクト、すべての48言語、有効期限なし、ライセンスキー不要。
無制限のプロジェクト。全48言語。有効期限なし。
- すべての48言語、無制限の翻訳
- ダッシュボード、MCPサーバー、すべてのSDK
- 購入するものは何もありません。AIキーを入力するだけです
i18nは今では簡単になりました。体験できます。それに対してチップをもらうのも構いません。
- 感じた時
- 気が向いたら
- 1ドルから100万ドルまで、それ以上ではありません
Stripeによるセキュアな支払い。ライセンスキーが受信トレイに届きます — ダッシュボードの寄付プロンプトをミュートします。
あなたが手に入れるもの
- 無制限のプロジェクト、48言語すべて、有効期限なし
- 無制限の翻訳、使用制限なし
- ダッシュボード、エージェント用のMCPサーバー、すべてのSDK
- 1つのコンテナ、バックアップ用の1つのSQLiteファイル
- オフラインで確認されたライセンス: サーバーが決してホームに呼び出すことはありません
- 毎回のアップデート、一生涯:docker compose pull
あなたが持ってくるもの
- Dockerを搭載したマシン:4ユーロのVPSで十分です
- AI APIキー(Mistral、OpenAI、Anthropic、Google、またはOpenAI互換のプロバイダー)。翻訳はご自身のアカウントで実行され、アプリごとに数セントの費用がかかります
- 5分
サポートはメールで行われ、最大限の努力をします。誰かを呼び出しに待機させたいですか?ホストされているプランはあなたのためのものです。
どのように動作しますか
インストールして、管理者を作成し、AIキーを貼り付けます。すべてのプロジェクトは永久に無料です。
ONCE で — 新しいサーバー、ドメイン、5分
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システムのことを全く気にする必要がありません。コードベースは美しく保たれます。
MCPサーバーで、i18nのニーズをすべてカバー
エージェント型コーディングに最適化されたシステムであるその他6つの理由。
名前を考える必要はありません
キーは正解のない命名の決定です。2つのエージェントが同じボタンに対して login.submit と auth.button.send を記述します。キーがなければ、決定することはありません。
編集するファイルは1つだけ、20個ではありません
キーに基づく変更は、コンポーネントとすべてのロケールJSONファイルに影響を与え、エージェントはファイルを忘れます。ここで、コピー変更はシングルファイルの編集です。
エージェントフリートにおけるマージコンフリクトなし
5つのブランチにいる5人のエージェントが全員en.jsonを編集します:確実な競合。共有ファイルはないため、ワークツリーとバックグラウンドエージェントは決して衝突しません。
トークンが安い
キーを再利用するには、エージェントが編集のたびにロケールファイルをコンテキストにロードする必要があります。キーなしのロードは何も行いません。テキストはコンポーネント内に直接存在します。
読みやすい差分
プルリクエストは実際の文章を表示します。人間またはレビュー担当者は、キーが何を表すかを掘り下げることなく、コピーを判断できます。
あなたの CLAUDE.md にある1つのルール
あなたが書くすべての i18n ルールは、エージェントが破る可能性のあるルールです。このルールは 1 行だけで済みます — そしてフォールバックは実際のテキストなので、ミスが画面に 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サーバーを通じて、エージェントは不足している翻訳をリストアップし、1つを読み込み、悪い翻訳を上書きするか、すでに持っているコピーをインポートします。独自のOAuthログインで、キーを貼り付ける必要はありません。
MCP ガイドを読む最初の日からグローバルにリリース
複雑さのためにi18nを遅らせるのを止めてください。5分で実装し、日でなく。i18nが実装されていないかのように開発速度を維持してください。
- 5分で実装。冗談じゃないよ。
1つのシンプルな設定オブジェクトで完了です。
- 開発速度を維持する
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 を選択してください:1 行のインストール、どこでも同じ 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コールで翻訳を取得します。
この操作は通常、開発モードで行います。コーディング中です。もし一つ見逃した場合、本番環境では翻訳が不足している最初のユーザーだけがグリッチを見ます。その後、世界中のユーザーに即座に利用可能になります。
すべての言語、すべてのリリースにおけるあなたのストア一覧
各アップデートは新しいリリースノート、説明、およびキーワードを意味します — 各言語、両方のストアで。それが言語を追加するのを妨げる理由です。アプリ自体ではありません。
- すべての言語のリリースノートを、1回の呼び出しで
更新を一度書いてください。awaitForTranslation は販売している各言語でそれを返し、ストアの設定が EAS または fastlane にそれを送信します。
- 48言語がApp Storeのスロットにマッピングされています
pt-BR と pt-PT は2つのリストです。en-GB、en-AU、en-CA は3つです。toAppStoreLocale は各翻訳を正しい場所に配置します。
- リリースなしで悪い翻訳を修正する
アプリ内で、ダッシュボードの1つの上書きが一度にライブになります。ホットフィックスビルドはなく、ストアレビューもありません。リストで、プッシュを再実行します。
- 単語ごとの価格ではありません
翻訳者は1語あたり約0.10ユーロを請求します。10言語の2,000の文字列は、一人開発者には予算的に負担が大きすぎます。ここでは単語はカウントされません。
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プロジェクトを開いて、入力しながら翻訳が解決されるのを確認します。
なぜこれを作ったのか
私は常にi18nを先延ばしにしていましたが、クライアントがそれをそれほどまでに望むようになり、選択の余地がなくなりました。i18nのキーが含まれたコードを読むのが嫌いですし、i18n翻訳プロバイダーがどれだけ高価かを見るのと同じくらいJSONファイルのメンテナンスが嫌いです。だから自分で作るしかなくなり、私はそれに夢中です。今では私のすべてのアプリがデフォルトでi18n化されています。
Arnaud Ambroselli
i18n-keylessの創設者
よくある質問
翻訳ファイルを管理する必要がありますか?
いいえ。JSONファイルはありません。キー抽出ステップもビルド時プラグインもありません。ソース言語で文章を書き、SDKが最初のリクエストでそれらをAPIに送信します。APIがAIで翻訳し、その後のリクエストはすべてキャッシュから提供されます。あなたのコードが唯一の真実の源です。
ソーステキストを変更するとどうなりますか?
ソーステキストはキーです。変更すると、新しいキーと新鮮なAI翻訳が得られます。古いキーは単にリクエストされなくなり、ダッシュボードは30日間使用されないとクリーンアップします。タイプミスの修正も同じです。コードで修正してデプロイすると、新しいテキストは最初のリクエストで翻訳されます。
いくらですか?
セルフホスト: 完全に無料、無制限のプロジェクト、サブスクリプション不要で使用制限もなし — Dockerイメージをインストールし、独自のAIキーを使用します。気に入りましたか? tip me! ホスト版: プロジェクトごとの月額固定料金(月間アクティブユーザー数に応じて) — 1,000まで4€、5,000まで9€、50,000まで29€、500,000まで99€ — 月額請求、いつでも解約可能。どちらのプランも、席数、単語数、文字列ごとの課金はありません。
翻訳をエクスポートできますか?
はい。ダッシュボードには「JSON をエクスポート」ボタンがあり、プロジェクト内のすべての翻訳を 1 つの JSON ファイルとしてダウンロードします。エクスポートには、過去 30 日間に使用されたものだけでなく、すべての行が含まれるため、完全なバックアップとなります。ロックインはありません。データは常に 1 クリックで利用できます。
メンテナー1人:プロジェクトが停止したらどうなりますか?
SDKはMITライセンスの下にあり、npm、PyPI、RubyGems、その他のレジストリで利用可能です。サーバーはElastic License 2.0の下で公開されており、その間のプロトコルは文書化されているため、誰でも実行、フォーク、またはサーバーを書くことができます。翻訳は常に1つのJSONエクスポートに保存されます。ホストされているサービスが停止した場合:インストール済みのアプリはキャッシュされた翻訳を引き続き提供し、新しいクライアントはソース言語にフォールバックし、SDKをAPI_URLで自身のインスタンスに向けることで全てが復元されます。失うのは、i18n-keyless.com上の新しい文字列のAI翻訳だけです。データやアプリ自体ではありません。
完全な回答をコードと共に読むデモを観てください
この短い動画を見て、i18n-keylessの動作を確認してください