プレースホルダーとタグ
ソースと同じセット。追加も翻訳もされません。ICU、i18next、MessageFormat 2。
fr "Bon retour, {nom} !"
glot により拒否: Placeholder `{nom}` does not exist in the source; remove it or fix its name (the source only has {name}).
オープンソース · MIT · 独自の LLM キーを持ち込み
コーディングエージェントが、ハードコードされた文字列をキーに移行して翻訳します。glot は決定論的なコードで LLM の出力をすべて検証し、壊れているもの、長すぎるものは正しい理由とともに拒否します。再試行が有効になるまで続けます。
i18n スタックを検出し、文字列を抽出して翻訳し、チェックします。UIを変更するたびに再実行してください。
ベンチマーク、2026年10月18日
モデルと条件ごとに320件のICUメッセージ、8ロケール。プロンプトとモデルは同一。
| モデル | 生のプロンプト | glot使用時 |
|---|---|---|
| Claude Haiku 5.5 | 14.1% | 0% |
| Claude Sonnet 5.5 | 8.8% | 0% |
使い方
または3つすべてを一度に、冪等に実行: npx glot-i18n localize。
i18n ライブラリとカタログを検出し、glot.toml とコーディングエージェントが読むルールを書き出します。
$ npx glot-i18n init
next-intl · messages/{locale}.json
wrote glot.toml, CLAUDE.md rules
ハードコードされた UI 文字列をキーに移行し、next-intl または react-i18next 用にコンポーネントを書き換えます。
$ npx glot-i18n i18nize
42 strings → keys in 9 components
app/checkout/page.tsx +12 −12
差分のみ。各出力は検証され、拒否された場合は理由とともにモデルに戻されます。再試行後も無効な場合は、何も書き込まれません。
$ npx glot-i18n translate
✗ refused pl inbox.unread: missing few, many
✓ fixed pl attempt 2 · check passed
保証の内容
各カードは、glot が出力するそのままの、実際の拒否例を表示しています。
ソースと同じセット。追加も翻訳もされません。ICU、i18next、MessageFormat 2。
fr "Bon retour, {nom} !"
glot により拒否: Placeholder `{nom}` does not exist in the source; remove it or fix its name (the source only has {name}).
対象ロケールに必要なすべてのカテゴリ:ポーランド語は4つ、アラビア語は6つ。
pl "{count, plural, one {…} other {…}}"
glot により拒否: `{count, plural, …}` is missing plural categories required by pl: few, many.
リポジトリ内の用語集ファイル glossary.toml:必須翻訳と禁止翻訳、翻訳対象外の用語。
fr "Ouvrez votre espace"
glot により拒否: Glossary: `Workspace` must be translated as `Espace de travail` in fr.
お使いのアプリの実際のフォントとボックスで計測します。幅が広すぎる場合は拒否され、切り詰められることはありません。
de "Zahlungserinnerung an den Kunden senden"
glot により拒否: Too wide for its box in the app: one line of 120px at Geist 14px/400; it renders 276px wide.
glot.lock はソースとターゲットをハッシュ化します。差分だけを翻訳し、手動編集は決して上書きされません。
$ glot translate --locales fr
glot により拒否: 1 edited by hand
glot check はすべてのルールをオフラインで全カタログに対して実行し、PRアノテーション付きで終了コード 1 で終了します。
$ glot check --format github
glot により拒否: ::error file=messages/de.json,line=12,title=glot tag_mismatch::[de] home.cta: Markup tags differ from the source: missing `<b>`
ピクセル予算
ドイツ語は英語より約3分の1長くなります。glot fit は、各ロケールで実行中のアプリを描画し、すべてのテキストをそのボックスに対して計測し、意味とプレースホルダーを保つ短いバリアントを求め、そして再描画します。
"Zahlungserinnerung senden"
"Mahnung" · claude-haiku-5-5 · $0.0002
デモアプリでの実行例、ドイツ語ロケール。
インストール不要で試せます
翻訳を編集してください。glot の翻訳を検証するのと同じバリデーターを WebAssembly にコンパイルしたものが、キー入力のたびにブラウザー内で実行されます。
壊れた翻訳から始める
バリデーターを読み込んでいます…
まだ拒否はありません。チャレンジを試してください。
ピクセル幅と用語集には、お使いのアプリとリポジトリが必要です。CLI でお試しください。
エージェント
glot mcp を使うと、エージェントはキー、その使用箇所、用語集を参照できます。エージェントが追加するすべての文字列は同じバリデーターを通ります。
アプリ内編集
開発用オーバーレイが、クリックしたテキストの背後にあるキーを特定し、すべてのロケールで表示しつつ、リアルタイムのバリデーター問題を示し、カタログファイルに保存します。


glot が、ホスト型翻訳プラットフォームや他の開発者向けツールとどう異なるか。
| 機能 | glot | Lokalise | Crowdin | Lingo.dev | Tolgee |
|---|---|---|---|---|---|
| 価格 | 無料(MIT)+ お使いの LLM の利用料 | 月額 $149 から、14日間の試用 | 14日間の試用後は有料プラン、オープンソースは無料 | 自分のキーで使う CLI は無料、ホスト型エンジンは基本料金 $0 + 使用量 | 無料プランとセルフホストは無料、クラウドは月額 €58 から |
| オープンソース | |||||
| 独自の LLM キーを使用 | |||||
| すべての文字列を決定論的に検証 | |||||
| Git を信頼できる唯一の情報源(ロックファイル) | |||||
| コーディングエージェント向けの MCP サーバー | |||||
| アプリ内でのインコンテキスト編集 | |||||
| 描画済みピクセル予算による調整 |
2026年10月18日時点で、各社の公開サイトとドキュメントを確認しました。「一部」は、機能が限定的、プランによって異なる、または連携経由で提供されることを意味します。「なし」は、公開ドキュメントにその機能が見当たらなかったことを意味します。プランは変更されることがあるため、すべてのセルは出典にリンクしています。
glotはMITライセンスで無料です。LLMプロバイダーへの支払いは、お客様自身のキーで行います。当社の実行では、既定のモデルで850件の文字列のコストは$0.035でした。glot translate --dry-runで事前に見積もれ、予算を設定すると上限を設けられます。
いいえ。アプリは next-intl、i18next、FormatJS をプレーンなJSONカタログと一緒にそのまま使用します。glotはリポジトリとCI内のファイルに対して動作します。
glotは失敗の正確な理由を送り返して2回再試行し、その後フォールバックモデルを試します。それでも失敗した場合は何も書き込まれず、そのキーは拒否として報告され、未翻訳のままになります。
翻訳対象の文字列とそのコンテキストは、お使いのLLMプロバイダーに送信されます。ソースファイルは送信されません。glotの開発元に送られるものはなく、テレメトリもありません。
いいえ。CLIとMCPサーバーですべてのジョブをローカルで処理します。アプリは、チーム向けの共有ダッシュボード、レビュー、GitHub同期を追加します。