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

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

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

Ответы

Ответ 1

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

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

Магия - это команды find и xargs, которые работают вместе.. Параметр -I генерирует placeholder. -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 '{}'

Ответ 2

теперь это намного проще.

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

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

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