Если вы создаете дочерние панели в файле Settings.bundle, вы получите несколько файлов .plist. Когда приходит время локализовать ваш проект, вы находите создание соответствующего файла .strings немного утомительным (я знаю, что знаю).
Вот удобный скрипт списка bash, который (i) найдет теги, (ii) извлечет содержимое следующего тега, а затем (iii) выведет это значение в текстовый файл в формате «string» = «string» нужен для ibtool.
Вы передаете имена входных и выходных файлов в качестве параметров.
#!/bin/sh
echo "// Generated by plist2strings. Manual edits will be overwritten the next time this script runs.\n/* A single strings file, whose title is specified in your preferences schema. The strings files provide the localized content to display to the user for each of your preferences. */\n" > plist2stringstmp
sed -n '
# look for a "#" at the end of the line
/<key>Title<\/key>$/ {
# Found one - now read in the next line
N
# delete the "#" and the new line character,
s/.*<\(string\)>\(.*\)<\/\1>/"\2" = "\2"/gp
}' $1 > plist2stringstmp2
cat plist2stringstmp plist2stringstmp2 > $2
rm plist2stringstmp plist2stringstmp2
Copy-N-Paste в текстовый файл. Я сохранил мой как plist2strings. Обязательно предоставьте ему права на выполнение. Например, в Терминале выполните:
macbook:~ foo$ chmod 755 plist2strings
Чтобы выполнить скрипт (если он был сохранен в вашей папке пользователя) из корня каталога Settings.bundle, просто используйте синтаксис:
macbook:~ foo$ ~/plist2strings mysettings.plist en.lprog/mysettings.strings
Если mysettings.strings еще нет в этой папке, он создаст его. Если он уже , он автоматически перезапишет его без предупреждения.
Надеюсь, кто-нибудь найдет это полезным. И не стесняйтесь использовать (и злоупотреблять) по своему усмотрению (будьте осторожны ;-). Если вы вносите какие-либо полезные изменения, рассмотрите возможность размещения их здесь, чтобы другие пользователи тоже могли ими насладиться.
Счастливая локализация!
~ Зак