summaryrefslogtreecommitdiff
path: root/lang/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-12 14:29:38 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-12 14:29:38 +0200
commit88d45641e8c06936635034cd83c8c7df1bd59439 (patch)
tree04bb5c3f83f68edb021b09876242c6493683ebb2 /lang/CMakeLists.txt
parent0e2b0878e4c344d1fdbadfb37350bded783789f3 (diff)
downloadturns-88d45641e8c06936635034cd83c8c7df1bd59439.tar.xz
turns-88d45641e8c06936635034cd83c8c7df1bd59439.zip
turns: add basic i18n
Diffstat (limited to 'lang/CMakeLists.txt')
-rw-r--r--lang/CMakeLists.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt
new file mode 100644
index 0000000..4bc985c
--- /dev/null
+++ b/lang/CMakeLists.txt
@@ -0,0 +1,38 @@
+set(TRANSLATIONS
+ "de"
+ "en_US"
+)
+
+foreach(LANG IN LISTS TRANSLATIONS)
+ set(SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/po/${LANG}.po")
+ set(BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${LANG}/LC_MESSAGES/turns.mo")
+
+ list(APPEND TRANSLATION_BINARIES "${BINARY_FILE}")
+
+ add_custom_command(OUTPUT "${BINARY_FILE}"
+ COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}"
+ ARGS
+ "-o"
+ "${BINARY_FILE}"
+ "${SOURCE_FILE}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ DEPENDS "${SOURCE_FILE}"
+ COMMENT "Processing translation ${LANG}"
+ )
+
+ install(FILES "${BINARY_FILE}"
+ DESTINATION "${CMAKE_INSTALL_FULL_LOCALEDIR}/${LANG}/LC_MESSAGES"
+ )
+endforeach()
+
+add_custom_target("mofiles" DEPENDS ${TRANSLATION_BINARIES})
+
+add_library("lang" INTERFACE)
+
+add_library("turns::lang" ALIAS "lang")
+
+target_compile_definitions("lang" INTERFACE
+ "LOCALEDIR=\"${CMAKE_INSTALL_FULL_LOCALEDIR}\""
+)
+
+add_dependencies("lang" "mofiles") \ No newline at end of file