iOSの.stringsファイルを翻訳する
.stringsファイルは"key" = "value";のリストで、valueには%@のようなフォーマット指定子が含まれます。KAERISは値を翻訳し、すべての指定子が残っているかをチェックします。
KAERISはこのページを翻訳し、すべての行を逆翻訳して確認しました。ネイティブスピーカーによるレビューはまだ行われていません。 英語原文
.stringsファイルの構造
1行に1つの"key" = "value";、注釈は/* … */。値は引用符や改行をバックスラッシュでエスケープします。複数形はここにはなく、Xcodeは.stringsdictやString Catalogを使い、KAERISは.stringsと.xcstringsを読みます。
/* Greeting on the home screen */ "welcome" = "Welcome back, %@!"; "items_count" = "%1$d of %2$d items synced"; "quote" = "Press \"Done\" to continue.";
.strings翻訳で注意すべき点
%@と位置指定子
%@、%d、%1$dはプレースホルダーです。語順が変わる言語では位置指定子が引数の正しい順序を保ちます。変更や欠落は検出されます。エスケープ
値内の
\"や\nは正しく読み書きされるため、翻訳内の引用符が文字列の終了を意味しません。注釈はソースに残る
/* … */コメントは翻訳ファイルに引き継がれず、翻訳ファイルには1行の言語コメントが付きます。翻訳者への文脈はソースファイルに残してください。長さ
ドイツ語やフィンランド語は英語より長くなることが多いです。ボタンなどで重要なため、翻訳が元より大幅に長い場合はチェックで警告されます。
実際の実行例:ドイツ語に翻訳しチェック
実際の実行例、2026年10月27日、手動編集なし:kaeris translate Localizable.strings --langs deをkaeris 0.2.35で4秒、モデルはopenai/gpt-4.1-mini(サービスのフォールバックモデルがこのジョブに応答)。以下に書き出したドイツ語ファイルとkaeris checkの結果を示します。
/* de */ "welcome" = "Willkommen zurück, %@!"; "items_count" = "%1$d von %2$d Elementen synchronisiert"; "quote" = "Drücken Sie \"Fertig\", um fortzufahren.";
$ kaeris check --source Localizable.strings --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
KAERIS が行うこと
キーと順序は保持
すべてのキーが翻訳された値とともに書き戻されます。
指定子のカウント
失われたり変更された
%@や%1$dはモデルなしでも検出されます。この形式の無料チェック
無料チェックページの/checkはこの形式を読み込み、キーやアカウントなしで実行できます。ターミナルコマンド
kaeris checkも同様に読み込みます:kaeris 0.2.35以降の13形式すべてに対応し、同じルールでどこにも送信しません。
3ステップで実行する
CLIをインストールする
pip install kaerisを実行します。ファイルを翻訳する
kaeris translate en.lproj/Localizable.strings --langs de,jaを実行してください。結果をチェックする
ソースと翻訳を無料チェックページにアップロードしてください。
pip install kaeris kaeris translate en.lproj/Localizable.strings --langs de,ja --verify
よくある質問
%@ と %1$d は保持されますか?
はい。翻訳後にソースと比較して、失われたり変更されたフォーマット指定子はフラグが立てられます。上記の実際の実行では %@、%1$d、%2$d がすべて戻ってきました。
複数形はどうなりますか?
.strings には複数形の構文はありません。Xcode は複数形を .stringsdict または String Catalog に保持します。KAERIS はカタログを読み込み、言語ごとに複数形を展開します。詳しくは .xcstrings ページ をご覧ください。
無料ですか?
はい、アカウントなしで:ファイルあたり 10,000 文字、実行あたり最大 8 言語。無料の API キーでファイル制限が 50,000 文字に引き上げられます。一度限りの生涯プランは 79 ドルで、ご自身の OpenRouter キーを使用します。月額プランは 19 ドルから。 料金
ターミナルや CI から実行できますか?
はい。pip install kaeris の後、kaeris translate en.lproj/Localizable.strings --langs de,ja を実行します。iOS も参照してください。GitHub Action はプルリクエストで同じ翻訳を実行します。CLI ドキュメント · GitHub Action
続ける
CLIリファレンス · チェックリファレンス · ブラウザで翻訳 · 無料チェック · フォーマット変換 · 疑似ローカリゼーション
その他のフォーマット: JSON · YAML · .po · ARB · XLIFF · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML