diff --git a/CMakeLists.txt b/CMakeLists.txt
index 498c614..7322cbc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@
 include(CheckCSourceCompiles)
 include(CheckCXXSourceCompiles)
 
-project(TigerVNC)
+project(tigervnc)
 set(VERSION 1.0.90)
 
 # The RC version must always be four comma-separated numbers
@@ -123,6 +123,11 @@
   set(USE_INCLUDED_ZLIB 1)
 endif()
 
+# Check for gettext
+option(ENABLE_NLS "Enable translation of program messages" ON)
+find_package(Gettext)
+set(LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale")
+
 # Check for libjpeg
 find_package(JPEG REQUIRED)
 
@@ -199,5 +204,6 @@
 endif()
 
 if(BUILD_NEW_VNCVIEWER)
+  add_subdirectory(po)
   add_subdirectory(vncviewer)
 endif()
diff --git a/config.h.cmake.in b/config.h.cmake.in
index 27e90c4..50fe25d 100644
--- a/config.h.cmake.in
+++ b/config.h.cmake.in
@@ -12,6 +12,7 @@
 #cmakedefine HAVE_GNUTLS_PK_ALGORITHM_T
 #cmakedefine HAVE_GNUTLS_SIGN_ALGORITHM_T
 #cmakedefine HAVE_FLTK_DEAD_KEYS
+#cmakedefine ENABLE_NLS 1
 
 /* MS Visual Studio 2008 and newer doesn't know ssize_t */
 #if defined(HAVE_GNUTLS) && defined(WIN32) && !defined(__MINGW32__)
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644
index 0000000..51f0172
--- /dev/null
+++ b/po/CMakeLists.txt
@@ -0,0 +1,61 @@
+# Gettext support - mostly borrowed from the Licq project
+
+set(po_FILES
+    de fr pl ru sk sv
+)
+
+if (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE)
+  message(FATAL_ERROR "Gettext message catalog tools NOT found")
+endif (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE)
+
+find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
+if (GETTEXT_XGETTEXT_EXECUTABLE)
+  # Get list of all source files
+  file(GLOB_RECURSE po_source
+    RELATIVE ${PROJECT_SOURCE_DIR}
+    ${PROJECT_SOURCE_DIR}/vncviewer/*.h
+    ${PROJECT_SOURCE_DIR}/vncviewer/*.cxx
+  )
+
+  add_custom_target(translations_update
+    ${GETTEXT_XGETTEXT_EXECUTABLE}
+      --directory ${PROJECT_SOURCE_DIR}
+      --output="${CMAKE_CURRENT_SOURCE_DIR}/tigervnc.pot"
+      --default-domain=tigervnc
+      --keyword=_
+      --keyword=N_
+      --copyright-holder='RealVNC Ltd, Constantin Kaplinsky, Peter Astrand, Cendio AB'
+      --msgid-bugs-address="tigervnc-devel@lists.sourceforge.net"
+      --sort-output
+      --no-location
+      ${po_source}
+    COMMENT "Updating tigervnc.pot"
+  )
+endif (GETTEXT_XGETTEXT_EXECUTABLE)
+
+foreach(lang ${po_FILES})
+  set(po  "${CMAKE_CURRENT_SOURCE_DIR}/${lang}.po")
+  set(mo "${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo")
+
+  # Update po files after pot file
+  add_custom_command(TARGET translations_update POST_BUILD
+    COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none
+      --sort-output ${po} ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc.pot
+    COMMENT "Updating ${lang}.po"
+  )
+
+  # Add command to build X.mo from X.po
+  add_custom_command(OUTPUT ${mo}
+    COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${mo} ${po}
+    DEPENDS ${po}
+  )
+
+  install(FILES ${mo}
+    DESTINATION "${LOCALE_DIR}/${lang}/LC_MESSAGES"
+    RENAME tigervnc.mo
+  )
+
+  set(moFiles ${moFiles} ${mo})
+endforeach(lang)
+
+add_custom_target(translations ALL DEPENDS ${moFiles})
