С помощью Xcode можно локализировать:
- статический текст в коде программы
- ресурсы (иконки, рисунки, звуковые файлы, nib-файлы)
- вывод даты/времени
В этой заметке я расскажу о локализации статического текста в коде программы.
Локализация текста в коде программы необходима если, например, в коде программы задается текст который потом показывается пользователю (это может быть название кнопок, текст отчета и т.п.). Перед локализацией необходимо интернационализировать код программы. Для этого любой текст который показывается пользователю необходимо обвернуть макросом NSLocalizedString. Если раньше вы показывали диалог таким способом:
- UIAlertView *tmp = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"Your e-mail application not configured" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
- [tmp show];
- [tmp release];
то теперь показываем так:
- UIAlertView *tmp = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Warning", @"") message:NSLocalizedString(@"Your e-mail application not configured", @"") delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", @"") otherButtonTitles:nil];
- [tmp show];
- [tmp release];
Макрос NSLocalizedString вызывает метод localizedStringForKey:value:table: обьекта NSBundle приложения, которая возвращает локализированную строку.
Теперь нужно создать файл Localizable.strings, который будет шаблоном для файлов локализации. Для этого в терминале переходим в папку Classes приложения и выполняем команду:
- $ genstrings ./*.m
В результате в той же папке будет находиться файл Localizable.strings который и добавляем в проект (кодировку файла указываем UTF-16).

Теперь осталось локализировать этот файл на нужный нам язык. Для этого открываем свойства добавленного в проект файла Localizable.strings.

На вкладке "General" нажимаем кнопку "Маке File Localizable"

Переходим обратно на вкладку "General" и там добавляем локализацию

При этом в проекте создается папка с локализацией для этого языка и в нее помещаются файл Localizable.strings который нужно перевести на указанный язык. В проекте это выглядит так:

Файл Localizable.strings представляет собой пары "ключ" = "значение", где ключом выступает параметр переданный в макрос NSLocalizedString а значением - локализированная строка
- "Done" = "Готово";
См. также:
1. Локализация даты/времени
Спасибо за статью.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьЕсли вы ищете практичный локализационный инструмент для .strings на другой язык, присмотритесь к POEditor.
ОтветитьУдалитьДля достижения наилучших результатов он использует совместные переводы через веб-платформу.
Simply printing with Carbon’s hardware alone doesn't allow for end use properties with actual world purposes. Once the sunshine has formed the half, a second programmable curing course of achieves the desired mechanical properties by baking christmas shower curtains the 3d printed half in a thermal bath or oven. Programmed thermal curing sets the mechanical properties by triggering a secondary chemical reaction inflicting the fabric to strengthen reaching the desired ultimate properties. The market of 3D printed eyewear is forecasted to achieve $3.four billion by 2028. 3D printing is a very appropriate production methodology for eyewear frames end result of|as a end result of} the measurements of an individual are straightforward to course of lengthy run|ultimately} product.
ОтветитьУдалить