Flutter の ARB ファイルをローカル AI で翻訳

LocalePilot は ARB の文字列を、Ollama や LM Studio を通じてお使いのマシン上で動くモデルに送り、書き出し前にすべてのプレースホルダーをチェックします。Mac 上で動くモデルならテキストは Mac の外に出ず、ローカル AI は無料版にも含まれています。

アプリの画面

デモプロジェクトで撮影した LocalePilot の実際の画面です。

LocalePilot の AI 一括翻訳ウィンドウ:プロバイダーから Ollama を選択、ローカルモデル gemma3:12b を検出、対象はすべてのターゲット言語と未訳または空のエントリ。
AI 一括翻訳:ローカルモデルで 11 セルを英語から 4 言語へ 画像を原寸で開く
LocalePilot の QA センター:種類ごとにまとめた問題、フランス語訳で欠けているプレースホルダーをブロッキングとして表示、ソースとターゲットを並べて表示し、修正または承認の操作。
レビュー:QA が見つけた問題をまとめて、その場で修正 画像を原寸で開く

使い方

  1. lib/l10n フォルダを開く:LocalePilot が app_xx.arb ファイルを見つけ、@@locale、次にファイル名から言語を読み取り、ソース言語を提案します。
  2. モデルを選ぶ:設定で、マシン上で検出された Ollama または LM Studio を選びます。
  3. 不足キーを翻訳する:1 つの言語、またはすべてのターゲット言語を対象にできます。プロジェクトのコンテキストと @key の説明がリクエストに含まれ、Pro では用語集も含まれます。
  4. レビューする:提案はすべて「要レビューの AI 下書き」として届きます。承認するか、編集します。
  5. 書き出す:変更されたファイルは @key メタデータを保ったまま書き戻され、以前のバージョンはバックアップされます。

ICU プレースホルダーはそのまま

モデルは {count} を {nombre} に訳してしまったり、{name} を落としたりすることがあります。LocalePilot の QA は、すべての翻訳のプレースホルダーをソースと照合します。対象は ICU({name}、plural、select)と {{name}} です。不一致は書き出しを止める問題として扱われ、修正するか明示的に無視するまでファイルは書き出されません。

デフォルトはローカル、必要ならクラウド

ローカル AI は無料で、すべてのバージョンに含まれています。Pro では、OpenAI、Anthropic、Gemini、DeepSeek を自分の API キーで使うこともできます。その場合、リクエストに必要な文字列だけが、選んだプロバイダーに送られます。

よくある質問

Ollama で翻訳するのに GPU は必要ですか?

いいえ。ただし速度はマシンと選んだモデルによって変わります。LocalePilot はインストール済みのローカルモデルにリクエストを送るだけで、モデル自体は同梱していません。

ARB ファイルがどこかに送信されますか?

Ollama や LM Studio で Mac 上のモデルを使う場合は送信されません。クラウドモデル、リモートサーバー、クラウドプロバイダー(Pro)には、各リクエストの文字列がキー名、説明、近くのキーなどの文脈とともに送信されます。

@key のメタデータは保持されますか?

はい。@key で宣言された説明とプレースホルダーは書き出し時に保持され、AI へのコンテキストとしても使われます。

リリース時にお知らせを受け取る

LocalePilot は最終調整中です。メールアドレスを登録すると、リリース時にお知らせします。

  • macOS 12 以降 · Ollama または LM Studio は任意
  • アプリの表示言語は英語、フランス語、スペイン語、イタリア語、ポルトガル語です。