Лучший способ использовать строки в iOS - PullRequest
2 голосов
/ 24 января 2012

Я новичок в кодировании в Objective-C, но я из мира разработки мобильных приложений на Java. В Android мы используем строковый ресурс, а затем указываем на них в классе Java. Есть ли в iOS аналогичный процесс, который мы должны использовать, или мы «жестко закодировали» строки в файлах реализации? Я еще не нашел хорошего учебника, использующего файл локализуемой строки (и .strings).

Ответы [ 2 ]

6 голосов
/ 24 января 2012

Вы можете использовать макрос NSLocalizedString из Foundation, чтобы получить локализованную строку. Читайте здесь: http://www.icanlocalize.com/site/tutorials/iphone-applications-localization-guide/

Пример: создание двуязычного (англо-французского) приложения. Всякий раз, когда вы сталкиваетесь со строкой, которая будет отображаться пользователю, используйте NSLocalizedString вместо фактической строковой константы. Например:

вместо

self.title = @"Welcome";

использование

self.title = NSLocalizedString(@"Welcome");

Создайте две директории в вашем комплекте приложений следующим образом:

MyApp.app
    English.lproj
        Localizable.strings
    French.lproj
        Localizable.strings

В первом файле Localizable.strings вы можете записать пары ключ-значение, например:

"Welcome" = "Welcome";

Во втором:

"Welcome" = "Bienvenus";

Когда вы добавите эти файлы и папки в свое приложение, перекомпилируете его с помощью макроса NSLocalizedString, вы сможете использовать свое приложение также на французском, когда системный язык - французский.

2 голосов
/ 24 января 2012

Конечно, есть способ сделать это.

Взгляните на документ Apple: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html

В этом нет ничего больше, чем на самом деле.Хотя я склонен просто жестко кодировать много строк, но определенно стоит потратить время на изучение строковых ресурсов, потому что это основа интернационализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...