1

プロジェクトのソース コード ファイルからファイルgenstringsを生成するために使用します。.stringsこのプロジェクトは技術的にはカプチーノアプリですが、この質問はファイルを使用するすべてのプロジェクトに等しく当てはまり.stringsます。

ローカライズしたいフォーマット文字列があります: @"%d:%02d %@". 時間値を表示するためのものです。これが OSX/iOS アプリの場合は、組み込みの日時書式を使用しますが、これはカプチーノなので、自分で作成する必要があります。実行するgenstringsと、そのキーに対して次の値が生成されます: "%1$d:%2$d %3$@".

これは、Localizable.stringsファイルに表示されるとおりです。

/* ShortLocalTimeFormat */
"%d:%02d %@" = "%1$d:%2$d %3$@";

このコマンドを実行して:genstrings -o Resources/en.lproj -s CPLocalizedString *.j */*.j

繰り返しますが、CPLocalizedString代わりにとNSLocalizedStringsを使用していることは無視してください。これらの値はカプチーノに適しているためです。結果のフォーマット文字列でinが破棄されることに注意してください。オプションを指定して再度実行すると、文字列がそのまま残ります: 。*.j*.m02%02d-noPositionalParametersgenstrings -o Resources/en.lproj -noPositionalParameters -s CPLocalizedString *.j */*.j

/* ShortLocalTimeFormat */
"%d:%02d %@" = "%d:%02d %@";

これは のバグgenstringsですか、それとも位置パラメータを保持しながらフォーマット文字列でフラグ/幅を使用することはできませんか?

4

2 に答える 2

0

これが Objective-C プロジェクトの場合、フォーマット文字列を に短縮し、"%1$@ %2$@"を使用しNSDateFormatterて時刻文字列を生成します。クラスが利用できない場合は、時間/分をローカライズされたフォーマット文字列に直接渡すのではなく、中間時刻文字列を自分で生成し、その文字列をローカライズされたフォーマット文字列のパラメーターとして使用します。

于 2010-12-21T06:01:06.000 に答える
0

このバグにも気付きました。それはあなただけではありません。ただし、%d指定子に対してのみ発生するようです—私が使用%02dしていて、に変わりますが%1$d、に%.02f変わり%1$.02fます。

バグを報告しました。

于 2010-12-30T22:43:31.380 に答える