IF(USE_GETTEXT_TRANSLATIONS)
	SET(_gmoFiles)
	GET_FILENAME_COMPONENT(_potBasename ${POTFILE} NAME_WE)
	GET_FILENAME_COMPONENT(_absPotFile ${POTFILE} ABSOLUTE)
	FOREACH (_currentPoFile ${pofiles})
		GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE)
		GET_FILENAME_COMPONENT(_abs_PATH ${_absFile} PATH)
		GET_FILENAME_COMPONENT(_lang ${_absFile} NAME_WE)
		SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
		ADD_CUSTOM_COMMAND(
			OUTPUT ${_gmoFile}
			COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile}
			DEPENDS ${_absPotFile} ${_absFile}
		)
		INSTALL(FILES ${_gmoFile} DESTINATION share/${PACKAGE}/${VERSION_BRANCH}/locale/ RENAME ${_lang}.mo)
		SET(_gmoFiles ${_gmoFiles} ${_gmoFile})
	ENDFOREACH ()
	ADD_CUSTOM_TARGET(kvirc-translations-${_potBasename} DEPENDS ${_gmoFiles})
	ADD_DEPENDENCIES(kvirc-translations kvirc-translations-${_potBasename})
	IF(USE_GETTEXT_EXTRA)
		ADD_CUSTOM_TARGET(message-update-${_potBasename})
		ADD_DEPENDENCIES(message-update message-update-${_potBasename})

		ADD_CUSTOM_TARGET(message-extract-${_potBasename})
		ADD_DEPENDENCIES(message-extract message-extract-${_potBasename})

		# message-extract
		SET(XGETTEXT_FILES)
		FOREACH(SDIR ${XGETTEXT_SOURCESDIR})
			FILE(GLOB_RECURSE XGETTEXT_FILES_TEMP ${SDIR}/*.cpp ${SDIR}/*.h ${SDIR}/*.kvs)
			LIST(APPEND XGETTEXT_FILES ${XGETTEXT_FILES_TEMP})
		ENDFOREACH()
		# Semicolons 2 spaces
		SET(XGETTEXT_FILES_STRING)
		FOREACH(arg ${XGETTEXT_FILES})
			SET(XGETTEXT_FILES_STRING "${XGETTEXT_FILES_STRING}
${arg}")
		ENDFOREACH()
		GET_FILENAME_COMPONENT(PO_DIR ${_absPotFile} PATH)
		WRITE_FILE(${PO_DIR}/filelist.txt ${XGETTEXT_FILES_STRING})
		ADD_CUSTOM_COMMAND(
			COMMENT "extracting messages for ${_potBasename}"
			COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} -o ${_absPotFile} -k__tr -k__tr_no_lookup -k__tr2qs -k__tr2wc -k__tr2ws -ktr -k__tr2qs_ctx -k__tr_ctx -k__tr_no_lookup_ctx -k__tr2qs_no_lookup -f ${PO_DIR}/filelist.txt
			TARGET message-extract-${_potBasename}
		)

		# message-update
		GET_FILENAME_COMPONENT(_potBasename ${POTFILE} NAME_WE)
		GET_FILENAME_COMPONENT(_absPotFile ${POTFILE} ABSOLUTE)
		FOREACH (_currentPoFile ${pofiles})
			GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE)
			GET_FILENAME_COMPONENT(_abs_PATH ${_absFile} PATH)
			GET_FILENAME_COMPONENT(_lang ${_absFile} NAME_WE)

			ADD_CUSTOM_COMMAND(
				COMMENT "updating messages in ${_currentPoFile}"
				COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile}
			DEPENDS ${_absPotFile} ${_absFile}
			TARGET message-update-${_potBasename}
			)
		ENDFOREACH ()
	ENDIF()
ENDIF()