Как локализовать мое приложение с 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 в "Интерфейсном Разработчике".

Подключите IBOutlet

Теперь вы должны иметь возможность запустить проект и увидеть локализованную строку. И если вы измените язык, вы также должны увидеть изменение локализованной строки.

Английский результатИзменить языкНемецкий результат

Выберите файл, который вы хотите локализовать, и кликните на инспекторе файлов в разделе утилит. Есть раздел Локализация

Вы можете просмотреть информацию о файле (и добавить локализацию), когда выберите файл и откроете "Инспектор файлов" в главном меню "Вид" -> "Утилиты" -> "Инспектор файлов".

Сначала вам нужно добавить новый файл 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.

Другие вопросы по тегам