Это следующий вопрос (и ответ) на Как локализовать мое приложение с вопросом Xcode 4?.
Как локализовать мое приложение с помощью Xcode 5.x?
Это следующий вопрос (и ответ) на Как локализовать мое приложение с вопросом Xcode 4?.
Как локализовать мое приложение с помощью Xcode 5.x?
Это довольно просто, как только вы это понимаете.
Первое, что вы хотите сделать, это добавить в проект файл локализации. Для этого просто выберите основную группу проекта
,
затем на панели инструментов выберите File → New → File...
(или просто удерживайте ⌘N
)
.
В категории Resource
выберите Strings File
,
и назовите его
Localizable.strings
(обратите внимание, что он чувствителен к регистру) .
Теперь, когда у нас есть локализуемый файл, мы можем нажать кнопку Localize...
в File Inspector
.
Xcode спросит вас, хотите ли вы локализовать файл, просто нажмите Localize
с помощью Base
.
Теперь эта следующая часть немного сложна. Нам нужно войти в наш проект Info
, чтобы сделать это, щелкните файл проекта в Xcode Navigator
, затем справа вы увидите категорию с именем PROJECT
, щелкните по файлу проекта под этой категорией
.
Теперь мы можем добавить желаемый язык в категории Localizations
. Я добавлю Norwegian
.
Это important
, что мы оставляем наш файл Localizable.strings
в меню, которое появляется
.
Теперь мы можем развернуть наш Localizable.strings
файл в Navigator
, чтобы увидеть наши локализованные файлы
.
Теперь мы как наш Base
файл (в нашем Localizable.strings
файле), который будет нашим "основным языком" нашего приложения и нашим ранее выбранным языком.
Важно знать, что структура этих файлов должна быть одинаковой. Вы увидите, что я имею в виду всего за секунду.
В нашем Base
я добавлю строку с именем it_worked
и добавлю ее локализацию
.
И на нашем ранее выбранном языке (в моем случае Norwegian
) я добавлю ту же строку it_worked
(чтобы сохранить структуру), но с другой локализацией
<Т411 > .
Теперь, когда у нас есть наш локализованный файл, мы можем сделать наше приложение прочитанным, когда это необходимо.
Я добавил приложение UILabel
в мое приложение, чтобы мы могли отобразить локализованный текст в нашем приложении.
[myLabel setText:NSLocalizedString(@"it_worked", nil)];
Теперь, если я запустил приложение, мы увидим наш базовый язык
,
и если я изменю язык симулятора на норвежский, мы увидим наш другой язык
.
Вам не нужно добавлять uilabel и изменять текст по коду.
Вы можете использовать расширенные атрибуты Runtime User Defined Runtime:
http://cupobjc.blogspot.com.es/2014/04/interfaz-builder-localization.html
Сначала определите новую категорию для UILabel:
#import "UILabel+Localized.h"
@implementation UILabel (Localized)
-(void) setTextLocalized:(NSString *)aText{
[self setText:NSLocalizedString(aText, nil)];
}
@end
Затем в построителе интерфейса пользовательские атрибуты времени выполнения:
textLocalized Строка вашей строки в локализованной