Используйте genstrings в проекте со структурой папок для локализации - PullRequest
1 голос
/ 16 марта 2012

В проекте iOS с папками, содержащими файлы * .m, аналогично пакетам, нужно будет запустить genstrings -o en.lproj *.m для каждой папки и соответствует относительному пути en.lproj. Есть ли команда, которая будет выполнять детализацию из корневой папки?

Ответы [ 4 ]

2 голосов
/ 18 марта 2012

Вы можете объединить все файлы * .m в один файл, а затем вызвать genstrings для этого.

IE:

find . -name "*.m" -exec cat {} >> all.txt \;
2 голосов
/ 18 марта 2012

В Гринвиче мы используем find по трубопроводу xargs. Вы можете увидеть, как это делается здесь , но это в основном:

find "path/to/directory" -name "*.m" -print0 |
  xargs -0 genstrings -s NSLocalizedString -o "path/to/output.strings"

Я бы также порекомендовал взглянуть на Гринвич , поскольку он значительно облегчает весь процесс локализации.

1 голос
/ 17 марта 2012

если у вас есть простая структура папок, вы, вероятно, получите просто

genstrings -ao <destination> <root>/*/*.m

, используя один * для каждого уровня подпапки.

В качестве альтернативы, и если папки имеют разныеуровни вложенности, которые вам лучше использовать:

  find <root>/* -iname "*.m"  -type f -print0 | xargs -0 genstrings -ao <destination>
0 голосов
/ 04 октября 2013

Для меня эта линия просто решила все проблемы. Вам даже не нужно копировать все m-файлы в один документ перед запуском строки в оболочке. Просто войдите в папку вашего проекта и запустите ее, и все даже подпапки будут проверены:

find . -name \*.m | xargs genstrings -o "directory/"

просто создайте каталог перед его запуском, в противном случае вы получите исключение.

...