Using lconvert
The lconvert command line tool filters and converts translation data files.
It supports the following file formats:
pot- GNU Gettext localization template filesqph- Qt Linguist Phrase Bookts- Qt translation sourcespo- GNU Gettext localization filesqm- Compiled Qt translationsxlf- XLIFF localization files
lconvert syntax
lconvert [options] <infile> [<infile>...]
Where:
optionsmeans one or several lconvert options.infileis an input file. You can specify multiple input files.
If you specify multiple input files, they are merged with translations from later files taking precedence.
To view the latest lconvert help, enter:
lconvert -help
lconvert options
| Option | Action |
|---|---|
-h -help | Display up-to-date help information and exit. |
-i <infile> -input-file <infile> | Specify an input file. Use this option if <infile> starts with a dash. Use this option several times to merge inputs. May be - (standard input) for use in a pipe. |
-o <outfile> -output-file <outfile> | Specify an output file. Default is - (standard output). |
-if <informat> -input-format <format> | Specify input format for subsequent input files. The format is auto-detected from the file name and defaults to ts. |
-of <outformat> -output-format <outformat> | Specify output format. See -if. |
-drop-tags <regexp> | Drop named extra tags when writing TS or XLIFF files. You can specify this option repeatedly. |
-drop-translations | Drop existing translations and reset the status to unfinished. That implies --no-obsolete. |
-source-language <language>[_<region>] | Specify/override the language of the source strings. Defaults to POSIX if not specified and the file does not name it yet. |
-target-language <language>[_<region>] | Specify or override the language of the translation. By default, the target language is read from the file content or guessed from the file name. |
-no-obsolete | Drop obsolete messages. |
-no-finished | Drop finished messages. |
-no-untranslated | Drop untranslated messages. |
-sort-contexts | Sort contexts in the output TS file alphabetically. |
-sort-messages | Sort messages in a context alphabetically in TS files. |
-locations {absolute|relative|none} | Override how source code references are saved in TS files. Default is absolute. |
-no-ui-lines | Drop line numbers from references to UI files. |
-pluralonly | Drop non-plural form messages. |
-verbose | Explain what is being done. |
Examples
Convert TS file to XLIFF
To convert a single TS file to XLIFF, run the following command in the terminal:
lconvert -o myapp_de.xlf myapp_de.ts
Merge multiple QM files
The following command merges multiple QM files into full_de.qm:
lconvert -o full_de.qm qtbase_de.qm myapp_de.qm mylib_de.qm
Using lconvert with CMake
To call lconvert when configuring or building your CMake project, load the Qt6LinguistTools package and use $<TARGET_FILE_NAME:Qt6::lconvert> for locating the lconvert executable.
The following example adds a custom target xlf_de that converts a single TS file to XLIFF.
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
add_custom_command(
OUTPUT myapp_de.xlf
COMMAND $<TARGET_FILE:Qt6::lconvert> -o myapp_de.xlf myapp_de.ts
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/myapp_de.ts"
VERBATIM
)
add_custom_target(xlf_de
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/myapp_de.xlf"
)© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.