Xcode の String Catalog(.xcstrings)を編集・翻訳

LocalePilot は iOS・macOS アプリの Localizable.xcstrings を開き、言語ごとに足りないものを表示し、書式指定子をチェックし、変更した部分だけに触れて Xcode と同じ書式でカタログを書き戻します。

LocalePilot が読み書きするもの

  • 未翻訳:ローカライズがない、new 状態、または空。LocalePilot は空の値を書き込みません。翻訳を消すと、Xcode と同じようにそのローカライズが削除されます。
  • 複数形とデバイス別バリエーションは編集でき、key › plural › one のように表示されます。
  • ソース言語:ローカライズのないキーはキーそのものを意味し(Xcode の慣例)、編集するまで書き換えられません。
  • 状態:変更していない値は状態(needs_review など)を保ち、編集した値は translated になります。

Xcode の書式のまま、最小限の差分

変更のないカタログを書き戻すと、バイト単位で同一のファイルになります。編集は該当する行だけを変更します。そのためコードレビューで差分を追いやすく、書き出しは他のフォーマットと同じくレビュー、ディスクとのマージ、バックアップを経ます。

書式指定子のチェック

QA は %@、%1$@、%d、%ld、%lld、%.2f、%u、%i、%s を認識し、%% はテキストとして扱います。翻訳で指定子が欠けていたり余分だったりすると、書き出し前に検出されます。

既知の制限

  • shouldTranslate: false が付いたキーと置換(%#@count@)を使うキーは、手を加えずに保持されますが表示されません。これらは引き続き Xcode で管理します。
  • String Catalogの翻訳先カテゴリは、ソースになくても各言語のCLDR規則に従います。ソースにないカテゴリはother形式を参照し、翻訳先で使わないカテゴリは書き出しません。
  • 従来の .strings ファイルにも UTF-8 で対応しています。.strings に新しい言語を追加すると <locale>.lproj フォルダが作られ、Xcode プロジェクトへの追加が必要です。LocalePilot は書き出しの概要でそれを知らせますが、.pbxproj を編集することはありません。Xcode 16 の同期フォルダを使うプロジェクトでは追加は不要です。

よくある質問

String Catalog の編集で LocalePilot は Xcode の代わりになりますか?

いいえ、併用するツールです。Xcode がコードから文字列を抽出し、LocalePilot でそれをチェック、翻訳、レビューします。どちらも同じ .xcstrings ファイルを読み書きします。

ファイルが整形し直されてしまいませんか?

いいえ。変更せずに書き戻したカタログはバイト単位で同一です。編集は該当する行だけを Xcode の書式で変更します。

複数形に対応していますか?

はい。複数形とデバイス別バリエーションは編集できます。置換(%#@count@)は保持されますが、編集は引き続き Xcode で行います。

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

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

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