updatepo cmake rule
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Fri, 22 Jul 2011 08:55:05 +0000 (10:55 +0200)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Fri, 22 Jul 2011 10:40:29 +0000 (12:40 +0200)
Get rid of the system-specific updatelocales.sh and introduce an
updatepo cmake rule. po files are also updated before creating the mo
files, and we now keep the .pot file (in the po/en directory). To
stabilize the po file creation, file contents are sorted by source
filename.

Update po files in the process.

cmake/Modules/FindGettextLib.cmake
po/de/minetest.po
po/en/minetest.pot [new file with mode: 0644]
po/fr/minetest.po
src/CMakeLists.txt
updatelocales.sh [deleted file]

index 31b261539bbc6ddc4585dd6042d387ca559a63cb..b99fd33b83f7e7e65a5ab3c479dd6abcc038547d 100644 (file)
@@ -16,6 +16,21 @@ FIND_PROGRAM(GETTEXT_MSGFMT
        PATHS "${CUSTOM_GETTEXT_PATH}/bin"
        DOC "path to msgfmt")
 
+FIND_PROGRAM(GETTEXT_MSGMERGE
+       NAMES msgmerge
+       PATHS "${CUSTOM_GETTEXT_PATH}/bin"
+       DOC "path to msgmerge")
+
+FIND_PROGRAM(GETTEXT_MSGEN
+       NAMES msgen
+       PATHS "${CUSTOM_GETTEXT_PATH}/bin"
+       DOC "path to msgen")
+
+FIND_PROGRAM(GETTEXT_EXTRACT
+       NAMES xgettext
+       PATHS "${CUSTOM_GETTEXT_PATH}/bin"
+       DOC "path to xgettext")
+
 # modern Linux, as well as Mac, seem to not need require special linking
 # they do not because gettext is part of glibc
 # TODO check the requirements on other BSDs and older Linux
index c5ec1c7a05fa60766cefc99c2cd31dc75f7e4cb6..69b57fd95b150849ff032343f9b38ea85b35b5aa 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-20 16:57+0200\n"
+"POT-Creation-Date: 2011-07-22 11:00+0200\n"
 "PO-Revision-Date: 2011-07-20 16:58+0100\n"
 "Last-Translator: Constantin Wenger <constantin.wenger@googlemail.com>\n"
 "Language-Team: Deutsch <>\n"
@@ -21,44 +21,43 @@ msgstr ""
 msgid "Name/Password"
 msgstr "Name/Passwort"
 
-#: src/guiMainMenu.cpp:202
+#: src/guiMainMenu.cpp:203
 msgid "Address/Port"
 msgstr "Adresse / Port"
 
-#: src/guiMainMenu.cpp:220
+#: src/guiMainMenu.cpp:223
 msgid "Leave address blank to start a local server."
 msgstr "Lasse die Adresse frei um einen eigenen Server zu starten"
 
-#: src/guiMainMenu.cpp:226
+#: src/guiMainMenu.cpp:230
 msgid "Fancy trees"
 msgstr "Schöne Bäume"
 
-#: src/guiMainMenu.cpp:232
+#: src/guiMainMenu.cpp:236
 msgid "Smooth Lighting"
 msgstr "Besseres Licht"
 
-#: src/guiMainMenu.cpp:239
+#: src/guiMainMenu.cpp:244
 msgid "Start Game / Connect"
 msgstr "Spiel starten / Verbinden"
 
-#: src/guiMainMenu.cpp:247
+#: src/guiMainMenu.cpp:253
 msgid "Change keys"
 msgstr "Tastenbelegung ändern"
 
-#: src/guiMainMenu.cpp:269
+#: src/guiMainMenu.cpp:276
 msgid "Creative Mode"
 msgstr "Kreativitätsmodus"
 
-#: src/guiMainMenu.cpp:274
+#: src/guiMainMenu.cpp:282
 msgid "Enable Damage"
 msgstr "Schaden einschalten"
 
-#: src/guiMainMenu.cpp:281
+#: src/guiMainMenu.cpp:290
 msgid "Delete map"
 msgstr "Karte löschen"
 
-#: src/guiMessageMenu.cpp:92
-#: src/guiTextInputMenu.cpp:110
+#: src/guiMessageMenu.cpp:93 src/guiTextInputMenu.cpp:111
 msgid "Proceed"
 msgstr "Fortsetzen"
 
@@ -66,39 +65,39 @@ msgstr "Fortsetzen"
 msgid "Old Password"
 msgstr "Altes Passwort"
 
-#: src/guiPasswordChange.cpp:116
+#: src/guiPasswordChange.cpp:117
 msgid "New Password"
 msgstr "Neues Passwort"
 
-#: src/guiPasswordChange.cpp:129
+#: src/guiPasswordChange.cpp:131
 msgid "Confirm Password"
 msgstr "Passwort wiederholen"
 
-#: src/guiPasswordChange.cpp:143
+#: src/guiPasswordChange.cpp:146
 msgid "Change"
 msgstr "Ändern"
 
-#: src/guiPasswordChange.cpp:151
+#: src/guiPasswordChange.cpp:155
 msgid "Passwords do not match!"
 msgstr "Passwörter passen nicht zusammen"
 
-#: src/guiPauseMenu.cpp:109
+#: src/guiPauseMenu.cpp:110
 msgid "Continue"
 msgstr "Weiter"
 
-#: src/guiPauseMenu.cpp:115
+#: src/guiPauseMenu.cpp:117
 msgid "Change Password"
 msgstr "Passwort ändern"
 
-#: src/guiPauseMenu.cpp:121
+#: src/guiPauseMenu.cpp:124
 msgid "Disconnect"
 msgstr "Verbindung trennen"
 
-#: src/guiPauseMenu.cpp:127
+#: src/guiPauseMenu.cpp:131
 msgid "Exit to OS"
 msgstr "Programm beenden"
 
-#: src/guiPauseMenu.cpp:134
+#: src/guiPauseMenu.cpp:138
 msgid ""
 "Keys:\n"
 "- WASD: Walk\n"
@@ -122,4 +121,3 @@ msgstr ""
 "- R: Alle geladenen Kartenteile anzeigen, umschalten\n"
 "- I: Inventarmenü\n"
 "- T: Chat\n"
-
diff --git a/po/en/minetest.pot b/po/en/minetest.pot
new file mode 100644 (file)
index 0000000..e242c49
--- /dev/null
@@ -0,0 +1,113 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: minetest\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-22 11:02+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/guiMainMenu.cpp:180
+msgid "Name/Password"
+msgstr ""
+
+#: src/guiMainMenu.cpp:203
+msgid "Address/Port"
+msgstr ""
+
+#: src/guiMainMenu.cpp:223
+msgid "Leave address blank to start a local server."
+msgstr ""
+
+#: src/guiMainMenu.cpp:230
+msgid "Fancy trees"
+msgstr ""
+
+#: src/guiMainMenu.cpp:236
+msgid "Smooth Lighting"
+msgstr ""
+
+#: src/guiMainMenu.cpp:244
+msgid "Start Game / Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:253
+msgid "Change keys"
+msgstr ""
+
+#: src/guiMainMenu.cpp:276
+msgid "Creative Mode"
+msgstr ""
+
+#: src/guiMainMenu.cpp:282
+msgid "Enable Damage"
+msgstr ""
+
+#: src/guiMainMenu.cpp:290
+msgid "Delete map"
+msgstr ""
+
+#: src/guiMessageMenu.cpp:93 src/guiTextInputMenu.cpp:111
+msgid "Proceed"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:102
+msgid "Old Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:117
+msgid "New Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:131
+msgid "Confirm Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:146
+msgid "Change"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:155
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:110
+msgid "Continue"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:117
+msgid "Change Password"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:124
+msgid "Disconnect"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:131
+msgid "Exit to OS"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:138
+msgid ""
+"Keys:\n"
+"- WASD: Walk\n"
+"- Mouse left: dig blocks\n"
+"- Mouse right: place blocks\n"
+"- Mouse wheel: select item\n"
+"- 0...9: select item\n"
+"- Shift: sneak\n"
+"- R: Toggle viewing all loaded chunks\n"
+"- I: Inventory menu\n"
+"- ESC: This menu\n"
+"- T: Chat\n"
+msgstr ""
index cfb76ae1a1f5277a58823948e307ea1ed42e46b9..b060c424c562c9dc80177e63d337e8052ed566be 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-21 02:00+0200\n"
+"POT-Creation-Date: 2011-07-22 11:00+0200\n"
 "PO-Revision-Date: 2011-07-21 15:48+0200\n"
 "Last-Translator: Cyriaque 'Cisoun' Skrapits <cysoun@gmail.com>\n"
 "Language-Team: Français <>\n"
@@ -21,44 +21,43 @@ msgstr ""
 msgid "Name/Password"
 msgstr "Nom / MdP"
 
-#: src/guiMainMenu.cpp:202
+#: src/guiMainMenu.cpp:203
 msgid "Address/Port"
 msgstr "Adresse / Port"
 
-#: src/guiMainMenu.cpp:220
+#: src/guiMainMenu.cpp:223
 msgid "Leave address blank to start a local server."
 msgstr "Laisser l'adresse vide pour lancer un serveur local."
 
-#: src/guiMainMenu.cpp:226
+#: src/guiMainMenu.cpp:230
 msgid "Fancy trees"
 msgstr "Arbres spéciaux"
 
-#: src/guiMainMenu.cpp:232
+#: src/guiMainMenu.cpp:236
 msgid "Smooth Lighting"
 msgstr "Lumière douce"
 
-#: src/guiMainMenu.cpp:239
+#: src/guiMainMenu.cpp:244
 msgid "Start Game / Connect"
 msgstr "Démarrer / Connecter"
 
-#: src/guiMainMenu.cpp:247
+#: src/guiMainMenu.cpp:253
 msgid "Change keys"
 msgstr "Changer touches"
 
-#: src/guiMainMenu.cpp:269
+#: src/guiMainMenu.cpp:276
 msgid "Creative Mode"
 msgstr "Mode créatif"
 
-#: src/guiMainMenu.cpp:274
+#: src/guiMainMenu.cpp:282
 msgid "Enable Damage"
 msgstr "Activer blessures"
 
-#: src/guiMainMenu.cpp:281
+#: src/guiMainMenu.cpp:290
 msgid "Delete map"
 msgstr "Supprimer carte"
 
-#: src/guiMessageMenu.cpp:92
-#: src/guiTextInputMenu.cpp:110
+#: src/guiMessageMenu.cpp:93 src/guiTextInputMenu.cpp:111
 msgid "Proceed"
 msgstr "OK"
 
@@ -66,39 +65,39 @@ msgstr "OK"
 msgid "Old Password"
 msgstr "Ancien mot de passe"
 
-#: src/guiPasswordChange.cpp:116
+#: src/guiPasswordChange.cpp:117
 msgid "New Password"
 msgstr "Nouveau mot de passe"
 
-#: src/guiPasswordChange.cpp:129
+#: src/guiPasswordChange.cpp:131
 msgid "Confirm Password"
 msgstr "Confirmer mot de passe"
 
-#: src/guiPasswordChange.cpp:143
+#: src/guiPasswordChange.cpp:146
 msgid "Change"
 msgstr "Changer"
 
-#: src/guiPasswordChange.cpp:151
+#: src/guiPasswordChange.cpp:155
 msgid "Passwords do not match!"
 msgstr "Mauvaise correspondance!"
 
-#: src/guiPauseMenu.cpp:109
+#: src/guiPauseMenu.cpp:110
 msgid "Continue"
 msgstr "Continuer"
 
-#: src/guiPauseMenu.cpp:115
+#: src/guiPauseMenu.cpp:117
 msgid "Change Password"
 msgstr "Changer mot de passe"
 
-#: src/guiPauseMenu.cpp:121
+#: src/guiPauseMenu.cpp:124
 msgid "Disconnect"
 msgstr "Déconnection"
 
-#: src/guiPauseMenu.cpp:127
+#: src/guiPauseMenu.cpp:131
 msgid "Exit to OS"
 msgstr "Quitter le jeu"
 
-#: src/guiPauseMenu.cpp:134
+#: src/guiPauseMenu.cpp:138
 msgid ""
 "Keys:\n"
 "- WASD: Walk\n"
@@ -122,4 +121,3 @@ msgstr ""
 "- R: Active la vue de tous les blocs\n"
 "- I: Inventaire\n"
 "- T: Chat\n"
-
index 61fb206804ef1eac743cf9b8ad219cb1bd2cc823..0c4b418293800d4a239e28f427ae280b34f7a824 100644 (file)
@@ -297,28 +297,54 @@ if(BUILD_SERVER)
 endif(BUILD_SERVER)
 
 if (USE_GETTEXT)
+       add_custom_command(OUTPUT "${GETTEXT_PO_PATH}/en"
+               COMMAND ${CMAKE_COMMAND} -E make_directory "${GETTEXT_PO_PATH}/en"
+               COMMENT "po-update [en]: creating translation template base directory")
+       set(POT_FILE "${GETTEXT_PO_PATH}/en/minetest.pot")
+       file(GLOB GETTEXT_POT_DEPS *.cpp *.h)
+       file(GLOB GETTEXT_POT_DEPS_REL RELATIVE ${CMAKE_SOURCE_DIR} *.cpp *.h)
+       add_custom_command(OUTPUT ${POT_FILE}
+               COMMAND ${GETTEXT_EXTRACT} -F -n -o ${POT_FILE} ${GETTEXT_POT_DEPS_REL}
+               DEPENDS "${GETTEXT_PO_PATH}/en" ${GETTEXT_POT_DEPS}
+               WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+               COMMENT "po-update [en]: updating translation template")
+
+       set(PO_FILES)
        set(MO_FILES)
+
        foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
-               set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
-               add_custom_command(OUTPUT ${MO_BUILD_PATH}
-                       COMMAND ${CMAKE_COMMAND} -E make_directory ${MO_BUILD_PATH}
-                       COMMENT "mo-update [${LOCALE}]: Creating locale directory.")
-
-               set(MO_FILE_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
-               set(PO_FILE_PATH "${GETTEXT_PO_PATH}/${LOCALE}/minetest.po")
-
-               add_custom_command(
-                       OUTPUT ${MO_FILE_PATH}
-                       COMMAND ${GETTEXT_MSGFMT} -o ${MO_FILE_PATH} ${PO_FILE_PATH}
-                       DEPENDS ${MO_BUILD_PATH} ${PO_FILE_PATH}
-                       WORKING_DIRECTORY "${GETTEXT_PO_PATH}/${LOCALE}"
-                       COMMENT "mo-update [${LOCALE}]: Creating mo file."
-                       )
+               # skip the 'en' locale which is treated separately
+               if (NOT LOCALE STREQUAL "en")
+                       set(PO_FILE_PATH "${GETTEXT_PO_PATH}/${LOCALE}/minetest.po")
+                       add_custom_command(OUTPUT ${PO_FILE_PATH}
+                               COMMAND ${GETTEXT_MSGMERGE} -F -U ${PO_FILE_PATH} ${POT_FILE}
+                               DEPENDS ${POT_FILE}
+                               WORKING_DIRECTORY "${GETTEXT_PO_PATH}/${LOCALE}"
+                               COMMENT "po-update [${LOCALE}]: updating strings")
 
-               set(MO_FILES ${MO_FILES} ${MO_FILE_PATH})
+
+                       set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
+                       add_custom_command(OUTPUT ${MO_BUILD_PATH}
+                               COMMAND ${CMAKE_COMMAND} -E make_directory ${MO_BUILD_PATH}
+                               COMMENT "mo-update [${LOCALE}]: Creating locale directory.")
+
+                       set(MO_FILE_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
+
+                       add_custom_command(
+                               OUTPUT ${MO_FILE_PATH}
+                               COMMAND ${GETTEXT_MSGFMT} -o ${MO_FILE_PATH} ${PO_FILE_PATH}
+                               DEPENDS ${MO_BUILD_PATH} ${PO_FILE_PATH}
+                               WORKING_DIRECTORY "${GETTEXT_PO_PATH}/${LOCALE}"
+                               COMMENT "mo-update [${LOCALE}]: Creating mo file."
+                               )
+
+                       set(MO_FILES ${MO_FILES} ${MO_FILE_PATH})
+                       set(PO_FILES ${PO_FILES} ${PO_FILE_PATH})
+               endif(NOT LOCALE STREQUAL "en")
        endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
 
        add_custom_target(translations ALL COMMENT "mo update" DEPENDS ${MO_FILES})
+       add_custom_target(updatepo COMMENT "po update" DEPENDS ${PO_FILES})
 endif(USE_GETTEXT)
 
 # Subdirectories
diff --git a/updatelocales.sh b/updatelocales.sh
deleted file mode 100755 (executable)
index 72ecd48..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /bin/bash
-xgettext -n -o minetest.pot ./src/*.cpp ./src/*.h
-msgmerge -U ./po/de/minetest.po minetest.pot
-msgmerge -U ./po/fr/minetest.po minetest.pot
-rm minetest.pot