Qt 6 adding qt_add_translations() to CMake creates empty .ts files.
-
I've been attempting to add support for localization to a project. From the documentation I understand the following CMake should create the template for my .ts filled with the text variables I marked with qsTr("example"). However, it only seems to create an empty .ts file.
How could I approach fixing this problem?
The following is a recreation in a test project with simpler files.
main.qmlimport QtQuick Window { width: 640 height: 480 visible: true title: qsTr("Hello World") }
CMakeLists.txt
cmake_minimum_required(VERSION 3.16) project(translatetest VERSION 0.1 LANGUAGES CXX) set(CMAKE_AUTOMOC ON) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 6.2 COMPONENTS Quick LinguistTools REQUIRED) qt_add_executable(apptranslatetest main.cpp ) qt_add_qml_module(apptranslatetest URI translatetest VERSION 1.0 QML_FILES main.qml ) qt_add_translations(apptranslatetest TS_FILES translatetest_fi_FI.ts ) set_target_properties(apptranslatetest PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) target_link_libraries(apptranslatetest PRIVATE Qt6::Quick) install(TARGETS apptranslatetest BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
After building and running:
translatetest_fi_FI.ts<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.1" language="fi_FI"></TS>
-
I've been attempting to add support for localization to a project. From the documentation I understand the following CMake should create the template for my .ts filled with the text variables I marked with qsTr("example"). However, it only seems to create an empty .ts file.
How could I approach fixing this problem?
The following is a recreation in a test project with simpler files.
main.qmlimport QtQuick Window { width: 640 height: 480 visible: true title: qsTr("Hello World") }
CMakeLists.txt
cmake_minimum_required(VERSION 3.16) project(translatetest VERSION 0.1 LANGUAGES CXX) set(CMAKE_AUTOMOC ON) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 6.2 COMPONENTS Quick LinguistTools REQUIRED) qt_add_executable(apptranslatetest main.cpp ) qt_add_qml_module(apptranslatetest URI translatetest VERSION 1.0 QML_FILES main.qml ) qt_add_translations(apptranslatetest TS_FILES translatetest_fi_FI.ts ) set_target_properties(apptranslatetest PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) target_link_libraries(apptranslatetest PRIVATE Qt6::Quick) install(TARGETS apptranslatetest BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
After building and running:
translatetest_fi_FI.ts<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.1" language="fi_FI"></TS>
-
@Vede34
HiI was having the same issue.
Seems like in Qtcreator and CMAKE, the target "all" does not include update_translations target.
Just go to project check it and it will be generated