Xcode 6.1.1 ошибка импорта локализаций Отсутствует атрибут XLIFF id

Недавно я экспортировал файлы XLIFF с помощью инструмента Экспорт для локализации Xcode. Файлы были переведены, и затем я попытался их импортировать, но я продолжаю получать сообщение об ошибке «Отсутствует атрибут XLIFF id». Я подумал, что, возможно, один из переводчиков испортил файл, поэтому в качестве теста я повторно экспортировал файл XLIFF и попытался импортировать их, не внося в них никаких изменений, и все равно получил ошибку «Атрибут id XLIFF отсутствует».

Любые идеи, что здесь происходит?


person Darren Findlay    schedule 30.01.2015    source источник
comment
Тот же вопрос... разобрался?   -  person Matt Mc    schedule 04.02.2015


Ответы (1)


Для меня это было связано с этим вопросом: локализация Xcode 6. Экспорт файла .xliff обрежет строку, если она имеет вид «это образец \»текст\»

Мой строковый файл выглядел так:

"some english \"text\"" = "some english \"text\""

При экспорте в XLIFF это выглядело так:

<trans-unit id="">
    <target>some english \</target>
    <source>some english \</target>
    <note></note>
</trans-unit>

Мои переводчики точно перевели это: (симуляция)

<trans-unit id="">
    <target>some english \</target>
    <source>xyz abcdefg \</source>
    <note></note>
</trans-unit>

При попытке импортировать переведенный XLIFF я получил ошибку XLIFF id attribute missing.

Чтобы исправить это, я зашел в свой файл строк и изменил запись на это:

"some english 'text'" = "some english 'text'"

а клифф...

<trans-unit id="some english 'text'">
    <target>some english 'text'</target>
    <source>xyz abcdefg</source>
    <note></note>
</trans-unit>

... а затем импортировал, и это сработало. Очевидно, что на данный момент перевод этой строки неверен и должен быть переделан, но, по крайней мере, остальная часть текста импортирована.


Редактировать:

Я искал решение этой проблемы. Я обнаружил, что использование фигурных кавычек экспортирует правильно, поэтому строка: some english “text” создает xliff:

<trans-unit id="some english “text”">
    <source>some english “text”</source>
</trans-unit>

Это единственный известный мне способ сделать это на данный момент.

person Matt Mc    schedule 04.02.2015
comment
Это была именно проблема! Спасибо. Вы когда-нибудь находили способ включить двойные кавычки в свою строку? - person Darren Findlay; 04.02.2015
comment
@DarrenFindlay Что ж, фигурные кавычки, похоже, работают. Надеюсь, это приемлемо для того, что вы делаете. - person Matt Mc; 04.02.2015