Использование Localizable.strings в приложении iPhone - PullRequest
7 голосов
/ 02 марта 2010

Я скачал библиотеку three20:

http://three20.info/

И я открыл пример проекта TTCatalog, который поставляется с этой библиотекой:

http://img16.imageshack.us/img16/3183/screenshot20100302at752.png

Как видите, существует множество файлов Localizable.strings.

Когда я открыл симулятор iPhone и изменил его язык, например, на французский в настройках, текст на кнопке все еще остается на английском:

http://img69.imageshack.us/img69/9775/screenshot20100302at812.png

Я уже проверил, что определенно есть соответствующая запись для текста "See All" в Localization.strings французского языка.

Почему и как сделать так, чтобы он использовал файлы Localizable.strings?

(В этом примере проекта нет ни одного файла nib / xib)

EDIT:

После добавления следующего XML в Info.plist:

...
<dict>
...
    <key>CFBundleLocalizations</key>
    <array>
    <string>de</string>
    <string>en</string>
    <string>es</string>
    <string>fr</string>
    <string>it</string>
    <string>ja</string>
    <string>zh_cn</string>
    <string>zh_tw</string>  
    </array>
</dict>
...

Теперь работает!

1 Ответ

8 голосов
/ 02 марта 2010

Помогает ли эта тема http://groups.google.com/group/three20/browse_thread/thread/bee3d5525a32d476?

Текст в кавычках, если ссылка становится недоступной:

Для работы локализаций внутри комплектов ваше приложение должно иметь некоторые локализованные ресурсы, потому что доступные локализации определяются с помощью одного доступного в основном комплекте. Кроме того, вы можете добавить доступные локализации в качестве параметра в ваш Info.plist с помощью ключа 'CFBundleLocalizations'. Обратите внимание, что значение этого ключа должно быть массивом, что не поддерживается редактором Info.plist в XCode, вы редактируете файл «вручную», чтобы получить там локализации. Если вам нужна только одна локализация, вы можете просто установить ключ 'CFBundleDevelopmentRegion' на значение по вашему выбору.

...