Мое приложение, работающее на iPhone OS 4.0, больше не загружает локализованные ресурсы

У меня есть приложение для OS 3.0. Он локализован на китайский язык (помимо базовой поддержки английского).

Он отлично работает на всех устройствах с OS 3.0, 3.1.x, даже на iPad с 3.2. То есть, когда я выбираю китайский язык в настройках системы, приложение будет показывать ресурсы на китайском языке. Локализация работает в самом приложении, в пакете настроек и в названии приложения на главном экране. (И, конечно, если система настроена на английский язык, мое приложение будет показывать ресурсы на английском языке)

Однако при запуске на 3GS + OS4.0 он всегда показывает ресурсы на английском языке, независимо от того, какой язык я выбрал в настройках системы. Само приложение всегда показывает английский язык, набор настроек находится на английском языке, а в названии приложения на главном экране также отображается английская версия.

Я пробовал много вещей, таких как перезапуск устройства, переустановка приложения, добавление CFBundleLocalizations в info.plist и т. Д. Никакой помощи.

Что я сделал не так, что могло привести к сбою локализации в OS4.0 (хотя все еще работает в 3.x)?

Вот моя структура папок локализации, которая, на мой взгляд, вполне нормальная:

+---en.lproj
|       InfoPlist.strings
|       Localizable.strings
|
\---zh.lproj
        InfoPlist.strings
        Localizable.strings

Спасибо заранее за любые предложения.


person samsonsu    schedule 26.06.2010    source источник
comment
Попробуйте переименовать его в zh_CN.lproj (или zh_TW.lproj). Это помогает?   -  person kennytm    schedule 27.06.2010
comment
Спасибо, Кенни. На самом деле это работает путем добавления суффикса _CN / _TW. Так что пока я могу решить эту проблему. Однако я не могу найти ни одного документа Apple, в котором упоминается это изменение. в версии 3.0 отлично работает только zh, и пользователи CN и TW будут видеть один и тот же набор китайских ресурсов. Но в 4.0 мы должны добавить региональные идентификаторы? Согласно документу Apple, операционная система iPhone должна учитывать только lproj с идентификатором языка, например zh.lproj. См. developer.apple.com/iphone/library/documentation/MacOSX/   -  person samsonsu    schedule 28.06.2010