From 9cb5f70be56dbbbb75bb12de23f05243d2173030 Mon Sep 17 00:00:00 2001
From: Weedy <weedy2887@gmail.com>
Date: Thu, 21 Jul 2011 02:30:21 -0400
Subject: Fix win32 MSVC compile. (screw gettext)

---
 src/CMakeLists.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 72f79976c..a578eeb79 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -31,8 +31,8 @@ if(WIN32)
 			CACHE PATH "gettext include directory")
 	set(GETTEXT_BIN_DIR "${PROJECT_SOURCE_DIR}/../../gettext/bin"
 			CACHE PATH "gettext bin directory")
-	set(GETTEXT_LIBRARIES "${PROJECT_SOURCE_DIR}/../../gettext/lib/intl.lib"
-			CACHE FILEPATH "gettext intl.lib")
+	set(GETTEXT_LIBRARIES "${PROJECT_SOURCE_DIR}/../../gettext/lib/libintl.lib"
+			CACHE FILEPATH "gettext libintl.lib")
 	set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
 			CACHE PATH "irrlicht dir")
 else()
@@ -277,7 +277,7 @@ if(BUILD_SERVER)
 endif(BUILD_SERVER)
 
 if(WIN32)
-	set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt" CACHE FILEPATH "path to msgfmt")
+	set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt.exe" CACHE FILEPATH "path to msgfmt")
 elseif(APPLE)
 	set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt" CACHE FILEPATH "path to msgfmt")
 else()
-- 
cgit v1.2.3


From 36d8f91f1acfaec345c44fc5518b3acbcafad695 Mon Sep 17 00:00:00 2001
From: Weedy <weedy2887@gmail.com>
Date: Thu, 21 Jul 2011 02:36:30 -0400
Subject: Tweak makefiles to add -delta suffix.

---
 CMakeLists.txt        | 16 ++++++++--------
 makepackage_binary.sh | 10 +++++++---
 src/CMakeLists.txt    | 26 +++++++++++++-------------
 3 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 15f4a6453..aae390f38 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,11 +5,11 @@ if(${CMAKE_VERSION} STREQUAL "2.8.2")
 endif(${CMAKE_VERSION} STREQUAL "2.8.2")
 
 # This can be read from ${PROJECT_NAME} after project() is called
-project(minetest)
+project(minetest-delta)
 
 set(VERSION_MAJOR 0)
 set(VERSION_MINOR 2)
-set(VERSION_PATCH 20110704_0)
+set(VERSION_PATCH 20110720_0)
 set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
 
 # Configuration options
@@ -48,15 +48,15 @@ if(WIN32)
 	set(EXAMPLE_CONF_DIR ".")
 elseif(APPLE)
 	# random placeholders
-	set(DATADIR "share/minetest")
+	set(DATADIR "share/${PROJECT_NAME}")
 	set(BINDIR "bin")
-	set(DOCDIR "share/doc/minetest")
+	set(DOCDIR "share/doc/${PROJECT_NAME}")
 	set(EXAMPLE_CONF_DIR ".")
 elseif(UNIX) # Linux, BSD etc
-	set(DATADIR "share/minetest")
+	set(DATADIR "share/${PROJECT_NAME}")
 	set(BINDIR "bin")
-	set(DOCDIR "share/doc/minetest")
-	set(EXAMPLE_CONF_DIR "share/doc/minetest")
+	set(DOCDIR "share/doc/${PROJECT_NAME}")
+	set(EXAMPLE_CONF_DIR "share/doc/${PROJECT_NAME}")
 endif()
 
 install(FILES "doc/README.txt" DESTINATION "${DOCDIR}")
@@ -103,7 +103,7 @@ elseif(APPLE)
 	set(CPACK_BUNDLE_NAME ${PROJECT_NAME})
 	set(CPACK_BUNDLE_ICON "")
 	set(CPACK_BUNDLE_PLIST "")
-	set(CPACK_BUNDLE_STARTUP_COMMAND "Contents/MacOS/minetest")
+	set(CPACK_BUNDLE_STARTUP_COMMAND "Contents/MacOS/${PROJECT_NAME}")
 	set(CPACK_GENERATOR "Bundle")
 else()
 	set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION_STRING}-linux")
diff --git a/makepackage_binary.sh b/makepackage_binary.sh
index f00ec608c..32d19865a 100755
--- a/makepackage_binary.sh
+++ b/makepackage_binary.sh
@@ -1,17 +1,19 @@
 #!/bin/sh
 
-PACKAGEDIR=../minetest-packages
-PACKAGENAME=minetest-c55-binary-`date +%y%m%d%H%M%S`
+PROJECT_NAME=minetest-delta
+PACKAGEDIR=../$PROJECT_NAME-packages
+PACKAGENAME=$PROJECT_NAME-binary-`date +%y%m%d%H%M%S`
 PACKAGEPATH=$PACKAGEDIR/$PACKAGENAME
 
 mkdir -p $PACKAGEPATH
 mkdir -p $PACKAGEPATH/bin
 mkdir -p $PACKAGEPATH/data
 mkdir -p $PACKAGEPATH/doc
+mkdir -p $PACKAGEPATH/locale/de/LC_MESSAGES/
 
 cp minetest.conf.example $PACKAGEPATH/
 
-cp bin/minetest.exe $PACKAGEPATH/bin/
+cp bin/$PROJECT_NAME.exe $PACKAGEPATH/bin/
 cp bin/Irrlicht.dll $PACKAGEPATH/bin/
 cp bin/zlibwapi.dll $PACKAGEPATH/bin/
 #cp bin/test $PACKAGEPATH/bin/
@@ -57,6 +59,8 @@ cp -r data/sand.png $PACKAGEPATH/data/
 
 cp -r doc/README.txt $PACKAGEPATH/doc/README.txt
 
+cp -r locale/de/LC_MESSAGES/$PROJECT_NAME.mo $PACKAGEPATH/locale/de/LC_MESSAGES/
+
 cd $PACKAGEDIR
 rm $PACKAGENAME.zip
 zip -r $PACKAGENAME.zip $PACKAGENAME
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a578eeb79..2e99ec0c9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-project(minetest)
+project(minetest-delta)
 cmake_minimum_required( VERSION 2.6 )
 
 if(RUN_IN_PLACE)
@@ -153,9 +153,9 @@ include_directories(
 set(EXECUTABLE_OUTPUT_PATH ../bin)
 
 if(BUILD_CLIENT)
-	add_executable(minetest ${minetest_SRCS})
+	add_executable(${PROJECT_NAME} ${minetest_SRCS})
 	target_link_libraries(
-		minetest
+		${PROJECT_NAME}
 		${ZLIB_LIBRARIES}
 		${IRRLICHT_LIBRARY}
 		${OPENGL_LIBRARIES}
@@ -172,9 +172,9 @@ if(BUILD_CLIENT)
 endif(BUILD_CLIENT)
 
 if(BUILD_SERVER)
-	add_executable(minetestserver ${minetestserver_SRCS})
+	add_executable(${PROJECT_NAME}server ${minetestserver_SRCS})
 	target_link_libraries(
-		minetestserver
+		${PROJECT_NAME}server
 		${ZLIB_LIBRARIES}
 		${PLATFORM_LIBS}
 		${JTHREAD_LIBRARY}
@@ -199,7 +199,7 @@ if(MSVC)
 	set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1")
 	
 	if(BUILD_SERVER)
-		set_target_properties(minetestserver PROPERTIES
+		set_target_properties(${PROJECT_NAME}server PROPERTIES
 				COMPILE_DEFINITIONS "SERVER")
 	endif(BUILD_SERVER)
 
@@ -233,7 +233,7 @@ else()
 	endif()
 	
 	if(BUILD_SERVER)
-		set_target_properties(minetestserver PROPERTIES
+		set_target_properties(${PROJECT_NAME}server PROPERTIES
 				COMPILE_DEFINITIONS "SERVER")
 	endif(BUILD_SERVER)
 
@@ -250,13 +250,13 @@ endif()
 install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../minetest.conf.example" DESTINATION ${EXAMPLE_CONF_DIR})
 
 if(BUILD_CLIENT)
-	install(TARGETS minetest DESTINATION ${BINDIR})
+	install(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
 
 	file(GLOB images "${CMAKE_CURRENT_SOURCE_DIR}/../data/*.png")
 
 	install(FILES ${images} DESTINATION ${DATADIR})
 
-	install(FILES ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-c55.mo DESTINATION locale/de/LC_MESSAGES)
+	install(FILES ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo DESTINATION locale/de/LC_MESSAGES)
  
 	if(WIN32)
 		if(DEFINED IRRLICHT_DLL)
@@ -273,7 +273,7 @@ if(BUILD_CLIENT)
 endif(BUILD_CLIENT)
 
 if(BUILD_SERVER)
-	install(TARGETS minetestserver DESTINATION ${BINDIR})
+	install(TARGETS ${PROJECT_NAME}server DESTINATION ${BINDIR})
 endif(BUILD_SERVER)
 
 if(WIN32)
@@ -287,15 +287,15 @@ endif()
 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMENT "mo-update [de]: Creating locale directory.")
 
 add_custom_command(
-		OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-c55.mo
-		COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-c55.mo ${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po 
+		OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo
+		COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo ${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po 
 		DEPENDS 
 			${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES
 			${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po
 		WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/po/de
 		COMMENT "mo-update [de]: Creating mo file."
 		)
-add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-c55.mo)
+add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo)
 
 # Subdirectories
 
-- 
cgit v1.2.3


From fd70bbd36785c27fa8ef8229eee79fac32557e42 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Thu, 21 Jul 2011 07:53:13 +0200
Subject: Make gettext optional

---
 src/CMakeLists.txt | 66 +++++++++++++++++++++++++++++++++---------------------
 src/gettext.h      |  9 +++++++-
 2 files changed, 48 insertions(+), 27 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2e99ec0c9..fb8f419e5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -5,6 +5,16 @@ if(RUN_IN_PLACE)
 	add_definitions ( -DRUN_IN_PLACE )
 endif(RUN_IN_PLACE)
 
+if(USE_GETTEXT)
+	add_definitions( -DUSE_GETTEXT )
+	message(STATUS "GetText enabled")
+else()
+	set(GETTEXT_INCLUDE_DIR "")
+	set(GETTEXT_BIN_DIR "")
+	set(GETTEXT_LIBRARIES "")
+	message(STATUS "GetText disabled")
+endif(USE_GETTEXT)
+
 if(NOT MSVC)
 	set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
 endif()
@@ -27,14 +37,16 @@ if(WIN32)
 			CACHE FILEPATH "Path to zlibwapi.lib")
 	set(ZLIB_DLL "${PROJECT_SOURCE_DIR}/../../zlib125dll/dll32/zlibwapi.dll"
 			CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
-	set(GETTEXT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../gettext/include"
+	set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
+			CACHE PATH "irrlicht dir")
+	if (USE_GETTEXT)
+		set(GETTEXT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../gettext/include"
 			CACHE PATH "gettext include directory")
-	set(GETTEXT_BIN_DIR "${PROJECT_SOURCE_DIR}/../../gettext/bin"
+		set(GETTEXT_BIN_DIR "${PROJECT_SOURCE_DIR}/../../gettext/bin"
 			CACHE PATH "gettext bin directory")
-	set(GETTEXT_LIBRARIES "${PROJECT_SOURCE_DIR}/../../gettext/lib/libintl.lib"
+		set(GETTEXT_LIBRARIES "${PROJECT_SOURCE_DIR}/../../gettext/lib/libintl.lib"
 			CACHE FILEPATH "gettext libintl.lib")
-	set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
-			CACHE PATH "irrlicht dir")
+	endif(USE_GETTEXT)
 else()
 	# Unix probably
 	if(BUILD_CLIENT)
@@ -221,7 +233,7 @@ else()
 		set(ARCH i386)
 	endif()
 
-	if(WIN32)
+	if(WIN32 AND USE_GETTEXT)
 		set(CMAKE_EXE_LINKER_FLAGS "-lintl -L ${GETTEXT_BIN_DIR}")
 	endif()
 
@@ -265,7 +277,7 @@ if(BUILD_CLIENT)
 		if(DEFINED ZLIB_DLL)
 			install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR})
 		endif()
-		if(DEFINED GETTEXT_BIN_DIR)
+		if(USE_GETTEXT AND DEFINED GETTEXT_BIN_DIR)
 			install(FILES ${GETTEXT_BIN_DIR}/libintl3.dll DESTINATION ${BINDIR})
 			install(FILES ${GETTEXT_BIN_DIR}/libiconv2.dll DESTINATION ${BINDIR})
 		endif()
@@ -276,26 +288,28 @@ if(BUILD_SERVER)
 	install(TARGETS ${PROJECT_NAME}server DESTINATION ${BINDIR})
 endif(BUILD_SERVER)
 
-if(WIN32)
-	set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt.exe" CACHE FILEPATH "path to msgfmt")
-elseif(APPLE)
-	set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt" CACHE FILEPATH "path to msgfmt")
-else()
-	set(GETTEXT_MSGFMT "msgfmt")
-endif()
+if (USE_GETTEXT)
+	if(WIN32)
+		set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt.exe" CACHE FILEPATH "path to msgfmt")
+	elseif(APPLE)
+		set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt" CACHE FILEPATH "path to msgfmt")
+	else()
+		set(GETTEXT_MSGFMT "msgfmt")
+	endif()
+
+	add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMENT "mo-update [de]: Creating locale directory.")
 
-add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMENT "mo-update [de]: Creating locale directory.")
-
-add_custom_command(
-		OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo
-		COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo ${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po 
-		DEPENDS 
-			${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES
-			${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po
-		WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/po/de
-		COMMENT "mo-update [de]: Creating mo file."
-		)
-add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo)
+	add_custom_command(
+			OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo
+			COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo ${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po 
+			DEPENDS 
+				${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES
+				${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po
+			WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/po/de
+			COMMENT "mo-update [de]: Creating mo file."
+			)
+	add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo)
+endif(USE_GETTEXT)
 
 # Subdirectories
 
diff --git a/src/gettext.h b/src/gettext.h
index 7f5f56e49..8ddb95346 100644
--- a/src/gettext.h
+++ b/src/gettext.h
@@ -1,9 +1,16 @@
+#ifdef USE_GETTEXT
 #include <libintl.h>
+#else
+#define gettext(String) String
+#define bindtextdomain(domain, dir) /* */
+#define textdomain(domain) /* */
+#endif
+
 #define _(String) gettext(String)
 #define gettext_noop(String) String
 #define N_(String) gettext_noop (String)
 
-inline wchar_t* chartowchar_t(char *str)
+inline wchar_t* chartowchar_t(const char *str)
 {
 	size_t l = strlen(str)+1;
 	wchar_t* nstr = new wchar_t[l];
-- 
cgit v1.2.3


From b99174cb0c680396373c0190d4c04afa7e28028f Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Thu, 21 Jul 2011 12:33:29 +0200
Subject: Refactor and clean up gettext management

---
 cmake/Modules/FindGettextLib.cmake | 48 +++++++++++++++++++++++++++++++++
 src/CMakeLists.txt                 | 54 ++++++++++++++++++--------------------
 2 files changed, 74 insertions(+), 28 deletions(-)
 create mode 100644 cmake/Modules/FindGettextLib.cmake

diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake
new file mode 100644
index 000000000..1ef8997f4
--- /dev/null
+++ b/cmake/Modules/FindGettextLib.cmake
@@ -0,0 +1,48 @@
+# Package finder for gettext libs and include files
+
+SET(CUSTOM_GETTEXT_PATH "${PROJECT_SOURCE_DIR}/../../gettext"
+	CACHE FILEPATH "path to custom gettext")
+
+# by default
+SET(GETTEXT_FOUND FALSE)
+
+FIND_PATH(GETTEXT_INCLUDE_DIR
+	NAMES libintl.h
+	PATHS "${CUSTOM_GETTEXT_PATH}/include"
+	DOC "gettext include directory")
+
+FIND_PROGRAM(GETTEXT_MSGFMT
+	NAMES msgfmt
+	PATHS "${CUSTOM_GETTEXT_PATH}/bin"
+	DOC "path to msgfmt")
+
+# modern Linux, as well as Mac, seem to not need require special linking
+# TODO check the requirements on other BSDs and older Linux
+IF (WIN32)
+	FIND_LIBRARY(GETTEXT_LIBRARY
+		NAMES libintl.lib intl.lib libintl3.lib intl3.lib
+		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
+		DOC "gettext *intl*.lib")
+	FIND_LIBRARY(GETTEXT_DLL
+		NAMES libintl.dll intl.dll libintl3.dll intl3.dll
+		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
+		DOC "gettext *intl*.dll")
+	FIND_LIBRARY(GETTEXT_ICONV_DLL
+		NAMES libiconv2.dll
+		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
+		DOC "gettext *iconv*.lib")
+ENDIF(WIN32)
+
+
+IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT)
+	IF (WIN32)
+		# in the Win32 case check also for the extra linking requirements
+		IF(GETTEXT_LIBRARY AND GETTEXT_DLL AND GETTEXT_ICONV_DLL)
+			SET(GETTEXT_FOUND TRUE)
+		ENDIF()
+	ELSE(WIN32)
+		SET(GETTEXT_FOUND TRUE)
+	ENDIF(WIN32)
+ENDIF()
+
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fb8f419e5..8785a0e3f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -6,12 +6,22 @@ if(RUN_IN_PLACE)
 endif(RUN_IN_PLACE)
 
 if(USE_GETTEXT)
-	add_definitions( -DUSE_GETTEXT )
-	message(STATUS "GetText enabled")
-else()
-	set(GETTEXT_INCLUDE_DIR "")
-	set(GETTEXT_BIN_DIR "")
-	set(GETTEXT_LIBRARIES "")
+	find_package(GettextLib REQUIRED)
+	if (GETTEXT_FOUND)
+		add_definitions( -DUSE_GETTEXT )
+		message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
+		message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}")
+		if(WIN32)
+			message(STATUS "gettext library: ${GETTEXT_LIBRARY}")
+			message(STATUS "gettext dll: ${GETTEXT_DLL}")
+			message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}")
+		endif()
+		message(STATUS "GetText enabled")
+	else()
+		message(ERROR "GetText enabled but not found, disabling")
+		set(USE_GETTEXT FALSE)
+	endif(GETTEXT_FOUND)
+else(USE_GETTEXT)
 	message(STATUS "GetText disabled")
 endif(USE_GETTEXT)
 
@@ -39,14 +49,6 @@ if(WIN32)
 			CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
 	set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
 			CACHE PATH "irrlicht dir")
-	if (USE_GETTEXT)
-		set(GETTEXT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/../../gettext/include"
-			CACHE PATH "gettext include directory")
-		set(GETTEXT_BIN_DIR "${PROJECT_SOURCE_DIR}/../../gettext/bin"
-			CACHE PATH "gettext bin directory")
-		set(GETTEXT_LIBRARIES "${PROJECT_SOURCE_DIR}/../../gettext/lib/libintl.lib"
-			CACHE FILEPATH "gettext libintl.lib")
-	endif(USE_GETTEXT)
 else()
 	# Unix probably
 	if(BUILD_CLIENT)
@@ -175,7 +177,7 @@ if(BUILD_CLIENT)
 		${BZIP2_LIBRARIES}
 		${PNG_LIBRARIES}
 		${X11_LIBRARIES}
-		${GETTEXT_LIBRARIES}
+		${GETTEXT_LIBRARY}
 		${PLATFORM_LIBS}
 		${CLIENT_PLATFORM_LIBS}
 		${JTHREAD_LIBRARY}
@@ -234,7 +236,7 @@ else()
 	endif()
 
 	if(WIN32 AND USE_GETTEXT)
-		set(CMAKE_EXE_LINKER_FLAGS "-lintl -L ${GETTEXT_BIN_DIR}")
+		set(CMAKE_EXE_LINKER_FLAGS "-l${GETTEXT_LIBRARY}")
 	endif()
 
 	set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
@@ -277,10 +279,14 @@ if(BUILD_CLIENT)
 		if(DEFINED ZLIB_DLL)
 			install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR})
 		endif()
-		if(USE_GETTEXT AND DEFINED GETTEXT_BIN_DIR)
-			install(FILES ${GETTEXT_BIN_DIR}/libintl3.dll DESTINATION ${BINDIR})
-			install(FILES ${GETTEXT_BIN_DIR}/libiconv2.dll DESTINATION ${BINDIR})
-		endif()
+		if(USE_GETTEXT)
+			if(defined GETTEXT_DLL)
+				install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
+			endif()
+			if(defined GETTEXT_ICONV_DLL)
+				install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR})
+			endif()
+		endif(USE_GETTEXT)
 	endif()
 endif(BUILD_CLIENT)
 
@@ -289,14 +295,6 @@ if(BUILD_SERVER)
 endif(BUILD_SERVER)
 
 if (USE_GETTEXT)
-	if(WIN32)
-		set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt.exe" CACHE FILEPATH "path to msgfmt")
-	elseif(APPLE)
-		set(GETTEXT_MSGFMT "${GETTEXT_BIN_DIR}/msgfmt" CACHE FILEPATH "path to msgfmt")
-	else()
-		set(GETTEXT_MSGFMT "msgfmt")
-	endif()
-
 	add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMENT "mo-update [de]: Creating locale directory.")
 
 	add_custom_command(
-- 
cgit v1.2.3


From ad2f95fc700f1625bf1ac30e5de3ff8b8b7180ba Mon Sep 17 00:00:00 2001
From: Constantin Wenger <constantin.wenger@googlemail.com>
Date: Thu, 21 Jul 2011 13:24:37 +0200
Subject: updated some path because the dlls are mostly under bin not lib added
 explanation why libintl must not belinked under some oses

---
 cmake/Modules/FindGettextLib.cmake | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake
index 1ef8997f4..3fb391e65 100644
--- a/cmake/Modules/FindGettextLib.cmake
+++ b/cmake/Modules/FindGettextLib.cmake
@@ -17,6 +17,7 @@ FIND_PROGRAM(GETTEXT_MSGFMT
 	DOC "path to msgfmt")
 
 # 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
 IF (WIN32)
 	FIND_LIBRARY(GETTEXT_LIBRARY
@@ -25,11 +26,11 @@ IF (WIN32)
 		DOC "gettext *intl*.lib")
 	FIND_LIBRARY(GETTEXT_DLL
 		NAMES libintl.dll intl.dll libintl3.dll intl3.dll
-		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
+		PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" 
 		DOC "gettext *intl*.dll")
 	FIND_LIBRARY(GETTEXT_ICONV_DLL
 		NAMES libiconv2.dll
-		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
+		PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib"
 		DOC "gettext *iconv*.lib")
 ENDIF(WIN32)
 
-- 
cgit v1.2.3


From adb7181969a6398762873298ef0b50ca575d7b31 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Thu, 21 Jul 2011 13:59:50 +0200
Subject: Uppercase DEFINED or cmake 2.8.4 complains

---
 src/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8785a0e3f..2d7a7fc68 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -280,10 +280,10 @@ if(BUILD_CLIENT)
 			install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR})
 		endif()
 		if(USE_GETTEXT)
-			if(defined GETTEXT_DLL)
+			if(DEFINED GETTEXT_DLL)
 				install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
 			endif()
-			if(defined GETTEXT_ICONV_DLL)
+			if(DEFINED GETTEXT_ICONV_DLL)
 				install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR})
 			endif()
 		endif(USE_GETTEXT)
-- 
cgit v1.2.3


From 7b93fb59cfbc9d89e13b8046634c0ab5a1a4a691 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Thu, 21 Jul 2011 14:46:14 +0200
Subject: Only install locale files if using gettext

---
 src/CMakeLists.txt | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2d7a7fc68..6cc5c035f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -270,8 +270,10 @@ if(BUILD_CLIENT)
 
 	install(FILES ${images} DESTINATION ${DATADIR})
 
-	install(FILES ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo DESTINATION locale/de/LC_MESSAGES)
- 
+	if (USE_GETTEXT)
+		install(FILES ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo DESTINATION locale/de/LC_MESSAGES)
+	endif()
+
 	if(WIN32)
 		if(DEFINED IRRLICHT_DLL)
 			install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR})
-- 
cgit v1.2.3


From 02695bebc632042dd684991665b93925b974d7d4 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Thu, 21 Jul 2011 14:50:15 +0200
Subject: Find correct library for MSVC vs MingW in Winows

---
 cmake/Modules/FindGettextLib.cmake | 9 ++++++++-
 src/CMakeLists.txt                 | 4 ----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake
index 3fb391e65..1bc92708a 100644
--- a/cmake/Modules/FindGettextLib.cmake
+++ b/cmake/Modules/FindGettextLib.cmake
@@ -20,8 +20,15 @@ FIND_PROGRAM(GETTEXT_MSGFMT
 # they do not because gettext is part of glibc
 # TODO check the requirements on other BSDs and older Linux
 IF (WIN32)
+	IF(MSVC)
+		SET(GETTEXT_LIB_NAMES
+			libintl.lib intl.lib libintl3.lib intl3.lib)
+	ELSE()
+		SET(GETTEXT_LIB_NAMES
+			libintl.dll.a intl.dll.a libintl3.dll.a intl3.dll.a)
+	ENDIF()
 	FIND_LIBRARY(GETTEXT_LIBRARY
-		NAMES libintl.lib intl.lib libintl3.lib intl3.lib
+		NAMES ${GETTEXT_LIB_NAMES}
 		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
 		DOC "gettext *intl*.lib")
 	FIND_LIBRARY(GETTEXT_DLL
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6cc5c035f..c018d8e56 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -235,10 +235,6 @@ else()
 		set(ARCH i386)
 	endif()
 
-	if(WIN32 AND USE_GETTEXT)
-		set(CMAKE_EXE_LINKER_FLAGS "-l${GETTEXT_LIBRARY}")
-	endif()
-
 	set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
 	set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}")
 
-- 
cgit v1.2.3


From aa6506ce9617d2a889f4937b525be15d8bdcb589 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Thu, 21 Jul 2011 15:12:58 +0200
Subject: Restore "Leave address blank" position

---
 src/guiMainMenu.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp
index f557f4dc0..707a96e3b 100644
--- a/src/guiMainMenu.cpp
+++ b/src/guiMainMenu.cpp
@@ -217,6 +217,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 	}
 	{
 		core::rect<s32> rect(0, 0, 400, 20);
+		rect += topleft_client + v2s32(160, 100+35);
 		Environment->addStaticText(chartowchar_t(gettext("Leave address blank to start a local server.")), rect, false, true, this, -1);
 	}
 	{
-- 
cgit v1.2.3


From 767280577b89503d5a0c7034fd66eae1694d0ce9 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Thu, 21 Jul 2011 15:16:59 +0200
Subject: Reorganize cmake gettext message output to ease debugging

---
 src/CMakeLists.txt | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c018d8e56..8c6e1d450 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -7,18 +7,18 @@ endif(RUN_IN_PLACE)
 
 if(USE_GETTEXT)
 	find_package(GettextLib REQUIRED)
+	message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
+	message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}")
+	if(WIN32)
+		message(STATUS "gettext library: ${GETTEXT_LIBRARY}")
+		message(STATUS "gettext dll: ${GETTEXT_DLL}")
+		message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}")
+	endif()
 	if (GETTEXT_FOUND)
 		add_definitions( -DUSE_GETTEXT )
-		message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
-		message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}")
-		if(WIN32)
-			message(STATUS "gettext library: ${GETTEXT_LIBRARY}")
-			message(STATUS "gettext dll: ${GETTEXT_DLL}")
-			message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}")
-		endif()
 		message(STATUS "GetText enabled")
 	else()
-		message(ERROR "GetText enabled but not found, disabling")
+		message(STATUS "ERROR: GetText enabled but not found, disabling")
 		set(USE_GETTEXT FALSE)
 	endif(GETTEXT_FOUND)
 else(USE_GETTEXT)
-- 
cgit v1.2.3


From 4e5aac5f26b5acc6e0d7c86c25ada911b09a7426 Mon Sep 17 00:00:00 2001
From: Constantin Wenger <constantin.wenger@googlemail.com>
Date: Thu, 21 Jul 2011 16:21:01 +0200
Subject: fixed not finding dll for gettext in MSVC

---
 cmake/Modules/FindGettextLib.cmake | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake
index 1bc92708a..f7ac8de5d 100644
--- a/cmake/Modules/FindGettextLib.cmake
+++ b/cmake/Modules/FindGettextLib.cmake
@@ -31,11 +31,11 @@ IF (WIN32)
 		NAMES ${GETTEXT_LIB_NAMES}
 		PATHS "${CUSTOM_GETTEXT_PATH}/lib"
 		DOC "gettext *intl*.lib")
-	FIND_LIBRARY(GETTEXT_DLL
+	FIND_FILE(GETTEXT_DLL
 		NAMES libintl.dll intl.dll libintl3.dll intl3.dll
 		PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" 
 		DOC "gettext *intl*.dll")
-	FIND_LIBRARY(GETTEXT_ICONV_DLL
+	FIND_FILE(GETTEXT_ICONV_DLL
 		NAMES libiconv2.dll
 		PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib"
 		DOC "gettext *iconv*.lib")
-- 
cgit v1.2.3


From 3d53cc2c1122741df2dd4506ca5e7e188824b5c3 Mon Sep 17 00:00:00 2001
From: Constantin Wenger <constantin.wenger@googlemail.com>
Date: Thu, 21 Jul 2011 16:44:43 +0200
Subject: changed some lines to fit the 80chars limit

---
 src/guiMainMenu.cpp       | 26 +++++++++++++++++---------
 src/guiMessageMenu.cpp    |  3 ++-
 src/guiPasswordChange.cpp | 13 +++++++++----
 src/guiPauseMenu.cpp      | 12 ++++++++----
 src/guiTextInputMenu.cpp  |  3 ++-
 5 files changed, 38 insertions(+), 19 deletions(-)

diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp
index 707a96e3b..1d7f224f6 100644
--- a/src/guiMainMenu.cpp
+++ b/src/guiMainMenu.cpp
@@ -177,7 +177,8 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 110, 20);
 		rect += topleft_client + v2s32(35, 50+6);
-		Environment->addStaticText(chartowchar_t(gettext("Name/Password")), rect, false, true, this, -1);
+		Environment->addStaticText(chartowchar_t(gettext("Name/Password")), 
+			rect, false, true, this, -1);
 	}
 	{
 		core::rect<s32> rect(0, 0, 230, 30);
@@ -199,7 +200,8 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 110, 20);
 		rect += topleft_client + v2s32(35, 100+6);
-		Environment->addStaticText(chartowchar_t(gettext("Address/Port")), rect, false, true, this, -1);
+		Environment->addStaticText(chartowchar_t(gettext("Address/Port")),
+			rect, false, true, this, -1);
 	}
 	{
 		core::rect<s32> rect(0, 0, 230, 30);
@@ -218,13 +220,14 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 400, 20);
 		rect += topleft_client + v2s32(160, 100+35);
-		Environment->addStaticText(chartowchar_t(gettext("Leave address blank to start a local server.")), rect, false, true, this, -1);
+		Environment->addStaticText(chartowchar_t(gettext("Leave address blank to start a local server.")),
+			rect, false, true, this, -1);
 	}
 	{
 		core::rect<s32> rect(0, 0, 250, 30);
 		rect += topleft_client + v2s32(35, 150);
 		Environment->addCheckBox(fancy_trees, rect, this, GUI_ID_FANCYTREE_CB,
-			chartowchar_t(gettext("Fancy trees")));	
+			chartowchar_t(gettext("Fancy trees"))); 
 	}
 	{
 		core::rect<s32> rect(0, 0, 250, 30);
@@ -237,7 +240,8 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 		core::rect<s32> rect(0, 0, 180, 30);
 		//rect += topleft_client + v2s32(size_client.X/2-180/2, 225-30/2);
 		rect += topleft_client + v2s32(size_client.X-180-40, 150+25);
-		Environment->addButton(rect, this, GUI_ID_JOIN_GAME_BUTTON, chartowchar_t(gettext("Start Game / Connect")));
+		Environment->addButton(rect, this, GUI_ID_JOIN_GAME_BUTTON,
+			chartowchar_t(gettext("Start Game / Connect")));
 	}
 
 	// Key change button
@@ -245,7 +249,8 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 		core::rect<s32> rect(0, 0, 100, 30);
 		//rect += topleft_client + v2s32(size_client.X/2-180/2, 225-30/2);
 		rect += topleft_client + v2s32(size_client.X-180-40-100-20, 150+25);
-		Environment->addButton(rect, this, GUI_ID_CHANGE_KEYS_BUTTON, chartowchar_t(gettext("Change keys")));
+		Environment->addButton(rect, this, GUI_ID_CHANGE_KEYS_BUTTON,
+			chartowchar_t(gettext("Change keys")));
 	}
 	/*
 		Server section
@@ -267,19 +272,22 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 250, 30);
 		rect += topleft_server + v2s32(35, 30);
-		Environment->addCheckBox(creative_mode, rect, this, GUI_ID_CREATIVE_CB, chartowchar_t(gettext("Creative Mode")));
+		Environment->addCheckBox(creative_mode, rect, this, GUI_ID_CREATIVE_CB,
+			chartowchar_t(gettext("Creative Mode")));
 	}
 	{
 		core::rect<s32> rect(0, 0, 250, 30);
 		rect += topleft_server + v2s32(35, 60);
-		Environment->addCheckBox(enable_damage, rect, this, GUI_ID_DAMAGE_CB, chartowchar_t(gettext("Enable Damage")));
+		Environment->addCheckBox(enable_damage, rect, this, GUI_ID_DAMAGE_CB,
+			chartowchar_t(gettext("Enable Damage")));
 	}
 	// Map delete button
 	{
 		core::rect<s32> rect(0, 0, 130, 30);
 		//rect += topleft_server + v2s32(size_server.X-40-130, 100+25);
 		rect += topleft_server + v2s32(40, 100+25);
-		Environment->addButton(rect, this, GUI_ID_DELETE_MAP_BUTTON, chartowchar_t(gettext("Delete map")));
+		Environment->addButton(rect, this, GUI_ID_DELETE_MAP_BUTTON,
+			  chartowchar_t(gettext("Delete map")));
 	}
 }
 
diff --git a/src/guiMessageMenu.cpp b/src/guiMessageMenu.cpp
index e4e582ab1..155be6029 100644
--- a/src/guiMessageMenu.cpp
+++ b/src/guiMessageMenu.cpp
@@ -89,7 +89,8 @@ void GUIMessageMenu::regenerateGui(v2u32 screensize)
 		core::rect<s32> rect(0, 0, 140, 30);
 		rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2+25);
 		gui::IGUIElement *e = 
-		Environment->addButton(rect, this, 257, chartowchar_t(gettext("Proceed")));
+		Environment->addButton(rect, this, 257,
+			chartowchar_t(gettext("Proceed")));
 		Environment->setFocus(e);
 	}
 }
diff --git a/src/guiPasswordChange.cpp b/src/guiPasswordChange.cpp
index 79601a99f..fabe75110 100644
--- a/src/guiPasswordChange.cpp
+++ b/src/guiPasswordChange.cpp
@@ -99,7 +99,8 @@ void GUIPasswordChange::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 110, 20);
 		rect += topleft_client + v2s32(35, ypos+6);
-		Environment->addStaticText(chartowchar_t(gettext("Old Password")), rect, false, true, this, -1);
+		Environment->addStaticText(chartowchar_t(gettext("Old Password")),
+			rect, false, true, this, -1);
 	}
 	{
 		core::rect<s32> rect(0, 0, 230, 30);
@@ -113,7 +114,8 @@ void GUIPasswordChange::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 110, 20);
 		rect += topleft_client + v2s32(35, ypos+6);
-		Environment->addStaticText(chartowchar_t(gettext("New Password")), rect, false, true, this, -1);
+		Environment->addStaticText(chartowchar_t(gettext("New Password")),
+			rect, false, true, this, -1);
 	}
 	{
 		core::rect<s32> rect(0, 0, 230, 30);
@@ -126,7 +128,8 @@ void GUIPasswordChange::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 110, 20);
 		rect += topleft_client + v2s32(35, ypos+6);
-		Environment->addStaticText(chartowchar_t(gettext("Confirm Password")), rect, false, true, this, -1);
+		Environment->addStaticText(chartowchar_t(gettext("Confirm Password")),
+			rect, false, true, this, -1);
 	}
 	{
 		core::rect<s32> rect(0, 0, 230, 30);
@@ -148,7 +151,9 @@ void GUIPasswordChange::regenerateGui(v2u32 screensize)
 		core::rect<s32> rect(0, 0, 300, 20);
 		rect += topleft_client + v2s32(35, ypos);
 		IGUIElement *e = 
-		Environment->addStaticText(chartowchar_t(gettext("Passwords do not match!")), rect, false, true, this, ID_message);
+		Environment->addStaticText(
+			chartowchar_t(gettext("Passwords do not match!")),
+			rect, false, true, this, ID_message);
 		e->setVisible(false);
 	}
 
diff --git a/src/guiPauseMenu.cpp b/src/guiPauseMenu.cpp
index 5f40a4820..61485518c 100644
--- a/src/guiPauseMenu.cpp
+++ b/src/guiPauseMenu.cpp
@@ -106,25 +106,29 @@ void GUIPauseMenu::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 140, btn_height);
 		rect = rect + v2s32(size.X/2-140/2, btn_y);
-		Environment->addButton(rect, this, 256, chartowchar_t(gettext("Continue")));
+		Environment->addButton(rect, this, 256,
+			chartowchar_t(gettext("Continue")));
 	}
 	btn_y += btn_height + btn_gap;
 	{
 		core::rect<s32> rect(0, 0, 140, btn_height);
 		rect = rect + v2s32(size.X/2-140/2, btn_y);
-		Environment->addButton(rect, this, 261, chartowchar_t(gettext("Change Password")));
+		Environment->addButton(rect, this, 261,
+			chartowchar_t(gettext("Change Password")));
 	}
 	btn_y += btn_height + btn_gap;
 	{
 		core::rect<s32> rect(0, 0, 140, btn_height);
 		rect = rect + v2s32(size.X/2-140/2, btn_y);
-		Environment->addButton(rect, this, 260, chartowchar_t(gettext("Disconnect")));
+		Environment->addButton(rect, this, 260,
+			chartowchar_t(gettext("Disconnect")));
 	}
 	btn_y += btn_height + btn_gap;
 	{
 		core::rect<s32> rect(0, 0, 140, btn_height);
 		rect = rect + v2s32(size.X/2-140/2, btn_y);
-		Environment->addButton(rect, this, 257, chartowchar_t(gettext("Exit to OS")));
+		Environment->addButton(rect, this, 257,
+			chartowchar_t(gettext("Exit to OS")));
 	}
 
 	{
diff --git a/src/guiTextInputMenu.cpp b/src/guiTextInputMenu.cpp
index b15f8bc07..252e452f5 100644
--- a/src/guiTextInputMenu.cpp
+++ b/src/guiTextInputMenu.cpp
@@ -107,7 +107,8 @@ void GUITextInputMenu::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 140, 30);
 		rect = rect + v2s32(size.X/2-140/2, size.Y/2-30/2+25);
-		Environment->addButton(rect, this, 257, chartowchar_t(gettext("Proceed")));
+		Environment->addButton(rect, this, 257,
+			chartowchar_t(gettext("Proceed")));
 	}
 }
 
-- 
cgit v1.2.3


From bc05bd8b59af9cef363cebf320f65a5283b0dea6 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Fri, 22 Jul 2011 08:33:08 +0200
Subject: Use project name for mo files

---
 src/CMakeLists.txt | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f3dee7f30..feaf0eb98 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -267,8 +267,8 @@ if(BUILD_CLIENT)
 	install(FILES ${images} DESTINATION ${DATADIR})
 
 	if (USE_GETTEXT)
-		install(FILES ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo DESTINATION locale/de/LC_MESSAGES)
-		install(FILES ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/minetest-c55.mo DESTINATION locale/fr/LC_MESSAGES)
+		install(FILES ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/${PROJECT_NAME}.mo DESTINATION locale/de/LC_MESSAGES)
+		install(FILES ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/${PROJECT_NAME}.mo DESTINATION locale/fr/LC_MESSAGES)
 	endif()
 
 	if(WIN32)
@@ -298,7 +298,7 @@ if (USE_GETTEXT)
 	add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES COMMENT "mo-update [fr]: Creating locale directory.")
 
 	add_custom_command(
-			OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo
+			OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/${PROJECT_NAME}.mo
 			COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo ${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po 
 			DEPENDS 
 				${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES
@@ -307,7 +307,7 @@ if (USE_GETTEXT)
 			COMMENT "mo-update [de]: Creating mo file."
 			)
 	add_custom_command(
-			OUTPUT ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/minetest-c55.mo
+			OUTPUT ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/${PROJECT_NAME}.mo
 			COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/minetest-c55.mo ${CMAKE_SOURCE_DIR}/po/fr/minetest-c55.po 
 			DEPENDS 
 				${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES
@@ -316,8 +316,8 @@ if (USE_GETTEXT)
 			COMMENT "mo-update [fr]: Creating mo file."
 			)
 
-	add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo)
-	add_custom_target(translation_fr ALL COMMENT "mo update [fr]" DEPENDS ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/minetest-c55.mo)
+	add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/${PROJECT_NAME}.mo)
+	add_custom_target(translation_fr ALL COMMENT "mo update [fr]" DEPENDS ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/${PROJECT_NAME}.mo)
 endif(USE_GETTEXT)
 
 # Subdirectories
-- 
cgit v1.2.3


From 0ec749317cfa36e68150dd634c2c9ffdb8027588 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Fri, 22 Jul 2011 09:36:17 +0200
Subject: Refactor mo creation/installation

---
 cmake/Modules/FindGettextLib.cmake | 11 +++++++-
 src/CMakeLists.txt                 | 51 +++++++++++++++++++-------------------
 2 files changed, 36 insertions(+), 26 deletions(-)

diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake
index f7ac8de5d..31b261539 100644
--- a/cmake/Modules/FindGettextLib.cmake
+++ b/cmake/Modules/FindGettextLib.cmake
@@ -53,4 +53,13 @@ IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT)
 	ENDIF(WIN32)
 ENDIF()
 
-
+IF(GETTEXT_FOUND)
+	SET(GETTEXT_PO_PATH ${CMAKE_SOURCE_DIR}/po)
+	SET(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale/<locale>/LC_MESSAGES)
+	SET(GETTEXT_MO_DEST_PATH locale/<locale>/LC_MESSAGES)
+	FILE(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*")
+	MACRO(SET_MO_PATHS _buildvar _destvar _locale)
+		STRING(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH})
+		STRING(REPLACE "<locale>" ${_locale} ${_destvar} ${GETTEXT_MO_DEST_PATH})
+	ENDMACRO(SET_MO_PATHS)
+ENDIF()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index feaf0eb98..4427a1380 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -16,7 +16,7 @@ if(USE_GETTEXT)
 	endif()
 	if (GETTEXT_FOUND)
 		add_definitions( -DUSE_GETTEXT )
-		message(STATUS "GetText enabled")
+		message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
 	else()
 		message(STATUS "ERROR: GetText enabled but not found, disabling")
 		set(USE_GETTEXT FALSE)
@@ -267,8 +267,11 @@ if(BUILD_CLIENT)
 	install(FILES ${images} DESTINATION ${DATADIR})
 
 	if (USE_GETTEXT)
-		install(FILES ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/${PROJECT_NAME}.mo DESTINATION locale/de/LC_MESSAGES)
-		install(FILES ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/${PROJECT_NAME}.mo DESTINATION locale/fr/LC_MESSAGES)
+		foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
+			set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
+			set(MO_BUILD_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
+			install(FILES ${MO_BUILD_PATH} DESTINATION ${MO_DEST_PATH})
+		endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
 	endif()
 
 	if(WIN32)
@@ -294,30 +297,28 @@ if(BUILD_SERVER)
 endif(BUILD_SERVER)
 
 if (USE_GETTEXT)
-	add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES COMMENT "mo-update [de]: Creating locale directory.")
-	add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES COMMENT "mo-update [fr]: Creating locale directory.")
-
-	add_custom_command(
-			OUTPUT ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/${PROJECT_NAME}.mo
-			COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/minetest-delta.mo ${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po 
-			DEPENDS 
-				${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES
-				${CMAKE_SOURCE_DIR}/po/de/minetest-c55.po
-			WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/po/de
-			COMMENT "mo-update [de]: Creating mo file."
-			)
-	add_custom_command(
-			OUTPUT ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/${PROJECT_NAME}.mo
-			COMMAND ${GETTEXT_MSGFMT} -o ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/minetest-c55.mo ${CMAKE_SOURCE_DIR}/po/fr/minetest-c55.po 
-			DEPENDS 
-				${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES
-				${CMAKE_SOURCE_DIR}/po/fr/minetest-c55.po
-			WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/po/fr
-			COMMENT "mo-update [fr]: Creating mo file."
+	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-c55.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."
 			)
 
-	add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BINARY_DIR}/locale/de/LC_MESSAGES/${PROJECT_NAME}.mo)
-	add_custom_target(translation_fr ALL COMMENT "mo update [fr]" DEPENDS ${CMAKE_BINARY_DIR}/locale/fr/LC_MESSAGES/${PROJECT_NAME}.mo)
+		set(MO_FILES ${MO_FILES} ${MO_FILE_PATH})
+	endforeach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
+
+	add_custom_target(translations ALL COMMENT "mo update" DEPENDS ${MO_FILES})
 endif(USE_GETTEXT)
 
 # Subdirectories
-- 
cgit v1.2.3


From 8f2409a1b41bbe32abf626b06e1b90f6cc7118c8 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Fri, 22 Jul 2011 09:58:02 +0200
Subject: Static naming of po file
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The po file should not be named c55 if we're in ∆. But since it is not
exposed at installation time, we don't actually need its name to be
based on the project name at all, so just call it minetest.po
---
 po/de/minetest-c55.po | 125 --------------------------------------------------
 po/de/minetest.po     | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++
 po/fr/minetest-c55.po | 125 --------------------------------------------------
 po/fr/minetest.po     | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/CMakeLists.txt    |   2 +-
 updatelocales.sh      |   8 ++--
 6 files changed, 255 insertions(+), 255 deletions(-)
 delete mode 100644 po/de/minetest-c55.po
 create mode 100644 po/de/minetest.po
 delete mode 100644 po/fr/minetest-c55.po
 create mode 100644 po/fr/minetest.po

diff --git a/po/de/minetest-c55.po b/po/de/minetest-c55.po
deleted file mode 100644
index c5ec1c7a0..000000000
--- a/po/de/minetest-c55.po
+++ /dev/null
@@ -1,125 +0,0 @@
-# German translations for minetest-c55 package.
-# Copyright (C) 2011 celeron
-# This file is distributed under the same license as the minetest-c55 package.
-# Constantin Wenger <constantin.wenger@googlemail.com>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-20 16:57+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"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-#: src/guiMainMenu.cpp:180
-msgid "Name/Password"
-msgstr "Name/Passwort"
-
-#: src/guiMainMenu.cpp:202
-msgid "Address/Port"
-msgstr "Adresse / Port"
-
-#: src/guiMainMenu.cpp:220
-msgid "Leave address blank to start a local server."
-msgstr "Lasse die Adresse frei um einen eigenen Server zu starten"
-
-#: src/guiMainMenu.cpp:226
-msgid "Fancy trees"
-msgstr "Schöne Bäume"
-
-#: src/guiMainMenu.cpp:232
-msgid "Smooth Lighting"
-msgstr "Besseres Licht"
-
-#: src/guiMainMenu.cpp:239
-msgid "Start Game / Connect"
-msgstr "Spiel starten / Verbinden"
-
-#: src/guiMainMenu.cpp:247
-msgid "Change keys"
-msgstr "Tastenbelegung ändern"
-
-#: src/guiMainMenu.cpp:269
-msgid "Creative Mode"
-msgstr "Kreativitätsmodus"
-
-#: src/guiMainMenu.cpp:274
-msgid "Enable Damage"
-msgstr "Schaden einschalten"
-
-#: src/guiMainMenu.cpp:281
-msgid "Delete map"
-msgstr "Karte löschen"
-
-#: src/guiMessageMenu.cpp:92
-#: src/guiTextInputMenu.cpp:110
-msgid "Proceed"
-msgstr "Fortsetzen"
-
-#: src/guiPasswordChange.cpp:102
-msgid "Old Password"
-msgstr "Altes Passwort"
-
-#: src/guiPasswordChange.cpp:116
-msgid "New Password"
-msgstr "Neues Passwort"
-
-#: src/guiPasswordChange.cpp:129
-msgid "Confirm Password"
-msgstr "Passwort wiederholen"
-
-#: src/guiPasswordChange.cpp:143
-msgid "Change"
-msgstr "Ändern"
-
-#: src/guiPasswordChange.cpp:151
-msgid "Passwords do not match!"
-msgstr "Passwörter passen nicht zusammen"
-
-#: src/guiPauseMenu.cpp:109
-msgid "Continue"
-msgstr "Weiter"
-
-#: src/guiPauseMenu.cpp:115
-msgid "Change Password"
-msgstr "Passwort ändern"
-
-#: src/guiPauseMenu.cpp:121
-msgid "Disconnect"
-msgstr "Verbindung trennen"
-
-#: src/guiPauseMenu.cpp:127
-msgid "Exit to OS"
-msgstr "Programm beenden"
-
-#: src/guiPauseMenu.cpp:134
-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 ""
-"Tastenkürzel:\n"
-"- WASD: Gehen\n"
-"- linke Maustaste: dig blocks\n"
-"- rechte Maustaste: place blocks\n"
-"- Mausrad: Item auswählen\n"
-"- 0...9: Item auswählen\n"
-"- Shift: ducken\n"
-"- R: Alle geladenen Kartenteile anzeigen, umschalten\n"
-"- I: Inventarmenü\n"
-"- T: Chat\n"
-
diff --git a/po/de/minetest.po b/po/de/minetest.po
new file mode 100644
index 000000000..c5ec1c7a0
--- /dev/null
+++ b/po/de/minetest.po
@@ -0,0 +1,125 @@
+# German translations for minetest-c55 package.
+# Copyright (C) 2011 celeron
+# This file is distributed under the same license as the minetest-c55 package.
+# Constantin Wenger <constantin.wenger@googlemail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.0.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-20 16:57+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"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: src/guiMainMenu.cpp:180
+msgid "Name/Password"
+msgstr "Name/Passwort"
+
+#: src/guiMainMenu.cpp:202
+msgid "Address/Port"
+msgstr "Adresse / Port"
+
+#: src/guiMainMenu.cpp:220
+msgid "Leave address blank to start a local server."
+msgstr "Lasse die Adresse frei um einen eigenen Server zu starten"
+
+#: src/guiMainMenu.cpp:226
+msgid "Fancy trees"
+msgstr "Schöne Bäume"
+
+#: src/guiMainMenu.cpp:232
+msgid "Smooth Lighting"
+msgstr "Besseres Licht"
+
+#: src/guiMainMenu.cpp:239
+msgid "Start Game / Connect"
+msgstr "Spiel starten / Verbinden"
+
+#: src/guiMainMenu.cpp:247
+msgid "Change keys"
+msgstr "Tastenbelegung ändern"
+
+#: src/guiMainMenu.cpp:269
+msgid "Creative Mode"
+msgstr "Kreativitätsmodus"
+
+#: src/guiMainMenu.cpp:274
+msgid "Enable Damage"
+msgstr "Schaden einschalten"
+
+#: src/guiMainMenu.cpp:281
+msgid "Delete map"
+msgstr "Karte löschen"
+
+#: src/guiMessageMenu.cpp:92
+#: src/guiTextInputMenu.cpp:110
+msgid "Proceed"
+msgstr "Fortsetzen"
+
+#: src/guiPasswordChange.cpp:102
+msgid "Old Password"
+msgstr "Altes Passwort"
+
+#: src/guiPasswordChange.cpp:116
+msgid "New Password"
+msgstr "Neues Passwort"
+
+#: src/guiPasswordChange.cpp:129
+msgid "Confirm Password"
+msgstr "Passwort wiederholen"
+
+#: src/guiPasswordChange.cpp:143
+msgid "Change"
+msgstr "Ändern"
+
+#: src/guiPasswordChange.cpp:151
+msgid "Passwords do not match!"
+msgstr "Passwörter passen nicht zusammen"
+
+#: src/guiPauseMenu.cpp:109
+msgid "Continue"
+msgstr "Weiter"
+
+#: src/guiPauseMenu.cpp:115
+msgid "Change Password"
+msgstr "Passwort ändern"
+
+#: src/guiPauseMenu.cpp:121
+msgid "Disconnect"
+msgstr "Verbindung trennen"
+
+#: src/guiPauseMenu.cpp:127
+msgid "Exit to OS"
+msgstr "Programm beenden"
+
+#: src/guiPauseMenu.cpp:134
+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 ""
+"Tastenkürzel:\n"
+"- WASD: Gehen\n"
+"- linke Maustaste: dig blocks\n"
+"- rechte Maustaste: place blocks\n"
+"- Mausrad: Item auswählen\n"
+"- 0...9: Item auswählen\n"
+"- Shift: ducken\n"
+"- R: Alle geladenen Kartenteile anzeigen, umschalten\n"
+"- I: Inventarmenü\n"
+"- T: Chat\n"
+
diff --git a/po/fr/minetest-c55.po b/po/fr/minetest-c55.po
deleted file mode 100644
index cfb76ae1a..000000000
--- a/po/fr/minetest-c55.po
+++ /dev/null
@@ -1,125 +0,0 @@
-# French translations for minetest-c55 package.
-# Copyright (C) 2011 celeron
-# This file is distributed under the same license as the minetest-c55 package.
-# Cyriaque 'Cisoun' Skrapits <cysoun@gmail.com>, 2011
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-21 02: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"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-
-#: src/guiMainMenu.cpp:180
-msgid "Name/Password"
-msgstr "Nom / MdP"
-
-#: src/guiMainMenu.cpp:202
-msgid "Address/Port"
-msgstr "Adresse / Port"
-
-#: src/guiMainMenu.cpp:220
-msgid "Leave address blank to start a local server."
-msgstr "Laisser l'adresse vide pour lancer un serveur local."
-
-#: src/guiMainMenu.cpp:226
-msgid "Fancy trees"
-msgstr "Arbres spéciaux"
-
-#: src/guiMainMenu.cpp:232
-msgid "Smooth Lighting"
-msgstr "Lumière douce"
-
-#: src/guiMainMenu.cpp:239
-msgid "Start Game / Connect"
-msgstr "Démarrer / Connecter"
-
-#: src/guiMainMenu.cpp:247
-msgid "Change keys"
-msgstr "Changer touches"
-
-#: src/guiMainMenu.cpp:269
-msgid "Creative Mode"
-msgstr "Mode créatif"
-
-#: src/guiMainMenu.cpp:274
-msgid "Enable Damage"
-msgstr "Activer blessures"
-
-#: src/guiMainMenu.cpp:281
-msgid "Delete map"
-msgstr "Supprimer carte"
-
-#: src/guiMessageMenu.cpp:92
-#: src/guiTextInputMenu.cpp:110
-msgid "Proceed"
-msgstr "OK"
-
-#: src/guiPasswordChange.cpp:102
-msgid "Old Password"
-msgstr "Ancien mot de passe"
-
-#: src/guiPasswordChange.cpp:116
-msgid "New Password"
-msgstr "Nouveau mot de passe"
-
-#: src/guiPasswordChange.cpp:129
-msgid "Confirm Password"
-msgstr "Confirmer mot de passe"
-
-#: src/guiPasswordChange.cpp:143
-msgid "Change"
-msgstr "Changer"
-
-#: src/guiPasswordChange.cpp:151
-msgid "Passwords do not match!"
-msgstr "Mauvaise correspondance!"
-
-#: src/guiPauseMenu.cpp:109
-msgid "Continue"
-msgstr "Continuer"
-
-#: src/guiPauseMenu.cpp:115
-msgid "Change Password"
-msgstr "Changer mot de passe"
-
-#: src/guiPauseMenu.cpp:121
-msgid "Disconnect"
-msgstr "Déconnection"
-
-#: src/guiPauseMenu.cpp:127
-msgid "Exit to OS"
-msgstr "Quitter le jeu"
-
-#: src/guiPauseMenu.cpp:134
-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 ""
-"Touches:\n"
-"- WASD: Marcher\n"
-"- Clic gauche: Creuser bloc\n"
-"- Clic droite: Insérer bloc\n"
-"- Roulette: Sélection élément\n"
-"- 0...9: Sélection élément\n"
-"- Shift: S'accroupir\n"
-"- R: Active la vue de tous les blocs\n"
-"- I: Inventaire\n"
-"- T: Chat\n"
-
diff --git a/po/fr/minetest.po b/po/fr/minetest.po
new file mode 100644
index 000000000..cfb76ae1a
--- /dev/null
+++ b/po/fr/minetest.po
@@ -0,0 +1,125 @@
+# French translations for minetest-c55 package.
+# Copyright (C) 2011 celeron
+# This file is distributed under the same license as the minetest-c55 package.
+# Cyriaque 'Cisoun' Skrapits <cysoun@gmail.com>, 2011
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0.0.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-21 02: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"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: src/guiMainMenu.cpp:180
+msgid "Name/Password"
+msgstr "Nom / MdP"
+
+#: src/guiMainMenu.cpp:202
+msgid "Address/Port"
+msgstr "Adresse / Port"
+
+#: src/guiMainMenu.cpp:220
+msgid "Leave address blank to start a local server."
+msgstr "Laisser l'adresse vide pour lancer un serveur local."
+
+#: src/guiMainMenu.cpp:226
+msgid "Fancy trees"
+msgstr "Arbres spéciaux"
+
+#: src/guiMainMenu.cpp:232
+msgid "Smooth Lighting"
+msgstr "Lumière douce"
+
+#: src/guiMainMenu.cpp:239
+msgid "Start Game / Connect"
+msgstr "Démarrer / Connecter"
+
+#: src/guiMainMenu.cpp:247
+msgid "Change keys"
+msgstr "Changer touches"
+
+#: src/guiMainMenu.cpp:269
+msgid "Creative Mode"
+msgstr "Mode créatif"
+
+#: src/guiMainMenu.cpp:274
+msgid "Enable Damage"
+msgstr "Activer blessures"
+
+#: src/guiMainMenu.cpp:281
+msgid "Delete map"
+msgstr "Supprimer carte"
+
+#: src/guiMessageMenu.cpp:92
+#: src/guiTextInputMenu.cpp:110
+msgid "Proceed"
+msgstr "OK"
+
+#: src/guiPasswordChange.cpp:102
+msgid "Old Password"
+msgstr "Ancien mot de passe"
+
+#: src/guiPasswordChange.cpp:116
+msgid "New Password"
+msgstr "Nouveau mot de passe"
+
+#: src/guiPasswordChange.cpp:129
+msgid "Confirm Password"
+msgstr "Confirmer mot de passe"
+
+#: src/guiPasswordChange.cpp:143
+msgid "Change"
+msgstr "Changer"
+
+#: src/guiPasswordChange.cpp:151
+msgid "Passwords do not match!"
+msgstr "Mauvaise correspondance!"
+
+#: src/guiPauseMenu.cpp:109
+msgid "Continue"
+msgstr "Continuer"
+
+#: src/guiPauseMenu.cpp:115
+msgid "Change Password"
+msgstr "Changer mot de passe"
+
+#: src/guiPauseMenu.cpp:121
+msgid "Disconnect"
+msgstr "Déconnection"
+
+#: src/guiPauseMenu.cpp:127
+msgid "Exit to OS"
+msgstr "Quitter le jeu"
+
+#: src/guiPauseMenu.cpp:134
+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 ""
+"Touches:\n"
+"- WASD: Marcher\n"
+"- Clic gauche: Creuser bloc\n"
+"- Clic droite: Insérer bloc\n"
+"- Roulette: Sélection élément\n"
+"- 0...9: Sélection élément\n"
+"- Shift: S'accroupir\n"
+"- R: Active la vue de tous les blocs\n"
+"- I: Inventaire\n"
+"- T: Chat\n"
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4427a1380..61fb20680 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -305,7 +305,7 @@ if (USE_GETTEXT)
 			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-c55.po")
+		set(PO_FILE_PATH "${GETTEXT_PO_PATH}/${LOCALE}/minetest.po")
 
 		add_custom_command(
 			OUTPUT ${MO_FILE_PATH}
diff --git a/updatelocales.sh b/updatelocales.sh
index e84145107..72ecd48d2 100755
--- a/updatelocales.sh
+++ b/updatelocales.sh
@@ -1,5 +1,5 @@
 #! /bin/bash
-xgettext -n -o minetest-c55.pot ./src/*.cpp ./src/*.h
-msgmerge -U ./po/de/minetest-c55.po minetest-c55.pot
-msgmerge -U ./po/fr/minetest-c55.po minetest-c55.pot
-rm minetest-c55.pot
+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
-- 
cgit v1.2.3


From aaa165f985ec30e96ae9a975c9ad96d6e99f5ac7 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Fri, 22 Jul 2011 10:55:05 +0200
Subject: updatepo cmake rule

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 |  15 +++++
 po/de/minetest.po                  |  42 +++++++-------
 po/en/minetest.pot                 | 113 +++++++++++++++++++++++++++++++++++++
 po/fr/minetest.po                  |  42 +++++++-------
 src/CMakeLists.txt                 |  58 +++++++++++++------
 updatelocales.sh                   |   5 --
 6 files changed, 210 insertions(+), 65 deletions(-)
 create mode 100644 po/en/minetest.pot
 delete mode 100755 updatelocales.sh

diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake
index 31b261539..b99fd33b8 100644
--- a/cmake/Modules/FindGettextLib.cmake
+++ b/cmake/Modules/FindGettextLib.cmake
@@ -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
diff --git a/po/de/minetest.po b/po/de/minetest.po
index c5ec1c7a0..69b57fd95 100644
--- a/po/de/minetest.po
+++ b/po/de/minetest.po
@@ -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
index 000000000..e242c494b
--- /dev/null
+++ b/po/en/minetest.pot
@@ -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 ""
diff --git a/po/fr/minetest.po b/po/fr/minetest.po
index cfb76ae1a..b060c424c 100644
--- a/po/fr/minetest.po
+++ b/po/fr/minetest.po
@@ -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"
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 61fb20680..0c4b41829 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -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
index 72ecd48d2..000000000
--- a/updatelocales.sh
+++ /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
-- 
cgit v1.2.3


From bf3dfec7d6d171c5c83142319067153f2637b0a8 Mon Sep 17 00:00:00 2001
From: Constantin Wenger <constantin.wenger@googlemail.com>
Date: Fri, 22 Jul 2011 12:54:07 +0200
Subject: fixed problem with displaying special chars

---
 src/main.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main.cpp b/src/main.cpp
index b6a53566e..a7634a3c1 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1132,7 +1132,7 @@ int main(int argc, char *argv[])
 	// Create user data directory
 	fs::CreateDir(porting::path_userdata);
 
-	setlocale(LC_ALL, "");
+	setlocale(LC_MESSAGES, "");
 	bindtextdomain("minetest-c55", (porting::path_userdata+"/locale").c_str());
 	textdomain("minetest-c55");
 	
-- 
cgit v1.2.3


From 965352287391eb46695546efce3e26a2e576a340 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Fri, 22 Jul 2011 14:42:04 +0200
Subject: Declare USE_GETTEXT option

---
 src/CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0c4b41829..dc9dc03a6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -5,6 +5,8 @@ if(RUN_IN_PLACE)
 	add_definitions ( -DRUN_IN_PLACE )
 endif(RUN_IN_PLACE)
 
+OPTION(USE_GETTEXT "Use GetText for internationalization" OFF)
+
 if(USE_GETTEXT)
 	find_package(GettextLib REQUIRED)
 	message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
-- 
cgit v1.2.3