2

在我的 iphone 应用程序中,我使用英语、西班牙语、俄语和中文本地化。本地化适用于所有本地化字符串。但是UILocalizedIndexedCollat​​ion 不适用于中文。当我将设备语言更改为英语、西班牙语和俄语时,表格索引显示正确。但是当我将设备语言设置为中文时,我得到的是英文的表索引,同时本地化的字符串本身就是中文的。

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

上面的代码为中文本地化返回一个英文字母数组,而它为其他三种语言(英语、西班牙语和俄语)返回正确的字符数组。

我正在使用以下 .lproj 文件进行本地化

  1. 英语 - en.lproj
  2. 西班牙语 - es.lproj
  3. 俄语 - ru.lproj
  4. 中文 - zh_Hans.lproj

谁能帮我找出问题所在。

谢谢。

4

1 回答 1

4

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

UILocalizedIndexedCollat​​ion 在运行时使用的本地化数据将基于您的应用程序包正在使用的本地化。如果您的应用程序仅支持英文,并且设备设置为使用繁体中文,则 UILocalizedIndexedCollat​​ion 将仅显示英文部分标题并将行排序到“A”到“Z”和“#”部分,即使 UILocalizedIndexedCollat​​ion 能够提供繁体中文中文节标题和将行数据排序到这些节中。

为了解决这个问题,您的应用程序包必须正确声明对您希望 UILocalizedIndexedCollat​​ion 支持的语言的支持。您可以通过添加适当的 .lproj 文件夹或通过在应用程序的 info.plist 文件中的 CFBundleLocalizations 键中指定支持的本地化来将本地化添加到应用程序包中。请注意,首选前一种方法,因为如果将来需要将本地化资源添加到您的应用程序中,它更易于维护

于 2012-07-17T13:55:19.160 回答