Как локализовать мое приложение с Xcode 4?
Я только что обновился до Xcode 4.
Обычно при локализации приложений мы добавляем файл "Localizable.String" в проект, а затем переходим в меню "Get Info" и нажимаем кнопку "Make It Localized".
Однако в Xcode 4 нет меню "Get Info".
Когда я пытаюсь добавить язык, он влияет только на файл "InfoPlist.String" (который может только локализовать имя приложения).
Как я могу добавить локализацию для моего приложения в Xcode 4?
8 ответов
Это просто, когда ты это понимаешь.
Если вы хотите сделать это с помощью Xcode 5.x и iOS 7 или Xcode 6.x и iOS 8, посмотрите " Как локализовать мое приложение с Xcode 5? ".
Мне понравилась ссылка SNR, но его ответ был немного коротким.
Кроме того, я вижу, что этот вопрос немного стар, и мой ответ может отличаться от старых версий Xcode. (Я использовал Xcode v. 4.3.3)
Однако я обновил свой ответ для работы с Xcode 4.3.5 и ниже + 4.4 и выше (и Xcode 5.x и 6.x здесь: как локализовать мое приложение с Xcode 5?).
Для начала вы должны добавить новый "Strings File" в категорию ресурсов iOS.
Затем создайте файл как "Localizable.strings".
Когда файл будет создан, выберите его и откройте инспектор файлов.
РЕДАКТИРОВАТЬ: Ситуация изменилась (немного) с новым Xcode 4.4, 4.5 (и выше) (для поддержки iOS 6). Если вы не используете Xcode 4.4 или выше, просто пропустите этот шаг.
{ Xcode 4.4, 4.5 (и выше) способ:
Нажмите кнопку "Сделать локализованным"
Теперь зайдите на страницу вашего основного проекта.
Нажмите кнопку "+" в разделе "Локализация" и выберите языки, которые вы хотите поддерживать.
(Я выберу немецкий / немецкий)
Теперь появится окно с вопросом, какие файлы вы хотите локализовать, убедитесь, что выбран только файл "Localizable.strings", и нажмите "Готово".
}
{ Xcode 4.3.5 и ниже:
Нажмите кнопку "+" в разделе "Локализация" и выберите языки, которые вы хотите поддерживать.
(Я выберу немецкий / немецкий)
}
,
,
,
,
Теперь вы должны увидеть, что у вас есть два файла в файле "Localizable.strings".
Затем добавьте строки локализации в оба файла локализации.
Теперь здесь идет часть кодирования.
Здесь я просто объявлю UILabel
и установите его текст в строку локализуемого файла.
Объявляет:
IBOutlet UILabel *testLabel;
А внутри ViewDidLoad я установлю текст, используя NSLocalizedString
:
[testLabel setText:NSLocalizedString(@"TEST", nil)];
Чтобы закончить, просто подключите наш testLabel
в "Интерфейсном Разработчике".
Теперь вы должны иметь возможность запустить проект и увидеть локализованную строку. И если вы измените язык, вы также должны увидеть изменение локализованной строки.
Выберите файл, который вы хотите локализовать, и кликните на инспекторе файлов в разделе утилит. Есть раздел Локализация
Вы можете просмотреть информацию о файле (и добавить локализацию), когда выберите файл и откроете "Инспектор файлов" в главном меню "Вид" -> "Утилиты" -> "Инспектор файлов".
Сначала вам нужно добавить новый файл Localizable.string, выбрать его и перейти в "Просмотр" -> "Утилиты" -> "Инспектор файлов", нажать кнопку "+", чтобы добавить язык в раздел локализации. и проверь это XCode 4, добавив локализацию
Способ локализации в xcode4 изменился! щелкните правой кнопкой мыши localizable.strings и, чтобы добавить поддержку другого языка, просто нажмите "+" в этой области "Локализация" справа.
Вы можете воспользоваться расширенными пользовательскими атрибутами времени выполнения:
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 Строка вашей строки в локализованный
И вам не нужно объявлять IBOutlet, и не нужно кодировать это в ViewDidLoad [testLabel setText:NSLocalizedString(@"TEST", nil)];
Если вам нужен динамический способ переключения языков внутри вашего приложения И использование решения на основе модулей, проверьте:
https://github.com/nullic/DPLocalizationManager
Установить с помощью: pod 'DPLocalization', '~> 1.2'
Он поддерживает те же стандартные файлы локализации, но также использует динамическое связывание с использованием User Defined runtime attributes
а также внутри кода, такого как viewDidLoad
,
Некоторые примеры в примере проекта:
self.startup.text = DPLocalizedString(@"TITLE", nil);
self.label.autolocalizationKey = @"LABEL_TEXT";
[self.label updateAutolocalizationArguments:@[@"Hello", @1234567890, [NSDate date]]];
self.autolocalizationKey = @"TITLE";
Загрузите проект git, который включает пример проекта, показывающий несколько примеров.
Или вы можете использовать TraductoPro для автоматизации этого процесса и сэкономить много времени. Это приложение для Mac, которое хорошо интегрируется с Xcode.