iOS Localization - Обновление Localizable.strings только с новыми строками

Я искалGoogle а такжеПереполнение стека и до сих пор нет четкого ответа на простой и автоматизированный способ сделать это, но вот сценарий:

У меня есть приложение с 1000 строк, локализованных в en, fr, de, es, it.Я строю новую функцию, которая делает 10 отчетливо новымиNSLocalizedString() ключи.Я просто хочу, чтобы эти 10 новых строк были добавлены в конец файлов:en.lproj / Localizable.stringsfr.lproj / Localizable.stringses.lproj / Localizable.stringsde.lproj / Localizable.stringsit.lproj / Localizable.strings

genstrings получит все 1010 различных строк. Это боль, так как янадо будетиголка в стоге сена" найти эти 10 строк каждый раз, когда я делаю обновление.

ОБНОВЛЕНИЕ 19-СЕНТЯБРЯ-2014 - XCode 6 - Apple наконец-то выпустила поддержку XLIFF-экспорта и импорта ваших файлов .stringsЧто нового в XCode 6? локализация

Лингуань (v1.1.3) хотя в большинстве случаев это прекрасный инструмент, в другом смысле он становится инструментом. Он объединяет изменения, но некоторые строки не отображаются.при сопоставлении он не совпадает, поэтому каждый раз, когда он выполняет сканирование источников, он создает 100 новых дубликатов ключей, а также 10 строк, которые мне нужны, поэтому он выполняет больше работы.

FileMerge Как предлагается ниже, попробуйте провести различие между старой и новой версиямиgenstrings выходные файлы.genstrings выходные данные имеют строки, отсортированные по алфавиту, поэтому 10 строк, разбросанных по 1000, означают, что необходимо рассмотреть 200 различий. это соответствует/*...*/ и"..." = "..." и сказать, что... был обновлен Это неt был обновлен, просто перемещен в новое место в файле. Все больше и больше похоже на то, что мне придется написать собственный инструмент.

MacHG + FileMerge на заметку, по какой-то странной причине неМне не нравится делать различий из репозитория с рабочей копией Localizable.strings. Левая и правая панели выглядят пустыми.ОБНОВИТЬ: Оказывается, вариации в некоторых наборах изменений сохраняются как UTF-16, а некоторые как UTF-8 шутят с тем, чтобы сделать правильный дифференциал.

Bash Script + FileMerge Я написал следующий скрипт, чтобы помочь сохранить мой английский справочный файл после каждого добавления новогоNSLocalizedString записей:

#LOCALISATION UPDATE SCRIPT
#
#This will create a temporary copy of the current 'en' reference file then generate the 
#latest reference file using the 'genstrings' tool. Finally forcing FileMerge to launch 
#and diff the changes.
#
#Last Updated: 2014-JAN-06
#Author(s): Josh Wilson

clear
#assuming this script is run from $SRCROOT

#Backup Existing 'en' reference
cp "en.lproj/Localizable.strings" "en.lproj/Localizable-src.strings"

#Scan source files for 'NSLocalizableString' macros
genstrings -q -u -o en.lproj Classes/*.{m,mm}
genstrings -q -u -a -o en.lproj Classes/iPad/*.{m,mm}
genstrings -q -u -a -o en.lproj Classes/iPhone/*.{m,mm}

#Force FileMerge to launch and diff the update (NOTE: piping to cat forces GUI to open)
opendiff "en.lproj/Localizable-src.strings" "en.lproj/Localizable.strings" | cat

#Cleanup up temporary file
rm "en.lproj/Localizable-src.strings"

Но это только обновляет файл EN, и мне не хватает способа обновления других языковых файлов новыми ключами. Этот был хорош для случаев, когда я нене иметь английское слово в качестве ключа и Genstrings бомбы мой"welcome_message" = "Welcome!" с"welcome_message" = "welcome_message"

POEditor http://poeditor.com/, Это онлайн-инструмент и подписка на основе 1000 строк. Кажется, работает хорошо, но было бы хорошо, если бы существовал инструмент, не основанный на подписке.

Traducto Pro Кажется, хорошо справляется с интеграцией с XCode, извлечением строк и объединением вещей. Но невозможно извлечь что-либо из этого, пока оно не будет полностью переведено, поэтому вы будете вынуждены пользоваться их услугами по переводу.

Конечно, эта функциональность была реализована раньше. Как Apple сохраняет свои приложения локализованными?

Сценаристы, я призываю тебя! Разработка iOS ведется уже в течение некоторого времени, и локализация является обычным делом, наверняка есть зрелое решение для этого к настоящему времени?

Python Script update_strings.py:Переполнение стека наконец, порекомендовал связанный вопрос и скрипт Python в этом ответеЛучшая практика с использованием NSLocalizedString выглядит многообещающе ...

Протестировано и в его нынешнем виде (31 мая 2013 г.)t обрабатывать многострочные комментарии, если у вас есть повторяющиеся записи комментариев (ожидается однострочный комментарий).

Может, нужно просто настроить регулярное выражение?немного.

Ответы на вопрос(4)

Ваш ответ на вопрос