Я хотел бы извлечь исходную строку для данного перевода в файле .strings
из .nib
в базовой локализации.
В принципе, я бы хотел как-то пересобрать "Original Phrase" = "Translated Phrase"
пары для всех переводов, представленных в .strings
файлах.
Для скомпилированных приложений Xcode создает скомпилированные .nib
файлы и .strings
файлы из исходных ресурсов .xib
; к сожалению, даже комментарии / подсказки для переводчиков в исходных .strings
файлах заархивированы ...
Я пробовал разные способы извлечения исходной строки из скомпилированного .nib
- но то, что, похоже, сработало в прошлом больше не работает с современными (по крайней мере 10,13) файлами, по крайней мере для файлов, которые я тестировал:
NSKeyedUnarchiver
не удалось разархивировать данные с любым из объектов уровня root которые, по-видимому, работали в прошлом (в соответствии с такими проектами, как GnuStep, Cocoatron, Cappuccino ..) - всегда возвращает nil
.
Чтение .nib
в виде необработанного правильного списка через NSDictionary
верный выход что-то ... хотя без реинжиниринга внутренней работы формата архиватора с ключами я не могу понять смысл данных.
В 'nib-dump' (через * 1028) *) Я вижу, что в .nib
хранятся NSTitle
объекты, которые очень похожи на то, что мне нужно, однако до сих пор мне не повезло, что они были получены программно.
Так что любые подсказки по как для достижения этой цели высоко ценятся!