Какао/iPhone:Как мне запретить ibtool выводить нелокализуемые строки в xib-файле?

StackOverflow https://stackoverflow.com/questions/616410

Вопрос

Я работаю над интернационализацией приложения для iPhone, и я использую ibtool для извлечения строки из моих xib-файлов, чтобы они могли быть переведены локализационным центром следующим образом:

ibtool --generate-strings-file BlahBlahView.strings English.lproj/BlahBlahView.xib

Проблема с этим заключается в том, что файл .strings, который я получаю в итоге, содержит ВСЕ строки, содержащиеся в xib, когда мне действительно нужно подмножество, которое меня действительно волнует для i18n.Есть ли какая-нибудь наилучшая практика для решения этой проблемы?В идеале я хотел бы иметь возможность добавить какую-то аннотацию в interface builder, в которой говорилось бы либо "Это локализуемо", либо "Это не локализуемо", и чтобы ibtool выводил локализуемые строки только при моем запуске.

Спасибо!

Редактировать:Хорошо, позвольте мне немного расширить параметры.Для решения не обязательно использовать только ibtool.Ibtool + некоторые данные в xib + сценарий оболочки в порядке.До тех пор, пока это работает!

Это было полезно?

Решение

Ibtool чрезвычайно подробен в выводе строковых файлов и генерирует stirngs по идентификатору объекта, а не по уникальной исходной строке.Этот тип вывода чрезвычайно полезен, когда вы пытаетесь воссоздать interface builder или иным образом нуждаетесь в обширном контроле над объектами в ваших xib-файлах, но в меньшей степени, когда вы просто хотите локализовать свое программное обеспечение.

Маттео из Digitalwaters.net нашел способ конвертировать выходные данные ibtool в формат, используемый nibtool, его предшественником, который был менее мощным, но намного проще в использовании для локализации.Подробная информация здесь.

Я переделал его сценарии, чтобы упростить локализацию нашего приложения для Mac OS X, и у меня они хорошо работают.Удачи :)

Другие советы

Я думаю, вы можете автоматизировать это, но для этого потребуется несколько шагов.Вы можете извлекать произвольные свойства из вашего xib с помощью ibtool, поэтому, возможно, вы могли бы присвоить тегу нелокализуемых элементов определенное значение (например, -1), затем извлечь теги и использовать их для фильтрации файла strings и удаления ненужных записей.

ознакомьтесь с справочной страницей ibtool, в частности с опцией -export.

ibtool не выводит записи для пустых строк.Так, например, если вы оставите текст UILabel пустым, он не будет включен в выходные данные ibtool --generate-strings-file.Затем вы можете задать текст элементов в контроллере представления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top