Как локализовать мое приложение с Xcode 4? - PullRequest
66 голосов
/ 18 марта 2011

Я только что обновился до Xcode 4.

Обычно при локализации приложений мы добавляем файл «Localizable.String» в проект, а затем переходим в меню «Get Info» и нажимаем кнопку «Make It Localized».

Однако в Xcode 4 отсутствует меню «Get Info».

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

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

Ответы [ 8 ]

210 голосов
/ 01 июля 2012

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

Если вы хотите сделать это с Xcode 5 .x и iOS 7 или Xcode 6 .x и iOS 8 , посмотрите " Как локализовать мое приложение с Xcode 5? ".

Мне понравилось SNR 's ссылка , но его ответ был немного коротким.

Кроме того, я вижу, что этот вопрос немного стар, и мой ответ может отличаться от старых версий 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 File File Inspector

РЕДАКТИРОВАТЬ : Вещи имеютизменилось (немного) с новым Xcode 4.4, 4.5 (и выше) (для поддержки iOS 6).Если вы не используете Xcode 4.4 или выше , просто пропустите этот шаг.

{ Xcode 4.4, 4.5 (и выше) way:

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

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

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

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

List of languages

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

Only the

}

{ Xcode 4.3.5 и ниже:

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

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

List of languages

}

.

.

.

.

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

Localizable Files

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

English

German

Теперь здесь начинается кодирование.

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

Объявим:

IBOutlet UILabel *testLabel;

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

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

Чтобы закончить, просто подключите наш testLabel в «Интерфейсном Разработчике».

Connect IBOutlet

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

English Result Change the language German Result

13 голосов
/ 18 марта 2011

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

8 голосов
/ 30 марта 2011

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

4 голосов
/ 13 сентября 2011

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

1 голос
/ 29 апреля 2014

Вы можете использовать дополнительные пользовательские атрибуты времени выполнения:

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)];

1 голос
/ 14 апреля 2012

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

0 голосов
/ 19 сентября 2014

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

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

0 голосов
/ 20 сентября 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...