PYSIDE6-LUPDATE(1)

πŸ“¦
version 6.11.2 Β· 2 versions
, in ubuntu stonking

πŸ’… PYSIDE6-LUPDATE πŸ’…

okay bestie, welcome to the PySide6 tools corner of the manual. this is pyside6-lupdate and she's kind of a big deal. grab a snack, we're going through every single flag together, no skips, no skimming. πŸ“


✨ NAME ✨

pyside6-lupdate β€” lupdate. that's it, that's the name, she's famously lowkey about it. πŸ¦‹


🌸 DESCRIPTION 🌸

usage, bestie πŸ’–

lupdate [options] [project-file]...  lupdate [options]
[source-file|path|@lst-file]... -ts ts-files|@lst-file

so like, lupdate is part of Qt's Linguist tool chain. the way it works is: it goes and extracts translatable messages from Qt UI files, plus C++, Java and JavaScript/QtScript source code. then it tucks all those extracted messages into textual translation source files (which are typically Qt TS XML, iykyk).

bonus: new and modified messages can be merged into existing TS files. so your old translations don't get ghosted. 🫢

⚠️ okay real talk: passing .pro files to lupdate is deprecated. please please please use the lupdate-pro tool instead. do not be that girl. 😭

πŸŽ€ OPTIONS πŸŽ€

every flag, every argument, every default. here we go.

  • -help β€” shows you this info and then dips. exit stage left. πŸ‘‹
  • -no-obsolete β€” drops all the obsolete and vanished strings. bye, you won't be missed. πŸ’€
  • -extensions <ext>[,<ext>]... β€” only process files with these extensions. the list MUST be separated with commas, not whitespace, okay? default is: 'java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,mjs,qs,qml,qrc'. πŸ’…
  • -pluralonly β€” only include the plural form messages. just the plurals. periodt.
  • -silent β€” do not explain what is being done. she's mysterious. 🀫
  • -no-sort β€” do not sort contexts in TS files.
  • -sort-messages β€” sort messages in a context alphabetically in TS files. ✨ organized queen ✨
  • -no-recursive β€” do not recursively scan directories.
  • -recursive β€” recursively scan directories. this is the default, bestie.
  • -warnings-are-errors β€” treat warnings as errors. no mercy. 🌈
  • -I <includepath> or -I<includepath> β€” an additional location to look for include files. you can specify this multiple times, stack those paths. πŸ”₯
  • -locations {absolute|relative|none} β€” specify or override how source code references get saved in TS files.
    • absolute: source file path is relative to target file. absolute line number is stored.
    • relative: source file path is relative to target file. line number is relative to other entries in the same source file.
    • none: no information about source location is stored. guessed from existing TS files if not specified. default is absolute for new files.
  • -no-ui-lines β€” do not record line numbers in references to UI files.
  • -disable-heuristic {sametext|similartext} β€” disable the named merge heuristic. can be specified multiple times. πŸ™ˆ
  • -project <filename> β€” name of a file containing the project's description in JSON format. such a file may be generated from a .pro file using lupdate-pro -dump-json.
  • -pro <filename> β€” name of a .pro file. useful for files with .pro file syntax but a different file suffix. projects are recursed into and merged. this option is deprecated. use the lupdate-pro tool instead. 😭
  • -pro-out <directory> β€” virtual output directory for processing subsequent .pro files.
  • -pro-debug β€” trace processing .pro files. specify it twice for more verbosity. main character debug energy. πŸ‘‘
  • -source-language <language>[_<region>] β€” specify the language of the source strings for new files. defaults to POSIX if not specified.
  • -target-language <language>[_<region>] β€” specify the language of the translations for new files. guessed from the file name if not specified. 🧚
  • -tr-function-alias <function>{+=,=}<alias>[,<function>{+=,=}<alias>]... β€” here's the tea: with +=, recognize <alias> as an alternative spelling of <function>. with =, recognize <alias> as the only spelling of <function>. the available <function>s (with their currently defined aliases) are:
Q_DECLARE_TR_FUNCTIONS (=Q_DECLARE_TR_FUNCTIONS) QT_TR_N_NOOP
(=QT_TR_N_NOOP) QT_TRID_N_NOOP (=QT_TRID_N_NOOP)
QT_TRANSLATE_N_NOOP (=QT_TRANSLATE_N_NOOP) QT_TRANSLATE_N_NOOP3
(=QT_TRANSLATE_N_NOOP3) QT_TR_NOOP (=QT_TR_NOOP) QT_TRID_NOOP
(=QT_TRID_NOOP) QT_TRANSLATE_NOOP (=QT_TRANSLATE_NOOP)
QT_TRANSLATE_NOOP3 (=QT_TRANSLATE_NOOP3) QT_TR_NOOP_UTF8
(=QT_TR_NOOP_UTF8) QT_TRANSLATE_NOOP_UTF8
(=QT_TRANSLATE_NOOP_UTF8) QT_TRANSLATE_NOOP3_UTF8
(=QT_TRANSLATE_NOOP3_UTF8) findMessage (=findMessage) qtTrId
(=qtTrId) tr (=tr) trUtf8 (=trUtf8) translate (=translate) qsTr
(=qsTr) qsTrId (=qsTrId) qsTranslate (=qsTranslate)
  • -ts <ts-file>... β€” specify the output file(s). this will override the TRANSLATIONS. πŸ“
  • -version β€” display the version of lupdate and exit.
  • @lst-file β€” read additional file names (one per line) or includepaths (one per line, and prefixed with -I) from lst-file. so handy. 🫢

and that's the whole page, bestie!! this was pyside6-lupdate version 6.11, dated September 2026, living under the PySide6 tools manual. go forth and translate, you absolute icon. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…

πŸ“¦ where this page comes from