[PyQt] pylupdate5: qml: Parse error in UI file

Sylvia van Os iamsylvie at openmailbox.org
Sun Apr 2 16:09:53 BST 2017


On 02/04/17 13:24, Hans-Peter Jansen wrote:
> On Sonntag, 2. April 2017 09:54:05 Phil Thompson wrote:
>> On 2 Apr 2017, at 1:45 am, Sylvia van Os <iamsylvie at openmailbox.org> wrote:
>>> Hey everyone,
>>>
>>> I started working on making my Python app translatable in
>>> https://github.com/Pext/Pext/tree/i18n but I'm running into an issue with
>>> pylupdate5.
>>>
>>> Specifically, when inside the pext directory and running "pylupdate5
>>> __main__.py qml/* -ts i18n/nl.ts" to try to create a Dutch translation
>>> file in the i18n directory, I get the following error output:
>>>
>>> XML error: Parse error at line 1, column 1 (error occurred while parsing
>>> element). AboutDialog.qml: Parse error in UI file
>>> XML error: Parse error at line 1, column 1 (error occurred while parsing
>>> element). main.qml: Parse error in UI file
>>> XML error: Parse error at line 1, column 1 (error occurred while parsing
>>> element). ModuleData.qml: Parse error in UI file
>>>
>>> Would anyone have a clue why this happens? I couldn't find anything
>>> online, and it doesn't seem related to the translations itself because
>>> ModuleData.qml doesn't contain a single translatable string. The QML also
>>> loads just fine in the app itself, so the QML is definitely valid.
>> pylupdate doesn't support .qml files.
> @Audience: Does the QML infrastructure support i18n itself, and if yes, does
> it share the Qt i18n setup?
>
> @Sylvia: i18n is a hydra with many heads - I'm always astonished about the
> state of affairs in this regard, when I had to leave PyQt land.
>
> Pete
Yes, QML supports i18n and shares the same setup, see 
https://doc.qt.io/qt-5/qtquick-internationalization.html#localizing-your-application.

If you try "lupdate-qt5 qml/* -ts i18n/nl.ts" in the pext directory of 
the repository I linked, you will see that all QML files do get parsed 
correctly.

Right now, the best bet for apps like mine seems to be using pylupdate 
for the Python file and lupdate-qt5 for the qml files, letting them both 
create a different output file, and then merging them together as 
described on http://stackoverflow.com/a/8527556.


More information about the PyQt mailing list