ツールが比較するもの
- Apple の書式:
%@、%1$@、%d、%ld、%lld、%.2f、%u、%i、%sを位置ごとに比較します。%%はテキストです。 - Flutter の ICU プレースホルダー:
{name}。pluralやselectの分岐内も対象です。
%e や %x のような珍しい変換は「20%en」のようなテキストをエラーと誤認しないよう、あえて無視しています。
ソース文字列と翻訳を貼り付けると、抜けた、名前が変わった、型が変わった、順序が入れ替わったプレースホルダーを検出します。Apple の書式(%@、%1$@、%lld)にも Flutter の ICU メッセージにも対応。無料・登録不要で、テキストがブラウザの外に出ることはありません。
比較はブラウザ内で行われ、何もアップロードされません。
LocalePilot は、すべての翻訳のプレースホルダー(%@、%1$@、%lld、ICU)を自動でソースと照合し、QA センターに一覧表示し、ブロッキングの問題が直るまで書き出しを止めるデスクトップアプリです。macOS 版を最終調整中です。メールアドレスを登録すると、リリース時にお知らせします。
%@、%1$@、%d、%ld、%lld、%.2f、%u、%i、%s を位置ごとに比較します。%% はテキストです。{name}。plural や select の分岐内も対象です。%e や %x のような珍しい変換は「20%en」のようなテキストをエラーと誤認しないよう、あえて無視しています。
%lld を %@ に置き換えると、整数をオブジェクトとして読むことになり、クラッシュのおそれがあります。%1$@、%2$@)。番号付きと番号なしの混在は未定義動作です。% d が指定子として読まれます。記号を二重にしてください:%%。{count} を {nombre} に変えると、Flutter ではすべてのロケールの API が変わります。これらのケースはiOS 書式指定子のガイドとICU プレースホルダーのガイドで詳しく解説しています。
このツールが比較するのはプレースホルダーだけです。番号のない 2 つの %@ が入れ替わっていても、訳文の質が悪くても検出できません。ICU のアポストロフィによるエスケープ(Flutter の use-escaping オプション)は解釈せず、'{' は波括弧として読みます。比較は 1 文字列ずつです。ファイル全体には、ARB 不足キーチェッカーか、すべてのキーをチェックするエディタを使ってください。
%@、%1$@(およびその他の位置)、%d、%ld、%lld、%.2f、%u、%i、%s です。%% はテキストとして扱います。%e や %x のような珍しい変換は意図的に無視しています。
書式文字列では「% d」が有効な指定子(スペースは printf のフラグ)になるため、「%lld % de remise」には引数 1 つに対して指定子が 2 つあることになります。「%lld %% de remise」と書いてください。
はい、すべての引数に番号を付ければ変えられます。%1$@ は 1 番目、%2$@ は 2 番目の引数で、文中のどこにあってもかまいません。1 つの文字列の中では、すべてに番号を付けるか、どれにも付けないかのどちらかです。
はい。波括弧で囲まれたプレースホルダーを、plural や select の分岐内も含めてソースと比較します。
いいえ。比較はページ内で行われ、リリース前の文字列も含めて何も送信されません。
このツールは文字列を 1 つずつ比較します。LocalePilot は macOS 版を最終調整中のデスクトップアプリで、ARB、.strings、.xcstrings ファイルのすべてのキーを比較し、ブロッキングの問題があれば書き出しを止めます。
LocalePilot は最終調整中です。メールアドレスを登録すると、リリース時にお知らせします。