--- /dev/null
+FIND_PROGRAM(XGETTEXT_EXECUTABLE xgettext)
+FIND_PROGRAM(MSGMERGE_EXECUTABLE msgmerge)
+FIND_PROGRAM(MSGFMT_EXECUTABLE msgfmt)
+
+SET(POT_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/madmutt.pot)
+
+FILE(GLOB _pofiles *.po)
+
+ADD_CUSTOM_TARGET(update-po
+ WORKING_DIRECTORY ${madmutt_SOURCE_DIR}
+ COMMAND ${XGETTEXT_EXECUTABLE} -Lc -k_ -kN_ -o${POT_OUTPUT} -f${CMAKE_CURRENT_SOURCE_DIR}/POTFILES
+)
+
+FOREACH(_file ${_pofiles})
+ GET_FILENAME_COMPONENT(_file_we ${_file} NAME_WE)
+ SET(_in ${_file_we}.po)
+ SET(_abs ${CMAKE_CURRENT_SOURCE_DIR}/${_in})
+ SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_file_we}.gmo)
+
+ ADD_CUSTOM_TARGET(${_in}
+ COMMAND ${MSGMERGE_EXECUTABLE} -q -U --backup=none -s ${_file} ${POT_OUTPUT}
+ )
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_out}
+ COMMAND ${MSGFMT_EXECUTABLE} -o ${_out} ${_abs}
+ DEPENDS ${_abs}
+ )
+
+ INSTALL(
+ FILES ${_file}
+ DESTINATION share/locale/${_file_we}/LC_MESSAGES/
+ RENAME madmutt.mo
+ )
+
+ SET(_gmofiles ${_gmofiles} ${_out})
+ ADD_DEPENDENCIES(update-po ${_in})
+ENDFOREACH(_file)
+
+ADD_CUSTOM_TARGET(translations ALL DEPENDS ${_gmofiles})