Пользовательский интерфейс программно с многоязычным

#iphone #ios #multilingual

#iPhone #iOS #многоязычный

Вопрос:

Я пытаюсь узнать, как реализовать многоязычное приложение для iphone. Я всегда создаю свой пользовательский интерфейс программно. пожалуйста, проверьте код, как показано ниже

 UIImage *buttonImage2 = [[UIImage imageNamed:@"orangebuttonsmall.png"] stretchableImageWithLeftCapWidth:22 topCapHeight:0];
btnCancel = [UIButton buttonWithType:UIButtonTypeCustom];
[btnCancel setTitle:@"Save" forState:UIControlStateNormal];
[btnCancel setBackgroundImage:buttonImage2 forState:UIControlStateNormal];
btnCancel.frame = CGRectMake(205, 40.0, 60.0, 30.0);
btnCancel.titleLabel.font = [UIFont boldSystemFontOfSize:14];
btnCancel.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
btnCancel.titleLabel.textColor = [UIColor whiteColor];
btnCancel.titleLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.3]; // [UIColor blackColor];
btnCancel.titleLabel.shadowOffset = CGSizeMake(0, -1);
[btnCancel sizeToFit];
btnCancel.bounds = CGRectInset(btnCancel.bounds, -10, 0);
[btnCancel addTarget:self action:@selector(cancelAction:) forControlEvents:UIControlEventTouchUpInside];
[self.containerView addSubview:btnCancel];
 

когда я ищу локализацию, я получаю примеры для xibs, но не программно.
теперь я хотел бы знать, как я могу изменить приведенный выше код на многоязычный, например, французский.

Ответ №1:

 [btnCancel setTitle:NSLocalizedString(@"Save",@"Title for Save Button") forState:UIControlStateNormal];
 

Затем используйте команду терминала

 genstrings -o en.lproj *.m
 

для создания локализуемого файла.strings

Затем настройте результирующий файл Localizable.strings для каждого языка и сохраните в соответствующей подпапке Lang.lproj в вашем проекте. (Французский.lproj Английский.lproj и т.д.)

Функция NSLocalizedString извлекает значение, зависящее от языка, и заменяет его в коде.

Комментарии:

1. не удалось подключиться к выходному каталогу en.lproj при запуске команды genstrings. в чем здесь проблема

2. mkdir en.lproj перед запуском genstrings

Ответ №2:

вам нужно сделать ваш код локализованным. для получения дополнительной информации, пожалуйста. перейдите по этим ссылкам http://www.icanlocalize.com/site/tutorials/iphone-applications-localization-guide / или http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial