diff --git a/repos/libports/recipes/src/qt6_i18n_cmake/content.mk b/repos/libports/recipes/src/qt6_i18n_cmake/content.mk
new file mode 100644
index 0000000000..94afa448c1
--- /dev/null
+++ b/repos/libports/recipes/src/qt6_i18n_cmake/content.mk
@@ -0,0 +1,19 @@
+MIRROR_FROM_REP_DIR := src/app/qt6/examples/i18n_cmake
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt6_tools)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt6_tools/examples/linguist/i18n
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt6_tools/LICENSES/GPL-3.0-only.txt $@
diff --git a/repos/libports/recipes/src/qt6_i18n_cmake/hash b/repos/libports/recipes/src/qt6_i18n_cmake/hash
new file mode 100644
index 0000000000..e6918f992f
--- /dev/null
+++ b/repos/libports/recipes/src/qt6_i18n_cmake/hash
@@ -0,0 +1 @@
+2025-01-15 a954ed52258bcb371fb38df7c1ce01df38d8844b
diff --git a/repos/libports/recipes/src/qt6_i18n_cmake/used_apis b/repos/libports/recipes/src/qt6_i18n_cmake/used_apis
new file mode 100644
index 0000000000..8d31aa5904
--- /dev/null
+++ b/repos/libports/recipes/src/qt6_i18n_cmake/used_apis
@@ -0,0 +1,5 @@
+libc
+mesa
+qt6_base
+qt6_component
+stdcxx
diff --git a/repos/libports/recipes/src/qt6_i18n_qmake/content.mk b/repos/libports/recipes/src/qt6_i18n_qmake/content.mk
new file mode 100644
index 0000000000..3d5ec05426
--- /dev/null
+++ b/repos/libports/recipes/src/qt6_i18n_qmake/content.mk
@@ -0,0 +1,19 @@
+MIRROR_FROM_REP_DIR := src/app/qt6/examples/i18n_qmake
+
+content: $(MIRROR_FROM_REP_DIR) LICENSE
+
+$(MIRROR_FROM_REP_DIR):
+ $(mirror_from_rep_dir)
+
+PORT_DIR := $(call port_dir,$(REP_DIR)/ports/qt6_tools)
+
+MIRROR_FROM_PORT_DIR := src/lib/qt6_tools/examples/linguist/i18n
+
+content: $(MIRROR_FROM_PORT_DIR)
+
+$(MIRROR_FROM_PORT_DIR):
+ mkdir -p $(dir $@)
+ cp -r $(PORT_DIR)/$@ $(dir $@)
+
+LICENSE:
+ cp $(PORT_DIR)/src/lib/qt6_tools/LICENSES/GPL-3.0-only.txt $@
diff --git a/repos/libports/recipes/src/qt6_i18n_qmake/hash b/repos/libports/recipes/src/qt6_i18n_qmake/hash
new file mode 100644
index 0000000000..e6918f992f
--- /dev/null
+++ b/repos/libports/recipes/src/qt6_i18n_qmake/hash
@@ -0,0 +1 @@
+2025-01-15 a954ed52258bcb371fb38df7c1ce01df38d8844b
diff --git a/repos/libports/recipes/src/qt6_i18n_qmake/used_apis b/repos/libports/recipes/src/qt6_i18n_qmake/used_apis
new file mode 100644
index 0000000000..8d31aa5904
--- /dev/null
+++ b/repos/libports/recipes/src/qt6_i18n_qmake/used_apis
@@ -0,0 +1,5 @@
+libc
+mesa
+qt6_base
+qt6_component
+stdcxx
diff --git a/repos/libports/run/qt6_i18n_cmake.run b/repos/libports/run/qt6_i18n_cmake.run
new file mode 100644
index 0000000000..99b79788c1
--- /dev/null
+++ b/repos/libports/run/qt6_i18n_cmake.run
@@ -0,0 +1,46 @@
+source ${genode_dir}/repos/libports/run/qt6_common.inc
+
+import_from_depot [depot_user]/src/qt6_component \
+ [depot_user]/src/qt6_i18n_cmake
+
+install_config {
+
+
+ } [qt6_parent_provides] {
+
+
+
+
+
+ } [qt6_start_nodes] {
+
+
+
+
+
+
+ 2018-01-01 00:01
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+build_boot_image [qt6_boot_modules]
+
+run_genode_until forever
diff --git a/repos/libports/run/qt6_i18n_qmake.run b/repos/libports/run/qt6_i18n_qmake.run
new file mode 100644
index 0000000000..a352f668ab
--- /dev/null
+++ b/repos/libports/run/qt6_i18n_qmake.run
@@ -0,0 +1,46 @@
+source ${genode_dir}/repos/libports/run/qt6_common.inc
+
+import_from_depot [depot_user]/src/qt6_component \
+ [depot_user]/src/qt6_i18n_qmake
+
+install_config {
+
+
+ } [qt6_parent_provides] {
+
+
+
+
+
+ } [qt6_start_nodes] {
+
+
+
+
+
+
+ 2018-01-01 00:01
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+build_boot_image [qt6_boot_modules]
+
+run_genode_until forever
diff --git a/repos/libports/src/app/qt6/examples/i18n_cmake/target.mk b/repos/libports/src/app/qt6/examples/i18n_cmake/target.mk
new file mode 100644
index 0000000000..ccdde4bf97
--- /dev/null
+++ b/repos/libports/src/app/qt6/examples/i18n_cmake/target.mk
@@ -0,0 +1,16 @@
+ifeq ($(CONTRIB_DIR),)
+QT6_TOOLS_DIR = $(call select_from_repositories,src/lib/qt6_tools)
+else
+QT6_TOOLS_PORT_DIR := $(call select_from_ports,qt6_tools)
+QT6_TOOLS_DIR = $(QT6_TOOLS_PORT_DIR)/src/lib/qt6_tools
+endif
+
+CMAKE_LISTS_DIR = $(QT6_TOOLS_DIR)/examples/linguist/i18n
+
+CMAKE_TARGET_BINARIES = i18n
+
+QT6_PORT_LIBS = libQt6Core \
+ libQt6Gui \
+ libQt6Widgets
+
+LIBS = qt6_cmake libc libm qt6_component stdcxx mesa egl
diff --git a/repos/libports/src/app/qt6/examples/i18n_qmake/target.mk b/repos/libports/src/app/qt6/examples/i18n_qmake/target.mk
new file mode 100644
index 0000000000..e6c55e96a9
--- /dev/null
+++ b/repos/libports/src/app/qt6/examples/i18n_qmake/target.mk
@@ -0,0 +1,16 @@
+ifeq ($(CONTRIB_DIR),)
+QT6_TOOLS_DIR = $(call select_from_repositories,src/lib/qt6_tools)
+else
+QT6_TOOLS_PORT_DIR := $(call select_from_ports,qt6_tools)
+QT6_TOOLS_DIR = $(QT6_TOOLS_PORT_DIR)/src/lib/qt6_tools
+endif
+
+QMAKE_PROJECT_FILE = $(QT6_TOOLS_DIR)/examples/linguist/i18n/i18n.pro
+
+QMAKE_TARGET_BINARIES = i18n
+
+QT6_PORT_LIBS = libQt6Core \
+ libQt6Gui \
+ libQt6Widgets
+
+LIBS = qt6_qmake libc libm qt6_component stdcxx mesa egl