2010-12-09 1 views
2

У меня есть очень странный вопрос с ibtool и локализаций: Я использовал эту команду, чтобы экспортировать stringsfiles:Почему ibtool не может импортировать файл строк UTF-16 в nib?

ibtool --export-strings-file XibLoc.strings SomeXib.xib 

я пытался импортировать строки в файл XIb для получения локализованной версии:

ibtool --strings-file XibLoc.strings --write NewXib.xib SomeXib.xib 

Это довольно стандартный метод локализации XIb, однако он выплевывает ошибку:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>com.apple.ibtool.errors</key> 
    <array> 
     <dict> 
      <key>description</key> 
      <string>The stringsfile XibLoc.strings does not appear to contain valid data for UTF-16 string encoding.</string> 
     </dict> 
    </array> 
</dict> 
</plist> 

Итак, WTF? ibtool экспортирует данные в кодировку UTF-16 и оказывается, что он не может импортировать его, даже если я ничего не могу изменить в экспортированном файле. Кто-нибудь знает, что там происходит? Или что я делаю неправильно?

+6

Нашел ответ: проблема была в том, что путь к файлу строк был неправильным, поэтому вместо того, чтобы говорить: «Невозможно открыть файл stringsfile» - ibtool в целом Apple способ дал глупое сообщение об ошибке с реальной причины – justadreamer 2010-12-09 09:52:17

ответ

1

ibtool слишком разборчив с синтаксисом аргумента файла. В ibtool 5.0 он еще хуже. См./Dupe my Radar on this.

Единственный способ получить это работает для меня (предполагается, что ваш собственной локализации дает мастер-XIB) является:

cd <project folder> 
ibtool --strings-file fr.lproj/SomeXib.strings --write fr.lproj/SomeXib.xib en.lproj/SomeXib.xib 

Не добавляйте кавычки или «..» и т.д. и имена путей, так как В этом случае ibtool может потерпеть неудачу.

+0

что параметр --write является существенным – 2014-06-05 11:01:34

Смежные вопросы