diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7f2ce6d..6a74760 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,6 +17,7 @@ if (ECM_FOUND)
endif()
include(FeatureSummary)
+include(ECMPoQmTools)
find_package(Cargo)
find_package(Rust)
diff --git a/Messages.sh b/Messages.sh
new file mode 100755
index 0000000..39fd404
--- /dev/null
+++ b/Messages.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Extract strings from all source files.
+# EXTRACT_TR_STRINGS extracts strings with lupdate and convert them to .pot with
+# lconvert.
+$EXTRACT_TR_STRINGS `find demo -name \*.cpp -o -name \*.h -o -name \*.ui -o -name \*.qml` -o $podir/Demo_qt.pot
diff --git a/demo/CMakeLists.txt b/demo/CMakeLists.txt
index 073c9b2..b5e5ede 100644
--- a/demo/CMakeLists.txt
+++ b/demo/CMakeLists.txt
@@ -37,8 +37,10 @@ if (Qt5Charts_FOUND)
list(APPEND DemoLibs Qt5::Charts)
endif()
+ecm_create_qm_loader(Demo_QM_LOADER Demo_qt.pot)
+
set(Demo_SRCS src/main.cpp src/Bindings.cpp src/SortedModel.cpp
- resource_file.qrc)
+ resource_file.qrc ${Demo_QM_LOADER})
add_executable(Demo ${Demo_SRCS})
add_dependencies(Demo rust_target)
diff --git a/demo/src/main.cpp b/demo/src/main.cpp
index 50bbd60..dd0189a 100644
--- a/demo/src/main.cpp
+++ b/demo/src/main.cpp
@@ -169,7 +169,7 @@ QWidget* createObjectTab(Model* model) {
Fibonacci* fibonacci = model->demo.fibonacci();
QLabel* label = new QLabel;
- label->setText(label->tr("Calculate the nth Fibonacci number"));
+ label->setText(QCoreApplication::translate("main", "Calculate the nth Fibonacci number"));
QLineEdit* input = new QLineEdit;
input->setPlaceholderText("Your number");
@@ -186,7 +186,7 @@ QWidget* createObjectTab(Model* model) {
QLabel* result = new QLabel;
fibonacci->connect(fibonacci, &Fibonacci::resultChanged, result,
[result, fibonacci]() {
- result->setText(result->tr("The Fibonacci number: ")
+ result->setText(QCoreApplication::translate("main", "The Fibonacci number: ")
+ QString::number(fibonacci->result()));
});
input->setText(QString::number(model->demo.fibonacci()->input()));
@@ -202,9 +202,9 @@ QWidget* createObjectTab(Model* model) {
QWidget* createListTab(Model* model) {
QTableView* view = new QTableView();
model->demo.fibonacciList()->setHeaderData(0, Qt::Horizontal,
- view->tr("Row"), Qt::DisplayRole);
+ QCoreApplication::translate("main", "Row"), Qt::DisplayRole);
model->demo.fibonacciList()->setHeaderData(1, Qt::Horizontal,
- view->tr("Fibonacci number"), Qt::DisplayRole);
+ QCoreApplication::translate("main", "Fibonacci number"), Qt::DisplayRole);
view->setModel(model->demo.fibonacciList());
view->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
return view;
@@ -213,9 +213,9 @@ QWidget* createListTab(Model* model) {
QWidget* createTreeTab(Model* model) {
QTreeView* view = new QTreeView();
model->demo.fileSystemTree()->setHeaderData(0, Qt::Horizontal,
- view->tr("Name"), Qt::DisplayRole);
+ QCoreApplication::translate("main", "Name"), Qt::DisplayRole);
model->demo.fileSystemTree()->setHeaderData(1, Qt::Horizontal,
- view->tr("Size"), Qt::DisplayRole);
+ QCoreApplication::translate("main", "Size"), Qt::DisplayRole);
view->setUniformRowHeights(true);
view->setSortingEnabled(true);
view->setModel(&model->sortedFileSystem);