Как локализовать мое приложение с Xcode 4?

Я просто обновился до Xcode 4.

Обычно при локализации приложений мы добавляем файл "Localizable.String" в проект, а затем переходим к меню "Получить информацию" и щелкаем по кнопке "Сделать это локализованной".

Однако в Xcode 4 нет меню "Получить информацию".

Когда я пытаюсь добавить язык, он влияет только на файл "InfoPlist.String" (который может локализовать имя приложения).

Как добавить локализацию в мое приложение в Xcode 4?

Ответ 1

Это просто, как только вы это понимаете.

Если вы хотите выполнить это с помощью 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?).

Чтобы начать, вы должны добавить новый "файл строк" ​​в категории ресурсов iOS.

Strings File

Затем создайте файл как "Localizable.strings" . Create As

Когда файл создан, выберите его и откройте "Инспектор файлов".

The Localizable FileFile Inspector

EDIT: все изменилось (немного) с новым Xcode 4.4, 4.5 (и выше) (для поддержки iOS 6). Если вы Не, используя Xcode 4.4 или выше, пропустите этот шаг.

{ Способ Xcode 4.4, 4.5 (и выше):

Нажмите кнопку "Сделать локализованным" Make localized button

Теперь перейдите на главную страницу проекта. Main Project page

И нажмите кнопку "+" в разделе "Локализация" и выберите языки, которые вы хотите поддерживать.

(я выберу немецкий/немецкий)

List of languages

Теперь появится окно с вопросом о том, какие файлы вы хотите локализовать, убедитесь, что Только выбран файл "Localizable.strings" и нажмите "Готово".

Only the "Localizable.strings" file is selected

}

{ Xcode 4.3.5 и ниже:

Нажмите кнопку "+" в разделе "Локализация" и выберите языки, которые вы хотите поддерживать.

(я выберу немецкий/немецкий)

List of languages

}

.

.

.

.

Теперь вы должны увидеть, что у вас есть два файла в файле "Localizable.strings" .

Localizable Files

Затем добавьте строки локализации в оба файла локализации.

English

<Т411 >

Теперь здесь идет кодирующая часть.

Здесь я просто объявлю UILabel и поставлю его в строку Localizable.

Declare:

IBOutlet UILabel *testLabel;

И Inside ViewDidLoad я установлю текст, используя NSLocalizedString:

[testLabel setText:NSLocalizedString(@"TEST", nil)];

Чтобы закончить, просто подключите наш testLabel в "Interface Builder".

Connect IBOutlet

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

English ResultChange the languageGerman Result

Ответ 2

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

Ответ 3

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

Ответ 4

сначала вам нужно добавить новый файл Localizable.string и выбрать его и перейти в "Просмотр" → "Утилиты" → "Инспектор файлов" нажмите кнопку "+", чтобы добавить язык в раздел локализации. также проверьте его XCode 4, добавив локализацию

Ответ 5

изменился способ локализации в xcode4! щелкните правой кнопкой мыши locizable.strings и добавьте поддержку другого языка, просто нажмите на панель "Локализация" + в этой области справа.

Ответ 6

Вы можете использовать расширенные атрибуты 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 Строка вашей строки в локализованной

enter image description here

И вам не нужно объявлять IBOutlet, и не нуждаются в этом коде в ViewDidLoad [testLabel setText: NSLocalizedString (@ "TEST", nil)];

Ответ 7

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

Ответ 8

Если вам нужен динамический способ переключения языков внутри вашего приложения и с помощью решения на основе Pods, выполните следующие действия:

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, который включает пример проекта, показывающий несколько примеров.