Вопрос

Мои локализуемые файлы .Strings как-то были повреждены, и я не знаю, как его восстановить.

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

Если я оставлю файл, будь приложение. Если я введу любые изменения, либо значения не интерпретируются должным образом, либо получаю ошибку во время компиляции.

Localizable.strings: Conversion of string failed. The string is empty.
Command /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copystrings failed with exit code 1

Я подозреваю, что это проблема кодирования, но я не знаю, как это произошло (может быть, SVN виноват?) И, как это решить. Любые советы будут гораздо более ценными.

Это было полезно?

Решение

У меня есть проблемы с тем же файлом, который звучит очень похоже на ваше собственное. Что происходит для меня, это то, что Xcode не знает правильного файла формирования. Я часто получаю это при перестановке проекта, и я удаляю и повторюсь добавления этого файла в проект Xcode. Когда я повторюсь добавления файла, его кодировка устанавливается на что-то вроде Western Roman, который не может представлять ничего, кроме ASCII.

Вот что я делаю, чтобы исправить проблему:

  • В XCODE выберите локализуемый файл. Назагоние на панели групп и файлов.

  • Сделайте информацию о том файле.

  • На информационной панели выберите вкладку «Общие».

  • В этой вкладке перейдите к файловому кодированию и измените его значение.

Последний шаг - это то, где трюк лежит, когда вы теперь должны угадать правильное кодирование. Я считаю, что для большинства европейских языков работает «Unicode (UTF-8)». А для азиатских языков я нахожу, что «Unicode (UTF-16/32)» - это те, которые пытаются.

Другие советы

У меня только что была эта ошибка, потому что я забыл полуколон. Взял мне некоторое время, чтобы понять это. Похоже, действительно неоднозначная ошибка компилятора, но исправление было простым.

Убедитесь, что в файл, получайте информацию, выбирается UTF-16. Если он настроен на NOTE или UTF-8, как кодирование, то вам нужно его изменить. Если у ваших символов есть пробелы между ними, вы выбираете «повторно интерпретировать» файл как UTF-16. Если в файле есть странные символы, вам нужно их удалить.

EXEPT Проблема UTF-8, иногда вам все равно приходится проверять содержимое в случае, если есть некоторые проблемы синтаксиса.

Используйте следующее регулярное выражение, чтобы проверить вашу текстовую строку по строке, если есть какая-либо строка, не совпадающая, должна быть проблема.

"(.+?)"="(.+?)";

Вы можете использовать plutil инструмент командной строки. Без вариантов или с -lint Опция, он проверяет синтаксис файла, указанного в качестве аргумента. Это расскажет вам точнее, где есть ошибка.

Это происходит со мной, когда есть пропавшая цитата или что-то не в порядке с файлом. Чаще всего, поскольку мои языковые файлы выполняются другим членом команды, он имеет тенденцию забывать цитату или что-то в этом роде. Обычно XCODE показывает ошибку в этой строке, иногда она не делает и просто бросает ошибку «поврежденные данные».

Дважды проверьте, будут ли все ваши строки правильно закрыты в цитатах

Откройте файл в Xcode.

Щелкните правой кнопкой мыши в проекте Navigator.

Выбирать Открыть как -> Список недвижимости ASCII

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top