2

私の iPhone アプリケーションでは、英語、スペイン語、ロシア語、中国語のローカライズを使用しています。ローカライズは、すべてのローカライズされた文字列に対して正常に機能します。しかし、UILocalizedIndexedCollat​​ionは中国語では機能しません。デバイスの言語を英語、スペイン語、ロシア語に変更すると、テーブル インデックスが正しく表示されます。しかし、デバイス言語を中国語に設定すると、テーブル インデックスが英語で取得され、同時にローカライズされた文字列は中国語そのものになります。

[[UILocalizedIndexedCollat​​ion currentCollat​​ion] sectionIndexTitles]

上記のコードは、中国語ローカライズ用に英語のアルファベットの配列を返しますが、他の 3 つの言語 (英語、スペイン語、ロシア語) には正しい文字配列を返します。

ローカリゼーションに次の .lproj ファイルを使用しています

  1. 英語 - en.lproj
  2. スペイン語 - es.lproj
  3. ロシア語 - ru.lproj
  4. 中国語 - zh_Hans.lproj

誰でも問題を見つけるのを手伝ってくれますか。

ありがとう。

4

1 に答える 1

4

Apple http://developer.apple.com/library/ios/#qa/qa1739/_index.html#//apple_ref/doc/uid/DTS40011151

UILocalizedIndexedCollat​​ion が実行時に使用するローカライズ データは、アプリケーション バンドルが使用しているローカライズに基づきます。アプリケーションが英語のみをサポートし、デバイスが繁体字中国語を使用するように設定されている場合、UILocalizedIndexedCollat​​ion は英語のセクション タイトルのみを表示し、行を "A" から "Z" および "#" セクションに並べ替えます。中国語のセクション タイトルとこれらのセクションへの行データの並べ替え。

これに対処するには、アプリケーション バンドルで、UILocalizedIndexedCollat​​ion でサポートする言語のサポートを適切に宣言する必要があります。適切な .lproj フォルダーを追加するか、アプリケーションの info.plist ファイルの CFBundleLocalizations キーでサポートされているローカライズを指定することにより、アプリケーション バンドルにローカライズを追加できます。将来、ローカライズされたリソースをアプリケーションに追加する必要がある場合に保守しやすいため、前者のアプローチが推奨されることに注意してください。

于 2012-07-17T13:55:19.160 に答える