Я надеюсь, что это правильный форум, чтобы задать этот вопрос.Если это не так, пожалуйста, перенаправьте меня на более подходящий форум.
Я пытаюсь понять формат файла Qt Linguist TS.Я изменил файл, и когда я пытаюсь открыть его, я получаю сообщение об ошибке «Дублированные сообщения найдены в ...».Файл действительно содержит один контекст с двумя сообщениями, которые имеют
- один и тот же источник
- местоположение с тем же именем файла, но с разными номерами строк
- другой перевод
Вот исходный код минимального файла, который дает эту ошибку:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="es">
<context>
<name>MyContext</name>
<message>
<location filename="../../../../../MyFile.cpp" line="605"/>
<source>Delete</source>
<translatorcomment>Menu option</translatorcomment>
<translation type="unfinished">&Borrar</translation>
</message>
<message>
<location filename="../../../../../MyFile.cpp" line="1572"/>
<source>Delete</source>
<translation>Eliminar</translation>
</message>
</context>
</TS>
Насколько мне известно, каждое сообщение идентифицируется по контексту, источнику и местоположению, поэтому это не должно бытьпроблема, потому что номера строк разные.Также обратите внимание, что вы не можете объединить два элемента сообщения в один, потому что они содержат разные тексты перевода.
Так что мне не ясно, что может вызвать сообщение об ошибке.Я использую Qt версии 4.6.2.Я просматривал следующие документы: Руководство по Qt Linguist: Переводчик , Руководство по Qt Linguist: Программисты , Формат файла Linguist TS , но ни по одному из них я не имеюнашел информацию, которую я ищу, а именно, как идентифицируется каждое сообщение и что может вызвать сообщение об ошибке в Qt Linguist.
Если вы не знаете ответ на этот вопрос, ссылка на дополнительную, более подробную информациюв формате TS также будет полезно.
ОБНОВЛЕНИЕ
Я обнаружил, что с помощью необязательного тега TS / context / message / comment можно получитьразличные тексты перевода для одного и того же контекста / сообщения / источника, например
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="es">
<context>
<name>MyContext</name>
<message>
<location filename="../../../../../MyFile.cpp" line="605"/>
<source>Delete</source>
<comment>Comment 1</comment>
<translatorcomment>Menu option</translatorcomment>
<translation type="unfinished">&Borrar</translation>
</message>
<message>
<location filename="../../../../../MyFile.cpp" line="1572"/>
<source>Delete</source>
<comment>Comment 2</comment>
<translation>Eliminar</translation>
</message>
</context>
</TS>
Приведенный выше файл можно открыть без ошибок.
Это, похоже, решает мою проблему, но было бы хорошо иметьнемного точной документации об этом формате.