Как я могу извлечь все локализуемые строки из всех файлов XIB в один файл?

Я ищу способ извлечь все локализуемые строки из файлов .xib и сохранить их все в одном файле.

Вероятно, это связано с ibtool, но я не смог определить способ объединения всего этого только в один словарь перевода (может быть .strings, .plist или что-то еще).


person sorin    schedule 21.04.2011    source источник
comment
@Lukasz не полностью, но я обязательно опубликую ответ, когда у меня будет решение.   -  person sorin    schedule 07.06.2011


Ответы (2)


Откройте терминал и перейдите в корневой каталог проекта (или каталог, в котором вы храните все файлы XIB) и введите следующую команду:

find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.txt '{}'

Магия заключается в том, что команды find и xargs работают вместе. Опция -I создает заполнитель. -t только для подробного вывода (вы видите, какие команды были сгенерированы и выполнены). Он генерирует файлы txts с тем же именем, что и файлы xib в том же каталоге. Эту команду можно улучшить, чтобы объединить выходные данные в один файл, но она по-прежнему является хорошей отправной точкой.

Объединение их вместе:

Вы можете объединить эти недавно созданные файлы в один, используя аналогичную команду терминала:

find . -name \*.xib.txt | xargs -t -I '{}' cat '{}' > ./xib-strings-concatenated.txt

Эта команда поместит все строки в один файл xib-strings-concatenated.txt в корневом каталоге.

Вы можете удалить сгенерированные частичные файлы (если хотите), снова используя find и xargs:

find . -name \*.xib.txt | xargs -t -I '{}' rm -f '{}'
person Lukasz    schedule 13.10.2011
comment
Отличный ответ. Есть ли веб-ресурс, где я могу узнать, как создавать такие инструменты командной строки? - person Tushar Koul; 28.04.2014
comment
да .. Я надеялся, что вы могли бы указать мне конкретный ресурс, на который вы всегда ссылаетесь. В любом случае, я думаю, мне было лень гуглить :D - person Tushar Koul; 28.04.2014
comment
Первая команда не выводит список строк с атрибутами. Пожалуйста, предложите, как это исправить? - person AUK4SO; 09.07.2014
comment
@ AUK4SO: поскольку ibtool выполняет здесь основную работу и еще не поддерживает строки атрибутов, может потребоваться другой подход. - person Lukasz; 12.09.2014
comment
есть способ вернуть их? @Лукаш - person Teja Nandamuri; 24.03.2016
comment
Если у меня есть локализованная версия файла concatenated.txt, как я могу записать ее во все xib? @Лукаш - person Teja Nandamuri; 24.03.2016

сейчас это намного проще.

в xcode выберите свой проект (не цель)

затем используйте меню/редактор/экспорт для локализации

xcode выведет файл xliff со всеми локализуемыми строками из всего вашего проекта.

person Confused Vorlon    schedule 14.01.2015
comment
это берется только из xibs? или из файлов .m тоже? - person Teja Nandamuri; 24.03.2016
comment
Включает ли он все возможные строки из xib или раскадровки? F.ex: заголовки для всех состояний кнопок? - person Lukasz; 24.03.2016