Как локализовать мое приложение с Xcode 5?
Это дополнительный вопрос (и ответ) на Как локализовать мое приложение с Xcode 4? вопрос.
Как я могу локализовать свое приложение с Xcode 5.x?
2 ответа
Это довольно просто, когда вы понимаете это.
Первое, что вы хотите сделать, это добавить файл локализации в ваш проект. Для этого просто выберите основную группу вашего проекта
,
затем на панели инструментов выберите 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
(сохранить структуру), но с другой локализацией
,
Теперь, когда у нас есть локализованный файл, мы можем заставить наше приложение читать его при необходимости.
Я добавил UILabel
в мое приложение, чтобы мы могли заставить наше приложение отображать локализованный текст.
[myLabel setText:NSLocalizedString(@"it_worked", nil)];
Теперь, если я запущу свое приложение, мы увидим наш базовый язык
,
и если я поменяю язык симулятора на норвежский, мы увидим наш другой язык
,
Вам не нужно добавлять uilabel и изменять текст в коде.
Вы можете воспользоваться расширенными пользовательскими атрибутами времени выполнения:
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 Строка вашей строки в локализованный