Add targets to transform Qt Linguist .ts files into .qm files.
命令的定义在
LinguistTools
组件对于
Qt6
package. Load the package with:
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
该命令在 Qt 6.2 引入。
qt_add_lrelease(target TS_FILES file1.ts [file2.ts ...] [NO_TARGET_DEPENDENCY] [NO_GLOBAL_TARGET] [QM_FILES_OUTPUT_VARIABLE variable-name] [OPTIONS ...])
若
无版本命令
被禁用,使用
qt6_add_lrelease()
代替。它支持如此命令的一组相同自变量。
警告:
调用
qt_add_lrelease
in a directory scope different than the target directory scope requires at least CMake version 3.18.
Creates a target
${target}_lrelease
to transform
.ts
files into
.qm
files with
lrelease
.
参数
target
is an existing executable or library target that contains sources with translatable strings.
The
.ts
files must be specified with the argument
TS_FILES
.
This function is designed to be used in conjunction with qt_add_lupdate . See also the convenience wrapper qt_add_translations .
可以设置额外
选项
that should be passed when
lrelease
is invoked. You can find possible options in the
lrelease documentation
.
默认情况下,
.qm
files will be placed in the current build directory (
CMAKE_CURRENT_BINARY_DIR
). To change this, you can set
OUTPUT_LOCATION
as a property of the source
.ts
文件。
For example, with the following code, the
.qm
files are generated in a
translations
directory below the current build directory.
set_source_files_properties(app_en.ts app_de.ts PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/translations")
To further process the generated
.qm
files, for example to create install rules,
qt_add_lrelease
can store the paths of the
.qm
files in a variable. Pass
QM_FILES_OUTPUT_VARIABLE <variable-name>
to the function for that.
By default, the command makes
${target}
depend on
${target}_lrelease
. This ensures that the
.qm
files are always up-to-date when
${target}
is built. This behavior can be turned off with
NO_TARGET_DEPENDENCY
. In this case, the user must build the
${target}_lrelease
target manually.
In addition to the target
${target}_lrelease
, an umbrella target
release_translations
is created. This target will build all
${target}_lrelease
targets that were created with
qt_add_lrelease
.
Pass
NO_GLOBAL_TARGET
to
qt_add_lrelease
to prevent this behavior.
The name of this target can be overridden by setting the variable
QT_GLOBAL_LRELEASE_TARGET
before calling
qt_add_lrelease
.
Add the targets
myapp_lrelease
and
update_translations
for updating the
.ts
file of an application
myapp
. Also, install the generated
.qm
文件。
qt_add_lrelease(myapp TS_FILES myapp_de.ts QM_FILES_OUTPUT_VARIABLE qm_files) install(FILES ${qm_files} DESTINATION "translations")