Details
-
Bug
-
Resolution: Fixed
-
P3: Somewhat important
-
None
-
5.5.1, 5.6.1
-
Windows 7, mingw version of Qt5.5.x and Qt5.6.x
Description
When using qsTrId in qml file, the lupdate will take the value as is and put it in the id= attribute without encoding it.
This results in a .ts file that is invalid, when the value contains invalid XML characters, like an &.
Running lupdate a second time will give an error on the file lupdate itself created.
Example QML file:
import QtQuick 2.0 Text { //% "This text will fail in lupdate" text: qsTrId("this&that_will_fail") }
run lupdate creates a file containing:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.1"> <context> <name></name> <message id="this&that_will_fail"> <location filename="test.qml" line="5"/> <source>This text will fail in lupdate</source> <translation type="unfinished"></translation> </message> </context> </TS>
Running lupdate againon the with the same ts file will result in the following error:
lupdate . -ts languagestrings.ts Scanning directory '.'... Parse error at languagestrings.ts:6:37: Expected ';', but got '"'.
I would not expect lupdate to ever generate invalid output files.
I could not find any restrictions on the characters that are allowed to be used in the qsTrId.
Attachments
Issue Links
- relates to
-
QTBUG-68098 QT linguist expands XML entities in XLIFF ids
-
- Closed
-