Как я могу извлечь все локализуемые строки из всех файлов XIB в один файл? - PullRequest
15 голосов
/ 21 апреля 2011

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

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

Ответы [ 2 ]

34 голосов
/ 13 октября 2011

Откройте терминал и перейдите в корневой каталог проекта (или в каталог, в котором вы храните все файлы 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 '{}'
5 голосов
/ 14 января 2015

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

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

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

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

...