UILocalizedIndexedCollat​​ion 不显示汉字

Posted

技术标签:

【中文标题】UILocalizedIndexedCollat​​ion 不显示汉字【英文标题】:UILocalizedIndexedCollation not showing chinese characters 【发布时间】:2012-07-16 16:59:15 【问题描述】:

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

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

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

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

    英语 - en.lproj 西班牙语 - es.lproj 俄语 - ru.lproj 中文 - zh_Hans.lproj

谁能帮我找出问题。

谢谢。

【问题讨论】:

【参考方案1】:

苹果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 键中 文件。请注意,前一种方法是首选,因为它更容易 维护是否需要将本地化资源添加到您的应用程序 未来

【讨论】:

不确定您是否帮助了提问者,但指向 Apple 文档的链接正是我正在寻找的信息,谢谢。

以上是关于UILocalizedIndexedCollat​​ion 不显示汉字的主要内容,如果未能解决你的问题,请参考以下文章

UILocalizedIndexedCollat​​ion 和非英文索引

UILocalizedIndexedCollat​​ion 区域设置不同于英语

使用 UILocalizedIndexedCollat​​ion sectionForObject:collat​​ionStringSelector 的动态选择器

带有字符串数组的 UILocalizedIndexedCollat​​ion

如何在 UILocalizedIndexedCollat​​ion 中将汉字排序为#

带有索引 UITableViewController 和 UILocalizedIndexedCollat​​ion 的 NSFetchedResultsController