update branch webgl
authorkoda
Sun, 27 Jan 2013 00:28:57 +0100
branchwebgl
changeset 8444 75db7bb8dce8
parent 8340 46a9fde631f4 (current diff)
parent 8443 2debc9b9f917 (diff)
child 8446 c18ba8726f5a
update branch
.hgignore
CMakeLists.txt
QTfrontend/AutoUpdater.cpp
QTfrontend/AutoUpdater.h
QTfrontend/CMakeLists.txt
QTfrontend/CocoaInitializer.h
QTfrontend/CocoaInitializer.mm
QTfrontend/InstallController.cpp
QTfrontend/InstallController.h
QTfrontend/M3InstallController.h
QTfrontend/M3InstallController.m
QTfrontend/M3Panel.h
QTfrontend/M3Panel.mm
QTfrontend/NSWorkspace_RBAdditions.h
QTfrontend/NSWorkspace_RBAdditions.m
QTfrontend/SparkleAutoUpdater.h
QTfrontend/SparkleAutoUpdater.mm
QTfrontend/game.cpp
QTfrontend/gameuiconfig.cpp
QTfrontend/gameuiconfig.h
QTfrontend/hwform.cpp
QTfrontend/hwform.h
QTfrontend/net/newnetclient.cpp
QTfrontend/net/newnetclient.h
QTfrontend/ui/dialog/input_password.cpp
QTfrontend/ui/page/pagefeedback.cpp
QTfrontend/ui/page/pagefeedback.h
QTfrontend/ui/page/pagemain.cpp
QTfrontend/ui/page/pagevideos.cpp
QTfrontend/ui/widget/about.cpp
QTfrontend/xfire.cpp
QTfrontend/xfire.h
gameServer/Actions.hs
gameServer/HWProtoInRoomState.hs
hedgewars/ArgParsers.inc
hedgewars/CMakeLists.txt
hedgewars/GSHandlers.inc
hedgewars/hwengine.pas
hedgewars/uAIAmmoTests.pas
hedgewars/uCommandHandlers.pas
hedgewars/uConsts.pas
hedgewars/uCursor.pas
hedgewars/uGears.pas
hedgewars/uGearsHedgehog.pas
hedgewars/uGearsRender.pas
hedgewars/uIO.pas
hedgewars/uInputHandler.pas
hedgewars/uLand.pas
hedgewars/uLocale.pas
hedgewars/uScript.pas
hedgewars/uSound.pas
hedgewars/uStore.pas
hedgewars/uTeams.pas
hedgewars/uTypes.pas
hedgewars/uUtils.pas
hedgewars/uVariables.pas
hedgewars/uVisualGears.pas
hedgewars/uWorld.pas
misc/physfs/CMakeLists.txt
misc/xfire/Xfire Game SDK.url
misc/xfire/license.txt
misc/xfire/xfiregameclient.cpp
misc/xfire/xfiregameclient.h
tools/pas2c/Pas2C.hs
tools/pas2c/PascalParser.hs
--- a/.hgignore	Wed Jan 02 11:11:49 2013 +0100
+++ b/.hgignore	Sun Jan 27 00:28:57 2013 +0100
@@ -14,6 +14,7 @@
 glob:config.inc
 glob:cmake_install.cmake
 glob:QTfrontend/hwconsts.cpp
+glob:QTfrontend/servermessages.h
 glob:CPackConfig.cmake
 glob:CPackSourceConfig.cmake
 glob:tools/cmake_uninstall.cmake
--- a/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -28,9 +28,11 @@
 option(NOAUTOUPDATE "Disable OS X Sparkle update checking" OFF)
 option(MINIMAL_FLAGS "Respect system flags as much as possible [default: off]" OFF)
 option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF)
-set(FPFLAGS "" CACHE STRING "Additional Freepascal flags" FORCE)
-set(GHFLAGS "" CACHE STRING "Additional Haskell flags" FORCE)
-
+set(FPFLAGS "" CACHE STRING "Additional Freepascal flags")
+set(GHFLAGS "" CACHE STRING "Additional Haskell flags")
+if(UNIX AND NOT APPLE)
+    set(DATA_INSTALL_DIR "share/hedgewars" CACHE STRING "Resource folder path")
+endif()
 
 #detect Mercurial revision (if present)
 if(NOT ${NOREVISION})
@@ -89,11 +91,7 @@
 if(UNIX AND NOT APPLE)
     set(target_binary_install_dir "bin")
     set(target_library_install_dir "lib")
-    if(DEFINED DATA_INSTALL_DIR)
-        set(SHAREPATH "${DATA_INSTALL_DIR}")
-    else()
-        set(SHAREPATH "share/hedgewars/")
-    endif()
+    set(SHAREPATH "${DATA_INSTALL_DIR}/")
 else()
     set(target_binary_install_dir "./")
 
@@ -149,8 +147,8 @@
         find_package(SDL_mixer REQUIRED)
         set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg")
         set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod")
-        set(pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}" ${pascal_flags})
-        set(CMAKE_C_FLAGS "${DYLIB_SMPEG}" "${DYLIB_MIKMOD}" ${CMAKE_C_FLAGS})
+        set(CMAKE_C_FLAGS "${DYLIB_SMPEG} ${DYLIB_MIKMOD}")
+        list(APPEND pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}")
     endif()
 
     #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking
@@ -180,9 +178,9 @@
     endif()
 
     #add user framework directory, other paths can be passed via FPFLAGS
-    set(pascal_flags "-Ff~/Library/Frameworks" ${pascal_flags})
+    list(APPEND pascal_flags "-Ff~/Library/Frameworks")
     #set deployment target
-    set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags})
+    list(APPEND pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}")
 
     #silly libav that always brings in VideoDecoderAcceleration, avaible only from 10.6.3
     if(NOT NOVIDEOREC AND ${minimum_macosx_version} VERSION_LESS "10.6")
@@ -203,10 +201,10 @@
 endif (CMAKE_BUILD_TYPE)
 
 #set default flags values for all projects (unless MINIMAL_FLAGS is true)
-if(NOT MINIMAL_FLAGS)
-    set(CMAKE_C_FLAGS "-pipe")
-    set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer")
-    set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG")
+if(NOT ${MINIMAL_FLAGS})
+    set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}")
+    set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_C_FLAGS_RELEASE}")
+    set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG ${CMAKE_C_FLAGS_DEBUG}")
     set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
     set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
     set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
@@ -229,7 +227,7 @@
     endif()
 endif()
 
-set(pascal_flags ${fpflags_parsed}              # user flags
+list(APPEND pascal_flags ${fpflags_parsed}              # user flags
                  "-vm4079,4080,4081"            # fpc output format
                  "-B"                           # compile all units
                  "-FE${PROJECT_BINARY_DIR}/bin" # fpc output directory
@@ -237,19 +235,18 @@
                  "-Cs2000000"                   # stack size
                  "-vewnq"                       # fpc output verbosity
                  "-dDEBUGFILE"                  # macro for engine output
-                 ${pascal_flags}                # adding to list
                  )
-set(haskell_flags "-O2" ${ghflags_parsed} ${haskell_flags})
+list(APPEND haskell_flags "-O2" ${ghflags_parsed})
 
 #get BUILD_TYPE and enable/disable optimisation
 message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration")
 if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
-    set(pascal_flags "-O-" "-g" "-gl" "-gv" ${pascal_flags})
-    set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags})
+    list(APPEND pascal_flags "-O-" "-g" "-gl" "-gv")
+    list(APPEND haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind")
 else()
 #    set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags})
-    set(pascal_flags "-Os" "-Xs" "-Si" ${pascal_flags})
-    set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags})
+    list(APPEND pascal_flags "-Os" "-Xs" "-Si")
+    list(APPEND haskell_flags "-w" "-fno-warn-unused-do-bind")
 endif()
 
 
@@ -289,14 +286,14 @@
     message(STATUS "Using internal LUA library")
     add_subdirectory(misc/liblua)
     #linking with liblua.a requires system readline
-    set(pascal_flags "-k${EXECUTABLE_OUTPUT_PATH}/lib${LUA_LIBRARY}.a" "-k-lreadline" ${pascal_flags})
+    list(APPEND pascal_flags "-k${EXECUTABLE_OUTPUT_PATH}/lib${LUA_LIBRARY}.a" "-k-lreadline")
 endif()
 
 
 #physfs library (static on unix, dll on win32)
 add_subdirectory(misc/physfs)
 if(NOT WIN32)
-    set(pascal_flags "-k${LIBRARY_OUTPUT_PATH}/libphysfs.a" ${pascal_flags})
+    list(APPEND pascal_flags "-k${LIBRARY_OUTPUT_PATH}/libphysfs.a")
 endif()
 
 
--- a/ChangeLog.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/ChangeLog.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -28,7 +28,7 @@
  * Fix all knowns bugs which caused network game hang when players close engine or quit
  * Fix drill strike bug when drill's timer gets ridiculously high value instead of explosion
  * Fix some crashes, freezes and memory leaks in frontend and engine
- 
+
 0.9.16 -> 0.9.17:
  + New theme, Cave
  + New voicepack, Hillbilly
@@ -401,7 +401,7 @@
  + AI updates
  + Teams now work in fort mode, i.e. 2v2
  + Ability to attack whilst jumping/rope swinging
- + Some weapons can only be used after a certain number of turns 
+ + Some weapons can only be used after a certain number of turns
  + Lots of new graphics
  * Many network/gameplay bug fixes
 
--- a/QTfrontend/AutoUpdater.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-/*
- * Copyright (C) 2008 Remko Troncon
- */
-
-#include "AutoUpdater.h"
-
-AutoUpdater::~AutoUpdater()
-{
-}
--- a/QTfrontend/AutoUpdater.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-/*
- * Copyright (C) 2008 Remko Troncon
- */
-
-#ifndef AUTOUPDATER_H
-#define AUTOUPDATER_H
-
-class AutoUpdater
-{
-    public:
-        virtual ~AutoUpdater();
-
-        virtual void checkForUpdates() = 0;
-        virtual void checkForUpdatesNow() = 0;
-};
-
-#endif
--- a/QTfrontend/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -23,7 +23,29 @@
     endif()
 endif()
 
-include_directories(.)
+# server messages localization
+file(GLOB ServerSources ${CMAKE_SOURCE_DIR}/gameServer/*.hs)
+foreach(hsfile ${ServerSources})
+    file(READ ${hsfile} hs)
+    string(REGEX MATCHALL "loc *\"[^\n\"]+\"" locs ${hs})
+    foreach(str ${locs})
+        string(REGEX REPLACE "loc *\"([^\n\"]+)\"" "QT_TRANSLATE_NOOP(\"server\", \"\\1\")" s ${str})
+        list(APPEND serverlocs ${s})
+    endforeach(str)
+endforeach(hsfile)
+
+list(REMOVE_DUPLICATES serverlocs)
+list(GET serverlocs 0 firstline)
+list(REMOVE_AT serverlocs 0)
+set(locsout "const char * serverMessages[] = {\n")
+foreach(l ${serverlocs})
+    list(APPEND locsout ${l} ",\n")
+endforeach(l)
+list(APPEND locsout ${firstline} "\n}\\;\n")
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/servermessages.h ${locsout})
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/model)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/net)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui)
@@ -31,6 +53,7 @@
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/page)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ui/widget)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/util/platform)
 include_directories(${SDL_INCLUDE_DIR})
 include_directories(${SDLMIXER_INCLUDE_DIR})
 include_directories(${FFMPEG_INCLUDE_DIR})
@@ -41,11 +64,12 @@
     include_directories("/usr/local/include")
 endif(UNIX)
 
-#directory for resources, relative to the one above on certain platforms/configurations
-if(DEFINED DATA_INSTALL_DIR OR WIN32 OR APPLE)
+#directory for resources, relative to bindir (on linux an absolute path is always used)
+string(SUBSTRING "${SHAREPATH}" 0 1 sharepath_start)
+if(APPLE OR WIN32 OR ${sharepath_start} MATCHES "/")
     set(HEDGEWARS_DATADIR ${SHAREPATH})
 else()
-    set(HEDGEWARS_DATADIR ${CMAKE_INSTALL_PREFIX}/${SHAREPATH}/)
+    set(HEDGEWARS_DATADIR ${CMAKE_INSTALL_PREFIX}/${SHAREPATH})
 endif()
 
 #only the cocoa version of qt supports building 64 bit apps
@@ -61,7 +85,7 @@
 file(GLOB_RECURSE UIcpp ui/*.cpp)
 file(GLOB UtilCpp util/*.cpp)
 
-set(hwfr_src
+list(APPEND hwfr_src
     ${ModelCpp}
     ${NetCpp}
     ${UIcpp}
@@ -82,7 +106,7 @@
 
 #xfire integration
 if(WIN32)
-    set(hwfr_src ${hwfr_src} xfire.cpp ../misc/xfire/xfiregameclient.cpp)
+    list(APPEND hwfr_src util/platform/xfire.cpp util/platform/xfiregameclient.cpp)
 endif(WIN32)
 
 if(MINGW)
@@ -91,9 +115,9 @@
                        COMMAND windres -I ${CMAKE_CURRENT_SOURCE_DIR}
                                -i ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars.rc
                                -o ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
-    set(hwfr_src ${hwfr_src} ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
+    list(APPEND hwfr_src ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
 else(MINGW)
-    set(hwfr_src ${hwfr_src} hedgewars.rc)
+    list(APPEND hwfr_src hedgewars.rc)
 endif(MINGW)
 
 file(GLOB ModelHdr model/*.h)
@@ -114,6 +138,7 @@
     team.h
     util/DataManager.h
     util/LibavInteraction.h
+    util/MessageDialog.h
     )
 
 set(hwfr_hdrs
@@ -125,6 +150,7 @@
     hwconsts.h
     sdlkeys.h
     campaign.h
+    ${CMAKE_CURRENT_BINARY_DIR}/servermessages.h
     )
 
 set(hwfr_rez hedgewars.qrc)
@@ -132,7 +158,7 @@
 if(${BUILD_ENGINE_LIBRARY})
     add_definitions(-DHWLIBRARY=1)
     set(hwlibname "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}")
-    set(HW_LINK_LIBS ${hwlibname} ${HW_LINK_LIBS})
+    list(APPEND HW_LINK_LIBS ${hwlibname})
 endif()
 
 qt4_add_resources(hwfr_rez_src ${hwfr_rez})
@@ -142,19 +168,20 @@
 
 if(APPLE)
     find_library(iokit_framework NAMES IOKit)
-    set(HW_LINK_LIBS ${iokit_framework} ${HW_LINK_LIBS})
-    set(hwfr_src ${hwfr_src} CocoaInitializer.mm
-                             InstallController.cpp
-                             M3Panel.mm
-                             M3InstallController.m
-                             NSWorkspace_RBAdditions.m
-                             )
+    list(APPEND HW_LINK_LIBS ${iokit_framework})
+    list(APPEND hwfr_src util/platform/CocoaInitializer.mm
+                         util/platform/InstallController.cpp
+                         util/platform/M3Panel.mm
+                         util/platform/M3InstallController.m
+                         util/platform/NSWorkspace_RBAdditions.m
+                         )
     if(NOT NOAUTOUPDATE)
         find_package(Sparkle)
         if(SPARKLE_FOUND)
             add_definitions(-DSPARKLE_ENABLED)
-            set(hwfr_src ${hwfr_src} AutoUpdater.cpp SparkleAutoUpdater.mm)
-            set(HW_LINK_LIBS ${SPARKLE_LIBRARY} ${HW_LINK_LIBS})
+            list(APPEND hwfr_src util/platform/AutoUpdater.cpp
+                                 util/platform/SparkleAutoUpdater.mm)
+            list(APPEND HW_LINK_LIBS ${SPARKLE_LIBRARY})
         endif()
     endif()
 endif()
@@ -181,22 +208,20 @@
     set_target_properties(hedgewars PROPERTIES LINK_FLAGS "-Wl,-rpath,${CMAKE_INSTALL_PREFIX}/${target_library_install_dir}")
 endif()
 
-set(HW_LINK_LIBS
+list(APPEND HW_LINK_LIBS
     physfs
     ${QT_LIBRARIES}
     ${SDL_LIBRARY}
     ${SDLMIXER_LIBRARY}
     ${FFMPEG_LIBRARIES}
-    ${HW_LINK_LIBS}
     )
 
 if(WIN32 AND NOT UNIX)
     if(NOT SDL_LIBRARY)
-        set(HW_LINK_LIBS ${HW_LINK_LIBS} SDL)
+        list(APPEND HW_LINK_LIBS SDL)
     endif()
 
-    set(HW_LINK_LIBS
-        ${HW_LINK_LIBS}
+    list(APPEND HW_LINK_LIBS
         ole32
         oleaut32
         winspool
--- a/QTfrontend/CocoaInitializer.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-// see original example here http://el-tramo.be/blog/mixing-cocoa-and-qt
-
-#ifndef COCOAINITIALIZER_H
-#define COCOAINITIALIZER_H
-
-class CocoaInitializer
-{
-    public:
-        CocoaInitializer();
-        ~CocoaInitializer();
-
-    private:
-        class Private;
-        Private* c;
-};
-
-#endif
--- a/QTfrontend/CocoaInitializer.mm	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-// see original example here http://el-tramo.be/blog/mixing-cocoa-and-qt
-
-#include "CocoaInitializer.h"
-
-#include <AppKit/AppKit.h>
-#include <Cocoa/Cocoa.h>
-#include <QtDebug>
-
-class CocoaInitializer::Private
-{
-    public:
-        NSAutoreleasePool* pool;
-};
-
-CocoaInitializer::CocoaInitializer()
-{
-    c = new CocoaInitializer::Private();
-    c->pool = [[NSAutoreleasePool alloc] init];
-    NSApplicationLoad();
-}
-
-CocoaInitializer::~CocoaInitializer()
-{
-    [c->pool release];
-    delete c;
-}
--- a/QTfrontend/InstallController.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "InstallController.h"
-
-InstallController::~InstallController()
-{
-}
--- a/QTfrontend/InstallController.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef INSTALLCONTROLLER_H
-#define INSTALLCONTROLLER_H
-
-class InstallController
-{
-    public:
-        virtual ~InstallController();
-
-        virtual void showInstallController() = 0;
-};
-
-#endif
--- a/QTfrontend/M3InstallController.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*****************************************************************
- M3InstallController.m
-
- Created by Martin Pilkington on 02/06/2007.
-
- Copyright (c) 2006-2009 M Cubed Software
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
-
- *****************************************************************/
-
-#import <Cocoa/Cocoa.h>
-#import <AvailabilityMacros.h>
-
-//#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050
-#if __LP64__ || NS_BUILD_32_LIKE_64
-typedef long NSInteger;
-typedef unsigned long NSUInteger;
-#else
-typedef int NSInteger;
-typedef unsigned int NSUInteger;
-#endif
-//#endif
-
-
-@interface M3InstallController :
-NSObject
-{
-    NSAlert *alert;
-}
-
-- (void)displayInstaller;
-- (void)installApp;
-@end
--- a/QTfrontend/M3InstallController.m	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*****************************************************************
- M3InstallController.m
-
- Created by Martin Pilkington on 02/06/2007.
-
- Copyright (c) 2006-2009 M Cubed Software
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
-
- *****************************************************************/
-
-#import "M3InstallController.h"
-#import "NSWorkspace_RBAdditions.h"
-
-#import <Foundation/Foundation.h>
-
-@implementation M3InstallController
-
-- (id) init {
-        if ((self = [super init])) {
-		NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
-		NSString *title = [NSString stringWithFormat:NSLocalizedString(@"%@ is currently running from a disk image", @"AppName is currently running from a disk image"), appName];
-		NSString *body = [NSString stringWithFormat:NSLocalizedString(@"Would you like to install %@ in your applications folder before quitting?", @"Would you like to install App Name in your applications folder before quitting?"), appName];
-		alert = [[NSAlert alertWithMessageText:title
-								 defaultButton:NSLocalizedString(@"Install", @"Install")
-							   alternateButton:NSLocalizedString(@"Don't Install", @"Don't Install")
-								   otherButton:nil
-					 informativeTextWithFormat:body] retain];
-		//[alert setShowsSuppressionButton:YES];
-	}
-	return self;
-}
-
-- (void)displayInstaller {
-	NSString *imageFilePath = [[[NSWorkspace sharedWorkspace] propertiesForPath:[[NSBundle mainBundle] bundlePath]] objectForKey:NSWorkspace_RBimagefilepath];
-	if (imageFilePath && ![imageFilePath isEqualToString:[NSString stringWithFormat:@"/Users/.%@/%@.sparseimage", NSUserName(), NSUserName()]] && ![[NSUserDefaults standardUserDefaults] boolForKey:@"M3DontAskInstallAgain"]) {
-		NSInteger returnValue = [alert runModal];
-		if (returnValue == NSAlertDefaultReturn) {
-			[self installApp];
-		}
-		if ([[alert suppressionButton] state] == NSOnState) {
-			[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"M3DontAskInstallAgain"];
-		}
-	}
-}
-
-- (void)installApp {
-	NSString *appsPath = [[NSString stringWithString:@"/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]];
-	NSString *userAppsPath = [[[NSString stringWithString:@"~/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]] stringByExpandingTildeInPath];
-	NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
-
-	//Delete the app that is installed
-	if ([[NSFileManager defaultManager] fileExistsAtPath:appsPath]) {
-		[[NSFileManager defaultManager] removeFileAtPath:appsPath handler:nil];
-	}
-	//Delete the app that is installed
-	if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:appsPath
-										  handler:nil]) {
-		NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"App Name installed successfully"), appName],
-						[NSString stringWithFormat:NSLocalizedString(@"%@ was installed in /Applications", @"App Name was installed in /Applications"), appName],
-						NSLocalizedString(@"Quit", @"Quit"), nil, nil);
-	} else {
-		if ([[NSFileManager defaultManager] fileExistsAtPath:userAppsPath]) {
-			[[NSFileManager defaultManager] removeFileAtPath:userAppsPath handler:nil];
-		}
-		if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:userAppsPath
-												handler:nil]) {
-		NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"AppName installed successfully"), appName],
-				[NSString stringWithFormat:NSLocalizedString(@"%@ was installed in %@", @"App Name was installed in %@"), appName, [[NSString stringWithString:@"~/Applications"] stringByExpandingTildeInPath]],
-						NSLocalizedString(@"Quit", @"Quit"), nil, nil);
-		} else {
-			NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"Could not install %@", @"Could not install App Name"), appName],
-							NSLocalizedString(@"An error occurred when installing", @"An error occurred when installing"), NSLocalizedString(@"Quit", @"Quit"), nil, nil);
-		}
-	}
-}
-
-@end
--- a/QTfrontend/M3Panel.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef M3PANEL_H
-#define M3PANEL_H
-
-#include "InstallController.h"
-
-class M3Panel : public InstallController
-{
-    public:
-        M3Panel(void);
-        ~M3Panel();
-
-        void showInstallController();
-
-    private:
-        class Private;
-        Private* m;
-};
-
-#endif
--- a/QTfrontend/M3Panel.mm	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include "M3Panel.h"
-#include "M3InstallController.h"
-
-#include <Cocoa/Cocoa.h>
-
-class M3Panel::Private
-{
-    public:
-        M3InstallController *install;
-};
-
-M3Panel::M3Panel(void)
-{
-    m = new M3Panel::Private();
-
-    m->install = [[M3InstallController alloc] init];
-    [m->install retain];
-}
-
-M3Panel::~M3Panel()
-{
-    [m->install release];
-    delete m;
-}
-
-void M3Panel::showInstallController()
-{
-    [m->install displayInstaller];
-}
--- a/QTfrontend/NSWorkspace_RBAdditions.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-//
-//  NSWorkspace_RBAdditions.h
-//  PathProps
-//
-//  Created by Rainer Brockerhoff on 10/04/2007.
-//  Copyright 2007 Rainer Brockerhoff. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-extern NSString* NSWorkspace_RBfstypename;
-extern NSString* NSWorkspace_RBmntonname;
-extern NSString* NSWorkspace_RBmntfromname;
-extern NSString* NSWorkspace_RBdeviceinfo;
-extern NSString* NSWorkspace_RBimagefilepath;
-extern NSString* NSWorkspace_RBconnectiontype;
-extern NSString* NSWorkspace_RBpartitionscheme;
-extern NSString* NSWorkspace_RBserverURL;
-
-@interface NSWorkspace (NSWorkspace_RBAdditions)
-
-// This method will return nil if the input path is invalid. Otherwise, the returned NSDictionary may contain
-// the following keys:
-//- NSWorkspace_RBfstypename: will always be present.Shows the filesystem type (usually "hfs"), from statfs.
-//- NSWorkspace_RBmntonname: will always be present. Shows the volume mount point.
-//- NSWorkspace_RBmntfromname: will always be present. Shows the BSD device path for local volumes; info for
-//      remote volumes depends on the filesystem type.
-//- NSWorkspace_RBconnectiontype: should always be present for local volumes. Shows the connection type ("SATA", "USB", etc.).
-//- NSWorkspace_RBpartitionscheme: should always be present for local volumes. Shows the partition scheme.
-//- NSWorkspace_RBdeviceinfo: should always be present for local volumes. Shows some information about the
-//      physical device; varies widely.
-//- NSWorkspace_RBimagefilepath: should be present for disk images only. Shows the path of the disk image file.
-//- NSWorkspace_RBserverURL: should be present for remote volumes only. Shows the server URL.
-
-- (NSDictionary*)propertiesForPath:
-(NSString*)path;
-
-@end
--- a/QTfrontend/NSWorkspace_RBAdditions.m	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-//
-//  NSWorkspace_RBAdditions.m
-//  PathProps
-//
-//  Created by Rainer Brockerhoff on 10/04/2007.
-//  Copyright 2007 Rainer Brockerhoff. All rights reserved.
-//
-
-#import "NSWorkspace_RBAdditions.h"
-#include <IOKit/IOKitLib.h>
-#include <sys/mount.h>
-#include <mach/mach.h>
-
-NSString* NSWorkspace_RBfstypename = @"NSWorkspace_RBfstypename";
-NSString* NSWorkspace_RBmntonname = @"NSWorkspace_RBmntonname";
-NSString* NSWorkspace_RBmntfromname = @"NSWorkspace_RBmntfromname";
-NSString* NSWorkspace_RBdeviceinfo = @"NSWorkspace_RBdeviceinfo";
-NSString* NSWorkspace_RBimagefilepath = @"NSWorkspace_RBimagefilepath";
-NSString* NSWorkspace_RBconnectiontype = @"NSWorkspace_RBconnectiontype";
-NSString* NSWorkspace_RBpartitionscheme = @"NSWorkspace_RBpartitionscheme";
-NSString* NSWorkspace_RBserverURL = @"NSWorkspace_RBserverURL";
-
-// This static funtion concatenates two strings, but first checks several possibilities...
-// like one or the other nil, or one containing the other already.
-
-static NSString* AddPart(NSString* first,NSString* second) {
-	if (!second) {
-		return first;
-	}
-	second = [second stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
-	if (first) {
-		if ([first rangeOfString:second options:NSCaseInsensitiveSearch].location==NSNotFound) {
-			if ([second rangeOfString:first options:NSCaseInsensitiveSearch].location==NSNotFound) {
-				return [NSString stringWithFormat:@"%@; %@",first,second];
-			}
-			return second;
-		}
-		return first;
-	}
-	return second;
-}
-
-// This static functions recurses "upwards" over the IO registry. Returns strings that are concatenated
-// and ultimately end up under the NSWorkspace_RBdeviceinfo key.
-// This isn't too robust in that it assumes that objects returned by the objectForKey methods are
-// either strings or dictionaries. A "standard" implementations would use either only CoreFoundation and
-// IOKit calls for this, or do more robust type checking on the returned objects.
-//
-// Also notice that this works as determined experimentally in 10.4.9, there's no official docs I could find.
-// YMMV, and it may stop working in any new version of Mac OS X.
-
-static NSString* CheckParents(io_object_t thing,NSString* part,NSMutableDictionary* dict) {
-	NSString* result = part;
-    io_iterator_t parentsIterator = 0;
-    kern_return_t kernResult = IORegistryEntryGetParentIterator(thing,kIOServicePlane,&parentsIterator);
-    if ((kernResult==KERN_SUCCESS)&&parentsIterator) {
-		io_object_t nextParent = 0;
-		while ((nextParent = IOIteratorNext(parentsIterator))) {
-			NSDictionary* props = nil;
-			NSString* image = nil;
-			NSString* partition = nil;
-			NSString* connection = nil;
-			kernResult = IORegistryEntryCreateCFProperties(nextParent,(CFMutableDictionaryRef*)&props,kCFAllocatorDefault,0);
-			if (IOObjectConformsTo(nextParent,"IOApplePartitionScheme")) {
-				partition = [props objectForKey:@"Content Mask"];
-			} else if (IOObjectConformsTo(nextParent,"IOMedia")) {
-				partition = [props objectForKey:@"Content"];
-			} else if (IOObjectConformsTo(nextParent,"IODiskImageBlockStorageDeviceOutKernel")) {
-				NSData* data = nil;
-                                if ((data = [[props objectForKey:@"Protocol Characteristics"] objectForKey:@"Virtual Interface Location Path"])) {
-					image = [[[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding] autorelease];
-				}
-			} else if (IOObjectConformsTo(nextParent,"IOHDIXHDDriveInKernel")) {
-				image = [props objectForKey:@"KDIURLPath"];
-			}
-			NSDictionary* subdict;
-                        if ((subdict = [props objectForKey:@"Protocol Characteristics"])) {
-				connection = [subdict objectForKey:@"Physical Interconnect"];
-			} else {
-				connection = [props objectForKey:@"Physical Interconnect"];
-			}
-			if (connection) {
-				[dict setObject:AddPart([dict objectForKey:NSWorkspace_RBconnectiontype],connection) forKey:NSWorkspace_RBconnectiontype];
-			}
-			if (partition) {
-				[dict setObject:partition forKey:NSWorkspace_RBpartitionscheme];
-			}
-			if (image) {
-				[dict setObject:image forKey:NSWorkspace_RBimagefilepath];
-			}
-			NSString* value;
-                        if ((subdict = [props objectForKey:@"Device Characteristics"])) {
-                                if ((value = [subdict objectForKey:@"Product Name"])) {
-					result = AddPart(result,value);
-				}
-                                if ((value = [subdict objectForKey:@"Product Revision Level"])) {
-					result = AddPart(result,value);
-				}
-                                if ((value = [subdict objectForKey:@"Vendor Name"])) {
-					result = AddPart(result,value);
-				}
-			}
-                        if ((value = [props objectForKey:@"USB Serial Number"])) {
-				result = AddPart(result,value);
-			}
-                        if ((value = [props objectForKey:@"USB Vendor Name"])) {
-				result = AddPart(result,value);
-			}
-			NSString* cls = [(NSString*)IOObjectCopyClass(nextParent) autorelease];
-			if (![cls isEqualToString:@"IOPCIDevice"]) {
-
-// Uncomment the following line to have the device tree dumped to the console.
-//				NSLog(@"=================================> %@:%@\n",cls,props);
-
-				result = CheckParents(nextParent,result,dict);
-			}
-			IOObjectRelease(nextParent);
-		}
-    }
-    if (parentsIterator) {
-		IOObjectRelease(parentsIterator);
-    }
-	return result;
-}
-
-// This formats the (partially undocumented) AFPXMountInfo info into a string.
-
-/*
-static NSString* FormatAFPURL(AFPXVolMountInfoPtr mountInfo,NSString** devdesc) {
-	UInt8* work = ((UInt8*)mountInfo)+mountInfo->serverNameOffset;
-	if (devdesc) {
-		*devdesc = [[[NSString alloc] initWithBytes:&work[1] length:work[0] encoding:NSUTF8StringEncoding] autorelease];
-	}
-	work = ((UInt8*)mountInfo)+mountInfo->volNameOffset;
-	NSString* volname = [[[NSString alloc] initWithBytes:&work[1] length:work[0] encoding:NSUTF8StringEncoding] autorelease];
-	work = ((UInt8*)mountInfo)+mountInfo->alternateAddressOffset;
-	AFPAlternateAddress* afpa = (AFPAlternateAddress*)work;
-	AFPTagData* afpta = (AFPTagData*)(&afpa->fAddressList);
-	NSString* ip = nil;
-	NSString* dns = nil;
-	int i = afpa->fAddressCount;
-	while ((i-->0)) {
-		switch (afpta->fType) {
-			case kAFPTagTypeIP:
-				if (!ip) {
-					ip = [[[NSString alloc] initWithBytes:&afpta->fData[0] length:afpta->fLength-2 encoding:NSUTF8StringEncoding] autorelease];
-				}
-				break;
-			case kAFPTagTypeIPPort:
-				ip = [NSString stringWithFormat:@"%u.%u.%u.%u:%u",afpta->fData[0],afpta->fData[1],afpta->fData[2],afpta->fData[3],OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[4])];
-				break;
-			case kAFPTagTypeDNS:
-				dns = [[[NSString alloc] initWithBytes:&afpta->fData[0] length:afpta->fLength-2 encoding:NSUTF8StringEncoding] autorelease];
-				break;
-			case 0x07:
-				ip = [NSString stringWithFormat:@"[%x:%x:%x:%x:%x:%x:%x:%x]",OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[0]),
-					OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[2]),OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[4]),
-					OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[6]),OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[8]),
-					OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[10]),OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[12]),
-					OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[14])];
-				break;
-		}
-		afpta = (AFPTagData*)((char*)afpta+afpta->fLength);
-	}
-	return [NSString stringWithFormat:@"afp://%@/%@",dns?:(ip?:@""),volname];
-}
-*/
-
-@implementation NSWorkspace (NSWorkspace_RBAdditions)
-
-// Returns a NSDictionary with properties for the path. See details in the .h file.
-// This assumes that the length of path is less than PATH_MAX (currently 1024 characters).
-
-- (NSDictionary*)propertiesForPath:(NSString*)path {
-	const char* ccpath = (const char*)[path fileSystemRepresentation];
-	NSMutableDictionary* result = nil;
-	struct statfs fs;
-	if (!statfs(ccpath,&fs)) {
-		NSString* from = [NSString stringWithUTF8String:fs.f_mntfromname];
-		result = [NSMutableDictionary dictionaryWithObjectsAndKeys:
-			[NSString stringWithUTF8String:fs.f_fstypename],NSWorkspace_RBfstypename,
-			[NSString stringWithUTF8String:fs.f_mntonname],NSWorkspace_RBmntonname,
-			nil];
-		if (strncmp(fs.f_mntfromname,"/dev/",5)==0) {
-// For a local volume,get the IO registry tree and search it for further info.
-			mach_port_t masterPort = 0;
-			io_iterator_t mediaIterator = 0;
-			kern_return_t kernResult = IOMasterPort(bootstrap_port,&masterPort);
-			if (kernResult==KERN_SUCCESS) {
-				CFMutableDictionaryRef classesToMatch = IOBSDNameMatching(masterPort,0,&fs.f_mntfromname[5]);
-				if (classesToMatch) {
-					kernResult = IOServiceGetMatchingServices(masterPort,classesToMatch,&mediaIterator);
-					if ((kernResult==KERN_SUCCESS)&&mediaIterator) {
-						io_object_t firstMedia = 0;
-						while ((firstMedia = IOIteratorNext(mediaIterator))) {
-							NSString* stuff = CheckParents(firstMedia,nil,result);
-							if (stuff) {
-								[result setObject:stuff forKey:NSWorkspace_RBdeviceinfo];
-							}
-							IOObjectRelease(firstMedia);
-						}
-					}
-				}
-			}
-			if (mediaIterator) {
-				IOObjectRelease(mediaIterator);
-			}
-			if (masterPort) {
-				mach_port_deallocate(mach_task_self(),masterPort);
-			}
-		}
-		//Don't need this for disk images, gets around warnings for some deprecated functions
-
-		/* else {
-// For a network volume, get the volume reference number and use to get the server URL.
-			FSRef ref;
-			if (FSPathMakeRef((const UInt8*)ccpath,&ref,NULL)==noErr) {
-				FSCatalogInfo info;
-				if (FSGetCatalogInfo(&ref,kFSCatInfoVolume,&info,NULL,NULL,NULL)==noErr) {
-					ParamBlockRec pb;
-					UInt16 vmisize = 0;
-					VolumeMountInfoHeaderPtr mountInfo = NULL;
-					pb.ioParam.ioCompletion = NULL;
-					pb.ioParam.ioNamePtr = NULL;
-					pb.ioParam.ioVRefNum = info.volume;
-					pb.ioParam.ioBuffer = (Ptr)&vmisize;
-					pb.ioParam.ioReqCount = sizeof(vmisize);
-					if ((PBGetVolMountInfoSize(&pb)==noErr)&&vmisize) {
-						mountInfo = (VolumeMountInfoHeaderPtr)malloc(vmisize);
-						if (mountInfo) {
-							pb.ioParam.ioBuffer = (Ptr)mountInfo;
-							pb.ioParam.ioReqCount = vmisize;
-							if (PBGetVolMountInfo(&pb)==noErr) {
-								NSString* url = nil;
-								switch (mountInfo->media) {
-								case AppleShareMediaType:
-									url = FormatAFPURL((AFPXVolMountInfoPtr)mountInfo,&from);
-									break;
-								case 'http':
-									url = from;
-									break;
-								case 'crbm':
-								case 'nfs_':
-								case 'cifs':
-									url = [NSString stringWithUTF8String:(char*)mountInfo+sizeof(VolumeMountInfoHeader)+sizeof(OSType)];
-									break;
-								}
-								if (url) {
-									[result setObject:url forKey:NSWorkspace_RBserverURL];
-								}
-							}
-						}
-						free(mountInfo);
-					}
-				}
-			}
-		}*/
-		[result setObject:from forKey:NSWorkspace_RBmntfromname];
-	}
-	return result;
-}
-
-@end
--- a/QTfrontend/SparkleAutoUpdater.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2008 Remko Troncon
- */
-
-#ifndef SPARKLEAUTOUPDATER_H
-#define SPARKLEAUTOUPDATER_H
-
-#include <QString>
-
-#include "AutoUpdater.h"
-
-class SparkleAutoUpdater : public AutoUpdater
-{
-    public:
-        SparkleAutoUpdater();
-        ~SparkleAutoUpdater();
-
-        void checkForUpdates();
-        void checkForUpdatesNow();
-
-    private:
-        class Private;
-        Private* d;
-};
-
-#endif
--- a/QTfrontend/SparkleAutoUpdater.mm	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-// see original example here http://el-tramo.be/blog/mixing-cocoa-and-qt
-
-#include "SparkleAutoUpdater.h"
-
-#include <Cocoa/Cocoa.h>
-#include <Sparkle/Sparkle.h>
-
-class SparkleAutoUpdater::Private
-{
-    public:
-        SUUpdater* updater;
-};
-
-SparkleAutoUpdater::SparkleAutoUpdater()
-{
-    d = new SparkleAutoUpdater::Private();
-
-    d->updater = [SUUpdater sharedUpdater];
-    [d->updater retain];
-}
-
-SparkleAutoUpdater::~SparkleAutoUpdater()
-{
-    [d->updater release];
-    delete d;
-}
-
-void SparkleAutoUpdater::checkForUpdates()
-{
-    [d->updater checkForUpdatesInBackground];
-}
-
-void SparkleAutoUpdater::checkForUpdatesNow()
-{
-    [d->updater checkForUpdates:NULL];
-}
--- a/QTfrontend/binds.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/binds.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -20,17 +20,15 @@
 
 const BindAction cbinds[BINDS_NUMBER] =
 {
-    {"+up",       "up",         QT_TRANSLATE_NOOP("binds", "up"),              QT_TRANSLATE_NOOP("binds (categories)", "Basic controls"), QT_TRANSLATE_NOOP("binds (descriptions)", "Move your hogs and aim:")},
+    {"+up",       "up",         QT_TRANSLATE_NOOP("binds", "up"),              QT_TRANSLATE_NOOP("binds (categories)", "Movement"), QT_TRANSLATE_NOOP("binds (descriptions)", "Hedgehog movement")},
     {"+left",     "left",       QT_TRANSLATE_NOOP("binds", "left"),            NULL, NULL},
     {"+right",    "right",      QT_TRANSLATE_NOOP("binds", "right"),           NULL, NULL},
     {"+down",     "down",       QT_TRANSLATE_NOOP("binds", "down"),            NULL, NULL},
     {"+precise",  "left_shift", QT_TRANSLATE_NOOP("binds", "precise aim"),     NULL, NULL},
     {"ljump",     "return",     QT_TRANSLATE_NOOP("binds", "long jump"),       NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Traverse gaps and obstacles by jumping:")},
     {"hjump",     "backspace",  QT_TRANSLATE_NOOP("binds", "high jump"),       NULL, NULL},
-    {"+attack",   "space",      QT_TRANSLATE_NOOP("binds", "attack"),          NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Fire your selected weapon or trigger an utility item:")},
-    {"put",       "mousel",     QT_TRANSLATE_NOOP("binds", "put"),             NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Pick a weapon or a target location under the cursor:")},
     {"switch",    "tab",        QT_TRANSLATE_NOOP("binds", "switch"),          NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Switch your currently active hog (if possible):")},
-    {"ammomenu",  "mouser",     QT_TRANSLATE_NOOP("binds", "ammo menu"),       QT_TRANSLATE_NOOP("binds (categories)", "Weapon controls"), QT_TRANSLATE_NOOP("binds (descriptions)", "Pick a weapon or utility item:")},
+    {"ammomenu",  "mouser",     QT_TRANSLATE_NOOP("binds", "ammo menu"),       QT_TRANSLATE_NOOP("binds (categories)", "Weapons"), QT_TRANSLATE_NOOP("binds (descriptions)", "Pick a weapon or utility item:")},
     {"slot 1",    "f1",         QT_TRANSLATE_NOOP("binds", "slot 1"),          NULL, NULL},
     {"slot 2",    "f2",         QT_TRANSLATE_NOOP("binds", "slot 2"),          NULL, NULL},
     {"slot 3",    "f3",         QT_TRANSLATE_NOOP("binds", "slot 3"),          NULL, NULL},
@@ -46,7 +44,9 @@
     {"timer 3",   "3",          QT_TRANSLATE_NOOP("binds", "timer 3 sec"),     NULL, NULL},
     {"timer 4",   "4",          QT_TRANSLATE_NOOP("binds", "timer 4 sec"),     NULL, NULL},
     {"timer 5",   "5",          QT_TRANSLATE_NOOP("binds", "timer 5 sec"),     NULL, NULL},
-    {"findhh",    "h",          QT_TRANSLATE_NOOP("binds", "find hedgehog"),   QT_TRANSLATE_NOOP("binds (categories)", "Camera and cursor controls"), QT_TRANSLATE_NOOP("binds (descriptions)", "Move the camera to the active hog:")},
+    {"+attack",   "space",      QT_TRANSLATE_NOOP("binds", "attack"),          NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Fire your selected weapon or trigger an utility item:")},
+    {"put",       "mousel",     QT_TRANSLATE_NOOP("binds", "put"),             NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Pick a weapon or a target location under the cursor:")},
+    {"findhh",    "h",          QT_TRANSLATE_NOOP("binds", "find hedgehog"),   QT_TRANSLATE_NOOP("binds (categories)", "Camera"), QT_TRANSLATE_NOOP("binds (descriptions)", "Move the camera to the active hog:")},
     {"+cur_u",    "[8]",        QT_TRANSLATE_NOOP("binds", "up"),              NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Move the cursor or camera without using the mouse:")},
     {"+cur_l",    "[4]",        QT_TRANSLATE_NOOP("binds", "left"),            NULL, NULL},
     {"+cur_r",    "[6]",        QT_TRANSLATE_NOOP("binds", "right"),           NULL, NULL},
@@ -55,7 +55,7 @@
     {"zoomin",    "wheelup",    QT_TRANSLATE_NOOP("binds", "zoom in"),         NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Modify the camera's zoom level:")},
     {"zoomout",   "wheeldown",  QT_TRANSLATE_NOOP("binds", "zoom out"),        NULL, NULL},
     {"zoomreset", "mousem",     QT_TRANSLATE_NOOP("binds", "reset zoom"),      NULL, NULL},
-    {"chat",      "t",          QT_TRANSLATE_NOOP("binds", "chat"),            QT_TRANSLATE_NOOP("binds (categories)", "Other"), QT_TRANSLATE_NOOP("binds (descriptions)", "Talk to your team or all participants:")},
+    {"chat",      "t",          QT_TRANSLATE_NOOP("binds", "chat"),            QT_TRANSLATE_NOOP("binds (categories)", "Miscellaneous"), QT_TRANSLATE_NOOP("binds (descriptions)", "Talk to your team or all participants:")},
     {"history",   "`",          QT_TRANSLATE_NOOP("binds", "chat history"),    NULL, NULL},
     {"pause",     "p",          QT_TRANSLATE_NOOP("binds", "pause"),           NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Pause, continue or leave your game:")},
     {"quit",      "escape",     QT_TRANSLATE_NOOP("binds", "quit"),            NULL, NULL},
@@ -65,7 +65,7 @@
     {"mute",      "8",          QT_TRANSLATE_NOOP("binds", "mute audio"),      NULL, NULL},
     {"fullscr",   "f12",        QT_TRANSLATE_NOOP("binds", "change mode"),     NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Toggle fullscreen mode:")},
     {"capture",   "c",          QT_TRANSLATE_NOOP("binds", "capture"),         NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Take a screenshot:")},
-    {"rotmask",   "delete",     QT_TRANSLATE_NOOP("binds", "hedgehogs\ninfo"), NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Toggle labels above hedgehogs:")},
+    {"rotmask",   "delete",     QT_TRANSLATE_NOOP("binds", "hedgehog info"), NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Toggle labels above hedgehogs:")},
 #ifdef VIDEOREC
     {"record",    "r",          QT_TRANSLATE_NOOP("binds", "record"),          NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Record video:")}
 #endif
--- a/QTfrontend/campaign.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/campaign.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -59,7 +59,7 @@
     QSettings campfile("physfs://Missions/Campaign/" + campaign + "/campaign.ini", QSettings::IniFormat, 0);
     campfile.setIniCodec("UTF-8");
     unsigned int mNum = campfile.value("MissionNum", 0).toInt();
-    
+
     QStringList missionList;
     for (unsigned int i = 0; i < mNum; i++)
     {
@@ -67,7 +67,7 @@
     }
     return missionList;
 }
-  
+
 unsigned int getCampProgress(QString & teamName, QString & campName)
 {
     QSettings teamfile(cfgdir->absolutePath() + "/Teams/" + teamName + ".hwt", QSettings::IniFormat, 0);
@@ -81,10 +81,3 @@
     campfile.setIniCodec("UTF-8");
     return campfile.value(QString("Mission %1/Script").arg(mNum)).toString();
 }
-
-
-    
-
-
-
-    
--- a/QTfrontend/game.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/game.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -22,13 +22,17 @@
 #include <QColor>
 #include <QStringListModel>
 #include <QTextStream>
+#include <utility>
 
+#include "hwform.h"
+#include "ui/page/pageoptions.h"
 #include "game.h"
 #include "hwconsts.h"
 #include "gameuiconfig.h"
 #include "gamecfgwidget.h"
 #include "teamselect.h"
 #include "proto.h"
+#include "binds.h"
 #include "campaign.h"
 
 #include <QTextStream>
@@ -73,6 +77,18 @@
     SetGameState(gsStopped);
 }
 
+void HWGame::addKeyBindings(QByteArray * buf)
+{
+    for(int i = 0; i < BINDS_NUMBER; i++)
+    {
+        QString value = config->value(QString("Binds/%1").arg(cbinds[i].action), cbinds[i].strbind).toString();
+        if (value.isEmpty() || value == "default") continue;
+
+        QString bind = QString("edbind " + value + " " + cbinds[i].action);
+        HWProto::addStringToBuffer(*buf, bind);
+    }
+}
+
 void HWGame::commonConfig()
 {
     QByteArray buf;
@@ -90,6 +106,8 @@
     }
     HWProto::addStringToBuffer(buf, gt);
 
+    addKeyBindings(&buf);
+
     buf += gamecfg->getFullConfig();
 
     if (m_pTeamSelWidget)
@@ -102,10 +120,11 @@
             HWProto::addStringToBuffer(buf, QString("eammreinf %1").arg(ammostr.mid(3 * cAmmoNumber, cAmmoNumber)));
             if(gamecfg->schemeData(15).toBool() || !gamecfg->schemeData(21).toBool()) HWProto::addStringToBuffer(buf, QString("eammstore"));
             HWProto::addStringListToBuffer(buf,
-                                           team.teamGameConfig(gamecfg->getInitHealth()));
+                                           team.teamGameConfig(gamecfg->getInitHealth(), config));
             ;
         }
     }
+
     RawSendIPC(buf);
 }
 
@@ -119,6 +138,8 @@
     QByteArray teamscfg;
     ThemeModel * themeModel = DataManager::instance().themeModel();
 
+    addKeyBindings(&teamscfg);
+
     HWProto::addStringToBuffer(teamscfg, "TL");
     HWProto::addStringToBuffer(teamscfg, QString("etheme %1")
                                .arg((themeModel->rowCount() > 0) ? themeModel->index(rand() % themeModel->rowCount()).data().toString() : "steel"));
@@ -132,7 +153,7 @@
     team1.setNumHedgehogs(4);
     HWNamegen::teamRandomNames(team1,true);
     HWProto::addStringListToBuffer(teamscfg,
-                                   team1.teamGameConfig(100));
+                                   team1.teamGameConfig(100, config));
 
     HWTeam team2;
     team2.setDifficulty(4);
@@ -142,7 +163,7 @@
         HWNamegen::teamRandomNames(team2,true);
     while(!team2.name().compare(team1.name()) || !team2.hedgehog(0).Hat.compare(team1.hedgehog(0).Hat));
     HWProto::addStringListToBuffer(teamscfg,
-                                   team2.teamGameConfig(100));
+                                   team2.teamGameConfig(100, config));
 
     HWProto::addStringToBuffer(teamscfg, QString("eammloadt %1").arg(cDefaultAmmoStore->mid(0, cAmmoNumber)));
     HWProto::addStringToBuffer(teamscfg, QString("eammprob %1").arg(cDefaultAmmoStore->mid(cAmmoNumber, cAmmoNumber)));
@@ -150,6 +171,7 @@
     HWProto::addStringToBuffer(teamscfg, QString("eammreinf %1").arg(cDefaultAmmoStore->mid(3 * cAmmoNumber, cAmmoNumber)));
     HWProto::addStringToBuffer(teamscfg, QString("eammstore"));
     HWProto::addStringToBuffer(teamscfg, QString("eammstore"));
+
     RawSendIPC(teamscfg);
 }
 
@@ -160,6 +182,8 @@
     HWProto::addStringToBuffer(traincfg, "eseed " + QUuid::createUuid().toString());
     HWProto::addStringToBuffer(traincfg, "escript " + training);
 
+    addKeyBindings(&traincfg);
+
     RawSendIPC(traincfg);
 }
 
@@ -171,6 +195,8 @@
 
     HWProto::addStringToBuffer(campaigncfg, "escript " + campaignScript);
 
+    addKeyBindings(&campaigncfg);
+
     RawSendIPC(campaigncfg);
 }
 
@@ -274,6 +300,16 @@
                 writeCampaignVar(msg.right(msg.size() - 3));
             break;
         }
+        case 'W':
+        {
+            // fetch new window resolution via IPC and save it in the settings
+            int size = msg.size();
+            QString newResolution = QString().append(msg.mid(2)).left(size - 4);
+            QStringList wh = newResolution.split('x');
+            config->Form->ui.pageOptions->windowWidthEdit->setText(wh[0]);
+            config->Form->ui.pageOptions->windowHeightEdit->setText(wh[1]);
+            break;
+        }
         default:
         {
             if (gameType == gtNet && !netSuspend)
@@ -313,7 +349,7 @@
 QStringList HWGame::getArguments()
 {
     QStringList arguments;
-    QRect resolution = config->vid_Resolution();
+    std::pair<QRect, QRect> resolutions = config->vid_ResolutionPair();
     QString nick = config->netNick().toUtf8().toBase64();
 
     arguments << "--internal"; //Must be passed as first argument
@@ -329,10 +365,14 @@
     arguments << QString::number(config->timerInterval());
     arguments << "--volume";
     arguments << QString::number(config->volume());
+    arguments << "--fullscreen-width";
+    arguments << QString::number(resolutions.first.width());
+    arguments << "--fullscreen-height";
+    arguments << QString::number(resolutions.first.height());
     arguments << "--width";
-    arguments << QString::number(resolution.width());
+    arguments << QString::number(resolutions.second.width());
     arguments << "--height";
-    arguments << QString::number(resolution.height());
+    arguments << QString::number(resolutions.second.height());
     arguments << "--raw-quality";
     arguments << QString::number(config->translateQuality());
     arguments << "--stereo";
--- a/QTfrontend/game.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/game.h	Sun Jan 27 00:28:57 2013 +0100
@@ -103,6 +103,7 @@
         TeamSelWidget* m_pTeamSelWidget;
         GameType gameType;
 
+        void addKeyBindings(QByteArray * buf);
         void commonConfig();
         void SendConfig();
         void SendQuickConfig();
--- a/QTfrontend/gameuiconfig.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/gameuiconfig.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -24,6 +24,7 @@
 #include <QStandardItemModel>
 #include <QNetworkProxy>
 #include <QNetworkProxyFactory>
+#include <utility>
 
 #include "gameuiconfig.h"
 #include "hwform.h"
@@ -34,6 +35,7 @@
 #include "fpsedit.h"
 #include "HWApplication.h"
 #include "DataManager.h"
+#include "SDL.h"
 
 
 const QNetworkProxy::ProxyType proxyTypesMap[] = {
@@ -52,6 +54,13 @@
 
     connect(Form->ui.pageOptions->CBFrontendMusic, SIGNAL(toggled(bool)), Form, SLOT(Music(bool)));
 
+    for(int i = 0; i < BINDS_NUMBER; i++)
+    {
+        m_binds.append(BindAction());
+        m_binds[i].action = cbinds[i].action;
+        m_binds[i].strbind = cbinds[i].strbind;
+    }
+
     //Form->resize(value("frontend/width", 640).toUInt(), value("frontend/height", 450).toUInt());
     resizeToConfigValues();
 
@@ -65,7 +74,7 @@
 {
     Form->ui.pageOptions->WeaponTooltip->setChecked(value("misc/weaponTooltips", true).toBool());
 
-    int t = Form->ui.pageOptions->CBResolution->findText(value("video/resolution").toString());
+    int t = Form->ui.pageOptions->CBResolution->findText(value("video/fullscreenResolution").toString());
     if (t < 0)
     {
         if (Form->ui.pageOptions->CBResolution->count() > 1)
@@ -74,6 +83,20 @@
             Form->ui.pageOptions->CBResolution->setCurrentIndex(0);
     }
     else Form->ui.pageOptions->CBResolution->setCurrentIndex(t);
+
+    // Default the windowed resolution to 5/6 of the screen size
+    int screenWidth = SDL_GetVideoInfo()->current_w * 5 / 6;
+    int screenHeight = SDL_GetVideoInfo()->current_h * 5 / 6;
+    QString widthStr; widthStr.setNum(screenWidth);
+    QString heightStr; heightStr.setNum(screenHeight);
+    QString wWidth = value("video/windowedWidth", widthStr).toString();
+    QString wHeight = value("video/windowedHeight", heightStr).toString();
+    // If left blank reset the resolution to the default
+    wWidth = (wWidth == "" ? widthStr : wWidth);
+    wHeight = (wHeight == "" ? heightStr : wHeight);
+    Form->ui.pageOptions->windowWidthEdit->setText(wWidth);
+    Form->ui.pageOptions->windowHeightEdit->setText(wHeight);
+
     Form->ui.pageOptions->CBResolution->setCurrentIndex((t < 0) ? 1 : t);
     Form->ui.pageOptions->CBFullscreen->setChecked(value("video/fullscreen", false).toBool());
     bool ffscr=value("frontend/fullscreen", false).toBool();
@@ -86,7 +109,7 @@
     Form->ui.pageOptions->CBFrontendSound->setChecked(value("frontend/sound", true).toBool());
     Form->ui.pageOptions->CBMusic->setChecked(value("audio/music", true).toBool());
     Form->ui.pageOptions->CBFrontendMusic->setChecked(value("frontend/music", true).toBool());
-    Form->ui.pageOptions->volumeBox->setValue(value("audio/volume", 100).toUInt());
+    Form->ui.pageOptions->SLVolume->setValue(value("audio/volume", 100).toUInt());
 
     QString netNick = value("net/nick", "").toString();
     Form->ui.pageOptions->editNetNick->setText(netNick);
@@ -133,7 +156,15 @@
     { // load colors
         QStandardItemModel * model = DataManager::instance().colorsModel();
         for(int i = model->rowCount() - 1; i >= 0; --i)
-            model->item(i)->setData(QColor(value(QString("colors/color%1").arg(i), model->item(i)->data().value<QColor>()).value<QColor>()));
+            model->item(i)->setData(value(QString("colors/color%1").arg(i), model->item(i)->data()));
+    }
+
+    { // load binds
+        for(int i = 0; i < BINDS_NUMBER; i++)
+        {
+            m_binds[i].strbind = value(QString("Binds/%1").arg(m_binds[i].action), cbinds[i].strbind).toString();
+            if (m_binds[i].strbind.isEmpty() || m_binds[i].strbind == "default") m_binds[i].strbind = cbinds[i].strbind;
+        }
     }
 }
 
@@ -199,7 +230,9 @@
 
 void GameUIConfig::SaveOptions()
 {
-    setValue("video/resolution", Form->ui.pageOptions->CBResolution->currentText());
+    setValue("video/fullscreenResolution", Form->ui.pageOptions->CBResolution->currentText());
+    setValue("video/windowedWidth", Form->ui.pageOptions->windowWidthEdit->text());
+    setValue("video/windowedHeight", Form->ui.pageOptions->windowHeightEdit->text());
     setValue("video/fullscreen", vid_Fullscreen());
 
     setValue("video/quality", Form->ui.pageOptions->SLQuality->value());
@@ -226,11 +259,11 @@
     setValue("frontend/sound", isFrontendSoundEnabled());
     setValue("audio/music", isMusicEnabled());
     setValue("frontend/music", isFrontendMusicEnabled());
-    setValue("audio/volume", Form->ui.pageOptions->volumeBox->value());
+    setValue("audio/volume", Form->ui.pageOptions->SLVolume->value());
 
     setValue("net/nick", netNick());
     if (netPasswordIsValid() && Form->ui.pageOptions->CBSavePassword->isChecked()) {
-    setPasswordHash(netPasswordHash());
+        setPasswordHash(netPasswordHash());
     }
     else if(!Form->ui.pageOptions->CBSavePassword->isChecked()) {
         clearPasswordHash();
@@ -319,16 +352,28 @@
     return Form->ui.pageOptions->CBLanguage->itemData(Form->ui.pageOptions->CBLanguage->currentIndex()).toString();
 }
 
-QRect GameUIConfig::vid_Resolution()
-{
-    QRect result(0, 0, 640, 480);
+std::pair<QRect, QRect> GameUIConfig::vid_ResolutionPair() {
+    // returns a pair of both the fullscreen and the windowed resolution
+    QRect full(0, 0, 640, 480);
+    QRect windowed(0, 0, 640, 480);
     QStringList wh = Form->ui.pageOptions->CBResolution->currentText().split('x');
     if (wh.size() == 2)
     {
-        result.setWidth(wh[0].toInt());
-        result.setHeight(wh[1].toInt());
+        full.setWidth(wh[0].toInt());
+        full.setHeight(wh[1].toInt());
     }
-    return result;
+    windowed.setWidth(Form->ui.pageOptions->windowWidthEdit->text().toInt());
+    windowed.setHeight(Form->ui.pageOptions->windowHeightEdit->text().toInt());
+    return std::make_pair(full, windowed);
+}
+
+QRect GameUIConfig::vid_Resolution()
+{
+    std::pair<QRect, QRect> result = vid_ResolutionPair();
+    if(Form->ui.pageOptions->CBFullscreen->isChecked())
+        return result.first;
+    else
+        return result.second;
 }
 
 bool GameUIConfig::vid_Fullscreen()
@@ -536,7 +581,7 @@
 
 quint8 GameUIConfig::volume()
 {
-    return Form->ui.pageOptions->volumeBox->value() * 128 / 100;
+    return Form->ui.pageOptions->SLVolume->value() * 128 / 100;
 }
 
 QString GameUIConfig::AVFormat()
@@ -581,3 +626,16 @@
 {
     return Form->ui.pageOptions->checkRecordAudio->isChecked();
 }
+
+// Gets a bind for a bindID
+QString GameUIConfig::bind(int bindID)
+{
+    return m_binds[bindID].strbind;
+}
+
+// Sets a bind for a bindID and saves it
+void GameUIConfig::setBind(int bindID, QString & strbind)
+{
+    m_binds[bindID].strbind = strbind;
+    setValue(QString("Binds/%1").arg(m_binds[bindID].action), strbind);
+}
--- a/QTfrontend/gameuiconfig.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/gameuiconfig.h	Sun Jan 27 00:28:57 2013 +0100
@@ -23,6 +23,9 @@
 #include <QStringList>
 #include <QRect>
 #include <QEvent>
+#include <QList>
+#include <utility>
+#include "binds.h"
 
 class HWForm;
 class QSettings;
@@ -36,6 +39,7 @@
         GameUIConfig(HWForm * FormWidgets, const QString & fileName);
         QStringList GetTeamsList();
         QRect vid_Resolution();
+        std::pair<QRect, QRect> vid_ResolutionPair();
         bool vid_Fullscreen();
         quint32 translateQuality();
         bool isSoundEnabled();
@@ -64,6 +68,8 @@
         void resizeToConfigValues();
         quint32 stereoMode() const;
         void setValue(const QString & key, const QVariant & value);
+        QString bind(int bindID);
+        void setBind(int bindID, QString & strbind);
 
         QString AVFormat();
         QString videoCodec();
@@ -91,7 +97,8 @@
     private:
         bool netPasswordIsValid();
         bool eventFilter(QObject *object, QEvent *event);
-    QString temphash;
+        QString temphash;
+        QList<BindAction> m_binds;
 };
 
 #endif
--- a/QTfrontend/hedgewars.qrc	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/hedgewars.qrc	Sun Jan 27 00:28:57 2013 +0100
@@ -45,6 +45,8 @@
         <file>res/LocalPlay.png</file>
         <file>res/NetworkPlay.png</file>
         <file>res/NetworkPlayDisabled.png</file>
+        <file>res/audio.png</file>
+        <file>res/camera.png</file>
         <file>res/Settings.png</file>
         <file>res/dropdown.png</file>
         <file>res/new.png</file>
@@ -103,6 +105,7 @@
         <file>res/iconRope.png</file>
         <file>res/dice.png</file>
         <file>res/Star.png</file>
+        <file>res/inverse-corner-bl.png</file>
         <file>res/Flake.png</file>
         <file>res/Egg.png</file>
         <file>res/Confetti.png</file>
@@ -130,6 +133,7 @@
         <file>res/StatsMostSelfDamage.png</file>
         <file>res/StatsSelfKilled.png</file>
         <file>res/StatsSkipped.png</file>
+        <file>res/Start.png</file>
         <file>res/mapRandom.png</file>
         <file>res/mapMaze.png</file>
         <file>res/mapMissing.png</file>
@@ -146,6 +150,8 @@
         <file>res/chat/serveradmin_gray.png</file>
         <file>res/chat/lamp_off.png</file>
         <file>res/chat/ingame.png</file>
-	<file>res/html/about.html</file>
+        <file>res/splash.png</file>
+        <file>res/html/about.html</file>
+        <file>res/xml/tips.xml</file>
     </qresource>
 </RCC>
--- a/QTfrontend/hwform.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/hwform.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -21,6 +21,7 @@
 #include <QTextStream>
 #include <QMessageBox>
 #include <QPushButton>
+#include <QSpinBox>
 #include <QListWidget>
 #include <QStackedLayout>
 #include <QLineEdit>
@@ -72,7 +73,6 @@
 #include "pagemultiplayer.h"
 #include "pagenet.h"
 #include "pagemain.h"
-#include "pagefeedback.h"
 #include "pagenetserver.h"
 #include "pagedrawmap.h"
 #include "pagegamestats.h"
@@ -95,7 +95,9 @@
 #include "roomslistmodel.h"
 #include "recorder.h"
 #include "playerslistmodel.h"
+#include "feedbackdialog.h"
 
+#include "MessageDialog.h"
 #include "DataManager.h"
 #include "AutoUpdater.h"
 
@@ -155,9 +157,9 @@
     ui.pageRoomsList->setSettings(config);
     ui.pageNetGame->chatWidget->setSettings(config);
     ui.pageRoomsList->chatWidget->setSettings(config);
+    ui.pageOptions->setConfig(config);
 #ifdef VIDEOREC
     ui.pageVideos->init(config);
-    ui.pageOptions->setConfig(config);
 #endif
 
 #ifdef __APPLE__
@@ -213,8 +215,7 @@
     connect(ui.pageMain->BtnSetup, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
     pageSwitchMapper->setMapping(ui.pageMain->BtnSetup, ID_PAGE_SETUP);
 
-    connect(ui.pageMain->BtnFeedback, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
-    pageSwitchMapper->setMapping(ui.pageMain->BtnFeedback, ID_PAGE_FEEDBACK);
+    connect(ui.pageMain->BtnFeedback, SIGNAL(clicked()), this, SLOT(showFeedbackDialog()));
 
     connect(ui.pageMain->BtnInfo, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
     pageSwitchMapper->setMapping(ui.pageMain->BtnInfo, ID_PAGE_INFO);
@@ -231,8 +232,6 @@
     //connect(ui.pageMain->BtnExit, SIGNAL(pressed()), this, SLOT(btnExitPressed()));
     //connect(ui.pageMain->BtnExit, SIGNAL(clicked()), this, SLOT(btnExitClicked()));
 
-    connect(ui.pageFeedback->BtnSend, SIGNAL(clicked()), this, SLOT(SendFeedback()));
-
     connect(ui.pageEditTeam, SIGNAL(goBack()), this, SLOT(AfterTeamEdit()));
 
     connect(ui.pageMultiplayer->BtnStartMPGame, SIGNAL(clicked()), this, SLOT(StartMPGame()));
@@ -351,6 +350,7 @@
     }
 
     PagesStack.push(ID_PAGE_MAIN);
+    ((AbstractPage*)ui.Pages->widget(ID_PAGE_MAIN))->triggerPageEnter();
     GoBack();
 }
 
@@ -553,71 +553,51 @@
     GoToPage(ID_PAGE_VIDEOS);
 }
 
+//TODO: maybe find a better place for this?
+QString HWForm::stringifyPageId(quint32 id)
+{
+    QString pageName;
+    switch (id)
+    {
+      case ID_PAGE_SETUP_TEAM :   pageName = "PAGE_SETUP_TEAM"; break;
+      case ID_PAGE_SETUP :        pageName = "PAGE_SETUP"; break;
+      case ID_PAGE_MULTIPLAYER :  pageName = "PAGE_MULTIPLAYER"; break;
+      case ID_PAGE_DEMOS :        pageName = "PAGE_DEMOS"; break;
+      case ID_PAGE_NET :          pageName = "PAGE_NET"; break;
+      case ID_PAGE_NETGAME :      pageName = "PAGE_NETGAME"; break;
+      case ID_PAGE_INFO :         pageName = "PAGE_INFO"; break;
+      case ID_PAGE_MAIN :         pageName = "PAGE_MAIN"; break;
+      case ID_PAGE_GAMESTATS :    pageName = "PAGE_GAMESTATS"; break;
+      case ID_PAGE_SINGLEPLAYER : pageName = "PAGE_SINGLEPLAYER"; break;
+      case ID_PAGE_TRAINING :     pageName = "PAGE_TRAINING"; break;
+      case ID_PAGE_SELECTWEAPON : pageName = "PAGE_SELECTWEAPON"; break;
+      case ID_PAGE_NETSERVER :    pageName = "PAGE_NETSERVER"; break;
+      case ID_PAGE_INGAME :       pageName = "PAGE_INGAME"; break;
+      case ID_PAGE_ROOMSLIST :    pageName = "PAGE_ROOMSLIST"; break;
+      case ID_PAGE_CONNECTING :   pageName = "PAGE_CONNECTING"; break;
+      case ID_PAGE_SCHEME :       pageName = "PAGE_SCHEME"; break;
+      case ID_PAGE_ADMIN :        pageName = "PAGE_ADMIN"; break;
+      case ID_PAGE_CAMPAIGN :     pageName = "PAGE_CAMPAIGN"; break;
+      case ID_PAGE_DRAWMAP :      pageName = "PAGE_DRAWMAP"; break;
+      case ID_PAGE_DATADOWNLOAD : pageName = "PAGE_DATADOWNLOAD"; break;
+      case ID_PAGE_VIDEOS :       pageName = "PAGE_VIDEOS"; break;
+      case MAX_PAGE :             pageName = "MAX_PAGE"; break;
+      default :                   pageName = "UNKNOWN_PAGE"; break;
+    }
+    return pageName;
+}
+
 void HWForm::OnPageShown(quint8 id, quint8 lastid)
 {
 #ifdef USE_XFIRE
     updateXfire();
 #endif
 
-    QString openPrefix = "Debug:   (PAGE_OPENED: ";
-    QString openSuffix = ")";
-    QString closePrefix = "Debug:   (PAGE_LEFT: ";
-    QString closeSuffix = ")";
+    qDebug("Leaving %s, entering %s", qPrintable(stringifyPageId(lastid)), qPrintable(stringifyPageId(id)));
 
-    switch (lastid) { //Print the id of the page we're leaving
-      case ID_PAGE_SETUP_TEAM : qDebug("%sPAGE_SETUP_TEAM%s", qPrintable(closePrefix), qPrintable(closeSuffix));    break;
-      case ID_PAGE_SETUP :      qDebug("%sPAGE_SETUP%s", qPrintable(closePrefix), qPrintable(closeSuffix));     break;
-      case ID_PAGE_MULTIPLAYER :    qDebug("%sPAGE_MULTIPLAYER%s", qPrintable(closePrefix), qPrintable(closeSuffix));   break;
-      case ID_PAGE_DEMOS :      qDebug("%sPAGE_DEMOS%s", qPrintable(closePrefix), qPrintable(closeSuffix));     break;
-      case ID_PAGE_NET :        qDebug("%sPAGE_NET%s", qPrintable(closePrefix), qPrintable(closeSuffix));       break;
-      case ID_PAGE_NETGAME :        qDebug("%sPAGE_NETGAME%s", qPrintable(closePrefix), qPrintable(closeSuffix));       break;
-      case ID_PAGE_INFO :       qDebug("%sPAGE_INFO%s", qPrintable(closePrefix), qPrintable(closeSuffix));      break;
-      case ID_PAGE_MAIN :       qDebug("%sPAGE_MAIN%s", qPrintable(closePrefix), qPrintable(closeSuffix));      break;
-      case ID_PAGE_GAMESTATS :      qDebug("%sPAGE_GAMESTATS%s", qPrintable(closePrefix), qPrintable(closeSuffix));     break;
-      case ID_PAGE_SINGLEPLAYER :   qDebug("%sPAGE_SINGLEPLAYER%s", qPrintable(closePrefix), qPrintable(closeSuffix));  break;
-      case ID_PAGE_TRAINING :       qDebug("%sPAGE_TRAINING%s", qPrintable(closePrefix), qPrintable(closeSuffix));      break;
-      case ID_PAGE_SELECTWEAPON :   qDebug("%sPAGE_SELECTWEAPON%s", qPrintable(closePrefix), qPrintable(closeSuffix));  break;
-      case ID_PAGE_NETSERVER :      qDebug("%sPAGE_NETSERVER%s", qPrintable(closePrefix), qPrintable(closeSuffix));     break;
-      case ID_PAGE_INGAME :     qDebug("%sPAGE_INGAME%s", qPrintable(closePrefix), qPrintable(closeSuffix));        break;
-      case ID_PAGE_ROOMSLIST :      qDebug("%sPAGE_ROOMSLIST%s", qPrintable(closePrefix), qPrintable(closeSuffix));     break;
-      case ID_PAGE_CONNECTING : qDebug("%sPAGE_CONNECTING%s", qPrintable(closePrefix), qPrintable(closeSuffix));    break;
-      case ID_PAGE_SCHEME :     qDebug("%sPAGE_SCHEME%s", qPrintable(closePrefix), qPrintable(closeSuffix));        break;
-      case ID_PAGE_ADMIN :      qDebug("%sPAGE_ADMIN%s", qPrintable(closePrefix), qPrintable(closeSuffix));     break;
-      case ID_PAGE_CAMPAIGN :       qDebug("%sPAGE_CAMPAIGN%s", qPrintable(closePrefix), qPrintable(closeSuffix));      break;
-      case ID_PAGE_DRAWMAP :        qDebug("%sPAGE_DRAWMAP%s", qPrintable(closePrefix), qPrintable(closeSuffix));       break;
-      case ID_PAGE_DATADOWNLOAD :   qDebug("%sPAGE_DATADOWNLOAD%s", qPrintable(closePrefix), qPrintable(closeSuffix));  break;
-      case ID_PAGE_FEEDBACK :       qDebug("%sPAGE_FEEDBACK%s", qPrintable(closePrefix), qPrintable(closeSuffix));      break;
-      case ID_PAGE_VIDEOS :     qDebug("%sPAGE_VIDEOS%s", qPrintable(closePrefix), qPrintable(closeSuffix));        break;
-      case MAX_PAGE :           qDebug("%sMAX_PAGE%s", qPrintable(closePrefix), qPrintable(closeSuffix));       break;
-      default :         qDebug("%sUNKNOWN PAGE%s", qPrintable(closePrefix), qPrintable(closeSuffix));       break;
-    } //end switch(lastid)
-    switch (id) { //Print the id of the opened page
-      case ID_PAGE_SETUP_TEAM : qDebug("%sPAGE_SETUP_TEAM%s", qPrintable(openPrefix), qPrintable(openSuffix));      break;
-      case ID_PAGE_SETUP :      qDebug("%sPAGE_SETUP%s", qPrintable(openPrefix), qPrintable(openSuffix));       break;
-      case ID_PAGE_MULTIPLAYER :    qDebug("%sPAGE_MULTIPLAYER%s", qPrintable(openPrefix), qPrintable(openSuffix));     break;
-      case ID_PAGE_DEMOS :      qDebug("%sPAGE_DEMOS%s", qPrintable(openPrefix), qPrintable(openSuffix));       break;
-      case ID_PAGE_NET :        qDebug("%sPAGE_NET%s", qPrintable(openPrefix), qPrintable(openSuffix));         break;
-      case ID_PAGE_NETGAME :        qDebug("%sPAGE_NETGAME%s", qPrintable(openPrefix), qPrintable(openSuffix));     break;
-      case ID_PAGE_INFO :       qDebug("%sPAGE_INFO%s", qPrintable(openPrefix), qPrintable(openSuffix));        break;
-      case ID_PAGE_MAIN :       qDebug("%sPAGE_MAIN%s", qPrintable(openPrefix), qPrintable(openSuffix));        break;
-      case ID_PAGE_GAMESTATS :      qDebug("%sPAGE_GAMESTATS%s", qPrintable(openPrefix), qPrintable(openSuffix));       break;
-      case ID_PAGE_SINGLEPLAYER :   qDebug("%sPAGE_SINGLEPLAYER%s", qPrintable(openPrefix), qPrintable(openSuffix));    break;
-      case ID_PAGE_TRAINING :       qDebug("%sPAGE_TRAINING%s", qPrintable(openPrefix), qPrintable(openSuffix));        break;
-      case ID_PAGE_SELECTWEAPON :   qDebug("%sPAGE_SELECTWEAPON%s", qPrintable(openPrefix), qPrintable(openSuffix));    break;
-      case ID_PAGE_NETSERVER :      qDebug("%sPAGE_NETSERVER%s", qPrintable(openPrefix), qPrintable(openSuffix));       break;
-      case ID_PAGE_INGAME :     qDebug("%sPAGE_INGAME%s", qPrintable(openPrefix), qPrintable(openSuffix));      break;
-      case ID_PAGE_ROOMSLIST :      qDebug("%sPAGE_ROOMSLIST%s", qPrintable(openPrefix), qPrintable(openSuffix));       break;
-      case ID_PAGE_CONNECTING : qDebug("%sPAGE_CONNECTING%s", qPrintable(openPrefix), qPrintable(openSuffix));      break;
-      case ID_PAGE_SCHEME :     qDebug("%sPAGE_SCHEME%s", qPrintable(openPrefix), qPrintable(openSuffix));      break;
-      case ID_PAGE_ADMIN :      qDebug("%sPAGE_ADMIN%s", qPrintable(openPrefix), qPrintable(openSuffix));       break;
-      case ID_PAGE_CAMPAIGN :       qDebug("%sPAGE_CAMPAIGN%s", qPrintable(openPrefix), qPrintable(openSuffix));        break;
-      case ID_PAGE_DRAWMAP :        qDebug("%sPAGE_DRAWMAP%s", qPrintable(openPrefix), qPrintable(openSuffix));     break;
-      case ID_PAGE_DATADOWNLOAD :   qDebug("%sPAGE_DATADOWNLOAD%s", qPrintable(openPrefix), qPrintable(openSuffix));    break;
-      case ID_PAGE_FEEDBACK :       qDebug("%sPAGE_FEEDBACK%s", qPrintable(openPrefix), qPrintable(openSuffix));        break;
-      case ID_PAGE_VIDEOS :     qDebug("%sPAGE_VIDEOS%s", qPrintable(openPrefix), qPrintable(openSuffix));      break;
-      case MAX_PAGE :           qDebug("%sMAX_PAGE%s", qPrintable(openPrefix), qPrintable(openSuffix));         break;
-      default :         qDebug("%sUNKNOWN PAGE%s", qPrintable(openPrefix), qPrintable(openSuffix));     break;
-    } //end switch(id)
+    // pageEnter and pageLeave events
+    ((AbstractPage*)ui.Pages->widget(lastid))->triggerPageLeave();
+    ((AbstractPage*)ui.Pages->widget(id))->triggerPageEnter();
 
     if (id == ID_PAGE_DATADOWNLOAD)
     {
@@ -690,20 +670,11 @@
             curTeamSelWidget->resetPlayingTeams(teamsList);
         }
     }
-    else if (id == ID_PAGE_GAMESTATS)
-    {
-        ui.pageGameStats->renderStats();
-    }
 
     if (id == ID_PAGE_MAIN)
     {
         ui.pageOptions->setTeamOptionsEnabled(true);
     }
-
-    if (id == ID_PAGE_FEEDBACK)
-    {
-        ui.pageFeedback->LoadCaptchaImage();
-    }
 }
 
 void HWForm::GoToPage(int id)
@@ -723,6 +694,7 @@
     unnecessary.
    */
 
+
 #if (QT_VERSION >= 0x040600)
     if (!stopAnim)
     {
@@ -790,6 +762,7 @@
     int curid = ui.Pages->currentIndex();
     if (curid == ID_PAGE_MAIN)
     {
+        ((AbstractPage*)ui.Pages->widget(ID_PAGE_MAIN))->triggerPageLeave();
         if (!ui.pageVideos->tryQuit(this))
             return;
         stopAnim = true;
@@ -975,18 +948,8 @@
 
 void HWForm::DeleteTeam(const QString & teamName)
 {
-    QMessageBox reallyDeleteMsg(this);
-    reallyDeleteMsg.setIcon(QMessageBox::Question);
-    reallyDeleteMsg.setWindowTitle(QMessageBox::tr("Teams - Are you sure?"));
-    reallyDeleteMsg.setText(QMessageBox::tr("Do you really want to delete the team '%1'?").arg(teamName));
-    reallyDeleteMsg.setWindowModality(Qt::WindowModal);
-    reallyDeleteMsg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
-
-    if (reallyDeleteMsg.exec() == QMessageBox::Ok)
-    {
-        ui.pageEditTeam->deleteTeam(teamName);
-        UpdateTeamsLists();
-    }
+    ui.pageEditTeam->deleteTeam(teamName);
+    UpdateTeamsLists();
 }
 
 void HWForm::DeleteScheme()
@@ -994,7 +957,7 @@
     ui.pageScheme->selectScheme->setCurrentIndex(ui.pageOptions->SchemesName->currentIndex());
     if (ui.pageOptions->SchemesName->currentIndex() < ammoSchemeModel->numberOfDefaultSchemes)
     {
-        ShowErrorMessage(QMessageBox::tr("Cannot delete default scheme '%1'!").arg(ui.pageOptions->SchemesName->currentText()));
+        MessageDialog::ShowErrorMessage(QMessageBox::tr("Cannot delete default scheme '%1'!").arg(ui.pageOptions->SchemesName->currentText()), this);
     }
     else
     {
@@ -1020,7 +983,7 @@
     QListWidgetItem * curritem = ui.pagePlayDemo->DemosList->currentItem();
     if (!curritem)
     {
-        ShowErrorMessage(QMessageBox::tr("Please select a record from the list"));
+        MessageDialog::ShowErrorMessage(QMessageBox::tr("Please select a record from the list"), this);
         return;
     }
     CreateGame(0, 0, 0);
@@ -1048,6 +1011,7 @@
 
 void HWForm::NetPassword(const QString & nick)
 {
+    Q_UNUSED(nick);
     //Get hashes
     QString hash =  config->passwordHash();
     QString temphash =  config->tempHash();
@@ -1104,6 +1068,8 @@
 
 void HWForm::NetNickNotRegistered(const QString & nick)
 {
+    Q_UNUSED(nick);
+
     QMessageBox noRegMsg(this);
     noRegMsg.setIcon(QMessageBox::Information);
     noRegMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Nick not registered"));
@@ -1133,7 +1099,7 @@
     bool retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied."));
     GoBack();
         if (retry) {
-           NetConnectOfficialServer();
+            NetConnectOfficialServer();
         }
         return;
     }
@@ -1194,7 +1160,7 @@
     switch (ui.Pages->currentIndex())
     {
         case ID_PAGE_INGAME:
-            ShowErrorMessage(errmsg);
+            MessageDialog::ShowErrorMessage(errmsg, this);
             // no break
         case ID_PAGE_NETGAME:
             ui.pageNetGame->displayError(errmsg);
@@ -1214,6 +1180,8 @@
 
 void HWForm::_NetConnect(const QString & hostName, quint16 port, QString nick)
 {
+    Q_UNUSED(nick);
+
     if(hwnet)
     {
         hwnet->Disconnect();
@@ -1291,6 +1259,8 @@
             hwnet, SLOT(infoPlayer(const QString&)));
     connect(ui.pageNetGame->chatWidget, SIGNAL(follow(const QString&)),
             hwnet, SLOT(followPlayer(const QString&)));
+    connect(ui.pageNetGame->chatWidget, SIGNAL(consoleCommand(const QString&)),
+            hwnet, SLOT(consoleCommand(const QString&)));
     connect(ui.pageRoomsList->chatWidget, SIGNAL(kick(const QString&)),
             hwnet, SLOT(kickPlayer(const QString&)));
     connect(ui.pageRoomsList->chatWidget, SIGNAL(ban(const QString&)),
@@ -1299,6 +1269,8 @@
             hwnet, SLOT(infoPlayer(const QString&)));
     connect(ui.pageRoomsList->chatWidget, SIGNAL(follow(const QString&)),
             hwnet, SLOT(followPlayer(const QString&)));
+    connect(ui.pageRoomsList->chatWidget, SIGNAL(consoleCommand(const QString&)),
+            hwnet, SLOT(consoleCommand(const QString&)));
 
 // chatting
     connect(ui.pageRoomsList->chatWidget, SIGNAL(chatLine(const QString&)),
@@ -1367,73 +1339,77 @@
     QString nickname = config->value("net/nick", "").toString();
     QString password;
 
-    if (nickname.isEmpty() || hash.isEmpty()) { //if something from login is missing, start dialog loop
-
+    //if something from login is missing, start dialog loop
+    if (nickname.isEmpty() || hash.isEmpty())
+    {
         while (nickname.isEmpty() || (hash.isEmpty() && temphash.isEmpty())) //while a nickname, or both hashes are missing
         {
-        //open dialog
+            //open dialog
             HWPasswordDialog * pwDialog = new HWPasswordDialog(this);
+            // make the "new account" button dialog open a browser with the registration page
+            connect(pwDialog->pbNewAccount, SIGNAL(clicked()), this, SLOT(openRegistrationPage()));
             pwDialog->cbSave->setChecked(config->value("net/savepassword", true).toBool());
 
-        //if nickname is present, put it into the field
-        if (!nickname.isEmpty()) {
-            pwDialog->leNickname->setText(nickname);
-            pwDialog->lePassword->setFocus();
-        }
+            //if nickname is present, put it into the field
+            if (!nickname.isEmpty()) {
+                pwDialog->leNickname->setText(nickname);
+                pwDialog->lePassword->setFocus();
+            }
+
+            //if dialog close, create an error message
+            if (pwDialog->exec() != QDialog::Accepted) {
+                delete pwDialog;
+                GoBack();
+                return;
+            }
+
+            //set nick and pass from the dialog
+            nickname = pwDialog->leNickname->text();
+            password = pwDialog->lePassword->text();
 
-        //if dialog close, create an error message
-        if (pwDialog->exec() != QDialog::Accepted) {
-            delete pwDialog;
-            GoBack();
-            return;
-        }
+            //check the nickname variable
+            if (nickname.isEmpty()) {
+                int retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied."));
+                GoBack();
+                delete pwDialog;
+                if (retry) {
+                    NetConnectOfficialServer();
+                }
+                return;
+            }
+
+            if (!password.isEmpty()) {
+                //calculate temphash and set it into config
+                temphash = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Md5).toHex();
+                config->setTempHash(temphash);
 
-        //set nick and pass from the dialog
-        nickname = pwDialog->leNickname->text();
-        password = pwDialog->lePassword->text();
+                //if user wants to save password
+                bool save = pwDialog->cbSave->isChecked();
+                config->setValue("net/savepassword", save);
+                if (save) // user wants to save password
+                {
+                    ui.pageOptions->CBSavePassword->setChecked(true);
+                    config->setPasswordHash(temphash);
+                }
+            }
+            else {
+                delete pwDialog;
+                config->setValue("net/nick", nickname);
+                config->updNetNick();
+                config->clearPasswordHash();
+                break;
+            }
 
-        //check the nickname variable
-        if (nickname.isEmpty()) {
-            int retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied."));
-            GoBack();
             delete pwDialog;
-            if (retry) {
-                NetConnectOfficialServer();
-            }
-            return;
-        }
 
-        if (!password.isEmpty()) {
-            //calculate temphash and set it into config
-            temphash = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Md5).toHex();
-            config->setTempHash(temphash);
-
-            //if user wants to save password
-            bool save = pwDialog->cbSave->isChecked();
-            config->setValue("net/savepassword", save);
-            if (save) // user wants to save password
-            {
-                config->setPasswordHash(temphash);
-            }
-        }
-        else {
-            delete pwDialog;
+            //update nickname
             config->setValue("net/nick", nickname);
             config->updNetNick();
-            config->clearPasswordHash();
-            break;
-        }
 
-        delete pwDialog;
-
-        //update nickname
-        config->setValue("net/nick", nickname);
-        config->updNetNick();
-
-        //and all the variables
-        hash = config->passwordHash();
-        temphash = config->tempHash();
-        nickname = config->value("net/nick", "").toString();
+            //and all the variables
+            hash = config->passwordHash();
+            temphash = config->tempHash();
+            nickname = config->value("net/nick", "").toString();
         }
     }
 
@@ -1469,7 +1445,7 @@
     pnetserver = new HWNetServer;
     if (!pnetserver->StartServer(ui.pageNetServer->sbPort->value()))
     {
-        ShowErrorMessage(QMessageBox::tr("Unable to start server"));
+        MessageDialog::ShowErrorMessage(QMessageBox::tr("Unable to start server"), this);
 
         delete pnetserver;
         pnetserver = 0;
@@ -1528,7 +1504,7 @@
     if (hwnet)
     {
         QString errorStr = QMessageBox::tr("Connection to server is lost") + (reason.isEmpty()?"":("\n\n" + HWNewNet::tr("Quit reason: ") + '"' + reason +'"'));
-        ShowErrorMessage(errorStr);
+        MessageDialog::ShowErrorMessage(errorStr, this);
     }
 
     while (ui.Pages->currentIndex() != ID_PAGE_NET
@@ -1634,16 +1610,6 @@
     m_lastDemo = QByteArray();
 }
 
-void HWForm::ShowErrorMessage(const QString & msg)
-{
-    QMessageBox msgMsg(this);
-    msgMsg.setIcon(QMessageBox::Warning);
-    msgMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Error"));
-    msgMsg.setText(msg);
-    msgMsg.setWindowModality(Qt::WindowModal);
-    msgMsg.exec();
-}
-
 void HWForm::GetRecord(RecordType type, const QByteArray & record)
 {
     if (type != rtNeither)
@@ -1676,7 +1642,7 @@
 
         QFile demofile(filename);
         if (!demofile.open(QIODevice::WriteOnly))
-            ShowErrorMessage(tr("Cannot save record to file %1").arg(filename));
+            MessageDialog::ShowErrorMessage(tr("Cannot save record to file %1").arg(filename), this);
         else
         {
             demofile.write(demo);
@@ -1747,7 +1713,7 @@
 
 void HWForm::NetGameChangeStatus(bool isMaster)
 {
-    ui.pageNetGame->pGameCFG->setEnabled(isMaster);
+    ui.pageNetGame->pGameCFG->setMaster(isMaster);
     ui.pageNetGame->pNetTeamsWidget->setInteractivity(isMaster);
 
     if (isMaster)
@@ -1762,21 +1728,22 @@
     ui.pageNetGame->restrictJoins->setChecked(false);
     ui.pageNetGame->restrictTeamAdds->setChecked(false);
     ui.pageNetGame->pGameCFG->GameSchemes->setModel(ammoSchemeModel);
-    ui.pageNetGame->pGameCFG->setEnabled(true);
+    ui.pageNetGame->pGameCFG->setMaster(true);
     ui.pageNetGame->pNetTeamsWidget->setInteractivity(true);
 
     if (hwnet)
     {
         // disconnect connections first to ensure their inexistance and not to connect twice
-        ui.pageNetGame->BtnStart->disconnect(hwnet);
+        ui.pageNetGame->BtnStart->disconnect(this);
         ui.pageNetGame->BtnUpdate->disconnect(hwnet);
+        ui.pageNetGame->leRoomName->disconnect(hwnet);
         ui.pageNetGame->restrictJoins->disconnect(hwnet);
         ui.pageNetGame->restrictTeamAdds->disconnect(hwnet);
         ui.pageNetGame->disconnect(hwnet, SLOT(updateRoomName(const QString&)));
 
         ui.pageNetGame->setRoomName(hwnet->getRoom());
 
-        connect(ui.pageNetGame->BtnStart, SIGNAL(clicked()), hwnet, SLOT(startGame()));
+        connect(ui.pageNetGame->BtnStart, SIGNAL(clicked()), this, SLOT(startGame()));
         connect(ui.pageNetGame, SIGNAL(askForUpdateRoomName(const QString &)), hwnet, SLOT(updateRoomName(const QString &)));
         connect(ui.pageNetGame->restrictJoins, SIGNAL(triggered()), hwnet, SLOT(toggleRestrictJoins()));
         connect(ui.pageNetGame->restrictTeamAdds, SIGNAL(triggered()), hwnet, SLOT(toggleRestrictTeamAdds()));
@@ -1790,7 +1757,7 @@
 
 void HWForm::NetGameSlave()
 {
-    ui.pageNetGame->pGameCFG->setEnabled(false);
+    ui.pageNetGame->pGameCFG->setMaster(false);
     ui.pageNetGame->pNetTeamsWidget->setInteractivity(false);
 
     if (hwnet)
@@ -1799,6 +1766,8 @@
         connect(hwnet, SIGNAL(netSchemeConfig(QStringList &)), netAmmo, SLOT(setNetSchemeConfig(QStringList &)));
         ui.pageNetGame->pGameCFG->GameSchemes->setModel(netAmmo);
 
+        ui.pageNetGame->setRoomName(hwnet->getRoom());
+
         ui.pageNetGame->pGameCFG->GameSchemes->view()->disconnect(hwnet);
         connect(hwnet, SIGNAL(netSchemeConfig(QStringList &)),
                 this, SLOT(selectFirstNetScheme()));
@@ -1893,11 +1862,13 @@
     userPrefix = userPrefix.replace("/","\\");
 #endif
 
-    QRect resolution = config->vid_Resolution();
+    std::pair<QRect, QRect> resolutions = config->vid_ResolutionPair();
     return QString("--prefix " + prefix
                    + " --user-prefix " + userPrefix
-                   + " --width " + QString::number(resolution.width())
-                   + " --height " + QString::number(resolution.height())
+                   + " --fullscreen-width " + QString::number(resolutions.first.width())
+                   + " --fullscreen-height " + QString::number(resolutions.first.height())
+                   + " --width " + QString::number(resolutions.second.width())
+                   + " --height " + QString::number(resolutions.second.height())
                    + " --volume " + QString::number(config->volume())
                    + (config->isMusicEnabled() ? "" : " --nomusic")
                    + (config->isSoundEnabled() ? "" : " --nosound")
@@ -1955,7 +1926,12 @@
         infoMsg.exec();
     }
     else
-        ShowErrorMessage(QMessageBox::tr("File association failed."));
+        MessageDialog::ShowErrorMessage(QMessageBox::tr("File association failed."), this);
+}
+
+void HWForm::openRegistrationPage()
+{
+    QDesktopServices::openUrl(QUrl("http://www.hedgewars.org/user/register"));
 }
 
 void HWForm::saveDemoWithCustomName()
@@ -1974,7 +1950,7 @@
                 QFile demofile(filePath);
                 ok = demofile.open(QIODevice::WriteOnly);
                 if (!ok)
-                    ShowErrorMessage(tr("Cannot save record to file %1").arg(filePath));
+                    MessageDialog::ShowErrorMessage(tr("Cannot save record to file %1").arg(filePath), this);
                 else
                 {
                     ok = -1 != demofile.write(m_lastDemo);
@@ -1986,76 +1962,28 @@
     }
 }
 
-void HWForm::SendFeedback()
-{
-    // Get form data
-
-    QString summary = ui.pageFeedback->summary->text();
-    QString description = ui.pageFeedback->description->toPlainText();
-    QString email = ui.pageFeedback->email->text();
-    QString captchaCode = ui.pageFeedback->captcha_code->text();
-    QString captchaID = QString::number(ui.pageFeedback->captchaID);
-    QString version = "HedgewarsFoundation-Hedgewars-" + (cVersionString?(*cVersionString):QString(""));
-
-    if (summary.isEmpty() || description.isEmpty())
-    {
-        ShowErrorMessage(QMessageBox::tr("Please fill out all fields. Email is optional."));
-        return;
-    }
-
-    // Submit issue to PHP script
 
-    QByteArray body;
-    body.append("captcha=");
-    body.append(captchaID);
-    body.append("&code=");
-    body.append(captchaCode);
-    body.append("&version=");
-    body.append(QUrl::toPercentEncoding(version));
-    body.append("&title=");
-    body.append(QUrl::toPercentEncoding(summary));
-    body.append("&body=");
-    body.append(QUrl::toPercentEncoding(description));
-    body.append("&email=");
-    body.append(QUrl::toPercentEncoding(email));
-    if (ui.pageFeedback->CheckSendSpecs->isChecked())
-    {
-        body.append("&specs=");
-        body.append(QUrl::toPercentEncoding(ui.pageFeedback->specs));
-    }
+void HWForm::ShowErrorMessage(const QString & msg)
+{
+    MessageDialog::ShowErrorMessage(msg, this);
+}
 
-    nam = new QNetworkAccessManager(this);
-    connect(nam, SIGNAL(finished(QNetworkReply*)),
-            this, SLOT(finishedSlot(QNetworkReply*)));
-
-    QNetworkRequest header(QUrl("http://hedgewars.org/feedback/?submit"));
-    header.setRawHeader("Content-Length", QString::number(body.size()).toAscii());
-
-    nam->post(header, body);
+void HWForm::showFeedbackDialog()
+{
+    FeedbackDialog dialog(this);
+    dialog.exec();
 }
 
-void HWForm::finishedSlot(QNetworkReply* reply)
+void HWForm::startGame()
 {
-    if (reply && reply->error() == QNetworkReply::NoError)
-    {
-            QMessageBox infoMsg(this);
-            infoMsg.setIcon(QMessageBox::Information);
-            infoMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Success"));
-            infoMsg.setText(reply->readAll());
-            infoMsg.setWindowModality(Qt::WindowModal);
-            infoMsg.exec();
+    QMessageBox questionMsg(this);
+    questionMsg.setIcon(QMessageBox::Question);
+    questionMsg.setWindowTitle(QMessageBox::tr("Not all players are ready"));
+    questionMsg.setText(QMessageBox::tr("Are you sure you want to start this game?\nNot all players are ready."));
+    questionMsg.setWindowModality(Qt::WindowModal);
+    questionMsg.addButton(QMessageBox::Yes);
+    questionMsg.addButton(QMessageBox::Cancel);
 
-            ui.pageFeedback->summary->clear();
-            ui.pageFeedback->email->clear();
-            ui.pageFeedback->description->clear();
-            ui.pageFeedback->LoadCaptchaImage();
-
-            return;
-    }
-    else
-    {
-        ShowErrorMessage(QString("Error: ") + reply->readAll());
-        ui.pageFeedback->LoadCaptchaImage();
-    }
+    if (hwnet->allPlayersReady() || questionMsg.exec() == QMessageBox::Yes)
+        hwnet->startGame();
 }
-
--- a/QTfrontend/hwform.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/hwform.h	Sun Jan 27 00:28:57 2013 +0100
@@ -109,7 +109,7 @@
         void NetNickNotRegistered(const QString & nick);
         void NetNickTaken(const QString & nick);
         void NetAuthFailed();
-    bool RetryDialog(const QString & title, const QString & label);
+        bool RetryDialog(const QString & title, const QString & label);
         void NetTeamAccepted(const QString& team);
         void AddNetTeam(const HWTeam& team);
         void RemoveNetTeam(const HWTeam& team);
@@ -126,10 +126,7 @@
         void UpdateCampaignPage(int index);
         void UpdateCampaignPageProgress(int index);
         void InitCampaignPage();
-        //Starts the transmission process for the feedback
-        void SendFeedback();
-        //Called after submitting new feedback
-        void finishedSlot(QNetworkReply* reply);
+        void showFeedbackDialog();
 
         void NetGameChangeStatus(bool isMaster);
         void NetGameMaster();
@@ -140,6 +137,9 @@
         void selectFirstNetScheme();
 
         void saveDemoWithCustomName();
+        void openRegistrationPage();
+
+        void startGame();
 
     private:
         void _NetConnect(const QString & hostName, quint16 port, QString nick);
@@ -148,6 +148,7 @@
         void closeEvent(QCloseEvent *event);
         void CustomizePalettes();
         void resizeEvent(QResizeEvent * event);
+        QString stringifyPageId(quint32 id);
         //void keyReleaseEvent(QKeyEvent *event);
 
         enum PageIDs
@@ -173,8 +174,7 @@
             ID_PAGE_CAMPAIGN       ,
             ID_PAGE_DRAWMAP        ,
             ID_PAGE_DATADOWNLOAD   ,
-            ID_PAGE_FEEDBACK       ,
-            ID_PAGE_VIDEOS     ,
+            ID_PAGE_VIDEOS         ,
             MAX_PAGE
         };
         QPointer<HWGame> game;
@@ -189,7 +189,6 @@
         BGWidget * wBackground;
         QSignalMapper * pageSwitchMapper;
         QByteArray m_lastDemo;
-        QNetworkAccessManager * nam;
 
         QPropertyAnimation *animationNewSlide;
         QPropertyAnimation *animationOldSlide;
--- a/QTfrontend/main.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/main.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -27,6 +27,8 @@
 #include <QSettings>
 #include <QStringListModel>
 #include <QDate>
+#include <QDesktopWidget>
+#include <QLabel>
 
 #include "hwform.h"
 #include "hwconsts.h"
@@ -37,11 +39,18 @@
 
 #ifdef _WIN32
 #include <Shlobj.h>
-#endif
-#ifdef __APPLE__
+#elif defined __APPLE__
 #include "CocoaInitializer.h"
 #endif
+#ifndef _WIN32
+#include <signal.h>
+#endif
 
+// Program resources
+#ifdef __APPLE__
+static CocoaInitializer * cocoaInit = NULL;
+#endif
+static FileEngineHandler * engine = NULL;
 
 //Determines the day of easter in year
 //from http://aa.usno.navy.mil/faq/docs/easter.php,adapted to C/C++
@@ -85,6 +94,14 @@
     else
         season = SEASON_NONE;
 }
+#ifndef _WIN32
+void terminateFrontend(int signal)
+{
+    Q_UNUSED(signal);
+
+    QCoreApplication::exit(0);
+}
+#endif
 
 bool checkForDir(const QString & dir)
 {
@@ -112,31 +129,53 @@
         return true;
 }
 
+// Guaranteed to be the last thing ran in the application's life time.
+// Closes resources that need to exist as long as possible.
+void closeResources(void)
+{
 #ifdef __APPLE__
-static CocoaInitializer *cocoaInit = NULL;
-// Function to be called at end of program's termination on OS X to release
-// the NSAutoReleasePool contained within the CocoaInitializer.
-void releaseCocoaPool(void)
-{
     if (cocoaInit != NULL)
     {
         delete cocoaInit;
         cocoaInit = NULL;
     }
+#endif
+    if (engine != NULL)
+    {
+        delete engine;
+        engine = NULL;
+    }
 }
-#endif
 
 int main(int argc, char *argv[])
 {
+    // Since we're calling this first, closeResources() will be the last thing called after main() returns.
+    atexit(closeResources);
+
 #ifdef __APPLE__
-    // This creates the autoreleasepool that prevents leaking, and destroys it only on exit
-    cocoaInit = new CocoaInitializer();
-    atexit(releaseCocoaPool);
+    cocoaInit = new CocoaInitializer(); // Creates the autoreleasepool preventing cocoa object leaks on OS X.
+#endif
+
+#ifndef _WIN32
+    signal(SIGINT, &terminateFrontend);
 #endif
 
     HWApplication app(argc, argv);
 
-    FileEngineHandler engine(argv[0]);
+    QLabel *splash = NULL;
+#if defined Q_WS_WIN
+    QPixmap pixmap(":res/splash.png");
+    splash = new QLabel(0, Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);
+    splash->setAttribute(Qt::WA_TranslucentBackground);
+    const QRect deskSize = QApplication::desktop()->screenGeometry(-1);
+    QPoint splashCenter = QPoint( (deskSize.width() - pixmap.width())/2,
+                                  (deskSize.height() - pixmap.height())/2 );
+    splash->move(splashCenter);
+    splash->setPixmap(pixmap);
+    splash->show();
+#endif
+
+    engine = new FileEngineHandler(argv[0]);
 
     app.setAttribute(Qt::AA_DontShowIconsInMenus,false);
 
@@ -194,8 +233,6 @@
 
     qRegisterMetaType<HWTeam>("HWTeam");
 
-    // workaround over NSIS installer which modifies the install path
-    //bindir->cd("./");
     bindir->cd(QCoreApplication::applicationDirPath());
 
     if(custom_config == false)
@@ -253,11 +290,11 @@
     }
 
     // setup PhysFS
-    engine.mount(datadir->absolutePath());
-    engine.mount(cfgdir->absolutePath() + "/Data");
-    engine.mount(cfgdir->absolutePath());
-    engine.setWriteDir(cfgdir->absolutePath());
-    engine.mountPacks();
+    engine->mount(datadir->absolutePath());
+    engine->mount(cfgdir->absolutePath() + "/Data");
+    engine->mount(cfgdir->absolutePath());
+    engine->setWriteDir(cfgdir->absolutePath());
+    engine->mountPacks();
 
     checkForFile("physfs://hedgewars.ini");
 
@@ -305,6 +342,7 @@
             break;
         default :
             fname = "qt.css";
+            break;
     }
 
     // load external stylesheet if there is any
@@ -319,5 +357,7 @@
 
     app.form = new HWForm(NULL, style);
     app.form->show();
+    if(splash)
+        splash->close();
     return app.exec();
 }
--- a/QTfrontend/model/GameStyleModel.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/GameStyleModel.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -23,14 +23,16 @@
 
 #include <QTextStream>
 
+#include "physfs.h"
 #include "GameStyleModel.h"
 
 
 void GameStyleModel::loadGameStyles()
 {
+    const QString appDir = QString(PHYSFS_getBaseDir());
+
     beginResetModel();
 
-
     // empty list, so that we can (re)fill it
     QStandardItemModel::clear();
 
@@ -77,11 +79,16 @@
                 weapons.replace("_", " ");
         }
 
-        QStandardItem * item = new QStandardItem(name);
+        // detect if script is dlc
+        QString scriptPath = PHYSFS_getRealDir(QString("Scripts/Multiplayer/%1.lua").arg(script).toLocal8Bit().data());
+        bool isDLC = !scriptPath.startsWith(appDir);
+
+        QStandardItem * item = new QStandardItem((isDLC ? "*" : "") + name);
 
         item->setData(script, ScriptRole);
         item->setData(scheme, SchemeRole);
         item->setData(weapons, WeaponsRole);
+        item->setData(isDLC, IsDlcRole);
 
         items.append(item);
     }
--- a/QTfrontend/model/GameStyleModel.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/GameStyleModel.h	Sun Jan 27 00:28:57 2013 +0100
@@ -38,7 +38,7 @@
         Q_OBJECT
 
     public:
-        enum DataRoles { ScriptRole = Qt::UserRole+1, SchemeRole, WeaponsRole };
+        enum DataRoles { ScriptRole = Qt::UserRole+1, SchemeRole, WeaponsRole, IsDlcRole };
 
     public slots:
         /// reloads the themes from the DataManager
--- a/QTfrontend/model/HatModel.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/HatModel.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -26,26 +26,28 @@
 #include <QDir>
 #include <QPixmap>
 #include <QPainter>
+#include <QList>
 #include "hwform.h" // player hash
 
 #include "DataManager.h"
 
 HatModel::HatModel(QObject* parent) :
-    QAbstractListModel(parent)
-{
-    hats = QVector<QPair<QString, QIcon> >();
-}
+    QStandardItemModel(parent)
+{}
 
 void HatModel::loadHats()
 {
     // this method resets the contents of this model (important to know for views).
-    beginResetModel();
+    QStandardItemModel::beginResetModel();
+    QStandardItemModel::clear();
 
-    // prepare hats Vector
-    hats.clear();
+    // New hats to add to model
+    QList<QStandardItem *> hats;
 
+    // we'll need the DataManager a few times, so let's get a reference to it
     DataManager & dataMgr = DataManager::instance();
 
+    // Default hat icon
     QPixmap hhpix = QPixmap("physfs://Graphics/Hedgehog/Idle.png").copy(0, 0, 32, 32);
 
     // my reserved hats
@@ -54,7 +56,6 @@
                                QDir::Files,
                                QStringList(playerHash+"*.png")
                            );
-
     int nReserved = hatsList.size();
 
     // regular hats
@@ -64,19 +65,20 @@
                         QStringList("*.png")
                     )
                    );
-
-
     int nHats = hatsList.size();
 
+    // Add each hat
     for (int i = 0; i < nHats; i++)
     {
         bool isReserved = (i < nReserved);
 
+        if (isReserved) continue; // For some reason, reserved hats were added in 9.19-dev, so this will hide them. Uncomment to show them.
+
         QString str = hatsList.at(i);
         str = str.remove(QRegExp("\\.png$"));
-        QPixmap pix(            
+        QPixmap pix(
                 "physfs://Graphics/Hats/" + QString(isReserved?"Reserved/":"") + str +
-                ".png"           
+                ".png"
         );
 
         // rename properly
@@ -94,51 +96,11 @@
         painter.end();
 
         if (str == "NoHat")
-            hats.prepend(qMakePair(str, QIcon(tmppix)));
+            hats.prepend(new QStandardItem(QIcon(tmppix), str));
         else
-            hats.append(qMakePair(str, QIcon(tmppix)));
+            hats.append(new QStandardItem(QIcon(tmppix), str));
     }
 
-
-    endResetModel();
-}
-
-QVariant HatModel::headerData(int section,
-                               Qt::Orientation orientation, int role) const
-{
-    Q_UNUSED(section);
-    Q_UNUSED(orientation);
-    Q_UNUSED(role);
-
-    return QVariant();
-}
-
-int HatModel::rowCount(const QModelIndex &parent) const
-{
-    if (parent.isValid())
-        return 0;
-    else
-        return hats.size();
+    QStandardItemModel::appendColumn(hats);
+    QStandardItemModel::endResetModel();
 }
-
-/*int HatModel::columnCount(const QModelIndex & parent) const
-{
-    if (parent.isValid())
-        return 0;
-    else
-        return 2;
-}
-*/
-QVariant HatModel::data(const QModelIndex &index,
-                         int role) const
-{
-    if (!index.isValid() || index.row() < 0
-            || index.row() >= hats.size()
-            || (role != Qt::DisplayRole && role != Qt::DecorationRole))
-        return QVariant();
-
-    if (role == Qt::DisplayRole)
-        return hats.at(index.row()).first;
-    else // role == Qt::DecorationRole
-        return hats.at(index.row()).second;
-}
--- a/QTfrontend/model/HatModel.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/HatModel.h	Sun Jan 27 00:28:57 2013 +0100
@@ -24,30 +24,22 @@
 #ifndef HEDGEWARS_HATMODEL_H
 #define HEDGEWARS_HATMODEL_H
 
-#include <QAbstractListModel>
+#include <QStandardItemModel>
 #include <QStringList>
 #include <QVector>
 #include <QPair>
 #include <QIcon>
 
-class HatModel : public QAbstractListModel
+class HatModel : public QStandardItemModel
 {
         Q_OBJECT
 
     public:
         HatModel(QObject *parent = 0);
 
-        QVariant headerData(int section, Qt::Orientation orientation, int role) const;
-        int rowCount(const QModelIndex & parent) const;
-        //int columnCount(const QModelIndex & parent) const;
-
     public slots:
         /// Reloads hats using the DataManager.
         void loadHats();
-
-        QVariant data(const QModelIndex &index, int role) const;
-    protected:
-        QVector<QPair<QString, QIcon> > hats;
 };
 
 #endif // HEDGEWARS_HATMODEL_H
--- a/QTfrontend/model/MapModel.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/MapModel.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -21,11 +21,20 @@
  * @brief MapModel class implementation
  */
 
+#include <QSettings>
+
+#include "physfs.h"
 #include "MapModel.h"
-
+#include "HWApplication.h"
 
-void MapModel::loadMaps()
+MapModel::MapInfo MapModel::MapInfoRandom = {MapModel::GeneratedMap, "+rnd+", "", 0, "", "", ""};
+MapModel::MapInfo MapModel::MapInfoMaze = {MapModel::GeneratedMaze, "+maze+", "", 0, "", "", ""};
+MapModel::MapInfo MapModel::MapInfoDrawn = {MapModel::HandDrawnMap, "+drawn+", "", 0, "", "", ""};
+
+void MapModel::loadMaps(MapType maptype)
 {
+    const QString appDir = QString(PHYSFS_getBaseDir());
+
     // this method resets the contents of this model (important to know for views).
     beginResetModel();
 
@@ -39,32 +48,18 @@
     // empty list, so that we can (re)fill it
     QStandardItemModel::clear();
 
-    QList<QStandardItem *> genMaps;
-    QList<QStandardItem *> missionMaps;
-    QList<QStandardItem *> staticMaps;
-
-    // add generated/handdrawn maps to list
-    // TODO: icons for these
-
-    genMaps.append(
-        infoToItem(QIcon(), QComboBox::tr("generated map..."), GeneratedMap, "+rnd+"));
-    genMaps.append(
-        infoToItem(QIcon(), QComboBox::tr("generated maze..."), GeneratedMaze, "+maze+"));
-    genMaps.append(
-        infoToItem(QIcon(), QComboBox::tr("hand drawn map..."), HandDrawnMap, "+drawn+"));
-
-    // only 2 map relate files are relevant:
-    // - the cfg file that contains the settings/info of the map
-    // - the lua file - if it exists it's a mission, otherwise it isn't
-    QFile mapLuaFile;
-    QFile mapCfgFile;
+    //QList<QStandardItem *> staticMaps;
+    //QList<QStandardItem *> missionMaps;
+    QList<QStandardItem *> mapList;
 
     // add mission/static maps to lists
     foreach (QString map, maps)
     {
-        mapCfgFile.setFileName(QString("physfs://Maps/%1/map.cfg").arg(map));
-        mapLuaFile.setFileName(QString("physfs://Maps/%1/map.lua").arg(map));
-
+        // only 2 map relate files are relevant:
+        // - the cfg file that contains the settings/info of the map
+        // - the lua file - if it exists it's a mission, otherwise it isn't
+        QFile mapLuaFile(QString("physfs://Maps/%1/map.lua").arg(map));
+        QFile mapCfgFile(QString("physfs://Maps/%1/map.cfg").arg(map));
 
         if (mapCfgFile.open(QFile::ReadOnly))
         {
@@ -73,25 +68,43 @@
             quint32 limit = 0;
             QString scheme;
             QString weapons;
+            QString desc;
+            bool dlc;
+
             // if there is a lua file for this map, then it's a mission
             bool isMission = mapLuaFile.exists();
-            MapType type = isMission?MissionMap:StaticMap;
+            MapType type = isMission ? MissionMap : StaticMap;
+
+            // if we're supposed to ignore this type, continue
+            if (type != maptype) continue;
 
             // load map info from file
             QTextStream input(&mapCfgFile);
-            input >> theme;
-            input >> limit;
+            theme = input.readLine();
+            limit = input.readLine().toInt();
             if (isMission) { // scheme and weapons are only relevant for missions
-                input >> scheme;
-                input >> weapons;
+                scheme = input.readLine();
+                weapons = input.readLine();
             }
             mapCfgFile.close();
 
+            // load description (if applicable)
+            if (isMission)
+            {
+                QString locale = HWApplication::keyboardInputLocale().name();
+
+                QSettings descSettings(QString("physfs://Maps/%1/desc.txt").arg(map), QSettings::IniFormat);
+                desc = descSettings.value(locale, QString()).toString().replace("|", "\n").replace("\\,", ",");
+            }
+
+            // detect if map is dlc
+            QString mapDir = PHYSFS_getRealDir(QString("Maps/%1/map.cfg").arg(map).toLocal8Bit().data());
+            dlc = !mapDir.startsWith(appDir);
+
             // let's use some semi-sane hedgehog limit, rather than none
             if (limit == 0)
                 limit = 18;
 
-
             // the default scheme/weaponset for missions.
             // if empty we assume the map sets these internally -> locked
             if (isMission)
@@ -107,97 +120,54 @@
                     weapons.replace("_", " ");
             }
 
-            // add a mission caption prefix to missions
-            if (isMission)
-            {
-                // TODO: icon
-                caption = QComboBox::tr("Mission") + ": " + map;
-            }
-            else
-                caption = map;
+            // caption
+            caption = map;
 
             // we know everything there is about the map, let's get am item for it
-            QStandardItem * item = infoToItem(
-                QIcon(), caption, type, map, theme, limit, scheme, weapons);
+            QStandardItem * item = MapModel::infoToItem(
+                QIcon(), caption, type, map, theme, limit, scheme, weapons, desc, dlc);
 
             // append item to the list
-            if (isMission)
-                missionMaps.append(item);
-            else
-                staticMaps.append(item);
-        
+            mapList.append(item);
         }
 
     }
 
-
-    // define a separator item
-    QStandardItem separator("---");
-    separator.setData(QLatin1String("separator"), Qt::AccessibleDescriptionRole);
-    separator.setFlags(separator.flags() & ~( Qt::ItemIsEnabled | Qt::ItemIsSelectable ) );
-
-    // create list:
-    // generated+handdrawn maps, 2 saperators, missions, 1 separator, static maps
-    QList<QStandardItem * > items;
-    items.append(genMaps);
-    items.append(separator.clone());
-    items.append(separator.clone());
-    items.append(missionMaps);
-    items.append(separator.clone());
-    items.append(staticMaps);
-
-
-    // create row-index lookup table
+    // Create column-index lookup table
 
     m_mapIndexes.clear();
 
-    int count = items.size();
 
+    int count = mapList.size();
     for (int i = 0; i < count; i++)
     {
-        QStandardItem * si = items.at(i);
+        QStandardItem * si = mapList.at(i);
         QVariant v = si->data(Qt::UserRole + 1);
         if (v.canConvert<MapInfo>())
             m_mapIndexes.insert(v.value<MapInfo>().name, i);
     }
 
-
-    // store start-index and count of relevant types
-
-    m_typeLoc.insert(GeneratedMap, QPair<int,int>(0, 1));
-    m_typeLoc.insert(GeneratedMaze, QPair<int,int>(1, 1));
-    m_typeLoc.insert(HandDrawnMap, QPair<int,int>(2, 1));
-    // mission maps
-    int startIdx = genMaps.size() + 2; // start after genMaps and 2 separators
-    count = missionMaps.size();
-    m_typeLoc.insert(MissionMap, QPair<int,int>(startIdx, count));
-    // static maps
-    startIdx += count + 1; // start after missions and 2 separators
-    count = staticMaps.size();
-    m_typeLoc.insert(StaticMap, QPair<int,int>(startIdx, count));
-
-    // store list contents in the item model
-    QStandardItemModel::appendColumn(items);
-
+    QStandardItemModel::appendColumn(mapList);
 
     endResetModel();
 }
 
-
-int MapModel::randomMap(MapType type) const
+bool MapModel::mapExists(const QString & map) const
 {
-    // return a random index for this type or -1 if none available
-    QPair<int,int> loc = m_typeLoc.value(type, QPair<int,int>(-1,0));
-
-    int startIdx = loc.first;
-    int count = loc.second;
-
-    if (count < 1)
-        return -1;
-    else
-        return startIdx + (rand() % count);
+    return findMap(map) >= 0;
 }
 
+int MapModel::findMap(const QString & map) const
+{
+    return m_mapIndexes.value(map, -1);
+}
+
+QStandardItem * MapModel::getMap(const QString & map)
+{
+    int loc = findMap(map);
+    if (loc < 0) return NULL;
+    return item(loc);
+}
 
 QStandardItem * MapModel::infoToItem(
     const QIcon & icon,
@@ -207,10 +177,11 @@
     QString theme,
     quint32 limit,
     QString scheme,
-    QString weapons)
-const
+    QString weapons,
+    QString desc,
+    bool dlc)
 {
-    QStandardItem * item = new QStandardItem(icon, caption);
+    QStandardItem * item = new QStandardItem(icon, (dlc ? "*" : "") + caption);
     MapInfo mapInfo;
     QVariant qvar(QVariant::UserType);
 
@@ -220,17 +191,11 @@
     mapInfo.limit = limit;
     mapInfo.scheme = scheme;
     mapInfo.weapons = weapons;
-
+    mapInfo.desc = desc.isEmpty() ? tr("No description available.") : desc;
+    mapInfo.dlc = dlc;
 
     qvar.setValue(mapInfo);
     item->setData(qvar, Qt::UserRole + 1);
 
     return item;
 }
-
-
-int MapModel::indexOf(const QString & map) const
-{
-    return m_mapIndexes.value(map, -1);
-}
-
--- a/QTfrontend/model/MapModel.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/MapModel.h	Sun Jan 27 00:28:57 2013 +0100
@@ -63,32 +63,50 @@
             quint32 limit; ///< The maximum allowed number of hedgehogs.
             QString scheme; ///< Default scheme name or "locked", for mission-maps.
             QString weapons; ///< Default weaponset name or "locked", for missions-maps.
+            QString desc; ///< The brief 1-2 sentence description of the mission, for mission-maps.
+            bool dlc; ///< True if this map was not packaged with the game
         };
 
         /**
-         * @brief Returns the row-index of the given map.
-         * @param map map of which to get the row-index of.
-         * @return row-index of map or -1 if not available.
+         * @brief Searches maps in model to find out if one exists
+         * @param map map of which to check existence
+         * @return true if it exists
          */
-        int indexOf(const QString & map) const;
+        bool mapExists(const QString & map) const;
+
+        /**
+         * @brief Finds a map index (column, row) for a map name
+         * @param map map of which to find index+column
+         * @return QPair<int, int> with column, index, or (-1, -1) if map not found
+         */
+        //QPair<int, int> findMap(const QString & map) const;
 
         /**
-         * @brief Returns the row-index of a random map with a specified type.
-         * @param type desired type of map.
-         * @return row-index of a map with the desired type, -1 if none found.
+         * @brief Finds a map index for a map name
+         * @param map map of which to find index
+         * @return int of index, or -1 if map not found
          */
-        int randomMap(MapType type) const;
+        int findMap(const QString & map) const;
+
+        /**
+         * @brief Finds and returns a map item for a map name
+         * @param map map
+         * @return QStandardItem of map, or NULL if map not found
+         */
+        QStandardItem * getMap(const QString & map);
+
+        // Static MapInfos for drawn and generated maps
+        static MapInfo MapInfoRandom, MapInfoMaze, MapInfoDrawn;
 
     public slots:
         /// Reloads the maps using the DataManager.
-        void loadMaps();
+        /// Accepts two map types: StaticMap or MissionMap.
+        void loadMaps(MapType maptype);
 
 
     private:
-        /// start-index and map count for each map-type.
-        QMap<MapType, QPair<int,int> > m_typeLoc;
-
-        /// map index lookup table
+        /// map index lookup table. QPair<int, int> contains: <column, index>
+        //QHash<QString, QPair<int, int> > m_mapIndexes;
         QHash<QString, int> m_mapIndexes;
 
         /**
@@ -102,9 +120,10 @@
          * @param limit the hedgehog limit of the map.
          * @param scheme mission map: default scheme name or "locked".
          * @param weapons mission map: default weaponset name or "locked".
+         * @param desc mission map: description of mission.
          * @return pointer to item representing the map info: at Qt::UserRole + 1.
          */
-        QStandardItem * infoToItem(
+        static QStandardItem * infoToItem(
             const QIcon & icon,
             const QString caption,
             MapType type = Invalid,
@@ -112,7 +131,9 @@
             QString theme = "",
             quint32 limit = 0,
             QString scheme = "",
-            QString weapons = "") const;
+            QString weapons = "",
+            QString desc = "",
+            bool dlc = false);
 };
 
 Q_DECLARE_METATYPE(MapModel::MapInfo)
--- a/QTfrontend/model/ThemeModel.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/ThemeModel.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -21,6 +21,7 @@
  * @brief ThemeModel class implementation
  */
 
+#include "physfs.h"
 #include "ThemeModel.h"
 
 ThemeModel::ThemeModel(QObject *parent) :
@@ -49,9 +50,10 @@
 
 void ThemeModel::loadThemes()
 {
+    const QString appDir = QString(PHYSFS_getBaseDir());
+
     beginResetModel();
 
-
     DataManager & datamgr = DataManager::instance();
 
     QStringList themes =
@@ -73,11 +75,20 @@
 
         QMap<int, QVariant> dataset;
 
+        // detect if theme is dlc
+        QString themeDir = PHYSFS_getRealDir(QString("Themes/%1/icon.png").arg(theme).toLocal8Bit().data());
+        dataset.insert(Qt::UserRole + 2, !themeDir.startsWith(appDir));
+
+        // set icon path
+        dataset.insert(Qt::UserRole + 1, iconpath);
+
         // set name
         dataset.insert(Qt::DisplayRole, theme);
 
         // load and set icon
-        QIcon icon(iconpath);
+        QIcon icon;
+        icon.addPixmap(QPixmap(iconpath), QIcon::Normal);
+        icon.addPixmap(QPixmap(iconpath), QIcon::Disabled);
 
         dataset.insert(Qt::DecorationRole, icon);
 
@@ -91,7 +102,3 @@
 
     endResetModel();
 }
-
-
-
-
--- a/QTfrontend/model/roomslistmodel.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/roomslistmodel.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -43,7 +43,8 @@
      << tr("Rules")
      << tr("Weapons");
 
-    m_mapModel = DataManager::instance().mapModel();
+    m_staticMapModel = DataManager::instance().staticMapModel();
+    m_missionMapModel = DataManager::instance().missionMapModel();
 }
 
 
@@ -134,7 +135,8 @@
             }
 
             // prefix ? if map not available
-            if ((m_mapModel->indexOf(content) < 0))
+            if (!m_staticMapModel->mapExists(content) &&
+                !m_missionMapModel->mapExists(content))
                 return QString ("? %1").arg(content);
         }
 
@@ -144,10 +146,14 @@
     // dye map names red if map not available
     if (role == Qt::ForegroundRole)
     {
-        if ((m_mapModel->indexOf(content) < 0))
+        if (content == "+rnd+" ||
+            content == "+maze+" ||
+            content == "+drawn+" ||
+            m_staticMapModel->mapExists(content) ||
+            m_missionMapModel->mapExists(content))
+            return QVariant();
+        else
             return QBrush(QColor("darkred"));
-        else
-            return QVariant();
     }
 
     if (role == Qt::TextAlignmentRole)
--- a/QTfrontend/model/roomslistmodel.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/model/roomslistmodel.h	Sun Jan 27 00:28:57 2013 +0100
@@ -64,7 +64,8 @@
     const int c_nColumns;
     QList<QStringList> m_data;
     QStringList m_headerData;
-    MapModel * m_mapModel;
+    MapModel * m_staticMapModel;
+    MapModel * m_missionMapModel;
 
     QStringList roomInfo2RoomRecord(const QStringList & info);
 };
--- a/QTfrontend/net/newnetclient.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/net/newnetclient.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -28,6 +28,8 @@
 #include "game.h"
 #include "roomslistmodel.h"
 #include "playerslistmodel.h"
+#include "servermessages.h"
+#include "HWApplication.h"
 
 char delimeter='\n';
 
@@ -251,7 +253,7 @@
     if (lst[0] == "ERROR")
     {
         if (lst.size() == 2)
-            emit Error(lst[1]);
+            emit Error(HWApplication::translate("server", lst[1].toAscii().constData()));
         else
             emit Error("Unknown error");
         return;
@@ -260,7 +262,7 @@
     if (lst[0] == "WARNING")
     {
         if (lst.size() == 2)
-            emit Warning(lst[1]);
+            emit Warning(HWApplication::translate("server", lst[1].toAscii().constData()));
         else
             emit Warning("Unknown warning");
         return;
@@ -579,14 +581,14 @@
         if (lst[1] == "Authentication failed")
         {
             emit AuthFailed();
-        m_game_connected = false;
-        Disconnect();
-        //omitted 'emit disconnected()', we don't want the error message
-        return;
+            m_game_connected = false;
+            Disconnect();
+            //omitted 'emit disconnected()', we don't want the error message
+            return;
         }
         m_game_connected = false;
         Disconnect();
-        emit disconnected(lst[1]);
+        emit disconnected(HWApplication::translate("server", lst[1].toAscii().constData()));
         return;
     }
 
@@ -926,6 +928,20 @@
     }
 }
 
+void HWNewNet::consoleCommand(const QString & cmd)
+{
+    RawSendNet(QString("CMD%1%2").arg(delimeter).arg(cmd));
+}
+
+bool HWNewNet::allPlayersReady()
+{
+    int ready = 0;
+    for (int i = 0; i < m_roomPlayersModel->rowCount(); i++)
+        if (m_roomPlayersModel->index(i, 0).data(PlayersListModel::Ready).toBool()) ready++;
+
+    return (ready == m_roomPlayersModel->rowCount());
+}
+
 void HWNewNet::startGame()
 {
     RawSendNet(QString("START_GAME"));
--- a/QTfrontend/net/newnetclient.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/net/newnetclient.h	Sun Jan 27 00:28:57 2013 +0100
@@ -60,6 +60,7 @@
         RoomsListModel * roomsListModel();
         QAbstractItemModel * lobbyPlayersModel();
         QAbstractItemModel * roomPlayersModel();
+        bool allPlayersReady();
 
     private:
         bool isChief;
@@ -155,6 +156,7 @@
         void kickPlayer(const QString &);
         void infoPlayer(const QString &);
         void followPlayer(const QString &);
+        void consoleCommand(const QString &);
         void startGame();
         void toggleRestrictJoins();
         void toggleRestrictTeamAdds();
Binary file QTfrontend/res/Start.png has changed
Binary file QTfrontend/res/audio.png has changed
Binary file QTfrontend/res/camera.png has changed
--- a/QTfrontend/res/css/qt.css	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/res/css/qt.css	Sun Jan 27 00:28:57 2013 +0100
@@ -33,7 +33,7 @@
 a { color:#c8c8ff; }
 
 QLineEdit, QListWidget, QListView, QTableView, QTextBrowser, QSpinBox, QComboBox,
-QComboBox QAbstractItemView, QPlainTextEdit, QMenu::item {
+QComboBox QAbstractItemView, QPlainTextEdit, QMenu::item, #labelLikeLineEdit {
 background-color: rgba(13, 5, 68, 70%);
 }
 
@@ -44,8 +44,8 @@
 QPushButton, QListWidget, QListView, QTableView, QLineEdit, QHeaderView,
 QTextBrowser, QSpinBox, QToolBox, QComboBox, QPlainTextEdit,
 QComboBox QAbstractItemView, IconedGroupBox,
-.QGroupBox, GameCFGWidget, TeamSelWidget, SelWeaponWidget,
-QTabWidget::pane, QTabBar::tab {
+.QGroupBox, #gameStackContainer, TeamSelWidget, SelWeaponWidget,
+QTabWidget::pane, QTabBar::tab, #mapPreview, #labelLikeLineEdit {
 border: solid;
 border-width: 3px;
 border-color: #ffcc00;
@@ -56,14 +56,30 @@
 border-color: yellow;
 }
 
+QToolButton {
+background-color: #11084A;
+}
+
+QToolButton:hover {
+background-color: #150A61;
+}
+
+QToolButton:pressed {
+background-color: #100744;
+}
+
 QLineEdit, QListWidget, QListView, QTableView, QTextBrowser,
-QSpinBox, QToolBox, QPlainTextEdit {
+QSpinBox, QToolBox, QPlainTextEdit, QToolButton, #mapPreview, #labelLikeLineEdit {
 border-radius: 10px;
 }
 
+#mapPreview {
+background-color: #0d0544;
+}
+
 QLineEdit, QLabel, QHeaderView, QListWidget, QListView, QTableView,
 QSpinBox, QToolBox::tab, QComboBox, QComboBox QAbstractItemView,
-IconedGroupBox, .QGroupBox, GameCFGWidget, TeamSelWidget,
+IconedGroupBox, .QGroupBox, #gameStackContainer, TeamSelWidget,
 SelWeaponWidget, QCheckBox, QRadioButton, QPushButton, QPlainTextEdit {
 font: bold 13px;
 }
@@ -72,7 +88,7 @@
 background-repeat: repeat-x;
 background-color: #000000;
 }
-.QGroupBox,GameCFGWidget,TeamSelWidget,SelWeaponWidget {
+.QGroupBox, #gameStackContainer, TeamSelWidget, SelWeaponWidget {
 background-position: bottom center;
 background-repeat: repeat-x;
 border-radius: 16px;
@@ -89,6 +105,18 @@
 background-color: #130f2c;
 }
 
+QTabWidget::pane {
+border-radius: 8px;
+border-top-left-radius: 0px;
+}
+
+QLineEdit:disabled, QSpinBox:disabled {
+border-color: gray;
+}
+
+GameCFGWidget {
+border: none;
+}
 
 QPushButton {
 border-radius: 8px;
@@ -97,7 +125,7 @@
 background-color: rgba(18, 42, 5, 70%);
 }
 
-QPushButton:pressed{
+QPushButton:pressed, QToolButton:pressed {
 border-color: white;
 }
 
@@ -240,9 +268,62 @@
 
 QSlider::handle::horizontal {
 border: 0px;
-margin: -2px 0px;
+margin: -8px 0px;
+background-color: #ffcc00;
+width: 12px;
+height: 6px;
 border-radius: 3px;
-background-color: #ffcc00;
-width: 8px;
+}
+
+HatButton {
+text-align: left;
+}
+
+#hatList, #hatList:hover {
+border-color: #F6CB1C;
+}
+
+#hatList QScrollBar {
+background-color: #130F2A;
+border-top-right-radius: 10px;
+border-bottom-right-radius: 10px;
+}
+
+#hatList {
+border-color: #F6CB1C;
+border-width: 3px;
+border-style: solid;
+border-radius: 10px;
+border-top-left-radius: 0px;
 }
 
+#hatList::item {
+background-color: #11084A;
+padding: 4px;
+border-radius: 10px;
+color: #ffcc00 !important;
+font: 8px;
+border-width: 2px;
+border-color: #11084A;
+}
+
+#hatList::item:hover {
+background-color: #150A61;
+}
+
+#hatList::item:selected {
+background-color: #150A61;
+}
+
+QDialogButtonBox QPushButton {
+padding: 3px 5px;
+}
+
+#gameCfgWidgetTabs {
+border-radius: 16px;
+border-top-left-radius: 0px;
+}
+
+TeamSelWidget, #gameStackContainer, #GBoxOptions {
+border-radius: 10px;
+}
\ No newline at end of file
--- a/QTfrontend/res/html/about.html	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/res/html/about.html	Sun Jan 27 00:28:57 2013 +0100
@@ -8,8 +8,8 @@
 </style>
 </head>
 <body>
-	<h2>Developers:</h2>
-	<p>
+    <h2>Developers:</h2>
+    <p>
         Engine, frontend, net server: Andrey Korotaev &lt;<a href="mailto:unC0Rr@gmail.com">unC0Rr@gmail.com</a>&gt;<br>
         Many frontend improvements: Igor Ulyanov &lt;<a href="mailto:disinbox@gmail.com">disinbox@gmail.com</a>&gt;<br>
         Many engine and frontend improvements: Derek Pomery &lt;<a href="mailto:nemo@m8y.org">nemo@m8y.org</a>&gt;<br>
@@ -31,7 +31,7 @@
         Video recording: Stepan Podoskin &lt;<a href="mailto:stepik-777@mail.ru">stepik-777@mail.ru</a>&gt;<br>
         Campaign support, first campaign: Szabolcs Orb&agrave;n &lt;<a href="mailto:szabibibi@gmail.com">szabibibi@gmail.com</a>&gt;<br>
         </p>
-        
+
         <h2>Art:</h2>
             <p>John Dum &lt;<a href="mailto:fizzy@gmail.com">fizzy@gmail.com</a>&gt;
             <br>
@@ -49,7 +49,7 @@
             <br>
             Hats: Trey Perry &lt;<a href="mailto:tx.perry.j@gmail.com">tx.perry.j@gmail.com</a>&gt;
             </p>
-        
+
         <h2>Sounds:</h2>
         <p>
         Hedgehogs voice: Stephen Alexander &lt;<a href="mailto:ArmagonNo1@gmail.com">ArmagonNo1@gmail.com</a>&gt;
Binary file QTfrontend/res/inverse-corner-bl.png has changed
Binary file QTfrontend/res/splash.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/res/xml/tips.xml	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,61 @@
+# This is not xml actually, but it looks and behaves like it.
+# Including an xml library would need too much resources.
+# Tips between the platform specific tags are shown only on those platforms.
+# Do not escape characters or use the CDATA tag.
+<tips>
+    <tip>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they'll win or lose together.</tip>
+    <tip>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</tip>
+    <tip>If you're unsure what to do and don't want to waste ammo, skip one round. But don't let too much time pass as there will be Sudden Death!</tip>
+    <tip>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don't touch the ground or miss a shot you'll reuse your rope without wasting ammo!</tip>
+    <tip>If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</tip>
+    <tip>You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.</tip>
+    <tip>By default the game will always record the last game played as a demo. Select 'Local Game' and pick the 'Demos' button on the lower right corner to play or manage them.</tip>
+    <tip>Hedgewars is free software (Open Source) we create in our spare time. If you've got problems, ask on our forums or visit our IRC room!</tip>
+    <tip>Hedgewars is free software (Open Source) we create in our spare time. If you like it, help us with a small donation or contribute your own work!</tip>
+    <tip>Hedgewars is free software (Open Source) we create in our spare time. Share it with your family and friends as you like!</tip>
+    <tip>Hedgewars is free software (Open Source) we create in our spare time, just for fun! Meet the devs in <a href="irc://irc.freenode.net/hedgewars">#hedgewars</a>!</tip>
+    <tip>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</tip>
+    <tip>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</tip>
+    <tip>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and GNU/Linux.</tip>
+    <tip>Always remember you're able to set up your own games in local and network/online play. You're not restricted to the 'Simple Game' option.</tip>
+    <tip>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</tip>
+    <tip>Create an account on <a href="http://www.hedgewars.org/">http://www.hedgewars.org/</a> to keep others from using your most favourite nickname while playing on the official server.</tip>
+    <tip>While playing you should give yourself a short break at least once an hour.</tip>
+    <tip>If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</tip>
+    <tip>If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.</tip>
+    <tip>We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!</tip>
+    <tip>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</tip>
+    <tip>Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!</tip>
+    <tip>You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!</tip>
+    <tip>Hedgewars can be perfect for short games during breaks. Just ensure you don't add too many hedgehogs or use an huge map. Reducing time and health might help as well.</tip>
+    <tip>No hedgehogs were harmed in making this game.</tip>
+    <tip>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</tip>
+    <tip>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</tip>
+    <tip>Some weapons require special strategies or just lots of training, so don't give up on a particular tool if you miss an enemy once.</tip>
+    <tip>Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</tip>
+    <tip>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</tip>
+    <tip>The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.</tip>
+    <tip>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</tip>
+    <tip>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</tip>
+    <tip>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</tip>
+    <tip>If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</tip>
+    <tip>The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</tip>
+    <tip>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</tip>
+    <tip>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</tip>
+    <tip>Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.</tip>
+    <tip>Like Hedgewars? Become a fan on <a href="http://www.facebook.com/Hedgewars">Facebook</a> or follow us on <a href="http://twitter.com/hedgewars">Twitter</a></tip>
+    <tip>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online.</tip>
+    <tip>Keep your video card drivers up to date to avoid issues playing the game.</tip>
+    <tip>You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</tip>
+    <windows-only>
+	    <tip>The version of Hedgewars supports <a href="http://www.xfire.com">Xfire</a>. Make sure to add Hedgewars to its game list so your friends can see you playing.</tip>
+        <tip>You can find your Hedgewars configuration files under "My Documents\Hedgewars". Create backups or take the files with you, but don't edit them by hand.</tip>
+    </windows-only>
+    <mac-only>
+        <tip>You can find your Hedgewars configuration files under "Library/Application Support/Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand.</tip>
+    </mac-only>
+    <linux-only>
+        <tip>lintip</tip>
+        <tip>You can find your Hedgewars configuration files under ".hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand.</tip>
+    </linux-only>
+</tips>
--- a/QTfrontend/team.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/team.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -23,10 +23,12 @@
 #include <QCryptographicHash>
 #include <QSettings>
 #include <QStandardItemModel>
+#include <QDebug>
 
 #include "team.h"
 #include "hwform.h"
 #include "DataManager.h"
+#include "gameuiconfig.h"
 
 HWTeam::HWTeam(const QString & teamname) :
     QObject(0)
@@ -50,7 +52,7 @@
     {
         m_binds.append(BindAction());
         m_binds[i].action = cbinds[i].action;
-        m_binds[i].strbind = cbinds[i].strbind;
+        m_binds[i].strbind = QString();
     }
     m_rounds = 0;
     m_wins = 0;
@@ -110,7 +112,7 @@
     {
         m_binds.append(BindAction());
         m_binds[i].action = cbinds[i].action;
-        m_binds[i].strbind = cbinds[i].strbind;
+        m_binds[i].strbind = QString();
     }
     m_rounds = 0;
     m_wins = 0;
@@ -191,7 +193,7 @@
         m_hedgehogs[i].Suicides = teamfile.value(hh + "Suicides", 0).toInt();
     }
     for(int i = 0; i < BINDS_NUMBER; i++)
-        m_binds[i].strbind = teamfile.value(QString("Binds/%1").arg(m_binds[i].action), cbinds[i].strbind).toString();
+        m_binds[i].strbind = teamfile.value(QString("Binds/%1").arg(m_binds[i].action), QString()).toString();
     for(int i = 0; i < MAX_ACHIEVEMENTS; i++)
         if(achievements[i][0][0])
             AchievementProgress[i] = teamfile.value(QString("Achievements/%1").arg(achievements[i][0]), 0).toUInt();
@@ -257,7 +259,7 @@
     return true;
 }
 
-QStringList HWTeam::teamGameConfig(quint32 InitHealth) const
+QStringList HWTeam::teamGameConfig(quint32 InitHealth, GameUIConfig * config) const
 {
     QStringList sl;
     if (m_isNetTeam)
@@ -273,9 +275,15 @@
     sl.push_back(QString("eflag " + m_flag));
 
     if (!m_isNetTeam)
+    {
         for(int i = 0; i < BINDS_NUMBER; i++)
-            if(!m_binds[i].strbind.isEmpty())
+        {
+            if(m_binds[i].strbind.isEmpty() || m_binds[i].strbind == "default")
+                sl.push_back(QString("ebind " + config->bind(i) + " " + m_binds[i].action));
+            else
                 sl.push_back(QString("ebind " + m_binds[i].strbind + " " + m_binds[i].action));
+        }
+    }
 
     for (int t = 0; t < m_numHedgehogs; t++)
     {
--- a/QTfrontend/team.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/team.h	Sun Jan 27 00:28:57 2013 +0100
@@ -93,7 +93,7 @@
         void incWins();
 
         // convert team info into strings for further computation
-        QStringList teamGameConfig(quint32 InitHealth) const;
+        QStringList teamGameConfig(quint32 InitHealth, GameUIConfig * config) const;
 
         // comparison operators
         bool operator == (const HWTeam& t1) const;
--- a/QTfrontend/ui/dialog/bandialog.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/dialog/bandialog.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -6,6 +6,7 @@
 #include <QPushButton>
 #include <QHBoxLayout>
 #include <QMessageBox>
+#include "HWApplication.h"
 
 #include "bandialog.h"
 
@@ -21,15 +22,16 @@
     leReason = new QLineEdit(this);
     cbTime = new QComboBox(this);
 
-    cbTime->addItem(tr("10 minutes"), 5 * 60);
-    cbTime->addItem(tr("30 minutes"), 10 * 60);
-    cbTime->addItem(tr("1 hour"), 60 * 60);
-    cbTime->addItem(tr("3 hours"), 3 * 60 * 60);
-    cbTime->addItem(tr("5 hours"), 5 * 60 * 60);
-    cbTime->addItem(tr("24 hours"), 24 * 60 * 60);
-    cbTime->addItem(tr("3 days"), 72 * 60 * 60);
-    cbTime->addItem(tr("7 days"), 168 * 60 * 60);
-    cbTime->addItem(tr("14 days"), 336 * 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 minutes", 0, 10).arg("10"), 5 * 60);
+    cbTime->addItem(HWApplication::tr("%1 minutes", 0, 30).arg("30"), 10 * 60);
+    cbTime->addItem(HWApplication::tr("%1 hour", 0, 10).arg("10"), 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 hours", 0, 3).arg("3"), 3 * 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 hours", 0, 5).arg("5"), 5 * 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 hours", 0, 12).arg("12"), 12 * 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 day", 0, 1).arg("1"), 24 * 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 days", 0, 3).arg("3"), 72 * 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 days", 0, 7).arg("7"), 168 * 60 * 60);
+    cbTime->addItem(HWApplication::tr("%1 days", 0, 14).arg("14"), 336 * 60 * 60);
     cbTime->addItem(tr("permanent"), 3650 * 24 * 60 * 60);
     cbTime->setCurrentIndex(0);
 
--- a/QTfrontend/ui/dialog/input_password.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/dialog/input_password.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -60,6 +60,7 @@
     layout->addWidget(cbSave, 5, 0);
 
     QDialogButtonBox* dbbButtons = new QDialogButtonBox(this);
+    pbNewAccount = dbbButtons->addButton(QString("New Account"), QDialogButtonBox::ActionRole);
     QPushButton * pbOK = dbbButtons->addButton(QDialogButtonBox::Ok);
     QPushButton * pbCancel = dbbButtons->addButton(QDialogButtonBox::Cancel);
     layout->addWidget(dbbButtons, 6, 0);
--- a/QTfrontend/ui/dialog/input_password.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/dialog/input_password.h	Sun Jan 27 00:28:57 2013 +0100
@@ -23,6 +23,7 @@
 
 class QLineEdit;
 class QCheckBox;
+class QPushButton;
 
 class HWPasswordDialog : public QDialog
 {
@@ -33,6 +34,7 @@
         QLineEdit* lePassword;
         QLineEdit* leNickname;
         QCheckBox* cbSave;
+        QPushButton * pbNewAccount;
 };
 
 
--- a/QTfrontend/ui/page/AbstractPage.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/AbstractPage.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -25,6 +25,7 @@
 #include <QLabel>
 #include <QSize>
 #include <QFontMetricsF>
+#include <QDebug>
 
 #include "qpushbuttonwithsound.h"
 
@@ -39,6 +40,8 @@
 void AbstractPage::initPage()
 {
     QGridLayout * pageLayout = new QGridLayout(this);
+    QHBoxLayout * bottomLeftLayout = new QHBoxLayout();
+    pageLayout->addLayout(bottomLeftLayout, 1, 0);
 
     // stretch grid space for body and footer
     pageLayout->setColumnStretch(0,1);
@@ -50,17 +53,23 @@
     // add back/exit button
     btnBack = formattedButton(":/res/Exit.png", true);
     btnBack->setWhatsThis(tr("Go back"));
-    pageLayout->addWidget(btnBack, 1, 0, 1, 1, Qt::AlignLeft | Qt::AlignBottom);
+    bottomLeftLayout->addWidget(btnBack, 0);
 
     // add body layout as defined by the subclass
     pageLayout->addLayout(bodyLayoutDefinition(), 0, 0, 1, 3);
 
+    // add left footer layout
+    QLayout * flld = footerLayoutLeftDefinition();
+    if (flld != NULL)
+        bottomLeftLayout->addLayout(flld, 0);
+
     descLabel = new QLabel();
     descLabel->setAlignment(Qt::AlignCenter);
     descLabel->setWordWrap(true);
     descLabel->setOpenExternalLinks(true);
     descLabel->setFixedHeight(50);
     descLabel->setStyleSheet("font-size: 16px");
+    bottomLeftLayout->addWidget(descLabel);
     pageLayout->addWidget(descLabel, 1, 1);
 
     // add footer layout
@@ -68,6 +77,8 @@
     if (fld != NULL)
         pageLayout->addLayout(fld, 1, 2);
 
+    bottomLeftLayout->addStretch(1);
+
     // connect signals
     connect(btnBack, SIGNAL(clicked()), this, SIGNAL(goBack()));
     connectSignals();
@@ -157,3 +168,13 @@
 {
     return defautDesc;
 }
+
+void AbstractPage::triggerPageEnter()
+{
+    emit pageEnter();
+}
+
+void AbstractPage::triggerPageLeave()
+{
+    emit pageLeave();
+}
--- a/QTfrontend/ui/page/AbstractPage.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/AbstractPage.h	Sun Jan 27 00:28:57 2013 +0100
@@ -78,12 +78,35 @@
         QString * getDefautDescription();
 
     signals:
+
         /**
          * @brief This signal is emitted when going back to the previous is
          * requested - e.g. when the back-button is clicked.
          */
         void goBack();
 
+        /**
+         * @brief This signal is emitted when the page is displayed
+         */
+        void pageEnter();
+
+        /**
+         * @brief This signal is emitted when this page is left
+         */
+        void pageLeave();
+
+    public slots:
+
+        /**
+         * @brief This slot is called to trigger this page's pageEnter signal
+         */
+        void triggerPageEnter();
+
+        /**
+         * @brief This slot is called to trigger this page's pageLeave signal
+         */
+        void triggerPageLeave();
+
     protected:
         /**
          * @brief Class constructor
@@ -121,6 +144,17 @@
          * @brief Used during page construction.
          * You can implement this method in your subclass.
          *
+         * Use it to define layout (not behavior) of the page's footer to the left of the help text.
+         */
+        virtual QLayout * footerLayoutLeftDefinition()
+        {
+            return NULL;
+        };
+
+        /**
+         * @brief Used during page construction.
+         * You can implement this method in your subclass.
+         *
          * This is a good place to connect signals within your page in order
          * to get the desired page behavior.<br />
          * Keep in mind not to expose twidgets as public!
--- a/QTfrontend/ui/page/pageeditteam.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pageeditteam.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -30,25 +30,26 @@
 #include <QDebug>
 #include "SquareLabel.h"
 #include "HWApplication.h"
+#include "keybinder.h"
 
 #include "DataManager.h"
-#include "HatModel.h"
+#include "hatbutton.h"
 
 #include "pageeditteam.h"
 
 QLayout * PageEditTeam::bodyLayoutDefinition()
 {
     QGridLayout * pageLayout = new QGridLayout();
-    QTabWidget * tbw = new QTabWidget();
+    tbw = new QTabWidget();
     QWidget * page1 = new QWidget(this);
-    QWidget * page2 = new QWidget(this);
+    binder = new KeyBinder(this, tr("Select an action to choose a custom key bind for this team"), tr("Use my default"), tr("Reset all binds"));
+    connect(binder, SIGNAL(resetAllBinds()), this, SLOT(resetAllBinds()));
     tbw->addTab(page1, tr("General"));
-    tbw->addTab(page2, tr("Advanced"));
+    tbw->addTab(binder, tr("Custom Controls"));
     pageLayout->addWidget(tbw, 0, 0, 1, 3);
 
     QHBoxLayout * page1Layout = new QHBoxLayout(page1);
     page1Layout->setAlignment(Qt::AlignTop);
-    QGridLayout * page2Layout = new QGridLayout(page2);
 
 // ====== Page 1 ======
     QVBoxLayout * vbox1 = new QVBoxLayout();
@@ -61,27 +62,33 @@
     GBoxHedgehogs->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
     QGridLayout * GBHLayout = new QGridLayout(GBoxHedgehogs);
 
-    HatModel * hatModel = DataManager::instance().hatModel();
+
+    GBHLayout->addWidget(new QLabel(tr("Hat")), 0, 0);
+    GBHLayout->addWidget(new QLabel(tr("Name")), 0, 1);
 
     for(int i = 0; i < HEDGEHOGS_PER_TEAM; i++)
     {
-        HHHats[i] = new QComboBox(GBoxHedgehogs);
-        HHHats[i]->setModel(hatModel);
-        HHHats[i]->setIconSize(QSize(32, 37));
-        //HHHats[i]->setSizeAdjustPolicy(QComboBox::AdjustToContents);
-        //HHHats[i]->setModelColumn(1);
-        //HHHats[i]->setMinimumWidth(132);
-        GBHLayout->addWidget(HHHats[i], i, 0);
+        HHHats[i] = new HatButton(GBoxHedgehogs);
+        GBHLayout->addWidget(HHHats[i], i + 1, 0);
 
         HHNameEdit[i] = new QLineEdit(GBoxHedgehogs);
         HHNameEdit[i]->setMaxLength(64);
         HHNameEdit[i]->setMinimumWidth(120);
-        GBHLayout->addWidget(HHNameEdit[i], i, 1);
+        HHNameEdit[i]->setFixedHeight(36);
+        HHNameEdit[i]->setWhatsThis(tr("This hedgehog's name"));
+        HHNameEdit[i]->setStyleSheet("padding: 6px;");
+        GBHLayout->addWidget(HHNameEdit[i], i + 1, 1);
 
-        btnRandomHogName[i] = addButton(":/res/dice.png", GBHLayout, i, 3, 1, 1, true);
+        btnRandomHogName[i] = addButton(":/res/dice.png", GBHLayout, i + 1, 3, 1, 1, true);
+        btnRandomHogName[i]->setFixedHeight(HHNameEdit[i]->height());
+        btnRandomHogName[i]->setWhatsThis(tr("Randomize this hedgehog's name"));
     }
 
-    btnRandomTeam = addButton(QPushButton::tr("Random Team"), GBHLayout, 9, 0);
+    btnRandomTeam = new QPushButton();
+    btnRandomTeam->setText(tr("Random Team"));
+    btnRandomTeam->setStyleSheet("padding: 6px 10px;");
+    GBHLayout->addWidget(btnRandomTeam, 9, 0, 1, 4, Qt::AlignCenter);
+    btnRandomTeam->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
 
     vbox1->addWidget(GBoxHedgehogs);
 
@@ -157,52 +164,6 @@
     vbox1->addStretch();
     vbox2->addStretch();
 
-// ====== Page 2 ======
-    GBoxBinds = new QGroupBox(this);
-    GBoxBinds->setTitle(QGroupBox::tr("Key binds"));
-    QGridLayout * GBBLayout = new QGridLayout(GBoxBinds);
-    BindsBox = new QToolBox(GBoxBinds);
-    BindsBox->setLineWidth(0);
-    GBBLayout->addWidget(BindsBox);
-    page2Layout->addWidget(GBoxBinds, 0, 0);
-
-    quint16 i = 0;
-    quint16 num = 0;
-    QWidget * curW = NULL;
-    QGridLayout * pagelayout = NULL;
-    QLabel* l = NULL;
-    while (i < BINDS_NUMBER)
-    {
-        if(cbinds[i].category != NULL)
-        {
-            if(curW != NULL)
-            {
-                l = new QLabel(curW);
-                l->setText("");
-                pagelayout->addWidget(l, num++, 0, 1, 2);
-            }
-            curW = new QWidget(this);
-            BindsBox->addItem(curW, HWApplication::translate("binds (categories)", cbinds[i].category));
-            pagelayout = new QGridLayout(curW);
-            num = 0;
-        }
-        if(cbinds[i].description != NULL)
-        {
-            l = new QLabel(curW);
-            l->setText((num > 0 ? QString("\n") : QString("")) + HWApplication::translate("binds (descriptions)", cbinds[i].description));
-            pagelayout->addWidget(l, num++, 0, 1, 2);
-        }
-
-        l = new QLabel(curW);
-        l->setText(HWApplication::translate("binds", cbinds[i].name));
-        l->setAlignment(Qt::AlignRight);
-        pagelayout->addWidget(l, num, 0);
-
-        CBBind[i] = new QComboBox(curW);
-        CBBind[i]->setModel(DataManager::instance().bindsModel());
-        pagelayout->addWidget(CBBind[i++], num++, 1);
-    }
-
     return pageLayout;
 }
 
@@ -213,7 +174,7 @@
 
 void PageEditTeam::connectSignals()
 {
-    connect(this, SIGNAL(goBack()), this, SLOT(saveTeam()));
+    connect(this, SIGNAL(pageLeave()), this, SLOT(saveTeam()));
 
     signalMapper1 = new QSignalMapper(this);
     signalMapper2 = new QSignalMapper(this);
@@ -407,6 +368,9 @@
 
 void PageEditTeam::loadTeam(const HWTeam & team)
 {
+    tbw->setCurrentIndex(0);
+    binder->resetInterface();
+
     TeamNameEdit->setText(team.name());
     CBTeamLvl->setCurrentIndex(team.difficulty());
 
@@ -419,7 +383,7 @@
         if (hh.Hat.startsWith("Reserved"))
             hh.Hat = "Reserved "+hh.Hat.remove(0,40);
 
-        HHHats[i]->setCurrentIndex(HHHats[i]->findData(hh.Hat, Qt::DisplayRole));
+        HHHats[i]->setCurrentHat(hh.Hat);
     }
 
     CBGrave->setCurrentIndex(CBGrave->findText(team.grave()));
@@ -431,10 +395,12 @@
     QStandardItemModel * binds = DataManager::instance().bindsModel();
     for(int i = 0; i < BINDS_NUMBER; i++)
     {
+        if (team.keyBind(i).isEmpty()) continue;
+
         QModelIndexList mdl = binds->match(binds->index(0, 0), Qt::UserRole + 1, team.keyBind(i), 1, Qt::MatchExactly);
 
         if(mdl.size() == 1)
-            CBBind[i]->setCurrentIndex(mdl[0].row());
+            binder->setBindIndex(i, mdl[0].row());
         else
             qDebug() << "Binds: cannot find" << team.keyBind(i);
     }
@@ -449,7 +415,7 @@
     {
         HWHog hh;
         hh.Name = HHNameEdit[i]->text();
-        hh.Hat = HHHats[i]->currentText();
+        hh.Hat = HHHats[i]->currentHat();
 
         if (hh.Hat.startsWith("Reserved"))
             hh.Hat = "Reserved"+m_playerHash+hh.Hat.remove(0,9);
@@ -465,7 +431,7 @@
     QStandardItemModel * binds = DataManager::instance().bindsModel();
     for(int i = 0; i < BINDS_NUMBER; i++)
     {
-        team.bindKey(i, binds->index(CBBind[i]->currentIndex(), 0).data(Qt::UserRole + 1).toString());
+        team.bindKey(i, binds->index(binder->bindIndex(i), 0).data(Qt::UserRole + 1).toString());
     }
 
     return team;
@@ -475,3 +441,10 @@
 {
     data().saveToFile();
 }
+
+// When the "Use default for all binds" is pressed...
+void PageEditTeam::resetAllBinds()
+{
+    for (int i = 0; i < BINDS_NUMBER; i++)
+        binder->setBindIndex(i, 0);
+}
--- a/QTfrontend/ui/page/pageeditteam.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pageeditteam.h	Sun Jan 27 00:28:57 2013 +0100
@@ -28,6 +28,8 @@
 #include "team.h"
 
 class SquareLabel;
+class KeyBinder;
+class HatButton;
 
 class PageEditTeam : public AbstractPage
 {
@@ -44,6 +46,7 @@
         void CBFort_activated(const QString & gravename);
 
     private:
+        QTabWidget * tbw;
         QSignalMapper* signalMapper1;
         QSignalMapper* signalMapper2;
         QGroupBox *GBoxHedgehogs;
@@ -59,10 +62,10 @@
         QToolBox *BindsBox;
         QLineEdit * TeamNameEdit;
         QLineEdit * HHNameEdit[HEDGEHOGS_PER_TEAM];
-        QComboBox * HHHats[HEDGEHOGS_PER_TEAM];
-        QComboBox * CBBind[BINDS_NUMBER];
+        HatButton * HHHats[HEDGEHOGS_PER_TEAM];
         HWTeam data();
         QString m_playerHash;
+        KeyBinder * binder;
 
         QLayout * bodyLayoutDefinition();
         QLayout * footerLayoutDefinition();
@@ -85,6 +88,7 @@
         void testSound();
 
         void fixHHname(int idx);
+        void resetAllBinds();
 };
 
 #endif
--- a/QTfrontend/ui/page/pagefeedback.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,400 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <QHBoxLayout>
-#include <QLineEdit>
-#include <QTextBrowser>
-#include <QLabel>
-#include <QHttp>
-#include <QSysInfo>
-#include <QDebug>
-#include <QBuffer>
-#include <QApplication>
-#include <QDesktopWidget>
-#include <QNetworkReply>
-#include <QProcess>
-#include <QMessageBox>
-#include <QCheckBox>
-
-#include <string>
-
-#ifdef Q_WS_WIN
-#define WINVER 0x0500
-#include <windows.h>
-#else
-#include <unistd.h>
-#include <sys/types.h>
-#endif
-
-#ifdef Q_WS_MAC
-#include <sys/sysctl.h>
-#endif
-
-#include <stdint.h>
-
-#include "pagefeedback.h"
-#include "hwconsts.h"
-
-QLayout * PageFeedback::bodyLayoutDefinition()
-{
-    QVBoxLayout * pageLayout = new QVBoxLayout();
-    QHBoxLayout * summaryLayout = new QHBoxLayout();
-    QHBoxLayout * emailLayout = new QHBoxLayout();
-    QHBoxLayout * descriptionLayout = new QHBoxLayout();
-    QHBoxLayout * combinedTopLayout = new QHBoxLayout();
-    QHBoxLayout * systemLayout = new QHBoxLayout();
-
-    info = new QLabel();
-    info->setText(
-        "<style type=\"text/css\">"
-        "a { color: #fc0; }"
-        "b { color: #0df; }"
-        "</style>"
-        "<div align=\"center\"><h1>Please give us feedback!</h1>"
-        "<h3>We are always happy about suggestions, ideas, or bug reports.<h3>"
-        "<h4>Your email address is optional, but we may want to contact you.<h4>"
-        "</div>"
-    );
-    pageLayout->addWidget(info);
-
-    QVBoxLayout * summaryEmailLayout = new QVBoxLayout();
-
-    const int labelWidth = 90;
-
-    label_email = new QLabel();
-    label_email->setText(QLabel::tr("Your Email"));
-    label_email->setFixedWidth(labelWidth);
-    emailLayout->addWidget(label_email);
-    email = new QLineEdit();
-    emailLayout->addWidget(email);
-    summaryEmailLayout->addLayout(emailLayout);
-
-    label_summary = new QLabel();
-    label_summary->setText(QLabel::tr("Summary"));
-    label_summary->setFixedWidth(labelWidth);
-    summaryLayout->addWidget(label_summary);
-    summary = new QLineEdit();
-    summaryLayout->addWidget(summary);
-    summaryEmailLayout->addLayout(summaryLayout);
-
-    combinedTopLayout->addLayout(summaryEmailLayout);
-
-
-    CheckSendSpecs = new QCheckBox();
-    CheckSendSpecs->setText(QLabel::tr("Send system information"));
-    CheckSendSpecs->setChecked(true);
-    systemLayout->addWidget(CheckSendSpecs);
-    BtnViewInfo = addButton("View", systemLayout, 1, false);
-    BtnViewInfo->setFixedSize(60, 30);
-    connect(BtnViewInfo, SIGNAL(clicked()), this, SLOT(ShowSpecs()));
-    combinedTopLayout->addLayout(systemLayout);
-
-    combinedTopLayout->setStretch(0, 1);
-    combinedTopLayout->insertSpacing(1, 20);
-
-    pageLayout->addLayout(combinedTopLayout);
-
-    label_description = new QLabel();
-    label_description->setText(QLabel::tr("Description"));
-    label_description->setFixedWidth(labelWidth);
-    descriptionLayout->addWidget(label_description, 0, Qt::AlignTop);
-    description = new QTextBrowser();
-    description->setReadOnly(false);
-    descriptionLayout->addWidget(description);
-    pageLayout->addLayout(descriptionLayout);
-
-    return pageLayout;
-}
-
-QNetworkAccessManager * PageFeedback::GetNetManager()
-{
-    if (netManager) return netManager;
-    netManager = new QNetworkAccessManager(this);
-    connect(netManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(NetReply(QNetworkReply*)));
-    return netManager;
-}
-
-void PageFeedback::LoadCaptchaImage()
-{
-        QNetworkAccessManager *netManager = GetNetManager();
-        QUrl captchaURL("http://hedgewars.org/feedback/?gencaptcha");
-        QNetworkRequest req(captchaURL);
-        genCaptchaRequest = netManager->get(req);
-}
-
-void PageFeedback::NetReply(QNetworkReply *reply)
-{
-    if (reply == genCaptchaRequest)
-    {
-        if (reply->error() != QNetworkReply::NoError)
-        {
-            qDebug() << "Error generating captcha image: " << reply->errorString();
-            ShowErrorMessage(QMessageBox::tr("Failed to generate captcha"));
-            return;
-        }
-
-        bool okay;
-        QByteArray body = reply->readAll();
-        captchaID = QString(body).toInt(&okay);
-
-        if (!okay)
-        {
-            qDebug() << "Failed to get captcha ID: " << body;
-            ShowErrorMessage(QMessageBox::tr("Failed to generate captcha"));
-            return;
-        }
-
-        QString url = "http://hedgewars.org/feedback/?captcha&id=";
-        url += QString::number(captchaID);
-
-        QNetworkAccessManager *netManager = GetNetManager();
-        QUrl captchaURL(url);
-        QNetworkRequest req(captchaURL);
-        captchaImageRequest = netManager->get(req);
-    }
-    else if (reply == captchaImageRequest)
-    {
-        if (reply->error() != QNetworkReply::NoError)
-        {
-            qDebug() << "Error loading captcha image: " << reply->errorString();
-            ShowErrorMessage(QMessageBox::tr("Failed to download captcha"));
-            return;
-        }
-
-        QByteArray imageData = reply->readAll();
-        QPixmap pixmap;
-        pixmap.loadFromData(imageData);
-        label_captcha->setPixmap(pixmap);
-        captcha_code->setText("");
-    }
-}
-
-QLayout * PageFeedback::footerLayoutDefinition()
-{
-    QHBoxLayout * bottomLayout = new QHBoxLayout();
-    QHBoxLayout * captchaLayout = new QHBoxLayout();
-    QVBoxLayout * captchaInputLayout = new QVBoxLayout();
-
-    label_captcha = new QLabel();
-    label_captcha->setStyleSheet("border: 3px solid #ffcc00; border-radius: 4px");
-    label_captcha->setText("<div style='width: 200px; height: 100px;'>loading<br>captcha</div>");
-    captchaLayout->addWidget(label_captcha);
-
-    label_captcha_input = new QLabel();
-    label_captcha_input->setText(QLabel::tr("Type the security code:"));
-    captchaInputLayout->addWidget(label_captcha_input);
-    captchaInputLayout->setAlignment(label_captcha, Qt::AlignBottom);
-    captcha_code = new QLineEdit();
-    captcha_code->setFixedSize(165, 30);
-    captchaInputLayout->addWidget(captcha_code);
-    captchaInputLayout->setAlignment(captcha_code, Qt::AlignTop);
-    captchaLayout->addLayout(captchaInputLayout);
-    captchaLayout->setAlignment(captchaInputLayout, Qt::AlignLeft);
-
-    captchaLayout->insertSpacing(-1, 40);
-    bottomLayout->addLayout(captchaLayout);
-
-    //TODO: create logo for send button
-    BtnSend = addButton("Send Feedback", bottomLayout, 0, false);
-    BtnSend->setFixedSize(120, 40);
-
-    bottomLayout->setStretchFactor(captchaLayout, 0);
-    bottomLayout->setStretchFactor(BtnSend, 1);
-
-    return bottomLayout;
-}
-
-void PageFeedback::GenerateSpecs()
-{
-    // Gather some information about the system and embed it into the report
-    QDesktopWidget* screen = QApplication::desktop();
-    QString os_version = "Operating system: ";
-    QString qt_version = QString("Qt version: ") + QT_VERSION_STR + QString("\n");
-    QString total_ram = "Total RAM: ";
-    QString number_of_cores = "Number of cores: ";
-    QString compiler_bits = "Compiler architecture: ";
-    QString compiler_version = "Compiler version: ";
-    QString kernel_line = "Kernel: ";
-    QString screen_size = "Size of the screen(s): " +
-        QString::number(screen->width()) + "x" + QString::number(screen->height()) + "\n";
-    QString number_of_screens = "Number of screens: " + QString::number(screen->screenCount()) + "\n";
-    std::string processor_name = "Processor: ";
-
-    // platform specific code
-#ifdef Q_WS_MACX
-    number_of_cores += QString::number(sysconf(_SC_NPROCESSORS_ONLN)) + "\n";
-
-    uint64_t memsize;
-    size_t len = sizeof(memsize);
-    static int mib_s[2] = { CTL_HW, HW_MEMSIZE };
-    if (sysctl (mib_s, 2, &memsize, &len, NULL, 0) == 0)
-        total_ram += QString::number(memsize/1024/1024) + " MB\n";
-    else
-        total_ram += "Error getting total RAM information\n";
-
-    int mib[] = {CTL_KERN, KERN_OSRELEASE};
-    sysctl(mib, sizeof mib / sizeof(int), NULL, &len, NULL, 0);
-
-    char *kernelVersion = (char *)malloc(sizeof(char)*len);
-    sysctl(mib, sizeof mib / sizeof(int), kernelVersion, &len, NULL, 0);
-
-    QString kernelVersionStr = QString(kernelVersion);
-    free(kernelVersion);
-    int major_version = kernelVersionStr.split(".").first().toUInt() - 4;
-    int minor_version = kernelVersionStr.split(".").at(1).toUInt();
-    os_version += QString("Mac OS X 10.%1.%2").arg(major_version).arg(minor_version) + " ";
-
-    switch(major_version)
-    {
-        case 4:  os_version += "\"Tiger\"\n"; break;
-        case 5:  os_version += "\"Leopard\"\n"; break;
-        case 6:  os_version += "\"Snow Leopard\"\n"; break;
-        case 7:  os_version += "\"Lion\"\n"; break;
-        case 8:  os_version += "\"Mountain Lion\"\n"; break;
-        default: os_version += "\"Unknown version\"\n"; break;
-    }
-#endif
-#ifdef Q_WS_WIN
-    SYSTEM_INFO sysinfo;
-    GetSystemInfo(&sysinfo);
-    number_of_cores += QString::number(sysinfo.dwNumberOfProcessors) + "\n";
-    MEMORYSTATUSEX status;
-    status.dwLength = sizeof(status);
-    GlobalMemoryStatusEx(&status);
-    total_ram += QString::number(status.ullTotalPhys);
-
-    switch(QSysInfo::WinVersion())
-    {
-        case QSysInfo::WV_2000: os_version += "Windows 2000\n"; break;
-        case QSysInfo::WV_XP: os_version += "Windows XP\n"; break;
-        case QSysInfo::WV_VISTA: os_version += "Windows Vista\n"; break;
-        case QSysInfo::WV_WINDOWS7: os_version += "Windows 7\n"; break;
-        default: os_version += "Windows (Unknown version)\n"; break;
-    }
-    kernel_line += "Windows kernel\n";
-#endif
-#ifdef Q_WS_X11
-    number_of_cores += QString::number(sysconf(_SC_NPROCESSORS_ONLN)) + "\n";
-    long pages = sysconf(_SC_PHYS_PAGES),
-#ifndef Q_OS_FREEBSD
-         available_pages = sysconf(_SC_AVPHYS_PAGES),
-#else
-         available_pages = 0,
-#endif
-         page_size = sysconf(_SC_PAGE_SIZE);
-    total_ram += QString::number(pages * page_size) + "\n";
-    os_version += "GNU/Linux or BSD\n";
-#endif
-
-    // uname -a
-#if defined(Q_WS_X11) || defined(Q_WS_MACX)
-    QProcess *process = new QProcess();
-    QStringList arguments = QStringList("-a");
-    process->start("uname", arguments);
-    if (process->waitForFinished())
-        kernel_line += QString(process->readAll());
-    delete process;
-#endif
-
-    // cpu info
-    quint32 registers[4];
-    quint32 i;
-
-    i = 0x80000002;
-    asm volatile
-      ("cpuid" : "=a" (registers[0]), "=b" (registers[1]), "=c" (registers[2]), "=d" (registers[3])
-       : "a" (i), "c" (0));
-    processor_name += std::string((const char *)&registers[0], 4);
-    processor_name += std::string((const char *)&registers[1], 4);
-    processor_name += std::string((const char *)&registers[2], 4);
-    processor_name += std::string((const char *)&registers[3], 4);
-    i = 0x80000003;
-    asm volatile
-      ("cpuid" : "=a" (registers[0]), "=b" (registers[1]), "=c" (registers[2]), "=d" (registers[3])
-       : "a" (i), "c" (0));
-    processor_name += std::string((const char *)&registers[0], 4);
-    processor_name += std::string((const char *)&registers[1], 4);
-    processor_name += std::string((const char *)&registers[2], 4);
-    processor_name += std::string((const char *)&registers[3], 4);
-    i = 0x80000004;
-    asm volatile
-      ("cpuid" : "=a" (registers[0]), "=b" (registers[1]), "=c" (registers[2]), "=d" (registers[3])
-       : "a" (i), "c" (0));
-    processor_name += std::string((const char *)&registers[0], 4);
-    processor_name += std::string((const char *)&registers[1], 4);
-    processor_name += std::string((const char *)&registers[2], 4);
-    processor_name += std::string((const char *)&registers[3], 3);
-
-    // compiler
-#ifdef __GNUC__
-    compiler_version += "GCC " + QString(__VERSION__) + "\n";
-#else
-    compiler_version += "Unknown\n";
-#endif
-
-    if(sizeof(void*) == 4)
-        compiler_bits += "i386\n";
-    else if(sizeof(void*) == 8)
-        compiler_bits += "x86_64\n";
-
-    // concat system info
-    specs = qt_version
-        + os_version
-        + total_ram
-        + screen_size
-        + number_of_screens
-        + QString::fromStdString(processor_name + "\n")
-        + number_of_cores
-        + compiler_version
-        + compiler_bits
-        + kernel_line;
-}
-
-void PageFeedback::connectSignals()
-{
-    //TODO
-}
-
-void PageFeedback::ShowErrorMessage(const QString & msg)
-{
-    QMessageBox msgMsg(this);
-    msgMsg.setIcon(QMessageBox::Warning);
-    msgMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Error"));
-    msgMsg.setText(msg);
-    msgMsg.setWindowModality(Qt::WindowModal);
-    msgMsg.exec();
-}
-
-void PageFeedback::ShowSpecs()
-{
-    QMessageBox msgMsg(this);
-    msgMsg.setIcon(QMessageBox::Information);
-    msgMsg.setWindowTitle(QMessageBox::tr("System Information Preview"));
-    msgMsg.setText(specs);
-    msgMsg.setTextFormat(Qt::PlainText);
-    msgMsg.setWindowModality(Qt::WindowModal);
-    msgMsg.setStyleSheet("background: #0A0533;");
-    msgMsg.exec();
-}
-
-PageFeedback::PageFeedback(QWidget* parent) : AbstractPage(parent)
-{
-    initPage();
-    netManager = NULL;
-    GenerateSpecs();
-}
--- a/QTfrontend/ui/page/pagefeedback.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef PAGE_FEEDBACK_H
-#define PAGE_FEEDBACK_H
-
-#include "AbstractPage.h"
-
-class QNetworkReply;
-class QNetworkAccessManager;
-
-class PageFeedback : public AbstractPage
-{
-        Q_OBJECT
-
-    public:
-        PageFeedback(QWidget * parent = 0);
-        void EmbedSystemInfo();
-        void LoadCaptchaImage();
-
-        QPushButton * BtnSend;
-        QPushButton * BtnViewInfo;
-        QCheckBox * CheckSendSpecs;
-        QLineEdit * summary;
-        QTextBrowser * description;
-        QLabel * info;
-        QLabel * label_summary;
-        QLabel * label_description;
-        QLabel * label_captcha;
-        QLabel * label_email;
-        QLabel * label_captcha_input;
-        QLineEdit * captcha_code;
-        QLineEdit * email;
-        int captchaID;
-        QString specs;
-
-    private slots:
-
-        virtual void NetReply(QNetworkReply*);
-        virtual void ShowSpecs();
-
-    private:
-        void GenerateSpecs();
-        QLayout * bodyLayoutDefinition();
-        QLayout * footerLayoutDefinition();
-        QNetworkAccessManager * GetNetManager();
-        void ShowErrorMessage(const QString & msg);
-        void connectSignals();
-
-        QNetworkAccessManager * netManager;
-        QNetworkReply * captchaImageRequest;
-        QNetworkReply * genCaptchaRequest;
-};
-
-#endif
--- a/QTfrontend/ui/page/pagegamestats.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagegamestats.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -110,6 +110,7 @@
 
 void PageGameStats::connectSignals()
 {
+    connect(this, SIGNAL(pageEnter()), this, SLOT(renderStats()));
     connect(btnSave, SIGNAL(clicked()), this, SIGNAL(saveDemoRequested()));
 }
 
--- a/QTfrontend/ui/page/pagemain.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagemain.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -42,16 +42,13 @@
     pageLayout->setRowStretch(4, 1);
 
     BtnSinglePlayer = addButton(":/res/LocalPlay.png", pageLayout, 2, 0, 1, 2, true);
-    BtnSinglePlayer->setToolTip(tr("Local Game"));
     BtnSinglePlayer->setWhatsThis(tr("Play a game on a single computer"));
     pageLayout->setAlignment(BtnSinglePlayer, Qt::AlignHCenter);
 
     //BtnNet = addButton(":/res/NetworkPlay.png", (QBoxLayout*)netLayout, 1, true);
     BtnNet = addButton(":/res/NetworkPlay.png", pageLayout, 2, 2, 1, 2, true);
-    BtnNet->setToolTip(tr("Network Game"));
     BtnNet->setWhatsThis(tr("Play a game across a network"));
     pageLayout->setAlignment(BtnNet, Qt::AlignHCenter);
-    connect(BtnNet, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
 
     originalNetworkIcon = BtnNet->icon();
     disabledNetworkIcon = QIcon(":/res/NetworkPlayDisabled.png");
@@ -65,13 +62,11 @@
     netLayout->setAlignment(Qt::AlignHCenter);
 
     BtnNetLocal = addButton("Play local network game", (QBoxLayout*)netLayout, 0, false);
-    BtnNetLocal->setToolTip(tr("Play a local network game"));
     BtnNetLocal->setWhatsThis(tr("Play a game across a local area network"));
     BtnNetLocal->setFixedSize(BtnNet->width() - 50, 60);
     BtnNetLocal->setVisible(false);
 
     BtnNetOfficial = addButton("Play official network game", (QBoxLayout*)netLayout, 0, false);
-    BtnNetOfficial->setToolTip(tr("Play a network game"));
     BtnNetOfficial->setWhatsThis(tr("Play a game on an official server"));
     BtnNetOfficial->setFixedSize(BtnNet->width() - 50, 60);
     BtnNetOfficial->setVisible(false);
@@ -79,7 +74,6 @@
     // button order matters for overlapping (what's on top and what isn't)
     BtnInfo = addButton(":/res/HedgewarsTitle.png", pageLayout, 0, 0, 1, 4, true);
     BtnInfo->setStyleSheet("border: transparent;background: transparent;");
-    //BtnInfo->setToolTip(tr("Credits")); //tooltip looks horrible with transparent background buttons
     BtnInfo->setWhatsThis(tr("Read about who is behind the Hedgewars Project"));
     pageLayout->setAlignment(BtnInfo, Qt::AlignHCenter);
 
@@ -90,7 +84,6 @@
 
     BtnDataDownload = addButton(tr("Downloadable Content"), pageLayout, 5, 0, 1, 4, false);
     BtnDataDownload->setFixedSize(176, 27);
-    //BtnDataDownload->setToolTip(tr(Downloadable Content"));
     BtnDataDownload->setWhatsThis(tr("Access the user created content downloadable from our website"));
     pageLayout->setAlignment(BtnDataDownload, Qt::AlignHCenter);
 
@@ -126,7 +119,8 @@
 
 void PageMain::connectSignals()
 {
-    //TODO
+    connect(BtnNet, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
+    // TODO: add signal-forwarding required by (currently missing) encapsulation
 }
 
 PageMain::PageMain(QWidget* parent) : AbstractPage(parent)
@@ -149,64 +143,41 @@
 
 QString PageMain::randomTip() const
 {
+#ifdef _WIN32
+    int platform = 1;
+#elif defined __APPLE__
+    int platform = 2;
+#else
+    int platform = 3;
+#endif
     QStringList Tips;
-    Tips << tr("Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they'll win or lose together.", "Tips");
-    Tips << tr("Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.", "Tips");
-    Tips << tr("If you're unsure what to do and don't want to waste ammo, skip one round. But don't let too much time pass as there will be Sudden Death!", "Tips");
-    Tips << tr("Want to save ropes? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo!", "Tips");
-    Tips << tr("If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.", "Tips");
-    Tips << tr("You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.", "Tips");
-    Tips << tr("By default the game will always record the last game played as a demo. Select 'Local Game' and pick the 'Demos' button on the lower right corner to play or manage them.", "Tips");
-    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If you've got problems, ask on our forums but please don't expect 24/7 support!", "Tips");
-    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!", "Tips");
-    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!", "Tips");
-    Tips << tr("Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!", "Tips");
-    Tips << tr("From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.", "Tips");
-    Tips << tr("Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!", "Tips");
-    Tips << tr("Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.", "Tips");
-    Tips << tr("Always remember you're able to set up your own games in local and network/online play. You're not restricted to the 'Simple Game' option.", "Tips");
-    Tips << tr("Connect one or more gamepads before starting the game to be able to assign their controls to your teams.", "Tips");
-    Tips << tr("Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.", "Tips").arg("<a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a>");
-    Tips << tr("While playing you should give yourself a short break at least once an hour.", "Tips");
-    Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.", "Tips");
-    Tips << tr("If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.", "Tips");
-    Tips << tr("We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!", "Tips");
-    Tips << tr("Especially while playing online be polite and always remember there might be some minors playing with or against you as well!", "Tips");
-    Tips << tr("Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!", "Tips");
-    Tips << tr("The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.", "Tips");
-    Tips << tr("You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!", "Tips");
-    Tips << tr("Hedgewars can be perfect for short games during breaks. Just ensure you don't add too many hedgehogs or use an huge map. Reducing time and health might help as well.", "Tips");
-    Tips << tr("No hedgehogs were harmed in making this game.", "Tips");
-    Tips << tr("There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.", "Tips");
-    Tips << tr("Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.", "Tips");
-    Tips << tr("Some weapons require special strategies or just lots of training, so don't give up on a particular tool if you miss an enemy once.", "Tips");
-    Tips << tr("Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.", "Tips");
-    Tips << tr("The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.", "Tips");
-    Tips << tr("The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.", "Tips");
-    Tips << tr("The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.", "Tips");
-    Tips << tr("Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.", "Tips");
-    Tips << tr("The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.", "Tips");
-    Tips << tr("If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.", "Tips");
-    Tips << tr("The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.", "Tips");
-    Tips << tr("The Flame Thrower is a weapon but it can be used for tunnel digging as well.", "Tips");
-    Tips << tr("Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.", "Tips");
-    Tips << tr("Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.", "Tips");
-    Tips << tr("Like Hedgewars? Become a fan on %1 or follow us on %2!", "Tips").arg("<a href=\"http://www.facebook.com/Hedgewars\">Facebook</a>").arg("<a href=\"http://twitter.com/hedgewars\">Twitter</a>");
-    Tips << tr("Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online.", "Tips");
-    Tips << tr("Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!", "Tips");
+    QFile file(":/res/xml/tips.xml");
+    file.open(QIODevice::ReadOnly);
+    QTextStream in(&file);
+    QString line = in.readLine();
+    int tip_platform = 0;
+    while (!line.isNull()) {
+        if(line.contains("<windows-only>", Qt::CaseSensitive))
+            tip_platform = 1;
+        if(line.contains("<mac-only>", Qt::CaseSensitive))
+            tip_platform = 2;
+        if(line.contains("<linux-only>", Qt::CaseSensitive))
+            tip_platform = 3;
+        if(line.contains("</windows-only>", Qt::CaseSensitive) ||
+                line.contains("</mac-only>", Qt::CaseSensitive) ||
+                line.contains("</linux-only>", Qt::CaseSensitive)) {
+            tip_platform = 0;
+        }
+        QStringList split_string = line.split(QRegExp("</?tip>"));
+        if((tip_platform == platform || tip_platform == 0) && split_string.size() != 1)
+            Tips << tr(split_string[1].toLatin1().data(), "Tips");
+        line = in.readLine();
+    }
     // The following tip will require links to app store entries first.
     //Tips << tr("Want to play Hedgewars any time? Grab the Mobile version for %1 and %2.", "Tips").arg("").arg("");
     // the ios version is located here: http://itunes.apple.com/us/app/hedgewars/id391234866
-    Tips << tr("Keep your video card drivers up to date to avoid issues playing the game.", "Tips");
-    Tips << tr("You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.", "Tips");
-#ifdef _WIN32
-    Tips << tr("You can find your Hedgewars configuration files under \"My Documents\\Hedgewars\". Create backups or take the files with you, but don't edit them by hand.", "Tips");
-#elif defined __APPLE__
-    Tips << tr("You can find your Hedgewars configuration files under \"Library/Application Support/Hedgewars\" in your home directory. Create backups or take the files with you, but don't edit them by hand.", "Tips");
-#else
-    Tips << tr("You can find your Hedgewars configuration files under \".hedgewars\" in your home directory. Create backups or take the files with you, but don't edit them by hand.", "Tips");
-#endif
 
+    file.close();
     return Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()];
 }
 
--- a/QTfrontend/ui/page/pagemultiplayer.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagemultiplayer.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -36,10 +36,6 @@
     gameCFG = new GameCFGWidget(this);
     pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
 
-    btnSetup = new QPushButton(this);
-    btnSetup->setText(QPushButton::tr("Setup"));
-    pageLayout->addWidget(btnSetup, 1, 0, 1, 2);
-
     pageLayout->setRowStretch(2, 1);
 
     teamsSelect = new TeamSelWidget(this);
@@ -48,12 +44,30 @@
     return pageLayout;
 }
 
+QLayout * PageMultiplayer::footerLayoutLeftDefinition()
+{
+    QHBoxLayout * bottomLeftLayout = new QHBoxLayout();
+
+    btnSetup = addButton(":/res/Settings.png", bottomLeftLayout, 0, true);
+    btnSetup->setWhatsThis(tr("Edit game preferences"));
+
+    return bottomLeftLayout;
+}
+
 QLayout * PageMultiplayer::footerLayoutDefinition()
 {
     QHBoxLayout * footerLayout = new QHBoxLayout();
 
-    BtnStartMPGame = formattedButton(tr("Start"));
-    BtnStartMPGame->setMinimumWidth(180);
+    const QIcon& lp = QIcon(":/res/Start.png");
+    QSize sz = lp.actualSize(QSize(65535, 65535));
+    BtnStartMPGame = new QPushButton();
+    BtnStartMPGame->setText(tr("Start"));
+    BtnStartMPGame->setMinimumWidth(sz.width() + 60);
+    BtnStartMPGame->setIcon(lp);
+    BtnStartMPGame->setFixedHeight(50);
+    BtnStartMPGame->setIconSize(sz);
+    BtnStartMPGame->setFlat(true);
+    BtnStartMPGame->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
 
     footerLayout->addStretch();
     footerLayout->addWidget(BtnStartMPGame);
--- a/QTfrontend/ui/page/pagemultiplayer.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagemultiplayer.h	Sun Jan 27 00:28:57 2013 +0100
@@ -41,6 +41,7 @@
     private:
         QLayout * bodyLayoutDefinition();
         QLayout * footerLayoutDefinition();
+        QLayout * footerLayoutLeftDefinition();
         void connectSignals();
 
         QPushButton * btnSetup;
--- a/QTfrontend/ui/page/pagenetgame.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagenetgame.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -28,63 +28,127 @@
 #include "teamselect.h"
 #include "chatwidget.h"
 
+const int cutoffHeight = 688; /* Don't make this number below 605, or else it'll
+                                 let the GameCFGWidget shrink too much before switching to tabbed mode. */
+
 QLayout * PageNetGame::bodyLayoutDefinition()
 {
     QGridLayout * pageLayout = new QGridLayout();
     pageLayout->setSizeConstraint(QLayout::SetMinimumSize);
-    //pageLayout->setSpacing(1);
-    pageLayout->setColumnStretch(0, 50);
-    pageLayout->setColumnStretch(1, 50);
+    pageLayout->setColumnStretch(0, 1);
+    pageLayout->setColumnStretch(1, 1);
+    pageLayout->setRowStretch(0, 0);
+    pageLayout->setRowStretch(1, 0);
+    pageLayout->setRowStretch(2, 1);
+
+    // Room config
+
+    QHBoxLayout * roomConfigLayout = new QHBoxLayout();
+    pageLayout->addLayout(roomConfigLayout, 0, 0, 1, 2);
+    roomConfigLayout->setSpacing(0);
+
+    leRoomName = new HistoryLineEdit(this, 10);
+    leRoomName->setMaxLength(60);
+    leRoomName->setMinimumWidth(400);
+    leRoomName->setMaximumWidth(600);
+    leRoomName->setFixedHeight(30);
+    leRoomName->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    roomConfigLayout->addWidget(leRoomName, 100);
+
+    QLabel * lblRoomName = new QLabel(tr("Room name: "), leRoomName);
+    lblRoomName->setStyleSheet("font: 12px; font-weight: bold;");
+    lblRoomName->setStyleSheet(QString("font: 12px; font-weight: bold; background: none; margin-left: -%1px; margin-top: 8px;").arg(lblRoomName->width() - 20));
+    leRoomName->setStyleSheet(QString("font: 12px; border-right: 0; padding-left: %1px; padding-bottom: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px;").arg(lblRoomName->width() - 14));
+
+    BtnUpdate = new QPushButton();
+    BtnUpdate->setEnabled(false);
+    BtnUpdate->setText(tr("Update"));
+    BtnUpdate->setFixedHeight(leRoomName->height() - 0);
+    BtnUpdate->setStyleSheet("border-top-left-radius: 0px; border-bottom-left-radius: 0px; padding: auto 4px;");
+    roomConfigLayout->addWidget(BtnUpdate, 0);
 
-    // chatwidget
+    lblRoomNameReadOnly = new QLabel();
+    lblRoomNameReadOnly->setMinimumWidth(400);
+    lblRoomNameReadOnly->setMaximumWidth(600);
+    lblRoomNameReadOnly->setFixedHeight(30);
+    lblRoomNameReadOnly->setObjectName("labelLikeLineEdit");
+    lblRoomNameReadOnly->setStyleSheet("font: 12px;");
+    lblRoomNameReadOnly->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    lblRoomNameReadOnly->setVisible(false);
+    roomConfigLayout->addWidget(lblRoomNameReadOnly, 100);
+
+    roomConfigLayout->addSpacing(10);
+
+    BtnMaster = new QPushButton();
+    BtnMaster->setText(tr("Room controls"));
+    BtnMaster->setFixedHeight(leRoomName->height() - 0);
+    BtnMaster->setStyleSheet("QPushButton { padding: auto 4px; } QPushButton:pressed { background-color: #ffcc00; border-color: #ffcc00; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; color: #11084A; }");
+    roomConfigLayout->addWidget(BtnMaster, 0);
+
+    roomConfigLayout->addStretch(1);
+
+    // Game config
+
+    pGameCFG = new GameCFGWidget(this);
+    pageLayout->addWidget(pGameCFG, 1, 0);
+
+    // Teams
+
+    pNetTeamsWidget = new TeamSelWidget(this);
+    pNetTeamsWidget->setAcceptOuter(true);
+    pNetTeamsWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    pageLayout->addWidget(pNetTeamsWidget, 1, 1);
+
+    // Chat
+
     chatWidget = new HWChatWidget(this, true);
     chatWidget->setShowFollow(false); // don't show follow in nicks' context menus
     chatWidget->setIgnoreListKick(true); // kick ignored players automatically
+    chatWidget->setMinimumHeight(50);
+    chatWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
     pageLayout->addWidget(chatWidget, 2, 0, 1, 2);
-    pageLayout->setRowStretch(1, 100);
-    pageLayout->setRowStretch(2, 100);
-
-    pGameCFG = new GameCFGWidget(this);
-    pageLayout->addWidget(pGameCFG, 0, 0);
-
-    btnSetup = new QPushButton(this);
-    btnSetup->setText(QPushButton::tr("Setup"));
-    pageLayout->addWidget(btnSetup, 1, 0);
-
-    pNetTeamsWidget = new TeamSelWidget(this);
-    pNetTeamsWidget->setAcceptOuter(true);
-    pageLayout->addWidget(pNetTeamsWidget, 0, 1, 2, 1);
 
     return pageLayout;
 }
 
+QLayout * PageNetGame::footerLayoutLeftDefinition()
+{
+    QHBoxLayout * bottomLeftLayout = new QHBoxLayout();
+
+    btnSetup = addButton(":/res/Settings.png", bottomLeftLayout, 0, true);
+    btnSetup->setWhatsThis(tr("Edit game preferences"));
+
+    return bottomLeftLayout;
+}
+
 QLayout * PageNetGame::footerLayoutDefinition()
 {
     QHBoxLayout * bottomLayout = new QHBoxLayout;
 
-    leRoomName = new HistoryLineEdit(this,10);
-    leRoomName->setMaxLength(60);
-    leRoomName->setMinimumWidth(200);
-    leRoomName->setMaximumWidth(400);
+    // Ready button
 
-    //Button to signify whether the player is ready to start playing
     BtnGo = new QPushButton(this);
-    BtnGo->setToolTip(QPushButton::tr("Ready"));
     BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
     BtnGo->setIconSize(QSize(25, 34));
     BtnGo->setMinimumWidth(50);
     BtnGo->setMinimumHeight(50);
 
-    bottomLayout->addWidget(leRoomName);
-    BtnUpdate = addButton(QAction::tr("Update"), bottomLayout, 1);
-
     bottomLayout->addStretch();
     bottomLayout->addWidget(BtnGo);
 
-    BtnMaster = addButton(tr("Control"), bottomLayout, 3);
-    bottomLayout->insertStretch(3, 100);
+    // Start button
 
-    BtnStart = addButton(QAction::tr("Start"), bottomLayout, 3);
+    const QIcon& lp = QIcon(":/res/Start.png");
+    QSize sz = lp.actualSize(QSize(65535, 65535));
+    BtnStart = new QPushButton();
+    BtnStart->setText(tr("Start"));
+    BtnStart->setMinimumWidth(sz.width() + 60);
+    BtnStart->setIcon(lp);
+    BtnStart->setFixedHeight(50);
+    BtnStart->setIconSize(sz);
+    BtnStart->setFlat(true);
+    BtnStart->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+    bottomLayout->addWidget(BtnStart);
 
     return bottomLayout;
 }
@@ -94,6 +158,9 @@
     connect(btnSetup, SIGNAL(clicked()), this, SIGNAL(SetupClicked()));
 
     connect(BtnUpdate, SIGNAL(clicked()), this, SLOT(onUpdateClick()));
+    connect(leRoomName, SIGNAL(returnPressed()), this, SLOT(onUpdateClick()));
+
+    connect(leRoomName, SIGNAL(textChanged(const QString &)), this, SLOT(onRoomNameEdited()));
 }
 
 PageNetGame::PageNetGame(QWidget* parent) : AbstractPage(parent)
@@ -106,13 +173,25 @@
     restrictJoins->setCheckable(true);
     restrictTeamAdds = new QAction(QAction::tr("Restrict Team Additions"), menu);
     restrictTeamAdds->setCheckable(true);
-    //menu->addAction(startGame);
     menu->addAction(restrictJoins);
     menu->addAction(restrictTeamAdds);
 
     BtnMaster->setMenu(menu);
+
+    if (height() < cutoffHeight)
+        pGameCFG->setTabbed(true);
 }
 
+void PageNetGame::resizeEvent(QResizeEvent * event)
+{
+    int oldHeight = event->oldSize().height();
+    int newHeight = event->size().height();
+
+    if (newHeight < cutoffHeight && oldHeight >= cutoffHeight)
+        pGameCFG->setTabbed(true);
+    else if (newHeight >= cutoffHeight && oldHeight < cutoffHeight)
+        pGameCFG->setTabbed(false);
+}
 
 void PageNetGame::displayError(const QString & message)
 {
@@ -139,12 +218,18 @@
         BtnGo->setIcon(QIcon(":/res/lightbulb_off.png"));
 }
 
+void PageNetGame::onRoomNameEdited()
+{
+    BtnUpdate->setEnabled(true);
+}
+
 void PageNetGame::onUpdateClick()
 {
     if (!leRoomName->text().trimmed().isEmpty())
     {
         emit askForUpdateRoomName(leRoomName->text());
         leRoomName->rememberCurrentText();
+        BtnUpdate->setEnabled(false);
     }
     else
     {
@@ -163,6 +248,8 @@
 {
     leRoomName->setText(roomName);
     leRoomName->rememberCurrentText();
+    lblRoomNameReadOnly->setText(roomName);
+    BtnUpdate->setEnabled(false);
 }
 
 void PageNetGame::setMasterMode(bool isMaster)
@@ -171,6 +258,7 @@
     BtnStart->setVisible(isMaster);
     BtnUpdate->setVisible(isMaster);
     leRoomName->setVisible(isMaster);
+    lblRoomNameReadOnly->setVisible(!isMaster);
 }
 
 void PageNetGame::setUser(const QString & nickname)
--- a/QTfrontend/ui/page/pagenetgame.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagenetgame.h	Sun Jan 27 00:28:57 2013 +0100
@@ -48,6 +48,7 @@
         QPushButton *BtnMaster;
         QPushButton *BtnStart;
         QPushButton *BtnUpdate;
+        HistoryLineEdit *leRoomName;
 
         QAction * restrictJoins;
         QAction * restrictTeamAdds;
@@ -63,17 +64,24 @@
         void onUpdateClick();
         void setMasterMode(bool isMaster);
 
+    private slots:
+        void onRoomNameEdited();
+
     signals:
         void SetupClicked();
         void askForUpdateRoomName(const QString &);
 
+    protected:
+        void resizeEvent(QResizeEvent * event);
+
     private:
         QLayout * bodyLayoutDefinition();
         QLayout * footerLayoutDefinition();
+        QLayout * footerLayoutLeftDefinition();
         void connectSignals();
 
-        HistoryLineEdit * leRoomName;
         QPushButton * btnSetup;
+        QLabel * lblRoomNameReadOnly;
 };
 
 #endif
--- a/QTfrontend/ui/page/pageoptions.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pageoptions.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -23,23 +23,27 @@
 #include <QComboBox>
 #include <QCheckBox>
 #include <QLabel>
+#include <QTableWidget>
 #include <QLineEdit>
 #include <QSpinBox>
 #include <QTextBrowser>
-#include <QTableWidget>
+#include <QScrollArea>
+#include <QHeaderView>
 #include <QSlider>
 #include <QSignalMapper>
 #include <QColorDialog>
 #include <QStandardItemModel>
+#include <QDebug>
 
 #include "pageoptions.h"
 #include "gameuiconfig.h"
 #include "hwconsts.h"
 #include "fpsedit.h"
-#include "igbox.h"
 #include "DataManager.h"
 #include "LibavInteraction.h"
 #include "AutoUpdater.h"
+#include "HWApplication.h"
+#include "keybinder.h"
 
 #ifdef __APPLE__
 #ifdef SPARKLE_ENABLED
@@ -47,6 +51,35 @@
 #endif
 #endif
 
+const int OPTION_BOX_SPACING = 10;
+
+OptionGroupBox::OptionGroupBox(const QString & iconName,
+                               const QString & title,
+                               QWidget * parent) : IconedGroupBox(parent)
+{
+    setIcon(QIcon(iconName));
+    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    setTitle(title);
+    setMinimumWidth(300);
+    m_layout = new QGridLayout(this);
+    m_layout->setColumnStretch(0, 0);
+    m_layout->setColumnStretch(1, 1);
+}
+
+QGridLayout * OptionGroupBox::layout()
+{
+    return m_layout;
+}
+
+void OptionGroupBox::addDivider()
+{
+    QFrame * hr = new QFrame(this);
+    hr->setFrameStyle(QFrame::HLine);
+    hr->setLineWidth(3);
+    hr->setFixedHeight(10);
+    m_layout->addWidget(hr, m_layout->rowCount(), 0, 1, m_layout->columnCount());
+}
+
 // TODO cleanup
 QLayout * PageOptions::bodyLayoutDefinition()
 {
@@ -54,157 +87,503 @@
 
     QTabWidget * tabs = new QTabWidget(this);
     pageLayout->addWidget(tabs);
-    QWidget * page1 = new QWidget(this);
-    QWidget * page2 = new QWidget(this);
-    tabs->addTab(page1, tr("General"));
-    tabs->addTab(page2, tr("Advanced"));
+
+    binder = new KeyBinder(this, tr("Select an action to change what key controls it"), tr("Reset to default"), tr("Reset all binds"));
+    connect(binder, SIGNAL(bindUpdate(int)), this, SLOT(bindUpdated(int)));
+    connect(binder, SIGNAL(resetAllBinds()), this, SLOT(resetAllBinds()));
+
+    QWidget * pageGame = new QWidget(this);
+    tabs->addTab(pageGame, tr("Game"));
+
+    QWidget * pageGraphics = new QWidget(this);
+    tabs->addTab(pageGraphics, tr("Graphics"));
+
+    QWidget * pageAudio = new QWidget(this);
+    tabs->addTab(pageAudio, tr("Audio"));
+
+    binderTab = tabs->addTab(binder, tr("Controls"));
 
 #ifdef VIDEOREC
-    QWidget * page3 = new QWidget(this);
-    tabs->addTab(page3, tr("Video Recording"));
+    QWidget * pageVideoRec = new QWidget(this);
+    tabs->addTab(pageVideoRec, tr("Video Recording"));
 #endif
 
-    { // page 1
-        QGridLayout * page1Layout = new QGridLayout(page1);
-        //gbTBLayout->setMargin(0);
-        page1Layout->setSpacing(0);
-        page1Layout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
+    QWidget * pageNetwork = new QWidget(this);
+    tabs->addTab(pageNetwork, tr("Network"));
+
+    QWidget * pageAdvanced = new QWidget(this);
+    tabs->addTab(pageAdvanced, tr("Advanced"));
 
-        QPixmap pmNew(":/res/new.png");
-        QPixmap pmEdit(":/res/edit.png");
-        QPixmap pmDelete(":/res/delete.png");
+    connect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tabIndexChanged(int)));
+
+    QPixmap pmNew(":/res/new.png");
+    QPixmap pmEdit(":/res/edit.png");
+    QPixmap pmDelete(":/res/delete.png");
 
-        {
-            teamsBox = new IconedGroupBox(this);
-            //teamsBox->setContentTopPadding(0);
-            //teamsBox->setAttribute(Qt::WA_PaintOnScreen, true);
-            teamsBox->setIcon(QIcon(":/res/teamicon.png"));
-            teamsBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-            teamsBox->setTitle(QGroupBox::tr("Teams"));
+    { // game page
+        QVBoxLayout * leftColumn, * rightColumn;
+        setupTabPage(pageGame, &leftColumn, &rightColumn);
 
-            QGridLayout * GBTlayout = new QGridLayout(teamsBox);
+        { // group: Teams
+            OptionGroupBox * groupTeams = new OptionGroupBox(":/res/teamicon.png", tr("Teams"), this);
+            groupTeams->setMinimumWidth(400);
+            rightColumn->addWidget(groupTeams);
 
-            CBTeamName = new QComboBox(teamsBox);
-            GBTlayout->addWidget(CBTeamName, 0, 0);
+            groupTeams->layout()->setColumnStretch(0, 1);
 
-            BtnNewTeam = new QPushButton(teamsBox);
-            BtnNewTeam->setToolTip(tr("New team"));
+            CBTeamName = new QComboBox(groupTeams);
+            groupTeams->layout()->addWidget(CBTeamName, 0, 0);
+
+            BtnNewTeam = new QPushButton(groupTeams);
+            BtnNewTeam->setWhatsThis(tr("New team"));
             BtnNewTeam->setIconSize(pmNew.size());
             BtnNewTeam->setIcon(pmNew);
             BtnNewTeam->setMaximumWidth(pmNew.width() + 6);
             connect(BtnNewTeam, SIGNAL(clicked()), this, SIGNAL(newTeamRequested()));
-            GBTlayout->addWidget(BtnNewTeam, 0, 1);
+            groupTeams->layout()->addWidget(BtnNewTeam, 0, 1);
 
-            BtnEditTeam = new QPushButton(teamsBox);
-            BtnEditTeam->setToolTip(tr("Edit team"));
+            BtnEditTeam = new QPushButton(groupTeams);
+            BtnEditTeam->setWhatsThis(tr("Edit team"));
             BtnEditTeam->setIconSize(pmEdit.size());
             BtnEditTeam->setIcon(pmEdit);
             BtnEditTeam->setMaximumWidth(pmEdit.width() + 6);
             connect(BtnEditTeam, SIGNAL(clicked()), this, SLOT(requestEditSelectedTeam()));
-            GBTlayout->addWidget(BtnEditTeam, 0, 2);
+            groupTeams->layout()->addWidget(BtnEditTeam, 0, 2);
 
-            BtnDeleteTeam = new QPushButton(teamsBox);
-            BtnDeleteTeam->setToolTip(tr("Delete team"));
+            BtnDeleteTeam = new QPushButton(groupTeams);
+            BtnDeleteTeam->setWhatsThis(tr("Delete team"));
             BtnDeleteTeam->setIconSize(pmDelete.size());
             BtnDeleteTeam->setIcon(pmDelete);
             BtnDeleteTeam->setMaximumWidth(pmDelete.width() + 6);
             connect(BtnDeleteTeam, SIGNAL(clicked()), this, SLOT(requestDeleteSelectedTeam()));
-            GBTlayout->addWidget(BtnDeleteTeam, 0, 3);
+            groupTeams->layout()->addWidget(BtnDeleteTeam, 0, 3);
 
-            LblNoEditTeam = new QLabel(teamsBox);
+            LblNoEditTeam = new QLabel(groupTeams);
             LblNoEditTeam->setText(tr("You can't edit teams from team selection. Go back to main menu to add, edit or delete teams."));
             LblNoEditTeam->setWordWrap(true);
             LblNoEditTeam->setVisible(false);
-            GBTlayout->addWidget(LblNoEditTeam, 0, 0);
-
-            page1Layout->addWidget(teamsBox, 0, 0);
+            groupTeams->layout()->addWidget(LblNoEditTeam, 1, 0, 1, 4);
         }
 
-        {
-            IconedGroupBox* groupWeapons = new IconedGroupBox(this);
+        { // group: schemes
+            OptionGroupBox * groupSchemes = new OptionGroupBox(":/res/weaponsicon.png", tr("Schemes"), this);
+            leftColumn->addWidget(groupSchemes);
 
-            //groupWeapons->setContentTopPadding(0);
-            //groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-            groupWeapons->setIcon(QIcon(":/res/weaponsicon.png"));
-            groupWeapons->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-            groupWeapons->setTitle(QGroupBox::tr("Schemes and Weapons"));
-            QGridLayout * WeaponsLayout = new QGridLayout(groupWeapons);
+            groupSchemes->layout()->setColumnStretch(0, 1);
 
-            QLabel* SchemeLabel = new QLabel(groupWeapons);
-            SchemeLabel->setText(QLabel::tr("Game scheme"));
-            WeaponsLayout->addWidget(SchemeLabel, 1, 0);
+            SchemesName = new QComboBox(groupSchemes);
+            groupSchemes->layout()->addWidget(SchemesName, 0, 0);
 
-            SchemesName = new QComboBox(groupWeapons);
-            WeaponsLayout->addWidget(SchemesName, 1, 1);
-
-            SchemeNew = new QPushButton(groupWeapons);
+            SchemeNew = new QPushButton(groupSchemes);
             SchemeNew->setWhatsThis(tr("New scheme"));
             SchemeNew->setIconSize(pmNew.size());
             SchemeNew->setIcon(pmNew);
             SchemeNew->setMaximumWidth(pmNew.width() + 6);
-            WeaponsLayout->addWidget(SchemeNew, 1, 2);
+            groupSchemes->layout()->addWidget(SchemeNew, 0, 1);
 
-            SchemeEdit = new QPushButton(groupWeapons);
+            SchemeEdit = new QPushButton(groupSchemes);
             SchemeEdit->setWhatsThis(tr("Edit scheme"));
             SchemeEdit->setIconSize(pmEdit.size());
             SchemeEdit->setIcon(pmEdit);
             SchemeEdit->setMaximumWidth(pmEdit.width() + 6);
-            WeaponsLayout->addWidget(SchemeEdit, 1, 3);
+            groupSchemes->layout()->addWidget(SchemeEdit, 0, 2);
 
-            SchemeDelete = new QPushButton(groupWeapons);
+            SchemeDelete = new QPushButton(groupSchemes);
             SchemeDelete->setWhatsThis(tr("Delete scheme"));
             SchemeDelete->setIconSize(pmDelete.size());
             SchemeDelete->setIcon(pmDelete);
             SchemeDelete->setMaximumWidth(pmDelete.width() + 6);
-            WeaponsLayout->addWidget(SchemeDelete, 1, 4);
+            groupSchemes->layout()->addWidget(SchemeDelete, 0, 3);
+        }
 
-            QLabel* WeaponLabel = new QLabel(groupWeapons);
-            WeaponLabel->setText(QLabel::tr("Weapons"));
-            WeaponsLayout->addWidget(WeaponLabel, 2, 0);
+        { // group: weapons
+            OptionGroupBox * groupWeapons = new OptionGroupBox(":/res/weaponsicon.png", tr("Weapons"), this);
+            leftColumn->addWidget(groupWeapons);
+
+            groupWeapons->layout()->setColumnStretch(0, 1);
 
             WeaponsName = new QComboBox(groupWeapons);
-            WeaponsLayout->addWidget(WeaponsName, 2, 1);
+            groupWeapons->layout()->addWidget(WeaponsName, 0, 0);
 
             WeaponNew = new QPushButton(groupWeapons);
             WeaponNew->setWhatsThis(tr("New weapon set"));
             WeaponNew->setIconSize(pmNew.size());
             WeaponNew->setIcon(pmNew);
             WeaponNew->setMaximumWidth(pmNew.width() + 6);
-            WeaponsLayout->addWidget(WeaponNew, 2, 2);
+            groupWeapons->layout()->addWidget(WeaponNew, 0, 1);
 
             WeaponEdit = new QPushButton(groupWeapons);
             WeaponEdit->setWhatsThis(tr("Edit weapon set"));
             WeaponEdit->setIconSize(pmEdit.size());
             WeaponEdit->setIcon(pmEdit);
             WeaponEdit->setMaximumWidth(pmEdit.width() + 6);
-            WeaponsLayout->addWidget(WeaponEdit, 2, 3);
+            groupWeapons->layout()->addWidget(WeaponEdit, 0, 2);
 
             WeaponDelete = new QPushButton(groupWeapons);
             WeaponDelete->setWhatsThis(tr("Delete weapon set"));
             WeaponDelete->setIconSize(pmDelete.size());
             WeaponDelete->setIcon(pmDelete);
             WeaponDelete->setMaximumWidth(pmDelete.width() + 6);
-            WeaponsLayout->addWidget(WeaponDelete, 2, 4);
+            groupWeapons->layout()->addWidget(WeaponDelete, 0, 3);
+        }
+
+        leftColumn->addStretch(1);
+        rightColumn->addStretch(1);
+    }
+
+    { // graphics page
+        QVBoxLayout * leftColumn, * rightColumn;
+        setupTabPage(pageGraphics, &leftColumn, &rightColumn);
+
+        { // group: game
+            OptionGroupBox * groupGame = new OptionGroupBox(":/res/graphicsicon.png", tr("Game"), this);
+            leftColumn->addWidget(groupGame);
+
+            groupGame->layout()->setColumnStretch(0, 0);
+            groupGame->layout()->setColumnStretch(1, 0);
+            groupGame->layout()->setColumnStretch(2, 1);
+
+            // Fullscreen
+
+            CBFullscreen = new QCheckBox(groupGame);
+            groupGame->layout()->addWidget(CBFullscreen, 0, 0, 1, 2);
+            CBFullscreen->setText(QLabel::tr("Fullscreen"));
+
+            // Fullscreen resolution
+
+            lblFullScreenRes = new QLabel(groupGame);
+            lblFullScreenRes->setText(QLabel::tr("Fullscreen Resolution"));
+            groupGame->layout()->addWidget(lblFullScreenRes, 1, 0);
+
+            CBResolution = new QComboBox(groupGame);
+            CBResolution->setFixedWidth(200);
+            groupGame->layout()->addWidget(CBResolution, 1, 1, Qt::AlignLeft);
+
+            // Windowed resolution
+
+            lblWinScreenRes = new QLabel(groupGame);
+            lblWinScreenRes->setText(QLabel::tr("Windowed Resolution"));
+            groupGame->layout()->addWidget(lblWinScreenRes, 2, 0);
+
+            winResContainer = new QWidget();
+            QHBoxLayout * winResLayout = new QHBoxLayout(winResContainer);
+            winResLayout->setSpacing(0);
+            groupGame->layout()->addWidget(winResContainer, 2, 1);
+
+            QLabel *winLabelX = new QLabel(groupGame);
+            winLabelX->setText("x"); // decorational x
+            winLabelX->setFixedWidth(40);
+            winLabelX->setAlignment(Qt::AlignCenter);
+
+            windowWidthEdit = new QLineEdit(groupGame);
+            windowWidthEdit->setValidator(new QIntValidator(this));
+            windowWidthEdit->setFixedSize(55, CBResolution->height());
+            windowHeightEdit = new QLineEdit(groupGame);
+            windowHeightEdit->setValidator(new QIntValidator(this));
+            windowHeightEdit->setFixedSize(55, CBResolution->height());
+
+            winResLayout->addWidget(windowWidthEdit, 0);
+            winResLayout->addWidget(winLabelX, 0);
+            winResLayout->addWidget(windowHeightEdit, 0);
+            winResLayout->addStretch(1);
+
+            // Quality
+
+            QLabel * lblQuality = new QLabel(groupGame);
+            lblQuality->setText(QLabel::tr("Quality"));
+            lblQuality->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+            groupGame->layout()->addWidget(lblQuality, 3, 0);
+
+            SLQuality = new QSlider(Qt::Horizontal, groupGame);
+            SLQuality->setTickPosition(QSlider::TicksBelow);
+            SLQuality->setMaximum(5);
+            SLQuality->setMinimum(0);
+            SLQuality->setFixedWidth(150);
+            groupGame->layout()->addWidget(SLQuality, 3, 1, Qt::AlignLeft);
 
-            page1Layout->addWidget(groupWeapons, 1, 0);
+            // Stereo spacing
+
+            QLabel * lblStereo = new QLabel(groupGame);
+            lblStereo->setText(QLabel::tr("Stereo rendering"));
+            groupGame->layout()->addWidget(lblStereo, 4, 0);
+
+            CBStereoMode = new QComboBox(groupGame);
+            CBStereoMode->addItem(QComboBox::tr("Disabled"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Cyan"));
+            CBStereoMode->addItem(QComboBox::tr("Cyan/Red"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Blue"));
+            CBStereoMode->addItem(QComboBox::tr("Blue/Red"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Green"));
+            CBStereoMode->addItem(QComboBox::tr("Green/Red"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Cyan grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Cyan/Red grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Blue grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Blue/Red grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Red/Green grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Green/Red grayscale"));
+            CBStereoMode->addItem(QComboBox::tr("Side-by-side"));
+            CBStereoMode->addItem(QComboBox::tr("Top-Bottom"));
+            CBStereoMode->setFixedWidth(CBResolution->width());
+            groupGame->layout()->addWidget(CBStereoMode, 4, 1);
+
+            // Divider
+
+            groupGame->addDivider(); // row 5
+
+            // FPS limit
+
+            QHBoxLayout * fpsLayout = new QHBoxLayout();
+            groupGame->layout()->addLayout(fpsLayout, 6, 0, 1, 2);
+            QLabel * maxfps = new QLabel(groupGame);
+            maxfps->setText(QLabel::tr("FPS limit"));
+            fpsLayout->addWidget(maxfps);
+            fpsLayout->addSpacing(30);
+            fpsedit = new FPSEdit(groupGame);
+            fpsLayout->addWidget(fpsedit);
+
+            // Show FPS
+
+            CBShowFPS = new QCheckBox(groupGame);
+            CBShowFPS->setText(QCheckBox::tr("Show FPS"));
+            fpsLayout->addWidget(CBShowFPS);
+            fpsLayout->addStretch(1);
+
+            // Divider
+
+            groupGame->addDivider(); // row 7
+
+            // Alternative damage show
+
+            CBAltDamage = new QCheckBox(groupGame);
+            CBAltDamage->setText(QCheckBox::tr("Alternative damage show"));
+            groupGame->layout()->addWidget(CBAltDamage, 8, 0, 1, 2);
+
+            // Show ammo menu tooltips
+
+            WeaponTooltip = new QCheckBox(groupGame);
+            WeaponTooltip->setText(QCheckBox::tr("Show ammo menu tooltips"));
+            groupGame->layout()->addWidget(WeaponTooltip, 9, 0, 1, 2);
+        }
+
+        { // group: frontend
+            OptionGroupBox * groupFrontend = new OptionGroupBox(":/res/graphicsicon.png", tr("Frontend"), this);
+            rightColumn->addWidget(groupFrontend);
+
+            // Fullscreen
+
+            CBFrontendFullscreen = new QCheckBox(groupFrontend);
+            CBFrontendFullscreen->setText(QCheckBox::tr("Fullscreen"));
+            groupFrontend->layout()->addWidget(CBFrontendFullscreen, 0, 0);
+
+            // Visual effects
+
+            CBFrontendEffects = new QCheckBox(groupFrontend);
+            CBFrontendEffects->setText(QCheckBox::tr("Visual effects"));
+            groupFrontend->layout()->addWidget(CBFrontendEffects, 1, 0);
         }
 
-        {
-            IconedGroupBox* groupMisc = new IconedGroupBox(this);
-            //groupMisc->setContentTopPadding(0);
-            //groupMisc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding);
-            groupMisc->setIcon(QIcon(":/res/miscicon.png"));
-            //groupMisc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-            groupMisc->setTitle(QGroupBox::tr("Misc"));
-            QGridLayout * MiscLayout = new QGridLayout(groupMisc);
+        { // group: colors
+            OptionGroupBox * groupColors = new OptionGroupBox(":/res/lightbulb_on.png", tr("Custom colors"), this);
+            rightColumn->addWidget(groupColors);
+
+            groupColors->layout()->setColumnStretch(0, 1);
+            groupColors->layout()->setColumnStretch(1, 1);
+            groupColors->layout()->setColumnStretch(2, 1);
+
+            // Color buttons
+
+            QSignalMapper * mapper = new QSignalMapper(this);
+            QStandardItemModel * model = DataManager::instance().colorsModel();
+
+            connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onColorModelDataChanged(QModelIndex,QModelIndex)));
+            for(int i = 0; i < model->rowCount(); ++i)
+            {
+                QPushButton * btn = new QPushButton(this);
+                btn->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+                groupColors->layout()->addWidget(btn, i / 3, i % 3);
+                btn->setStyleSheet(QString("background: %1").arg(model->item(i)->data().value<QColor>().name()));
+                m_colorButtons.append(btn);
+                connect(btn, SIGNAL(clicked()), mapper, SLOT(map()));
+                mapper->setMapping(btn, i);
+            }
+
+            connect(mapper, SIGNAL(mapped(int)), this, SLOT(colorButtonClicked(int)));
+
+            // Reset default colors
+
+            QPushButton * btn = new QPushButton(this);
+            groupColors->layout()->addWidget(btn, (model->rowCount() - 1) / 3 + 1, 0, 1, 3);
+            btn->setText(tr("Reset to default colors"));
+            connect(btn, SIGNAL(clicked()), &DataManager::instance(), SLOT(resetColors()));
+        }
+
+        leftColumn->addStretch(1);
+        rightColumn->addStretch(1);
+    }
+
+    { // audio page
+        QVBoxLayout * leftColumn, * rightColumn;
+        setupTabPage(pageAudio, &leftColumn, &rightColumn);
+
+        { // group: game
+            OptionGroupBox * groupGame = new OptionGroupBox(":/res/audio.png", tr("Game audio"), this);
+            leftColumn->addWidget(groupGame);
+            groupGame->layout()->setColumnStretch(1, 0);
+            groupGame->layout()->setColumnStretch(2, 1);
+
+            // Initial sound volume
+
+            QLabel * vol = new QLabel(groupGame);
+            vol->setText(QLabel::tr("Initial sound volume"));
+            groupGame->layout()->addWidget(vol, 0, 0);
+
+            SLVolume = new QSlider(Qt::Horizontal, groupGame);
+            SLVolume->setTickPosition(QSlider::TicksBelow);
+            SLVolume->setMaximum(100);
+            SLVolume->setMinimum(0);
+            SLVolume->setFixedWidth(150);
+            groupGame->layout()->addWidget(SLVolume, 0, 1, 1, 2);
+
+            lblVolumeLevel = new QLabel(groupGame);
+            lblVolumeLevel->setFixedWidth(40);
+            groupGame->layout()->addWidget(lblVolumeLevel, 0, 3);
+
+            // Sound
+
+            CBSound = new QCheckBox(groupGame);
+            CBSound->setText(QCheckBox::tr("Sound"));
+            CBSound->setWhatsThis(QCheckBox::tr("In-game sound effects"));
+            groupGame->layout()->addWidget(CBSound, 1, 1);
+
+            // Music
+
+            CBMusic = new QCheckBox(groupGame);
+            CBMusic->setText(QCheckBox::tr("Music"));
+            CBMusic->setWhatsThis(QCheckBox::tr("In-game music"));
+            groupGame->layout()->addWidget(CBMusic, 1, 2, 1, 2, Qt::AlignLeft);
+        }
+
+        { // group: frontend
+            OptionGroupBox * groupFrontend = new OptionGroupBox(":/res/audio.png", tr("Frontend audio"), this);
+            rightColumn->addWidget(groupFrontend);
+
+            CBFrontendSound = new QCheckBox(groupFrontend);
+            CBFrontendSound->setText(QCheckBox::tr("Sound"));
+            CBFrontendSound->setWhatsThis(QCheckBox::tr("Frontend sound effects"));
+            groupFrontend->layout()->addWidget(CBFrontendSound, 0, 0);
+
+            CBFrontendMusic = new QCheckBox(groupFrontend);
+            CBFrontendMusic->setText(QCheckBox::tr("Music"));
+            CBFrontendMusic->setWhatsThis(QCheckBox::tr("Frontend music"));
+            groupFrontend->layout()->addWidget(CBFrontendMusic, 0, 1);
+        }
+
+        leftColumn->addStretch(1);
+        rightColumn->addStretch(1);
+    }
 
-            // Label for "Language"
+    { // network page
+        QVBoxLayout * leftColumn, * rightColumn;
+        setupTabPage(pageNetwork, &leftColumn, &rightColumn);
+
+        { // group: account
+            OptionGroupBox * groupAccount = new OptionGroupBox(":/res/teamicon.png", tr("Account"), this);
+            leftColumn->addWidget(groupAccount);
+
+            // Label and field for net nick
+
+            labelNN = new QLabel(groupAccount);
+            labelNN->setText(QLabel::tr("Nickname"));
+            groupAccount->layout()->addWidget(labelNN, 0, 0);
+
+            editNetNick = new QLineEdit(groupAccount);
+            editNetNick->setMaxLength(20);
+            editNetNick->setText(QLineEdit::tr("anonymous"));
+            groupAccount->layout()->addWidget(editNetNick, 0, 1);
+
+            // Checkbox and field for password
+
+            CBSavePassword = new QCheckBox(groupAccount);
+            CBSavePassword->setText(QCheckBox::tr("Save password"));
+            groupAccount->layout()->addWidget(CBSavePassword, 1, 0);
+
+            editNetPassword = new QLineEdit(groupAccount);
+            editNetPassword->setEchoMode(QLineEdit::Password);
+            groupAccount->layout()->addWidget(editNetPassword, 1, 1);
+        }
+
+        { // group: proxy
+            OptionGroupBox * groupProxy = new OptionGroupBox(":/res/net.png", tr("Proxy settings"), this);
+            rightColumn->addWidget(groupProxy);
+
+            // Labels
+
+            QStringList sl;
+            sl << tr("Proxy host")
+               << tr("Proxy port")
+               << tr("Proxy login")
+               << tr("Proxy password");
+
+            for(int i = 0; i < sl.size(); ++i)
+            {
+                QLabel * l = new QLabel(groupProxy);
+                l->setText(sl[i]);
+                groupProxy->layout()->addWidget(l, i + 1, 0);
+            }
+
+            // Proxy type
+
+            cbProxyType = new QComboBox(groupProxy);
+            cbProxyType->addItems(QStringList()
+                                  << tr("No proxy")
+                                  << tr("System proxy settings")
+                                  << tr("Socks5 proxy")
+                                  << tr("HTTP proxy"));
+            groupProxy->layout()->addWidget(cbProxyType, 0, 0, 1, 2);
+
+            // Proxy
+
+            leProxy = new QLineEdit(groupProxy);
+            groupProxy->layout()->addWidget(leProxy, 1, 1);
+
+            // Proxy
+
+            sbProxyPort = new QSpinBox(groupProxy);
+            sbProxyPort->setMaximum(65535);
+            groupProxy->layout()->addWidget(sbProxyPort, 2, 1);
+
+            leProxyLogin = new QLineEdit(groupProxy);
+            groupProxy->layout()->addWidget(leProxyLogin, 3, 1);
+
+            leProxyPassword = new QLineEdit(groupProxy);
+            leProxyPassword->setEchoMode(QLineEdit::Password);
+            groupProxy->layout()->addWidget(leProxyPassword, 4, 1);
+
+
+            connect(cbProxyType, SIGNAL(currentIndexChanged(int)), this, SLOT(onProxyTypeChanged()));
+            onProxyTypeChanged();
+        }
+
+        leftColumn->addStretch(1);
+        rightColumn->addStretch(1);
+    }
+
+    { // advanced page
+        QVBoxLayout * leftColumn, * rightColumn;
+        setupTabPage(pageAdvanced, &leftColumn, &rightColumn);
+
+        { // group: miscellaneous
+            OptionGroupBox * groupMisc = new OptionGroupBox(":/res/Settings.png", tr("Miscellaneous"), this);
+            leftColumn->addWidget(groupMisc);
+
+            // Language
+
             QLabel *labelLanguage = new QLabel(groupMisc);
-            labelLanguage->setText(QLabel::tr("Locale") + " *");
-            MiscLayout->addWidget(labelLanguage, 0, 0);
+            labelLanguage->setText(QLabel::tr("Locale"));
+            groupMisc->layout()->addWidget(labelLanguage, 0, 0);
 
-            // List of installed languages
             CBLanguage = new QComboBox(groupMisc);
+            groupMisc->layout()->addWidget(CBLanguage, 0, 1);
             QStringList locs = DataManager::instance().entryList("Locale", QDir::Files, QStringList("hedgewars_*.qm"));
             CBLanguage->addItem(QComboBox::tr("(System default)"), QString(""));
             for(int i = 0; i < locs.count(); i++)
@@ -213,414 +592,179 @@
                 CBLanguage->addItem(QLocale::languageToString(loc.language()) + " (" + QLocale::countryToString(loc.country()) + ")", loc.name());
             }
 
-            MiscLayout->addWidget(CBLanguage, 0, 1);
-
-            // Label and field for net nick
-            labelNN = new QLabel(groupMisc);
-            labelNN->setText(QLabel::tr("Nickname"));
-            MiscLayout->addWidget(labelNN, 1, 0);
+            // Divider
 
-            editNetNick = new QLineEdit(groupMisc);
-            editNetNick->setMaxLength(20);
-            editNetNick->setText(QLineEdit::tr("anonymous"));
-            MiscLayout->addWidget(editNetNick, 1, 1);
+            groupMisc->addDivider(); // row 1
 
-            // checkbox and field for password
-            CBSavePassword = new QCheckBox(groupMisc);
-            CBSavePassword->setText(QCheckBox::tr("Save password"));
-            MiscLayout->addWidget(CBSavePassword, 2, 0);
+            // Append date and time to record file name
 
-            editNetPassword = new QLineEdit(groupMisc);
-            editNetPassword->setEchoMode(QLineEdit::Password);
-            MiscLayout->addWidget(editNetPassword, 2, 1);
-
-    #ifdef __APPLE__
-    #ifdef SPARKLE_ENABLED
-            CBAutoUpdate = new QCheckBox(groupMisc);
-            CBAutoUpdate->setText(QCheckBox::tr("Check for updates at startup"));
-            MiscLayout->addWidget(CBAutoUpdate, 7, 0, 1, 1);
+            CBNameWithDate = new QCheckBox(groupMisc);
+            CBNameWithDate->setText(QCheckBox::tr("Append date and time to record file name"));
+            groupMisc->layout()->addWidget(CBNameWithDate, 2, 0, 1, 2);
 
-            btnUpdateNow = new QPushButton(groupMisc);
-            connect(btnUpdateNow, SIGNAL(clicked()), this, SLOT(checkForUpdates()));
-            btnUpdateNow->setToolTip(tr("Check for updates"));
-            btnUpdateNow->setText("Check now");
-            btnUpdateNow->setFixedSize(130, 30);
-            MiscLayout->addWidget(btnUpdateNow, 7, 1, 1, 1);
-    #endif
-    #endif
-            page1Layout->addWidget(groupMisc, 2, 0);
+            // Associate file extensions
+
+            BtnAssociateFiles = new QPushButton(groupMisc);
+            BtnAssociateFiles->setText(QPushButton::tr("Associate file extensions"));
+            BtnAssociateFiles->setVisible(!custom_data && !custom_config);
+            groupMisc->layout()->addWidget(BtnAssociateFiles, 3, 0, 1, 2);
         }
 
-        {
-            AGGroupBox = new IconedGroupBox(this);
-            //AGGroupBox->setContentTopPadding(0);
-            AGGroupBox->setIcon(QIcon(":/res/graphicsicon.png"));
-            //AGGroupBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
-            AGGroupBox->setTitle(QGroupBox::tr("Audio/Graphic options"));
-
-            QVBoxLayout * GBAlayout = new QVBoxLayout(AGGroupBox);
-            QGridLayout * GBAfrontendlayout = new QGridLayout(0);
-            QHBoxLayout * GBAreslayout = new QHBoxLayout(0);
-            QHBoxLayout * GBAstereolayout = new QHBoxLayout(0);
-            QHBoxLayout * GBAqualayout = new QHBoxLayout(0);
-
-            QLabel * frontend = new QLabel(AGGroupBox);
-            frontend->setText(QLabel::tr("Frontend"));
-            frontend->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-            GBAfrontendlayout->addWidget(frontend, 0, 0, 1, 2);
-
-            CBFrontendFullscreen = new QCheckBox(AGGroupBox);
-            CBFrontendFullscreen->setText(QCheckBox::tr("Fullscreen"));
-            GBAfrontendlayout->addWidget(CBFrontendFullscreen, 1, 0);
-
-            CBFrontendEffects = new QCheckBox(AGGroupBox);
-            CBFrontendEffects->setText(QCheckBox::tr("Visual effects"));
-            GBAfrontendlayout->addWidget(CBFrontendEffects, 2, 0);
-
-            CBFrontendSound = new QCheckBox(AGGroupBox);
-            CBFrontendSound->setText(QCheckBox::tr("Sound"));
-            GBAfrontendlayout->addWidget(CBFrontendSound, 1, 1);
+#ifdef __APPLE__
+#ifdef SPARKLE_ENABLED
+        { // group: updates
+            OptionGroupBox * groupUpdates = new OptionGroupBox(":/res/net.png", tr("Updates"), this);
+            rightColumn->addWidget(groupUpdates);
 
-            CBFrontendMusic = new QCheckBox(AGGroupBox);
-            CBFrontendMusic->setText(QCheckBox::tr("Music"));
-            GBAfrontendlayout->addWidget(CBFrontendMusic, 2, 1);
-
-            GBAlayout->addLayout(GBAfrontendlayout);
-
-            QFrame * hr = new QFrame(AGGroupBox);
-            hr->setFrameStyle(QFrame::HLine);
-            hr->setLineWidth(3);
-            hr->setFixedHeight(10);
-            GBAlayout->addWidget(hr);
-
-            QLabel * resolution = new QLabel(AGGroupBox);
-            resolution->setText(QLabel::tr("Resolution"));
-            GBAreslayout->addWidget(resolution);
+            // Check for updates at startup
 
-            CBResolution = new QComboBox(AGGroupBox);
-            GBAreslayout->addWidget(CBResolution);
-            GBAlayout->addLayout(GBAreslayout);
-
-            CBFullscreen = new QCheckBox(AGGroupBox);
-            CBFullscreen->setText(QCheckBox::tr("Fullscreen"));
-            GBAreslayout->addWidget(CBFullscreen);
-
-            QLabel * quality = new QLabel(AGGroupBox);
-            quality->setText(QLabel::tr("Quality"));
-            quality->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-            GBAqualayout->addWidget(quality);
-
-            SLQuality = new QSlider(Qt::Horizontal, AGGroupBox);
-            SLQuality->setTickPosition(QSlider::TicksBelow);
-            SLQuality->setMaximum(5);
-            SLQuality->setMinimum(0);
-            SLQuality->setFixedWidth(150);
-            GBAqualayout->addWidget(SLQuality);
-            GBAlayout->addLayout(GBAqualayout);
+            CBAutoUpdate = new QCheckBox(groupUpdates);
+            CBAutoUpdate->setText(QCheckBox::tr("Check for updates at startup"));
+            groupUpdates->layout()->addWidget(CBAutoUpdate, 0, 0);
 
-            QLabel * stereo = new QLabel(AGGroupBox);
-            stereo->setText(QLabel::tr("Stereo rendering"));
-            GBAstereolayout->addWidget(stereo);
-
-            CBStereoMode = new QComboBox(AGGroupBox);
-            CBStereoMode->addItem(QComboBox::tr("Disabled"));
-            CBStereoMode->addItem(QComboBox::tr("Red/Cyan"));
-            CBStereoMode->addItem(QComboBox::tr("Cyan/Red"));
-            CBStereoMode->addItem(QComboBox::tr("Red/Blue"));
-            CBStereoMode->addItem(QComboBox::tr("Blue/Red"));
-            CBStereoMode->addItem(QComboBox::tr("Red/Green"));
-            CBStereoMode->addItem(QComboBox::tr("Green/Red"));
-            CBStereoMode->addItem(QComboBox::tr("Side-by-side"));
-            CBStereoMode->addItem(QComboBox::tr("Top-Bottom"));
-            CBStereoMode->addItem(QComboBox::tr("Wiggle"));
-            CBStereoMode->addItem(QComboBox::tr("Red/Cyan grayscale"));
-            CBStereoMode->addItem(QComboBox::tr("Cyan/Red grayscale"));
-            CBStereoMode->addItem(QComboBox::tr("Red/Blue grayscale"));
-            CBStereoMode->addItem(QComboBox::tr("Blue/Red grayscale"));
-            CBStereoMode->addItem(QComboBox::tr("Red/Green grayscale"));
-            CBStereoMode->addItem(QComboBox::tr("Green/Red grayscale"));
-
-            GBAstereolayout->addWidget(CBStereoMode);
-            GBAlayout->addLayout(GBAstereolayout);
-
-            hr = new QFrame(AGGroupBox);
-            hr->setFrameStyle(QFrame::HLine);
-            hr->setLineWidth(3);
-            hr->setFixedHeight(10);
-            GBAlayout->addWidget(hr);
+            // Check for updates now
 
-            QGridLayout * GBAvollayout = new QGridLayout();
-            QLabel * vol = new QLabel(AGGroupBox);
-            vol->setText(QLabel::tr("Initial sound volume"));
-            GBAvollayout->addWidget(vol, 0, 0, 1, 2);
-            GBAlayout->addLayout(GBAvollayout);
-            volumeBox = new QSpinBox(AGGroupBox);
-            volumeBox->setRange(0, 100);
-            volumeBox->setSingleStep(5);
-            GBAvollayout->addWidget(volumeBox, 0, 2);
-
-            CBSound = new QCheckBox(AGGroupBox);
-            CBSound->setText(QCheckBox::tr("Sound"));
-            CBSound->setWhatsThis(QCheckBox::tr("In-game sound effects"));
-            GBAvollayout->addWidget(CBSound, 1, 0);
+            btnUpdateNow = new QPushButton(groupUpdates);
+            connect(btnUpdateNow, SIGNAL(clicked()), this, SLOT(checkForUpdates()));
+            btnUpdateNow->setWhatsThis(tr("Check for updates"));
+            btnUpdateNow->setText("Check now");
+            btnUpdateNow->setFixedSize(130, 30);
+            groupUpdates->layout()->addWidget(btnUpdateNow, 0, 1);
+        }
+#endif
+#endif
 
-            CBMusic = new QCheckBox(AGGroupBox);
-            CBMusic->setText(QCheckBox::tr("Music"));
-            CBMusic->setWhatsThis(QCheckBox::tr("In-game music"));
-            GBAvollayout->addWidget(CBMusic, 1, 1, 1, 2);
-
-            GBAvollayout->setSizeConstraint(QLayout::SetMinimumSize);
-
-            hr = new QFrame(AGGroupBox);
-            hr->setFrameStyle(QFrame::HLine);
-            hr->setLineWidth(3);
-            hr->setFixedHeight(10);
-            GBAlayout->addWidget(hr);
-
-            CBAltDamage = new QCheckBox(AGGroupBox);
-            CBAltDamage->setText(QCheckBox::tr("Alternative damage show"));
-            GBAlayout->addWidget(CBAltDamage);
-
-            page1Layout->addWidget(AGGroupBox, 0, 1, 3, 1);
-        }
-
-        page1Layout->addWidget(new QWidget(this), 3, 0);
-
+        leftColumn->addStretch(1);
+        rightColumn->addStretch(1);
     }
 
-    { // page 2
-        QGridLayout * page2Layout = new QGridLayout(page2);
-
-        {
-            IconedGroupBox * gbColors = new IconedGroupBox(this);
-            gbColors->setIcon(QIcon(":/res/lightbulb_on.png"));
-            gbColors->setTitle(QGroupBox::tr("Custom colors"));
-            page2Layout->addWidget(gbColors, 0, 0);
-            QGridLayout * gbCLayout = new QGridLayout(gbColors);
-
-            QSignalMapper * mapper = new QSignalMapper(this);
-
-            QStandardItemModel * model = DataManager::instance().colorsModel();
-
-            connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onColorModelDataChanged(QModelIndex,QModelIndex)));
-            for(int i = 0; i < model->rowCount(); ++i)
-            {
-                QPushButton * btn = new QPushButton(this);
-                btn->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
-                gbCLayout->addWidget(btn, i / 3, i % 3);
-                btn->setStyleSheet(QString("background: %1").arg(model->item(i)->data().value<QColor>().name()));
-                m_colorButtons.append(btn);
-                connect(btn, SIGNAL(clicked()), mapper, SLOT(map()));
-                mapper->setMapping(btn, i);
-            }
-
-            connect(mapper, SIGNAL(mapped(int)), this, SLOT(colorButtonClicked(int)));
-
-            QPushButton * btn = new QPushButton(this);
-            gbCLayout->addWidget(btn, (model->rowCount() - 1) / 3 + 1, 0, 1, 3);
-            btn->setText(tr("Reset to default colors"));
-            connect(btn, SIGNAL(clicked()), &DataManager::instance(), SLOT(resetColors()));
-        }
-
-        {
-            IconedGroupBox * gbMisc = new IconedGroupBox(this);
-            gbMisc->setIcon(QIcon(":/res/Settings.png"));
-            gbMisc->setTitle(QGroupBox::tr("Miscellaneous"));
-            page2Layout->addWidget(gbMisc, 0, 1);
-            QVBoxLayout * gbCLayout = new QVBoxLayout(gbMisc);
-
-            QHBoxLayout * GBAfpslayout = new QHBoxLayout(0);
-            QLabel * maxfps = new QLabel(AGGroupBox);
-            maxfps->setText(QLabel::tr("FPS limit"));
-            GBAfpslayout->addWidget(maxfps);
-            fpsedit = new FPSEdit(AGGroupBox);
-            GBAfpslayout->addWidget(fpsedit);
-
-            CBShowFPS = new QCheckBox(AGGroupBox);
-            CBShowFPS->setText(QCheckBox::tr("Show FPS"));
-            GBAfpslayout->addWidget(CBShowFPS);
-
-            gbCLayout->addLayout(GBAfpslayout);
-
-
-            WeaponTooltip = new QCheckBox(this);
-            WeaponTooltip->setText(QCheckBox::tr("Show ammo menu tooltips"));
-            gbCLayout->addWidget(WeaponTooltip);
-
-
-            CBNameWithDate = new QCheckBox(this);
-            CBNameWithDate->setText(QCheckBox::tr("Append date and time to record file name"));
-            gbCLayout->addWidget(CBNameWithDate);
-
-            BtnAssociateFiles = new QPushButton(this);
-            BtnAssociateFiles->setText(QPushButton::tr("Associate file extensions"));
-            BtnAssociateFiles->setVisible(!custom_data && !custom_config);
-            gbCLayout->addWidget(BtnAssociateFiles);
-        }
-
-        {
-            IconedGroupBox * gbProxy = new IconedGroupBox(this);
-            gbProxy->setIcon(QIcon(":/res/Settings.png"));
-            gbProxy->setTitle(QGroupBox::tr("Proxy settings"));
-            page2Layout->addWidget(gbProxy, 1, 0);
-            QGridLayout * gbLayout = new QGridLayout(gbProxy);
-
-            QStringList sl;
-            sl
-                    << tr("Proxy host")
-                    << tr("Proxy port")
-                    << tr("Proxy login")
-                    << tr("Proxy password")
-                       ;
-            for(int i = 0; i < sl.size(); ++i)
-            {
-                QLabel * l = new QLabel(gbProxy);
-                l->setText(sl[i]);
-                gbLayout->addWidget(l, i + 1, 0);
-            }
-
-            cbProxyType = new QComboBox(gbProxy);
-            cbProxyType->addItems(QStringList()
-                                  << tr("No proxy")
-                                  << tr("System proxy settings")
-                                  << tr("Socks5 proxy")
-                                  << tr("HTTP proxy"));
-            gbLayout->addWidget(cbProxyType, 0, 1);
-
-            leProxy = new QLineEdit(gbProxy);
-            gbLayout->addWidget(leProxy, 1, 1);
-
-            sbProxyPort = new QSpinBox(gbProxy);
-            sbProxyPort->setMaximum(65535);
-            gbLayout->addWidget(sbProxyPort, 2, 1);
-
-            leProxyLogin = new QLineEdit(gbProxy);
-            gbLayout->addWidget(leProxyLogin, 3, 1);
-
-            leProxyPassword = new QLineEdit(gbProxy);
-            leProxyPassword->setEchoMode(QLineEdit::Password);
-            gbLayout->addWidget(leProxyPassword, 4, 1);
-
-
-            connect(cbProxyType, SIGNAL(currentIndexChanged(int)), this, SLOT(onProxyTypeChanged()));
-            onProxyTypeChanged();
-        }
-
-        page2Layout->addWidget(new QWidget(this), 2, 0);
-    }
 #ifdef VIDEOREC
-    { // page 3
-        QGridLayout * page3Layout = new QGridLayout(page3);
-
-        IconedGroupBox* pOptionsGroup = new IconedGroupBox(this);
-        pOptionsGroup->setIcon(QIcon(":/res/Settings.png")); // FIXME
-        pOptionsGroup->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-        pOptionsGroup->setTitle(QGroupBox::tr("Video recording options"));
-        QGridLayout * pOptLayout = new QGridLayout(pOptionsGroup);
+    { // video recording page
+        OptionGroupBox * groupVideoRec = new OptionGroupBox(":/res/camera.png", tr("Video recording options"), this);
+        groupVideoRec->setMinimumWidth(500);
+        groupVideoRec->setMaximumWidth(650);
+        QHBoxLayout * layoutVideoRec = new QHBoxLayout(pageVideoRec);
+        layoutVideoRec->addWidget(groupVideoRec, 1, Qt::AlignTop | Qt::AlignHCenter);
 
         // label for format
-        QLabel *labelFormat = new QLabel(pOptionsGroup);
+
+        QLabel *labelFormat = new QLabel(groupVideoRec);
         labelFormat->setText(QLabel::tr("Format"));
-        pOptLayout->addWidget(labelFormat, 0, 0);
+        groupVideoRec->layout()->addWidget(labelFormat, 0, 0);
 
         // list of supported formats
-        comboAVFormats = new QComboBox(pOptionsGroup);
-        pOptLayout->addWidget(comboAVFormats, 0, 1, 1, 4);
+
+        comboAVFormats = new QComboBox(groupVideoRec);
+        groupVideoRec->layout()->addWidget(comboAVFormats, 0, 1, 1, 4);
         LibavInteraction::instance().fillFormats(comboAVFormats);
 
         // separator
-        QFrame * hr = new QFrame(pOptionsGroup);
+
+        QFrame * hr = new QFrame(groupVideoRec);
         hr->setFrameStyle(QFrame::HLine);
         hr->setLineWidth(3);
         hr->setFixedHeight(10);
-        pOptLayout->addWidget(hr, 1, 0, 1, 5);
+        groupVideoRec->layout()->addWidget(hr, 1, 0, 1, 5);
 
         // label for audio codec
-        QLabel *labelACodec = new QLabel(pOptionsGroup);
+
+        QLabel *labelACodec = new QLabel(groupVideoRec);
         labelACodec->setText(QLabel::tr("Audio codec"));
-        pOptLayout->addWidget(labelACodec, 2, 0);
+        groupVideoRec->layout()->addWidget(labelACodec, 2, 0);
 
         // list of supported audio codecs
-        comboAudioCodecs = new QComboBox(pOptionsGroup);
-        pOptLayout->addWidget(comboAudioCodecs, 2, 1, 1, 3);
+
+        comboAudioCodecs = new QComboBox(groupVideoRec);
+        groupVideoRec->layout()->addWidget(comboAudioCodecs, 2, 1, 1, 3);
 
         // checkbox 'record audio'
-        checkRecordAudio = new QCheckBox(pOptionsGroup);
+
+        checkRecordAudio = new QCheckBox(groupVideoRec);
         checkRecordAudio->setText(QCheckBox::tr("Record audio"));
-        pOptLayout->addWidget(checkRecordAudio, 2, 4);
+        groupVideoRec->layout()->addWidget(checkRecordAudio, 2, 4);
 
         // separator
-        hr = new QFrame(pOptionsGroup);
+
+        hr = new QFrame(groupVideoRec);
         hr->setFrameStyle(QFrame::HLine);
         hr->setLineWidth(3);
         hr->setFixedHeight(10);
-        pOptLayout->addWidget(hr, 3, 0, 1, 5);
+        groupVideoRec->layout()->addWidget(hr, 3, 0, 1, 5);
 
         // label for video codec
-        QLabel *labelVCodec = new QLabel(pOptionsGroup);
+
+        QLabel *labelVCodec = new QLabel(groupVideoRec);
         labelVCodec->setText(QLabel::tr("Video codec"));
-        pOptLayout->addWidget(labelVCodec, 4, 0);
+        groupVideoRec->layout()->addWidget(labelVCodec, 4, 0);
 
         // list of supported video codecs
-        comboVideoCodecs = new QComboBox(pOptionsGroup);
-        pOptLayout->addWidget(comboVideoCodecs, 4, 1, 1, 4);
+
+        comboVideoCodecs = new QComboBox(groupVideoRec);
+        groupVideoRec->layout()->addWidget(comboVideoCodecs, 4, 1, 1, 4);
 
         // label for resolution
-        QLabel *labelRes = new QLabel(pOptionsGroup);
+
+        QLabel *labelRes = new QLabel(groupVideoRec);
         labelRes->setText(QLabel::tr("Resolution"));
-        pOptLayout->addWidget(labelRes, 5, 0);
+        groupVideoRec->layout()->addWidget(labelRes, 5, 0);
 
         // width
-        widthEdit = new QLineEdit(pOptionsGroup);
+
+        widthEdit = new QLineEdit(groupVideoRec);
         widthEdit->setValidator(new QIntValidator(this));
-        pOptLayout->addWidget(widthEdit, 5, 1);
+        groupVideoRec->layout()->addWidget(widthEdit, 5, 1);
 
         // x
-        QLabel *labelX = new QLabel(pOptionsGroup);
+
+        QLabel *labelX = new QLabel(groupVideoRec);
         labelX->setText("X");
-        pOptLayout->addWidget(labelX, 5, 2);
+        groupVideoRec->layout()->addWidget(labelX, 5, 2);
 
         // height
-        heightEdit = new QLineEdit(pOptionsGroup);
-        heightEdit->setValidator(new QIntValidator(pOptionsGroup));
-        pOptLayout->addWidget(heightEdit, 5, 3);
+
+        heightEdit = new QLineEdit(groupVideoRec);
+        heightEdit->setValidator(new QIntValidator(groupVideoRec));
+        groupVideoRec->layout()->addWidget(heightEdit, 5, 3);
 
         // checkbox 'use game resolution'
-        checkUseGameRes = new QCheckBox(pOptionsGroup);
+
+        checkUseGameRes = new QCheckBox(groupVideoRec);
         checkUseGameRes->setText(QCheckBox::tr("Use game resolution"));
-        pOptLayout->addWidget(checkUseGameRes, 5, 4);
+        groupVideoRec->layout()->addWidget(checkUseGameRes, 5, 4);
 
         // label for framerate
-        QLabel *labelFramerate = new QLabel(pOptionsGroup);
+
+        QLabel *labelFramerate = new QLabel(groupVideoRec);
         labelFramerate->setText(QLabel::tr("Framerate"));
-        pOptLayout->addWidget(labelFramerate, 6, 0);
+        groupVideoRec->layout()->addWidget(labelFramerate, 6, 0);
 
-        framerateBox = new QComboBox(pOptionsGroup);
+        framerateBox = new QComboBox(groupVideoRec);
         framerateBox->addItem("24 fps", 24);
         framerateBox->addItem("25 fps", 25);
         framerateBox->addItem("30 fps", 30);
         framerateBox->addItem("50 fps", 50);
         framerateBox->addItem("60 fps", 60);
-        pOptLayout->addWidget(framerateBox, 6, 1);
+        groupVideoRec->layout()->addWidget(framerateBox, 6, 1);
 
         // label for Bitrate
-        QLabel *labelBitrate = new QLabel(pOptionsGroup);
+
+        QLabel *labelBitrate = new QLabel(groupVideoRec);
         labelBitrate->setText(QLabel::tr("Bitrate (Kbps)"));
-        pOptLayout->addWidget(labelBitrate, 6, 2);
+        groupVideoRec->layout()->addWidget(labelBitrate, 6, 2);
 
         // bitrate
-        bitrateBox = new QSpinBox(pOptionsGroup);
+
+        bitrateBox = new QSpinBox(groupVideoRec);
         bitrateBox->setRange(100, 5000);
         bitrateBox->setSingleStep(100);
-        pOptLayout->addWidget(bitrateBox, 6, 3);
+        groupVideoRec->layout()->addWidget(bitrateBox, 6, 3);
 
         // button 'set default options'
-        btnDefaults = new QPushButton(pOptionsGroup);
+
+        btnDefaults = new QPushButton(groupVideoRec);
         btnDefaults->setText(QPushButton::tr("Set default options"));
         btnDefaults->setWhatsThis(QPushButton::tr("Restore default coding parameters"));
-        pOptLayout->addWidget(btnDefaults, 7, 0, 1, 5);
-
-        page3Layout->addWidget(pOptionsGroup, 1, 0);
+        groupVideoRec->layout()->addWidget(btnDefaults, 7, 0, 1, 5);
     }
 #endif
 
@@ -628,6 +772,10 @@
     previousResolutionIndex = this->CBResolution->currentIndex();
     previousFullscreenValue = this->CBFullscreen->isChecked();
 
+    setFullscreen(CBFullscreen->isChecked());
+    setVolume(SLVolume->value());
+
+    // mutually exclude window and fullscreen resolution
     return pageLayout;
 }
 
@@ -644,7 +792,8 @@
     connect(comboAVFormats, SIGNAL(currentIndexChanged(int)), this, SLOT(changeAVFormat(int)));
     connect(btnDefaults, SIGNAL(clicked()), this, SLOT(setDefaultOptions()));
 #endif
-
+    //connect(this, SIGNAL(pageEnter()), this, SLOT(setTeamOptionsEnabled()));
+    connect(SLVolume, SIGNAL(valueChanged(int)), this, SLOT(setVolume(int)));
     connect(SLQuality, SIGNAL(valueChanged(int)), this, SLOT(setQuality(int)));
     connect(CBResolution, SIGNAL(currentIndexChanged(int)), this, SLOT(setResolution(int)));
     connect(CBFullscreen, SIGNAL(stateChanged(int)), this, SLOT(setFullscreen(int)));
@@ -653,6 +802,26 @@
     connect(CBSavePassword, SIGNAL(stateChanged(int)), this, SLOT(savePwdChanged(int)));
 }
 
+void PageOptions::setVolume(int volume)
+{
+    lblVolumeLevel->setText(QString("%1\%").arg(volume));
+}
+
+void PageOptions::setupTabPage(QWidget * tabpage, QVBoxLayout ** leftColumn, QVBoxLayout ** rightColumn)
+{
+    QHBoxLayout * twoColumns = new QHBoxLayout(tabpage);
+    twoColumns->setSpacing(0);
+    *leftColumn = new QVBoxLayout();
+    *rightColumn = new QVBoxLayout();
+    (*leftColumn)->setSpacing(OPTION_BOX_SPACING);
+    (*rightColumn)->setSpacing(OPTION_BOX_SPACING);
+    twoColumns->addStretch(4);
+    twoColumns->addLayout(*leftColumn, 0);
+    twoColumns->addStretch(1);
+    twoColumns->addLayout(*rightColumn, 0);
+    twoColumns->addStretch(4);
+}
+
 PageOptions::PageOptions(QWidget* parent) : AbstractPage(parent), config(0)
 {
     initPage();
@@ -666,16 +835,16 @@
     {
         this->SLQuality->setValue(this->SLQuality->maximum());
         this->SLQuality->setEnabled(false);
-        this->CBFullscreen->setEnabled(!forced);
         this->CBFullscreen->setChecked(forced ? true : previousFullscreenValue);
+        setFullscreen(forced ? true : previousFullscreenValue);
         this->CBResolution->setCurrentIndex(forced ? 0 : previousResolutionIndex);
     }
     else
     {
         this->SLQuality->setEnabled(true);
-        this->CBFullscreen->setEnabled(true);
         this->SLQuality->setValue(previousQuality);
         this->CBFullscreen->setChecked(previousFullscreenValue);
+        setFullscreen(previousFullscreenValue);
         this->CBResolution->setCurrentIndex(previousResolutionIndex);
     }
 }
@@ -693,6 +862,11 @@
 {
     Q_UNUSED(state);
 
+    lblFullScreenRes->setVisible(state);
+    CBResolution->setVisible(state);
+    lblWinScreenRes->setVisible(!state);
+    winResContainer->setVisible(!state);
+
     int index = this->CBStereoMode->currentIndex();
     if (index != 7 && index != 8 && index != 9)
         previousFullscreenValue = this->CBFullscreen->isChecked();
@@ -914,3 +1088,57 @@
 
     return true;
 }
+
+// When the current tab is switched
+void PageOptions::tabIndexChanged(int index)
+{
+    if (index == binderTab) // Switched to bind tab
+    {
+        binder->resetInterface();
+
+        if (!config) return;
+
+        QStandardItemModel * binds = DataManager::instance().bindsModel();
+        for(int i = 0; i < BINDS_NUMBER; i++)
+        {
+            QString value = config->bind(i);
+            QModelIndexList mdl = binds->match(binds->index(0, 0), Qt::UserRole + 1, value, 1, Qt::MatchExactly);
+            if(mdl.size() == 1) binder->setBindIndex(i, mdl[0].row());
+        }
+    }
+
+    currentTab = index;
+}
+
+// When a key bind combobox is changed
+void PageOptions::bindUpdated(int bindID)
+{
+    int bindIndex = binder->bindIndex(bindID);
+
+    if (bindIndex == 0) bindIndex = resetBindToDefault(bindID);
+
+    // Save bind
+    QStandardItemModel * binds = DataManager::instance().bindsModel();
+    QString strbind = binds->index(binder->bindIndex(bindID), 0).data(Qt::UserRole + 1).toString();
+    config->setBind(bindID, strbind);
+}
+
+// Changes a key bind (bindID) to its default value. This updates the bind's combo-box in the UI.
+// Returns: The bind model index of the default.
+int PageOptions::resetBindToDefault(int bindID)
+{
+    QStandardItemModel * binds = DataManager::instance().bindsModel();
+    QModelIndexList mdl = binds->match(binds->index(0, 0), Qt::UserRole + 1, cbinds[bindID].strbind, 1, Qt::MatchExactly);
+    if(mdl.size() == 1) binder->setBindIndex(bindID, mdl[0].row());
+    return mdl[0].row();
+}
+
+// Called when "reset all binds" button is pressed
+void PageOptions::resetAllBinds()
+{
+    for (int i = 0; i < BINDS_NUMBER; i++)
+    {
+        resetBindToDefault(i);
+        bindUpdated(i);
+    }
+}
--- a/QTfrontend/ui/page/pageoptions.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pageoptions.h	Sun Jan 27 00:28:57 2013 +0100
@@ -19,12 +19,32 @@
 #ifndef PAGE_OPTIONS_H
 #define PAGE_OPTIONS_H
 
+#include "igbox.h"
 #include "AbstractPage.h"
 
+#include <QString>
+
 class GameUIConfig;
 class FPSEdit;
-class IconedGroupBox;
 class QSignalMapper;
+class KeyBinder;
+class QGridLayout;
+
+// Let's stay D-R-Y
+class OptionGroupBox : public IconedGroupBox
+{
+    Q_OBJECT
+
+    public:
+        OptionGroupBox(const QString & iconName,
+                       const QString & title,
+                       QWidget * parent = 0);
+        QGridLayout * layout();
+        void addDivider();
+
+    private:
+        QGridLayout * m_layout;
+};
 
 class PageOptions : public AbstractPage
 {
@@ -57,6 +77,8 @@
         QComboBox *CBTeamName;
         IconedGroupBox *AGGroupBox;
         QComboBox *CBResolution;
+        QLineEdit *windowWidthEdit;
+        QLineEdit *windowHeightEdit;
         QComboBox *CBStereoMode;
         QCheckBox *CBFrontendSound;
         QCheckBox *CBFrontendMusic;
@@ -75,7 +97,8 @@
 
         FPSEdit *fpsedit;
         QLabel *labelNN;
-        QSpinBox * volumeBox;
+        QSlider *SLVolume;
+        QLabel *lblVolumeLevel;
         QLineEdit *editNetNick;
         QLineEdit *editNetPassword;
         QSlider *SLQuality;
@@ -118,6 +141,8 @@
         QLayout * bodyLayoutDefinition();
         QLayout * footerLayoutDefinition();
         void connectSignals();
+        int resetBindToDefault(int bindID);
+        void setupTabPage(QWidget * tabpage, QVBoxLayout ** leftColumn, QVBoxLayout ** rightColumn);
 
         bool previousFullscreenValue;
         int previousResolutionIndex;
@@ -134,6 +159,13 @@
         QPushButton *btnDefaults;
         QPushButton *btnUpdateNow;
         GameUIConfig * config;
+        KeyBinder * binder;
+        int currentTab;
+        int binderTab;
+
+        QLabel * lblFullScreenRes;
+        QLabel * lblWinScreenRes;
+        QWidget * winResContainer;
 
     private slots:
         void forceFullscreen(int index);
@@ -151,6 +183,10 @@
         void changeUseGameRes(int state);
         void changeRecordAudio(int state);
         void checkForUpdates();
+        void tabIndexChanged(int);
+        void bindUpdated(int bindID);
+        void resetAllBinds();
+        void setVolume(int);
 
     public slots:
         void setDefaultOptions();
--- a/QTfrontend/ui/page/pagescheme.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagescheme.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -68,127 +68,102 @@
     // Left
 
     TBW_mode_Forts = new ToggleButtonWidget(gbGameModes, ":/res/btnForts@2x.png");
-    TBW_mode_Forts->setToolTip("<b>" + ToggleButtonWidget::tr("Fort Mode") + "</b>");
     TBW_mode_Forts->setWhatsThis(tr("Defend your fort and destroy the opponents, two team colours max!"));
     glGMLayout->addWidget(TBW_mode_Forts,0,0,1,1);
 
     TBW_teamsDivide = new ToggleButtonWidget(gbGameModes, ":/res/btnTeamsDivide@2x.png");
-    TBW_teamsDivide->setToolTip("<b>" + ToggleButtonWidget::tr("Divide Teams") + "</b>");
     TBW_teamsDivide->setWhatsThis(tr("Teams will start on opposite sides of the terrain, two team colours max!"));
     glGMLayout->addWidget(TBW_teamsDivide,0,1,1,1);
 
     TBW_solid = new ToggleButtonWidget(gbGameModes, ":/res/btnSolid@2x.png");
-    TBW_solid->setToolTip("<b>" + ToggleButtonWidget::tr("Solid Land") + "</b>");
     TBW_solid->setWhatsThis(tr("Land can not be destroyed!"));
     glGMLayout->addWidget(TBW_solid,0,2,1,1);
 
     TBW_border = new ToggleButtonWidget(gbGameModes, ":/res/btnBorder@2x.png");
-    TBW_border->setToolTip("<b>" + ToggleButtonWidget::tr("Add Border") + "</b>");
     TBW_border->setWhatsThis(tr("Add an indestructible border around the terrain"));
     glGMLayout->addWidget(TBW_border,0,3,1,1);
 
     TBW_lowGravity = new ToggleButtonWidget(gbGameModes, ":/res/btnLowGravity@2x.png");
-    TBW_lowGravity->setToolTip("<b>" + ToggleButtonWidget::tr("Low Gravity") + "</b>");
     TBW_lowGravity->setWhatsThis(tr("Lower gravity"));
     glGMLayout->addWidget(TBW_lowGravity,0,4,1,1);
 
     TBW_laserSight = new ToggleButtonWidget(gbGameModes, ":/res/btnLaserSight@2x.png");
-    TBW_laserSight->setToolTip("<b>" + ToggleButtonWidget::tr("Laser Sight") + "</b>");
     TBW_laserSight->setWhatsThis(tr("Assisted aiming with laser sight"));
     glGMLayout->addWidget(TBW_laserSight,1,0,1,1);
 
     TBW_invulnerable = new ToggleButtonWidget(gbGameModes, ":/res/btnInvulnerable@2x.png");
-    TBW_invulnerable->setToolTip("<b>" + ToggleButtonWidget::tr("Invulnerable") + "</b>");
     TBW_invulnerable->setWhatsThis(tr("All hogs have a personal forcefield"));
     glGMLayout->addWidget(TBW_invulnerable,1,1,1,1);
 
     TBW_resethealth = new ToggleButtonWidget(gbGameModes, ":/res/btnResetHealth@2x.png");
-    TBW_resethealth->setToolTip("<b>" + ToggleButtonWidget::tr("Reset Health") + "</b>");
     TBW_resethealth->setWhatsThis(tr("All (living) hedgehogs are fully restored at the end of turn"));
     glGMLayout->addWidget(TBW_resethealth,1,2,1,1);
 
     TBW_vampiric = new ToggleButtonWidget(gbGameModes, ":/res/btnVampiric@2x.png");
-    TBW_vampiric->setToolTip("<b>" + ToggleButtonWidget::tr("Vampirism") + "</b>");
     TBW_vampiric->setWhatsThis(tr("Gain 80% of the damage you do back in health"));
     glGMLayout->addWidget(TBW_vampiric,1,3,1,1);
 
     TBW_karma = new ToggleButtonWidget(gbGameModes, ":/res/btnKarma@2x.png");
-    TBW_karma->setToolTip("<b>" + ToggleButtonWidget::tr("Karma") + "</b>");
     TBW_karma->setWhatsThis(tr("Share your opponents pain, share their damage"));
     glGMLayout->addWidget(TBW_karma,1,4,1,1);
 
     TBW_artillery = new ToggleButtonWidget(gbGameModes, ":/res/btnArtillery@2x.png");
-    TBW_artillery->setToolTip("<b>" + ToggleButtonWidget::tr("Artillery") + "</b>");
     TBW_artillery->setWhatsThis(tr("Your hogs are unable to move, put your artillery skills to the test"));
     glGMLayout->addWidget(TBW_artillery,2,0,1,1);
 
     TBW_randomorder = new ToggleButtonWidget(gbGameModes, ":/res/btnRandomOrder@2x.png");
-    TBW_randomorder->setToolTip("<b>" + ToggleButtonWidget::tr("Random Order") + "</b>");
     TBW_randomorder->setWhatsThis(tr("Order of play is random instead of in room order."));
     glGMLayout->addWidget(TBW_randomorder,2,1,1,1);
 
     TBW_king = new ToggleButtonWidget(gbGameModes, ":/res/btnKing@2x.png");
-    TBW_king->setToolTip("<b>" + ToggleButtonWidget::tr("King") + "</b>");
     TBW_king->setWhatsThis(tr("Play with a King. If he dies, your side dies."));
     glGMLayout->addWidget(TBW_king,2,2,1,1);
 
     TBW_placehog = new ToggleButtonWidget(gbGameModes, ":/res/btnPlaceHog@2x.png");
-    TBW_placehog->setToolTip("<b>" + ToggleButtonWidget::tr("Place Hedgehogs") + "</b>");
     TBW_placehog->setWhatsThis(tr("Take turns placing your hedgehogs before the start of play."));
     glGMLayout->addWidget(TBW_placehog,2,3,1,1);
 
     TBW_sharedammo = new ToggleButtonWidget(gbGameModes, ":/res/btnSharedAmmo@2x.png");
-    TBW_sharedammo->setToolTip("<b>" + ToggleButtonWidget::tr("Clan Shares Ammo") + "</b>");
     TBW_sharedammo->setWhatsThis(tr("Ammo is shared between all teams that share a colour."));
     glGMLayout->addWidget(TBW_sharedammo,2,4,1,1);
 
     TBW_disablegirders = new ToggleButtonWidget(gbGameModes, ":/res/btnDisableGirders@2x.png");
-    TBW_disablegirders->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Girders") + "</b>");
     TBW_disablegirders->setWhatsThis(tr("Disable girders when generating random maps."));
     glGMLayout->addWidget(TBW_disablegirders,3,0,1,1);
 
     TBW_disablelandobjects = new ToggleButtonWidget(gbGameModes, ":/res/btnDisableLandObjects@2x.png");
-    TBW_disablelandobjects->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Land Objects") + "</b>");
     TBW_disablelandobjects->setWhatsThis(tr("Disable land objects when generating random maps."));
     glGMLayout->addWidget(TBW_disablelandobjects,3,1,1,1);
 
     TBW_aisurvival = new ToggleButtonWidget(gbGameModes, ":/res/btnAISurvival@2x.png");
-    TBW_aisurvival->setToolTip("<b>" + ToggleButtonWidget::tr("AI Survival Mode") + "</b>");
     TBW_aisurvival->setWhatsThis(tr("AI respawns on death."));
     glGMLayout->addWidget(TBW_aisurvival,3,2,1,1);
 
     TBW_infattack = new ToggleButtonWidget(gbGameModes, ":/res/btnInfAttack@2x.png");
-    TBW_infattack->setToolTip("<b>" + ToggleButtonWidget::tr("Unlimited Attacks") + "</b>");
     TBW_infattack->setWhatsThis(tr("Attacking does not end your turn."));
     glGMLayout->addWidget(TBW_infattack,3,3,1,1);
 
     TBW_resetweps = new ToggleButtonWidget(gbGameModes, ":/res/btnResetWeps@2x.png");
-    TBW_resetweps->setToolTip("<b>" + ToggleButtonWidget::tr("Reset Weapons") + "</b>");
     TBW_resetweps->setWhatsThis(tr("Weapons are reset to starting values each turn."));
     glGMLayout->addWidget(TBW_resetweps,3,4,1,1);
 
     TBW_perhogammo = new ToggleButtonWidget(gbGameModes, ":/res/btnPerHogAmmo@2x.png");
-    TBW_perhogammo->setToolTip("<b>" + ToggleButtonWidget::tr("Per Hedgehog Ammo") + "</b>");
     TBW_perhogammo->setWhatsThis(tr("Each hedgehog has its own ammo. It does not share with the team."));
     glGMLayout->addWidget(TBW_perhogammo,4,0,1,1);
 
     TBW_nowind = new ToggleButtonWidget(gbGameModes, ":/res/btnNoWind@2x.png");
-    TBW_nowind->setToolTip("<b>" + ToggleButtonWidget::tr("Disable Wind") + "</b>");
     TBW_nowind->setWhatsThis(tr("You will not have to worry about wind anymore."));
     glGMLayout->addWidget(TBW_nowind,4,1,1,1);
 
     TBW_morewind = new ToggleButtonWidget(gbGameModes, ":/res/btnMoreWind@2x.png");
-    TBW_morewind->setToolTip("<b>" + ToggleButtonWidget::tr("More Wind") + "</b>");
     TBW_morewind->setWhatsThis(tr("Wind will affect almost everything."));
     glGMLayout->addWidget(TBW_morewind,4,2,1,1);
 
     TBW_tagteam = new ToggleButtonWidget(gbGameModes, ":/res/btnTagTeam@2x.png");
-    TBW_tagteam->setToolTip("<b>" + ToggleButtonWidget::tr("Tag Team") + "</b>");
     TBW_tagteam->setWhatsThis(tr("Teams in each clan take successive turns sharing their turn time."));
     glGMLayout->addWidget(TBW_tagteam,4,3,1,1);
 
     TBW_bottomborder = new ToggleButtonWidget(gbGameModes, ":/res/btnBottomBorder@2x.png");
-    TBW_bottomborder->setToolTip("<b>" + ToggleButtonWidget::tr("Add Bottom Border") + "</b>");
     TBW_bottomborder->setWhatsThis(tr("Add an indestructible border along the bottom"));
     glGMLayout->addWidget(TBW_bottomborder,4,4,1,1);
 
--- a/QTfrontend/ui/page/pagesingleplayer.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagesingleplayer.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -36,22 +36,18 @@
 
     topLine->addStretch();
     BtnSimpleGamePage = addButton(":/res/SimpleGame.png", topLine, 0, true);
-    BtnSimpleGamePage->setToolTip(tr("Simple Game"));
     BtnSimpleGamePage->setWhatsThis(tr("Play a quick game against the computer with random settings"));
     topLine->addSpacing(60);
     BtnMultiplayer = addButton(":/res/Multiplayer.png", topLine, 1, true);
-    BtnMultiplayer->setToolTip(tr("Multiplayer"));
     BtnMultiplayer->setWhatsThis(tr("Play a hotseat game against your friends, or AI teams"));
     topLine->addStretch();
 
 
     BtnCampaignPage = addButton(":/res/Campaign.png", middleLine, 0, true);
-    BtnCampaignPage->setToolTip(tr("Campaign Mode"));
     BtnCampaignPage->setWhatsThis(tr("Campaign Mode"));
     BtnCampaignPage->setVisible(true);
 
     BtnTrainPage = addButton(":/res/Trainings.png", middleLine, 1, true);
-    BtnTrainPage->setToolTip(tr("Training Mode"));
     BtnTrainPage->setWhatsThis(tr("Practice your skills in a range of training missions"));
 
     return vLayout;
@@ -63,11 +59,9 @@
     bottomLine->addStretch();
 
     BtnDemos = addButton(":/res/Record.png", bottomLine, 1, true);
-    BtnDemos->setToolTip(tr("Demos"));
     BtnDemos->setWhatsThis(tr("Watch recorded demos"));
     BtnLoad = addButton(":/res/Load.png", bottomLine, 2, true);
     BtnLoad->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
-    BtnLoad->setToolTip(tr("Load"));
     BtnLoad->setWhatsThis(tr("Load a previously saved game"));
 
     bottomLine->setStretch(1,0);
--- a/QTfrontend/ui/page/pagevideos.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/page/pagevideos.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -177,8 +177,9 @@
                                            Qt::LinksAccessibleByMouse |
                                            Qt::LinksAccessibleByKeyboard);
         labelDesc->setTextFormat(Qt::RichText);
+        labelDesc->setWordWrap(true);
         labelDesc->setOpenExternalLinks(true);
-        labelDesc->setMinimumSize(ThumbnailSize);
+        //labelDesc->setMinimumSize(ThumbnailSize);
         //pTopDescLayout->addWidget(labelDesc, 1);
 
         // buttons: play and delete
@@ -195,12 +196,10 @@
         btnToYouTube->setWhatsThis(QPushButton::tr("Upload this video to your Youtube account"));
         pBottomDescLayout->addWidget(btnToYouTube);
 
-        pDescLayout->addStretch(1);
         pDescLayout->addWidget(labelThumbnail, 0);
+        pDescLayout->addWidget(labelDesc, 0);
+        pDescLayout->addLayout(pBottomDescLayout, 0);
         pDescLayout->addStretch(1);
-        pDescLayout->addWidget(labelDesc, 0);
-        pDescLayout->addStretch(1);
-        pDescLayout->addLayout(pBottomDescLayout, 0);
 
         pPageLayout->addWidget(pDescGroup, 0, 0);
     }
@@ -509,8 +508,8 @@
     else
     {
         QString path = item->path();
-        desc += tr("Date: ") + QFileInfo(path).created().toString(Qt::DefaultLocaleLongDate) + '\n';
-        desc += tr("Size: ") + FileSizeStr(path) + '\n';
+        desc += tr("Date: %1\n").arg(QFileInfo(path).created().toString(Qt::DefaultLocaleLongDate));
+        desc += tr("Size: %1\n").arg(FileSizeStr(path));
         if (item->desc.isEmpty())
         {
             // Extract description from file;
--- a/QTfrontend/ui/widget/about.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/about.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -23,10 +23,21 @@
 #include <QRegExp>
 #include <QNetworkAccessManager>
 #include <QNetworkRequest>
+#include <QMessageBox>
 #include <QNetworkReply>
 #include <QDebug>
 #include "hwconsts.h"
 #include "SDLInteraction.h"
+#include "SDL.h"
+#include "SDL_version.h"
+#include "physfs.h"
+
+#ifdef VIDEOREC
+extern "C"
+{
+#include "libavutil/avutil.h"
+}
+#endif
 
 #include "about.h"
 
@@ -35,6 +46,9 @@
 {
     QGridLayout *mainLayout = new QGridLayout(this);
 
+    QVBoxLayout * leftLayout = new QVBoxLayout();
+    mainLayout->addLayout(leftLayout, 0, 0, 2, 1);
+
     QLabel *imageLabel = new QLabel;
     QImage image(":/res/Hedgehog.png");
     imageLabel->setPixmap(QPixmap::fromImage(image));
@@ -44,7 +58,7 @@
     imageLabel->setMinimumHeight(30);
     imageLabel->setMaximumHeight(300);
 
-    mainLayout->addWidget(imageLabel, 0, 0, 2, 1);
+    leftLayout->addWidget(imageLabel, 0, Qt::AlignHCenter);
 
     QLabel *lbl1 = new QLabel(this);
     lbl1->setOpenExternalLinks(true);
@@ -55,7 +69,7 @@
         "</style>"
         "<div align=\"center\"><h1>Hedgewars</h1>"
         "<h3>" + QLabel::tr("Version") + " " + *cVersionString + "</h3>"
-        "<p><a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a></p><br>" +
+        "<p><a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a></p>" +
         QLabel::tr("This program is distributed under the GNU General Public License v2") +
         "</div>"
     );
@@ -68,6 +82,42 @@
     lbl2->setSource(localpage); //sets the source of the label from the file above
     mainLayout->addWidget(lbl2, 1, 1);
 
+    /* Library information */
+
+    QString libinfo = "<style type=text/css>a:link { color: #FFFF6E; }</style>";
+
+#ifdef __GNUC__
+    libinfo.append(QString("Compiler: <a href=\"http://gcc.gnu.org\">GCC</a> %1<br>").arg(__VERSION__));
+#else
+    libinfo.append(QString("Compiler: Unknown<br>").arg(__VERSION__));
+#endif
+
+    libinfo.append(QString("<a href=\"http://www.libsdl.org/\">SDL</a> version: %1.%2.%3<br>")
+        .arg(SDL_MAJOR_VERSION)
+        .arg(SDL_MINOR_VERSION)
+        .arg(SDL_PATCHLEVEL));
+
+    libinfo.append(QString("<a href=\"http://qt-project.org/\">Qt</a> version: %1<br>").arg(QT_VERSION_STR));
+
+#ifdef VIDEOREC
+    libinfo.append(QString("<a href=\"http://libav.org\">Libav</a> version: %1.%2.%3<br>")
+        .arg(LIBAVUTIL_VERSION_MAJOR)
+        .arg(LIBAVUTIL_VERSION_MINOR)
+        .arg(LIBAVUTIL_VERSION_MICRO));
+#endif
+
+    libinfo.append(QString("<a href=\"http://icculus.org/physfs/\">PhysFS</a> version: %1.%2.%3<br>")
+        .arg(PHYSFS_VER_MAJOR)
+        .arg(PHYSFS_VER_MINOR)
+        .arg(PHYSFS_VER_PATCH));
+
+    QLabel * lblLibInfo = new QLabel();
+    lblLibInfo->setText(libinfo);
+    lblLibInfo->setWordWrap(true);
+    lblLibInfo->setMaximumWidth(280);
+    leftLayout->addWidget(lblLibInfo, 0, Qt::AlignTop | Qt::AlignHCenter);
+    leftLayout->addStretch(1);
+
     setAcceptDrops(true);
 }
 
--- a/QTfrontend/ui/widget/about.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/about.h	Sun Jan 27 00:28:57 2013 +0100
@@ -23,7 +23,6 @@
 #include <QDropEvent>
 #include <QTextBrowser>
 
-
 class About : public QWidget
 {
         Q_OBJECT
--- a/QTfrontend/ui/widget/bgwidget.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/bgwidget.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -176,6 +176,8 @@
         int ydiff = newPos.y() - oldPos.y();
         update(oldPos.x(), oldPos.y(), xdiff+sprite.width(), ydiff+sprite.height());
     }
+
+    //repaint(); // Repaint every frame. Prevents ghosting of widgets if widgets resize in runtime.
 }
 
 void BGWidget::startAnimation()
--- a/QTfrontend/ui/widget/chatwidget.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/chatwidget.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -187,42 +187,54 @@
     m_isAdmin = false;
     m_autoKickEnabled = false;
 
-    {
-        QStringList vpList =
-             QStringList() << "Classic" << "Default" << "Mobster" << "Russian";
+    QStringList vpList =
+         QStringList() << "Classic" << "Default" << "Mobster" << "Russian";
 
-        foreach (QString vp, vpList)
-        {
-            m_helloSounds.append(QString("physfs://Sounds/voices/%1/Hello.ogg").arg(vp));
-        }
-
-        m_hilightSound = "physfs://Sounds/beep.ogg";
-
+    foreach (const QString & vp, vpList)
+    {
+        m_helloSounds.append(QString("/Sounds/voices/%1/Hello.ogg").arg(vp));
     }
 
-    mainLayout.setSpacing(1);
-    mainLayout.setMargin(1);
-    mainLayout.setSizeConstraint(QLayout::SetMinimumSize);
-    mainLayout.setColumnStretch(0, 76);
-    mainLayout.setColumnStretch(1, 24);
+    m_hilightSound = "/Sounds/beep.ogg";
+
+    mainLayout.setMargin(0);
 
-    chatEditLine = new SmartLineEdit(this);
-    chatEditLine->setMaxLength(300);
-    connect(chatEditLine, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
+    QWidget * leftSideContainer = new QWidget();
+    leftSideContainer->setObjectName("leftSideContainer");
+    leftSideContainer->setStyleSheet("#leftSideContainer { border-width: 0px; background-color: #ffcc00; border-radius: 10px;} QTextBrowser, SmartLineEdit { background-color: rgb(13, 5, 68); }");
+    QVBoxLayout * leftSide = new QVBoxLayout(leftSideContainer);
+    leftSide->setSpacing(3);
+    leftSide->setMargin(3);
+    mainLayout.addWidget(leftSideContainer, 76);
 
-    mainLayout.addWidget(chatEditLine, 2, 0);
+    // Chat view
 
     chatText = new QTextBrowser(this);
-
     chatText->document()->setDefaultStyleSheet(styleSheet());
-
     chatText->setMinimumHeight(20);
     chatText->setMinimumWidth(10);
     chatText->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     chatText->setOpenLinks(false);
+    chatText->setStyleSheet("QTextBrowser { background-color: rgb(23, 11, 54); border-width: 0px; }");
     connect(chatText, SIGNAL(anchorClicked(const QUrl&)),
             this, SLOT(linkClicked(const QUrl&)));
-    mainLayout.addWidget(chatText, 0, 0, 2, 1);
+    leftSide->addWidget(chatText, 1);
+
+    // Input box
+
+    // Normal:  rgb(23, 11, 54)
+    // Hover:   rgb(13, 5, 68)
+
+    chatEditLine = new SmartLineEdit();
+    chatEditLine->setMaxLength(300);
+    chatEditLine->setStyleSheet("SmartLineEdit { background-color: rgb(23, 11, 54); padding: 2px 8px; border-width: 0px; border-radius: 7px; } SmartLineEdit:hover, SmartLineEdit:focus { background-color: rgb(13, 5, 68); }");
+    chatEditLine->setFixedHeight(24);
+    chatEditLine->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    connect(chatEditLine, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
+
+    leftSide->addWidget(chatEditLine, 0);
+
+    // Nickname list
 
     chatNicks = new QListView(this);
     chatNicks->setIconSize(QSize(24, 16));
@@ -238,7 +250,8 @@
 
     connect(chatNicks, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(nicksContextMenuRequested(QPoint)));
 
-    mainLayout.addWidget(chatNicks, 0, 1, 3, 1);
+    mainLayout.addSpacing(0);
+    mainLayout.addWidget(chatNicks, 24);
 
     // the userData is used to flag things that are even available when user
     // is offline
@@ -500,7 +513,7 @@
 
     emit nickCountUpdate(chatNicks->model()->rowCount());
 
-    if(notifyNick && notify && gameSettings->value("frontend/sound", true).toBool())
+    if (notifyNick && notify && (m_helloSounds.size() > 0))
     {
         SDLInteraction::instance().playSoundFile(
                             m_helloSounds.at(rand() % m_helloSounds.size()));
@@ -801,11 +814,7 @@
         else if (tline == "/saveStyleSheet")
             saveStyleSheet();
         else
-        {
-            static QRegExp post("\\s.*$");
-            tline.remove(post);
-            displayWarning(tr("%1 is not a valid command!").arg(tline));
-        }
+            emit consoleCommand(tline.mid(1));
 
         return true;
     }
--- a/QTfrontend/ui/widget/chatwidget.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/chatwidget.h	Sun Jan 27 00:28:57 2013 +0100
@@ -100,10 +100,11 @@
         void info(const QString & str);
         void follow(const QString &);
         void nickCountUpdate(int cnt);
+        void consoleCommand(const QString & command);
 
     private:
         bool m_isAdmin;
-        QGridLayout mainLayout;
+        QHBoxLayout mainLayout;
         QTextBrowser* chatText;
         QStringList chatStrings;
         QListView* chatNicks;
--- a/QTfrontend/ui/widget/colorwidget.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/colorwidget.h	Sun Jan 27 00:28:57 2013 +0100
@@ -13,7 +13,7 @@
 class ColorWidget : public QFrame
 {
     Q_OBJECT
-    
+
 public:
     explicit ColorWidget(QStandardItemModel *colorsModel, QWidget *parent = 0);
     ~ColorWidget();
@@ -24,7 +24,7 @@
 
 signals:
     void colorChanged(int color);
-    
+
 private:
     int m_color;
     QStandardItemModel * m_colorsModel;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/feedbackdialog.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,484 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QHBoxLayout>
+#include <QLineEdit>
+#include <QTextBrowser>
+#include <QLabel>
+#include <QHttp>
+#include <QSysInfo>
+#include <QDebug>
+#include <QBuffer>
+#include <QApplication>
+#include <QDesktopWidget>
+#include <QNetworkReply>
+#include <QProcess>
+#include <QMessageBox>
+#include <QCheckBox>
+
+#include <string>
+
+#ifdef Q_WS_WIN
+#define WINVER 0x0500
+#include <windows.h>
+#else
+#include <unistd.h>
+#include <sys/types.h>
+#endif
+
+#ifdef Q_WS_MAC
+#include <sys/sysctl.h>
+#endif
+
+#include <stdint.h>
+
+#include "AbstractPage.h"
+#include "hwconsts.h"
+#include "feedbackdialog.h"
+
+FeedbackDialog::FeedbackDialog(QWidget * parent) : QDialog(parent)
+{
+    setModal(true);
+    setWindowFlags(Qt::Sheet);
+    setWindowModality(Qt::WindowModal);
+    setMinimumSize(700, 460);
+    resize(700, 460);
+    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+
+    netManager = NULL;
+    GenerateSpecs();
+
+    /* Top layout */
+
+    QVBoxLayout * pageLayout = new QVBoxLayout();
+    QHBoxLayout * summaryLayout = new QHBoxLayout();
+    QHBoxLayout * emailLayout = new QHBoxLayout();
+    QHBoxLayout * descriptionLayout = new QHBoxLayout();
+    QHBoxLayout * combinedTopLayout = new QHBoxLayout();
+    QHBoxLayout * systemLayout = new QHBoxLayout();
+
+    info = new QLabel();
+    info->setText(
+        "<style type=\"text/css\">"
+        "a { color: #fc0; }"
+        "b { color: #0df; }"
+        "</style>"
+        "<div align=\"center\"><h1>Please give us feedback!</h1>"
+        "<h3>We are always happy about suggestions, ideas, or bug reports.<h3>"
+        "<h4>Your email address is optional, but we may want to contact you.<h4>"
+        "</div>"
+    );
+    pageLayout->addWidget(info);
+
+    QVBoxLayout * summaryEmailLayout = new QVBoxLayout();
+
+    const int labelWidth = 90;
+
+    label_email = new QLabel();
+    label_email->setText(QLabel::tr("Your Email"));
+    label_email->setFixedWidth(labelWidth);
+    emailLayout->addWidget(label_email);
+    email = new QLineEdit();
+    emailLayout->addWidget(email);
+    summaryEmailLayout->addLayout(emailLayout);
+
+    label_summary = new QLabel();
+    label_summary->setText(QLabel::tr("Summary"));
+    label_summary->setFixedWidth(labelWidth);
+    summaryLayout->addWidget(label_summary);
+    summary = new QLineEdit();
+    summaryLayout->addWidget(summary);
+    summaryEmailLayout->addLayout(summaryLayout);
+
+    combinedTopLayout->addLayout(summaryEmailLayout);
+
+    CheckSendSpecs = new QCheckBox();
+    CheckSendSpecs->setText(QLabel::tr("Send system information"));
+    CheckSendSpecs->setChecked(true);
+    systemLayout->addWidget(CheckSendSpecs);
+    BtnViewInfo = new QPushButton(tr("View"));
+    systemLayout->addWidget(BtnViewInfo, 1);
+    BtnViewInfo->setFixedSize(60, 30);
+    connect(BtnViewInfo, SIGNAL(clicked()), this, SLOT(ShowSpecs()));
+    combinedTopLayout->addLayout(systemLayout);
+
+    combinedTopLayout->setStretch(0, 1);
+    combinedTopLayout->insertSpacing(1, 20);
+
+    pageLayout->addLayout(combinedTopLayout);
+
+    label_description = new QLabel();
+    label_description->setText(QLabel::tr("Description"));
+    label_description->setFixedWidth(labelWidth);
+    descriptionLayout->addWidget(label_description, 0, Qt::AlignTop);
+    description = new QTextBrowser();
+    description->setReadOnly(false);
+    descriptionLayout->addWidget(description);
+    pageLayout->addLayout(descriptionLayout);
+
+    /* Bottom layout */
+
+    QHBoxLayout * bottomLayout = new QHBoxLayout();
+    QHBoxLayout * captchaLayout = new QHBoxLayout();
+    QVBoxLayout * captchaInputLayout = new QVBoxLayout();
+
+    QPushButton * BtnCancel = new QPushButton(tr("Cancel"));
+    bottomLayout->addWidget(BtnCancel, 0);
+    BtnCancel->setFixedSize(100, 40);
+    connect(BtnCancel, SIGNAL(clicked()), this, SLOT(reject()));
+
+    bottomLayout->insertStretch(1);
+
+    label_captcha = new QLabel();
+    label_captcha->setStyleSheet("border: 3px solid #ffcc00; border-radius: 4px");
+    label_captcha->setText("loading<br>captcha");
+    label_captcha->setFixedSize(200, 50);
+    captchaLayout->addWidget(label_captcha);
+
+    label_captcha_input = new QLabel();
+    label_captcha_input->setText(QLabel::tr("Type the security code:"));
+    captchaInputLayout->addWidget(label_captcha_input);
+    captchaInputLayout->setAlignment(label_captcha, Qt::AlignBottom);
+    captcha_code = new QLineEdit();
+    captcha_code->setFixedSize(165, 30);
+    captchaInputLayout->addWidget(captcha_code);
+    captchaInputLayout->setAlignment(captcha_code, Qt::AlignTop);
+    captchaLayout->addLayout(captchaInputLayout);
+    captchaLayout->setAlignment(captchaInputLayout, Qt::AlignLeft);
+
+    bottomLayout->addLayout(captchaLayout);
+    bottomLayout->addSpacing(40);
+
+    // TODO: Set green arrow icon for send button (:/res/Start.png)
+    BtnSend = new QPushButton(tr("Send Feedback"));
+    bottomLayout->addWidget(BtnSend, 0);
+    BtnSend->setFixedSize(120, 40);
+    connect(BtnSend, SIGNAL(clicked()), this, SLOT(SendFeedback()));
+
+    bottomLayout->setStretchFactor(captchaLayout, 0);
+    bottomLayout->setStretchFactor(BtnSend, 1);
+
+    QVBoxLayout * dialogLayout = new QVBoxLayout(this);
+    dialogLayout->addLayout(pageLayout, 1);
+    dialogLayout->addLayout(bottomLayout);
+
+    LoadCaptchaImage();
+}
+
+void FeedbackDialog::GenerateSpecs()
+{
+    // Gather some information about the system and embed it into the report
+    QDesktopWidget* screen = QApplication::desktop();
+    QString os_version = "Operating system: ";
+    QString qt_version = QString("Qt version: ") + QT_VERSION_STR + QString("\n");
+    QString total_ram = "Total RAM: ";
+    QString number_of_cores = "Number of cores: ";
+    QString compiler_bits = "Compiler architecture: ";
+    QString compiler_version = "Compiler version: ";
+    QString kernel_line = "Kernel: ";
+    QString screen_size = "Size of the screen(s): " +
+        QString::number(screen->width()) + "x" + QString::number(screen->height()) + "\n";
+    QString number_of_screens = "Number of screens: " + QString::number(screen->screenCount()) + "\n";
+    std::string processor_name = "Processor: ";
+
+    // platform specific code
+#ifdef Q_WS_MACX
+    number_of_cores += QString::number(sysconf(_SC_NPROCESSORS_ONLN)) + "\n";
+
+    uint64_t memsize;
+    size_t len = sizeof(memsize);
+    static int mib_s[2] = { CTL_HW, HW_MEMSIZE };
+    if (sysctl (mib_s, 2, &memsize, &len, NULL, 0) == 0)
+        total_ram += QString::number(memsize/1024/1024) + " MB\n";
+    else
+        total_ram += "Error getting total RAM information\n";
+
+    int mib[] = {CTL_KERN, KERN_OSRELEASE};
+    sysctl(mib, sizeof mib / sizeof(int), NULL, &len, NULL, 0);
+
+    char *kernelVersion = (char *)malloc(sizeof(char)*len);
+    sysctl(mib, sizeof mib / sizeof(int), kernelVersion, &len, NULL, 0);
+
+    QString kernelVersionStr = QString(kernelVersion);
+    free(kernelVersion);
+    int major_version = kernelVersionStr.split(".").first().toUInt() - 4;
+    int minor_version = kernelVersionStr.split(".").at(1).toUInt();
+    os_version += QString("Mac OS X 10.%1.%2").arg(major_version).arg(minor_version) + " ";
+
+    switch(major_version)
+    {
+        case 4:  os_version += "\"Tiger\"\n"; break;
+        case 5:  os_version += "\"Leopard\"\n"; break;
+        case 6:  os_version += "\"Snow Leopard\"\n"; break;
+        case 7:  os_version += "\"Lion\"\n"; break;
+        case 8:  os_version += "\"Mountain Lion\"\n"; break;
+        default: os_version += "\"Unknown version\"\n"; break;
+    }
+#endif
+#ifdef Q_WS_WIN
+    SYSTEM_INFO sysinfo;
+    GetSystemInfo(&sysinfo);
+    number_of_cores += QString::number(sysinfo.dwNumberOfProcessors) + "\n";
+    MEMORYSTATUSEX status;
+    status.dwLength = sizeof(status);
+    GlobalMemoryStatusEx(&status);
+    total_ram += QString::number(status.ullTotalPhys);
+
+    switch(QSysInfo::WinVersion())
+    {
+        case QSysInfo::WV_2000: os_version += "Windows 2000\n"; break;
+        case QSysInfo::WV_XP: os_version += "Windows XP\n"; break;
+        case QSysInfo::WV_VISTA: os_version += "Windows Vista\n"; break;
+        case QSysInfo::WV_WINDOWS7: os_version += "Windows 7\n"; break;
+        default: os_version += "Windows (Unknown version)\n"; break;
+    }
+    kernel_line += "Windows kernel\n";
+#endif
+#ifdef Q_WS_X11
+    number_of_cores += QString::number(sysconf(_SC_NPROCESSORS_ONLN)) + "\n";
+    long pages = sysconf(_SC_PHYS_PAGES),
+/*
+#ifndef Q_OS_FREEBSD
+         available_pages = sysconf(_SC_AVPHYS_PAGES),
+#else
+         available_pages = 0,
+#endif*/
+         page_size = sysconf(_SC_PAGE_SIZE);
+    total_ram += QString::number(pages * page_size) + "\n";
+    os_version += "GNU/Linux or BSD\n";
+#endif
+
+    // uname -a
+#if defined(Q_WS_X11) || defined(Q_WS_MACX)
+    QProcess *process = new QProcess();
+    QStringList arguments = QStringList("-a");
+    process->start("uname", arguments);
+    if (process->waitForFinished())
+        kernel_line += QString(process->readAll());
+    delete process;
+#endif
+
+    // cpu info
+    quint32 registers[4];
+    quint32 i;
+
+    i = 0x80000002;
+    asm volatile
+      ("cpuid" : "=a" (registers[0]), "=b" (registers[1]), "=c" (registers[2]), "=d" (registers[3])
+       : "a" (i), "c" (0));
+    processor_name += std::string((const char *)&registers[0], 4);
+    processor_name += std::string((const char *)&registers[1], 4);
+    processor_name += std::string((const char *)&registers[2], 4);
+    processor_name += std::string((const char *)&registers[3], 4);
+    i = 0x80000003;
+    asm volatile
+      ("cpuid" : "=a" (registers[0]), "=b" (registers[1]), "=c" (registers[2]), "=d" (registers[3])
+       : "a" (i), "c" (0));
+    processor_name += std::string((const char *)&registers[0], 4);
+    processor_name += std::string((const char *)&registers[1], 4);
+    processor_name += std::string((const char *)&registers[2], 4);
+    processor_name += std::string((const char *)&registers[3], 4);
+    i = 0x80000004;
+    asm volatile
+      ("cpuid" : "=a" (registers[0]), "=b" (registers[1]), "=c" (registers[2]), "=d" (registers[3])
+       : "a" (i), "c" (0));
+    processor_name += std::string((const char *)&registers[0], 4);
+    processor_name += std::string((const char *)&registers[1], 4);
+    processor_name += std::string((const char *)&registers[2], 4);
+    processor_name += std::string((const char *)&registers[3], 3);
+
+    // compiler
+#ifdef __GNUC__
+    compiler_version += "GCC " + QString(__VERSION__) + "\n";
+#else
+    compiler_version += "Unknown\n";
+#endif
+
+    if(sizeof(void*) == 4)
+        compiler_bits += "i386\n";
+    else if(sizeof(void*) == 8)
+        compiler_bits += "x86_64\n";
+
+    // concat system info
+    specs = qt_version
+        + os_version
+        + total_ram
+        + screen_size
+        + number_of_screens
+        + QString::fromStdString(processor_name + "\n")
+        + number_of_cores
+        + compiler_version
+        + compiler_bits
+        + kernel_line;
+}
+
+void FeedbackDialog::ShowErrorMessage(const QString & msg)
+{
+    QMessageBox msgMsg(this);
+    msgMsg.setIcon(QMessageBox::Warning);
+    msgMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Error"));
+    msgMsg.setText(msg);
+    msgMsg.setWindowModality(Qt::WindowModal);
+    msgMsg.exec();
+}
+
+void FeedbackDialog::ShowSpecs()
+{
+    QMessageBox msgMsg(this);
+    msgMsg.setIcon(QMessageBox::Information);
+    msgMsg.setWindowTitle(QMessageBox::tr("System Information Preview"));
+    msgMsg.setText(specs);
+    msgMsg.setTextFormat(Qt::PlainText);
+    msgMsg.setWindowModality(Qt::WindowModal);
+    msgMsg.setStyleSheet("background: #0A0533;");
+    msgMsg.exec();
+}
+
+void FeedbackDialog::NetReply(QNetworkReply *reply)
+{
+    if (reply == genCaptchaRequest)
+    {
+        if (reply->error() != QNetworkReply::NoError)
+        {
+            qDebug() << "Error generating captcha image: " << reply->errorString();
+            ShowErrorMessage(QMessageBox::tr("Failed to generate captcha"));
+            return;
+        }
+
+        bool okay;
+        QByteArray body = reply->readAll();
+        captchaID = QString(body).toInt(&okay);
+
+        if (!okay)
+        {
+            qDebug() << "Failed to get captcha ID: " << body;
+            ShowErrorMessage(QMessageBox::tr("Failed to generate captcha"));
+            return;
+        }
+
+        QString url = "http://hedgewars.org/feedback/?captcha&id=";
+        url += QString::number(captchaID);
+
+        QNetworkAccessManager *netManager = GetNetManager();
+        QUrl captchaURL(url);
+        QNetworkRequest req(captchaURL);
+        captchaImageRequest = netManager->get(req);
+    }
+    else if (reply == captchaImageRequest)
+    {
+        if (reply->error() != QNetworkReply::NoError)
+        {
+            qDebug() << "Error loading captcha image: " << reply->errorString();
+            ShowErrorMessage(QMessageBox::tr("Failed to download captcha"));
+            return;
+        }
+
+        QByteArray imageData = reply->readAll();
+        QPixmap pixmap;
+        pixmap.loadFromData(imageData);
+        label_captcha->setPixmap(pixmap);
+        captcha_code->setText("");
+    }
+}
+
+QNetworkAccessManager * FeedbackDialog::GetNetManager()
+{
+    if (netManager) return netManager;
+    netManager = new QNetworkAccessManager(this);
+    connect(netManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(NetReply(QNetworkReply*)));
+    return netManager;
+}
+
+void FeedbackDialog::LoadCaptchaImage()
+{
+        QNetworkAccessManager *netManager = GetNetManager();
+        QUrl captchaURL("http://hedgewars.org/feedback/?gencaptcha");
+        QNetworkRequest req(captchaURL);
+        genCaptchaRequest = netManager->get(req);
+}
+
+void FeedbackDialog::finishedSlot(QNetworkReply* reply)
+{
+    if (reply && reply->error() == QNetworkReply::NoError)
+    {
+            QMessageBox infoMsg(this);
+            infoMsg.setIcon(QMessageBox::Information);
+            infoMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Success"));
+            infoMsg.setText(reply->readAll());
+            infoMsg.setWindowModality(Qt::WindowModal);
+            infoMsg.exec();
+
+            accept();
+
+            return;
+    }
+    else
+    {
+        ShowErrorMessage(QString("Error: ") + reply->readAll());
+        LoadCaptchaImage();
+    }
+}
+
+void FeedbackDialog::SendFeedback()
+{
+    // Get form data
+
+    QString summary = this->summary->text();
+    QString description = this->description->toPlainText();
+    QString email = this->email->text();
+    QString captchaCode = this->captcha_code->text();
+    QString captchaID = QString::number(this->captchaID);
+    QString version = "HedgewarsFoundation-Hedgewars-" + (cVersionString?(*cVersionString):QString(""));
+
+    if (summary.isEmpty() || description.isEmpty())
+    {
+        ShowErrorMessage(QMessageBox::tr("Please fill out all fields. Email is optional."));
+        return;
+    }
+
+    // Submit issue to PHP script
+
+    QByteArray body;
+    body.append("captcha=");
+    body.append(captchaID);
+    body.append("&code=");
+    body.append(captchaCode);
+    body.append("&version=");
+    body.append(QUrl::toPercentEncoding(version));
+    body.append("&title=");
+    body.append(QUrl::toPercentEncoding(summary));
+    body.append("&body=");
+    body.append(QUrl::toPercentEncoding(description));
+    body.append("&email=");
+    body.append(QUrl::toPercentEncoding(email));
+    if (CheckSendSpecs->isChecked())
+    {
+        body.append("&specs=");
+        body.append(QUrl::toPercentEncoding(specs));
+    }
+
+    nam = new QNetworkAccessManager(this);
+    connect(nam, SIGNAL(finished(QNetworkReply*)),
+            this, SLOT(finishedSlot(QNetworkReply*)));
+
+    QNetworkRequest header(QUrl("http://hedgewars.org/feedback/?submit"));
+    header.setRawHeader("Content-Length", QString::number(body.size()).toAscii());
+    header.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
+
+    nam->post(header, body);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/feedbackdialog.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,75 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef FEEDBACKDIALOG_H
+#define FEEDBACKDIALOG_H
+
+#include <QDialog>
+
+class QNetworkReply;
+class QNetworkAccessManager;
+class QCheckBox;
+class QLineEdit;
+class QTextBrowser;
+class QLabel;
+
+class FeedbackDialog : public QDialog
+{
+        Q_OBJECT
+
+    public:
+        FeedbackDialog(QWidget * parent = 0);
+        void EmbedSystemInfo();
+        void LoadCaptchaImage();
+
+        QPushButton * BtnSend;
+        QPushButton * BtnViewInfo;
+        QCheckBox * CheckSendSpecs;
+        QLineEdit * summary;
+        QTextBrowser * description;
+        QLabel * info;
+        QLabel * label_summary;
+        QLabel * label_description;
+        QLabel * label_captcha;
+        QLabel * label_email;
+        QLabel * label_captcha_input;
+        QLineEdit * captcha_code;
+        QLineEdit * email;
+        int captchaID;
+        QString specs;
+
+    private:
+        void GenerateSpecs();
+        QLayout * bodyLayoutDefinition();
+        QLayout * footerLayoutDefinition();
+        QNetworkAccessManager * GetNetManager();
+        void ShowErrorMessage(const QString & msg);
+
+        QNetworkAccessManager * netManager;
+        QNetworkReply * captchaImageRequest;
+        QNetworkReply * genCaptchaRequest;
+        QNetworkAccessManager * nam;
+
+    private slots:
+        virtual void NetReply(QNetworkReply*);
+        virtual void ShowSpecs();
+        void SendFeedback();
+        void finishedSlot(QNetworkReply* reply);
+};
+
+#endif // FEEDBACKDIALOG_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/flowlayout.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,190 @@
+ /****************************************************************************
+ **
+ ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the examples of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:BSD$
+ ** You may use this file under the terms of the BSD license as follows:
+ **
+ ** "Redistribution and use in source and binary forms, with or without
+ ** modification, are permitted provided that the following conditions are
+ ** met:
+ **   * Redistributions of source code must retain the above copyright
+ **     notice, this list of conditions and the following disclaimer.
+ **   * Redistributions in binary form must reproduce the above copyright
+ **     notice, this list of conditions and the following disclaimer in
+ **     the documentation and/or other materials provided with the
+ **     distribution.
+ **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+ **     the names of its contributors may be used to endorse or promote
+ **     products derived from this software without specific prior written
+ **     permission.
+ **
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+ #include <QtGui>
+
+ #include "flowlayout.h"
+
+FlowLayout::FlowLayout(QWidget *parent, int margin, int hSpacing, int vSpacing)
+    : QLayout(parent), m_hSpace(hSpacing), m_vSpace(vSpacing)
+{
+    setContentsMargins(margin, margin, margin, margin);
+}
+
+FlowLayout::FlowLayout(int margin, int hSpacing, int vSpacing)
+    : m_hSpace(hSpacing), m_vSpace(vSpacing)
+{
+    setContentsMargins(margin, margin, margin, margin);
+}
+
+FlowLayout::~FlowLayout()
+{
+    QLayoutItem *item;
+    while ((item = takeAt(0)))
+        delete item;
+}
+
+void FlowLayout::addItem(QLayoutItem *item)
+{
+    itemList.append(item);
+}
+
+int FlowLayout::horizontalSpacing() const
+{
+    if (m_hSpace >= 0) {
+        return m_hSpace;
+    } else {
+        return smartSpacing(QStyle::PM_LayoutHorizontalSpacing);
+    }
+}
+
+int FlowLayout::verticalSpacing() const
+{
+    if (m_vSpace >= 0) {
+        return m_vSpace;
+    } else {
+        return smartSpacing(QStyle::PM_LayoutVerticalSpacing);
+    }
+}
+
+int FlowLayout::count() const
+{
+    return itemList.size();
+}
+
+QLayoutItem *FlowLayout::itemAt(int index) const
+{
+    return itemList.value(index);
+}
+
+QLayoutItem *FlowLayout::takeAt(int index)
+{
+    if (index >= 0 && index < itemList.size())
+        return itemList.takeAt(index);
+    else
+        return 0;
+}
+
+Qt::Orientations FlowLayout::expandingDirections() const
+{
+    return 0;
+}
+
+bool FlowLayout::hasHeightForWidth() const
+{
+    return true;
+}
+
+int FlowLayout::heightForWidth(int width) const
+{
+    int height = doLayout(QRect(0, 0, width, 0), true);
+    return height;
+}
+
+void FlowLayout::setGeometry(const QRect &rect)
+{
+    QLayout::setGeometry(rect);
+    doLayout(rect, false);
+}
+
+QSize FlowLayout::sizeHint() const
+{
+    return minimumSize();
+}
+
+QSize FlowLayout::minimumSize() const
+{
+    QSize size;
+    QLayoutItem *item;
+    foreach (item, itemList)
+        size = size.expandedTo(item->minimumSize());
+
+    size += QSize(2*margin(), 2*margin());
+    return size;
+}
+
+int FlowLayout::doLayout(const QRect &rect, bool testOnly) const
+{
+    int left, top, right, bottom;
+    getContentsMargins(&left, &top, &right, &bottom);
+    QRect effectiveRect = rect.adjusted(+left, +top, -right, -bottom);
+    int x = effectiveRect.x();
+    int y = effectiveRect.y();
+    int lineHeight = 0;
+
+    QLayoutItem *item;
+    foreach (item, itemList) {
+        QWidget *wid = item->widget();
+        int spaceX = horizontalSpacing();
+        if (spaceX == -1)
+            spaceX = wid->style()->layoutSpacing(
+                QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Horizontal);
+        int spaceY = verticalSpacing();
+        if (spaceY == -1)
+            spaceY = wid->style()->layoutSpacing(
+                QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Vertical);
+        int nextX = x + item->sizeHint().width() + spaceX;
+        if (nextX - spaceX > effectiveRect.right() && lineHeight > 0) {
+            x = effectiveRect.x();
+            y = y + lineHeight + spaceY;
+            nextX = x + item->sizeHint().width() + spaceX;
+            lineHeight = 0;
+        }
+
+        if (!testOnly)
+            item->setGeometry(QRect(QPoint(x, y), item->sizeHint()));
+
+        x = nextX;
+        lineHeight = qMax(lineHeight, item->sizeHint().height());
+    }
+    return y + lineHeight - rect.y() + bottom;
+}
+int FlowLayout::smartSpacing(QStyle::PixelMetric pm) const
+{
+    QObject *parent = this->parent();
+    if (!parent) {
+        return -1;
+    } else if (parent->isWidgetType()) {
+        QWidget *pw = static_cast<QWidget *>(parent);
+        return pw->style()->pixelMetric(pm, 0, pw);
+    } else {
+        return static_cast<QLayout *>(parent)->spacing();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/flowlayout.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,77 @@
+ /****************************************************************************
+ **
+ ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the examples of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:BSD$
+ ** You may use this file under the terms of the BSD license as follows:
+ **
+ ** "Redistribution and use in source and binary forms, with or without
+ ** modification, are permitted provided that the following conditions are
+ ** met:
+ **   * Redistributions of source code must retain the above copyright
+ **     notice, this list of conditions and the following disclaimer.
+ **   * Redistributions in binary form must reproduce the above copyright
+ **     notice, this list of conditions and the following disclaimer in
+ **     the documentation and/or other materials provided with the
+ **     distribution.
+ **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+ **     the names of its contributors may be used to endorse or promote
+ **     products derived from this software without specific prior written
+ **     permission.
+ **
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+ #ifndef FLOWLAYOUT_H
+ #define FLOWLAYOUT_H
+
+ #include <QLayout>
+ #include <QRect>
+ #include <QStyle>
+ #include <QWidgetItem>
+ class FlowLayout : public QLayout
+ {
+ public:
+     FlowLayout(QWidget *parent, int margin = -1, int hSpacing = -1, int vSpacing = -1);
+     FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1);
+     ~FlowLayout();
+
+     void addItem(QLayoutItem *item);
+     int horizontalSpacing() const;
+     int verticalSpacing() const;
+     Qt::Orientations expandingDirections() const;
+     bool hasHeightForWidth() const;
+     int heightForWidth(int) const;
+     int count() const;
+     QLayoutItem *itemAt(int index) const;
+     QSize minimumSize() const;
+     void setGeometry(const QRect &rect);
+     QSize sizeHint() const;
+     QLayoutItem *takeAt(int index);
+
+ private:
+     int doLayout(const QRect &rect, bool testOnly) const;
+     int smartSpacing(QStyle::PixelMetric pm) const;
+
+     QList<QLayoutItem *> itemList;
+     int m_hSpace;
+     int m_vSpace;
+ };
+
+ #endif
--- a/QTfrontend/ui/widget/gamecfgwidget.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/gamecfgwidget.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -24,7 +24,11 @@
 #include <QLabel>
 #include <QMessageBox>
 #include <QTableView>
+#include <QScrollBar>
+#include <QTabWidget>
 #include <QPushButton>
+#include <QDebug>
+#include <QList>
 
 #include "gamecfgwidget.h"
 #include "igbox.h"
@@ -33,6 +37,7 @@
 #include "ammoSchemeModel.h"
 #include "proto.h"
 #include "GameStyleModel.h"
+#include "themeprompt.h"
 
 GameCFGWidget::GameCFGWidget(QWidget* parent) :
     QGroupBox(parent)
@@ -40,28 +45,75 @@
     , seedRegexp("\\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\}")
 {
     mainLayout.setMargin(0);
-//  mainLayout.setSizeConstraint(QLayout::SetMinimumSize);
+    setMinimumHeight(310);
+    setMaximumHeight(447);
+    setMinimumWidth(470);
+    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+
+    // Easy containers for the map/game options in either stacked or tabbed mode
+
+    mapContainerFree = new QWidget();
+    mapContainerTabbed = new QWidget();
+    optionsContainerFree = new QWidget();
+    optionsContainerTabbed = new QWidget();
+    tabbed = false;
+
+    // Container for when in tabbed mode
 
-    pMapContainer = new HWMapContainer(this);
-    mainLayout.addWidget(pMapContainer, 0, 0);
+    tabs = new QTabWidget(this);
+    tabs->setFixedWidth(470);
+    tabs->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
+    tabs->addTab(mapContainerTabbed, tr("Map"));
+    tabs->addTab(optionsContainerTabbed, tr("Game options"));
+    tabs->setObjectName("gameCfgWidgetTabs");
+    mainLayout.addWidget(tabs, 1);
+    tabs->setVisible(false);
+
+    // Container for when in stacked mode
+
+    StackContainer = new QWidget();
+    StackContainer->setObjectName("gameStackContainer");
+    mainLayout.addWidget(StackContainer, 1);
+    QVBoxLayout * stackLayout = new QVBoxLayout(StackContainer);
 
-    IconedGroupBox *GBoxOptions = new IconedGroupBox(this);
-    GBoxOptions->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
-    mainLayout.addWidget(GBoxOptions, 1, 0);
+    // Map options
+
+    pMapContainer = new HWMapContainer(mapContainerFree);
+    stackLayout->addWidget(mapContainerFree, 0, Qt::AlignHCenter);
+    pMapContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    pMapContainer->setFixedSize(width() - 14, 278);
+    mapContainerFree->setFixedSize(pMapContainer->width(), pMapContainer->height());
+
+    // Horizontal divider
+
+    QFrame * divider = new QFrame();
+    divider->setFrameShape(QFrame::HLine);
+    divider->setFrameShadow(QFrame::Plain);
+    stackLayout->addWidget(divider, 0, Qt::AlignBottom);
+    //stackLayout->setRowMinimumHeight(1, 10);
 
-    QGridLayout *GBoxOptionsLayout = new QGridLayout(GBoxOptions);
+    // Game options
+
+    optionsContainerTabbed->setContentsMargins(0, 0, 0, 0);
+    optionsContainerFree->setFixedSize(width() - 14, 140);
+    stackLayout->addWidget(optionsContainerFree, 0, Qt::AlignHCenter);
 
-    GBoxOptions->setTitle(tr("Game Options"));
-    GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Style"), GBoxOptions), 1, 0);
+    OptionsInnerContainer = new QWidget(optionsContainerFree);
+    m_childWidgets << OptionsInnerContainer;
+    OptionsInnerContainer->setFixedSize(optionsContainerFree->width(), optionsContainerFree->height());
+    OptionsInnerContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+    GBoxOptionsLayout = new QGridLayout(OptionsInnerContainer);
 
-    Scripts = new QComboBox(GBoxOptions);
+    GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Style"), this), 1, 0);
+
+    Scripts = new QComboBox(this);
     GBoxOptionsLayout->addWidget(Scripts, 1, 1);
 
     Scripts->setModel(DataManager::instance().gameStyleModel());
     m_curScript = Scripts->currentText();
     connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int)));
 
-    QWidget *SchemeWidget = new QWidget(GBoxOptions);
+    QWidget *SchemeWidget = new QWidget(this);
     GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2);
 
     QGridLayout *SchemeWidgetLayout = new QGridLayout(SchemeWidget);
@@ -76,7 +128,7 @@
     QPixmap pmEdit(":/res/edit.png");
 
     QPushButton * goToSchemePage = new QPushButton(SchemeWidget);
-    goToSchemePage->setToolTip(tr("Edit schemes"));
+    goToSchemePage->setWhatsThis(tr("Edit schemes"));
     goToSchemePage->setIconSize(pmEdit.size());
     goToSchemePage->setIcon(pmEdit);
     goToSchemePage->setMaximumWidth(pmEdit.width() + 6);
@@ -91,7 +143,7 @@
     connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int)));
 
     QPushButton * goToWeaponPage = new QPushButton(SchemeWidget);
-    goToWeaponPage->setToolTip(tr("Edit weapons"));
+    goToWeaponPage->setWhatsThis(tr("Edit weapons"));
     goToWeaponPage->setIconSize(pmEdit.size());
     goToWeaponPage->setIcon(pmEdit);
     goToWeaponPage->setMaximumWidth(pmEdit.width() + 6);
@@ -99,7 +151,7 @@
     connect(goToWeaponPage, SIGNAL(clicked()), this, SLOT(jumpToWeapons()));
 
     bindEntries = new QCheckBox(SchemeWidget);
-    bindEntries->setToolTip(tr("When this option is enabled selecting a game scheme will auto-select a weapon"));
+    bindEntries->setWhatsThis(tr("Game scheme will auto-select a weapon"));
     bindEntries->setChecked(true);
     bindEntries->setMaximumWidth(42);
     bindEntries->setStyleSheet( "QCheckBox::indicator:checked   { image: url(\":/res/lock.png\"); }"
@@ -118,6 +170,42 @@
     connect(&DataManager::instance(), SIGNAL(updated()), this, SLOT(updateModelViews()));
 }
 
+void GameCFGWidget::setTabbed(bool tabbed)
+{
+    if (tabbed && !this->tabbed)
+    { // Make tabbed
+        tabs->setCurrentIndex(0);
+        StackContainer->setVisible(false);
+        tabs->setVisible(true);
+        pMapContainer->setParent(mapContainerTabbed);
+        OptionsInnerContainer->setParent(optionsContainerTabbed);
+        pMapContainer->setVisible(true);
+        setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
+        this->tabbed = true;
+    }
+    else if (!tabbed && this->tabbed)
+    { // Make stacked
+        pMapContainer->setParent(mapContainerFree);
+        OptionsInnerContainer->setParent(optionsContainerFree);
+        tabs->setVisible(false);
+        StackContainer->setVisible(true);
+        pMapContainer->setVisible(true);
+        setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+        this->tabbed = false;
+    }
+
+    // Restore scrollbar palettes, since Qt seems to forget them easily when switching parents
+    QList<QScrollBar *> allSBars = findChildren<QScrollBar *>();
+    QPalette pal = palette();
+    pal.setColor(QPalette::WindowText, QColor(0xff, 0xcc, 0x00));
+    pal.setColor(QPalette::Button, QColor(0x00, 0x35, 0x1d));
+    pal.setColor(QPalette::Base, QColor(0x00, 0x35, 0x1d));
+    pal.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
+
+    for (int i = 0; i < allSBars.size(); ++i)
+        allSBars.at(i)->setPalette(pal);
+}
+
 void GameCFGWidget::jumpToSchemes()
 {
     emit goToSchemes(GameSchemes->currentIndex());
@@ -186,7 +274,7 @@
     if (schemeData(24).toBool())
         result |= 0x02000000;       // tag team
     if (schemeData(25).toBool())
-        result |= 0x04000000;       // bottom border
+        result |= 0x04000000;       // bottom
 
     return result;
 }
@@ -235,6 +323,8 @@
     bcfg << QString("e$template_filter %1").arg(pMapContainer->getTemplateFilter()).toUtf8();
     bcfg << QString("e$mapgen %1").arg(mapgen).toUtf8();
 
+
+
     switch (mapgen)
     {
         case MAPGEN_MAZE:
@@ -271,7 +361,7 @@
     bool illegal = ammo.size() != cDefaultAmmoStore->size();
     if (illegal)
     {
-        QMessageBox illegalMsg(this);
+        QMessageBox illegalMsg(parentWidget());
         illegalMsg.setIcon(QMessageBox::Warning);
         illegalMsg.setWindowTitle(QMessageBox::tr("Error"));
         illegalMsg.setText(QMessageBox::tr("Cannot use the ammo '%1'!").arg(name));
@@ -325,10 +415,6 @@
         if (param == "SEED")
         {
             pMapContainer->setSeed(value);
-            if (!seedRegexp.exactMatch(value))
-            {
-                pMapContainer->seedEdit->setVisible(true);
-            }
             return;
         }
         if (param == "THEME")
@@ -377,8 +463,6 @@
         if (param == "FULLMAPCONFIG")
         {
             QString seed = slValue[3];
-            if (!seedRegexp.exactMatch(seed))
-                pMapContainer->seedEdit->setVisible(true);
 
             pMapContainer->setAllMapParameters(
                 slValue[0],
@@ -586,3 +670,19 @@
             Scripts->setCurrentIndex(0);
     }
 }
+
+bool GameCFGWidget::isMaster()
+{
+    return m_master;
+}
+
+void GameCFGWidget::setMaster(bool master)
+{
+    if (master == m_master) return;
+    m_master = master;
+
+    pMapContainer->setMaster(master);
+
+    foreach (QWidget *widget, m_childWidgets)
+        widget->setEnabled(master);
+}
--- a/QTfrontend/ui/widget/gamecfgwidget.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/gamecfgwidget.h	Sun Jan 27 00:28:57 2013 +0100
@@ -31,11 +31,14 @@
 class QVBoxLayout;
 class QLabel;
 class QTableView;
+class QTabWidget;
 
 class GameCFGWidget : public QGroupBox
 {
         Q_OBJECT
 
+        Q_PROPERTY(bool master READ isMaster WRITE setMaster)
+
     public:
         GameCFGWidget(QWidget* parent);
         quint32 getGameFlags() const;
@@ -47,11 +50,14 @@
         HWMapContainer* pMapContainer;
         QTableView * tv;
         QVariant schemeData(int column) const;
+        bool isMaster();
 
     public slots:
         void setParam(const QString & param, const QStringList & value);
         void fullNetConfig();
         void resendSchemeData();
+        void setMaster(bool master);
+        void setTabbed(bool tabbed);
 
     signals:
         void paramChanged(const QString & param, const QStringList & value);
@@ -75,12 +81,24 @@
         void updateModelViews();
 
     private:
-        QGridLayout mainLayout;
+        QVBoxLayout mainLayout;
         QCheckBox * bindEntries;
         QString curNetAmmoName;
         QString curNetAmmo;
         QRegExp seedRegexp;
         QString m_curScript;
+        bool m_master;
+        QList<QWidget *> m_childWidgets;
+        QGridLayout * GBoxOptionsLayout;
+        QWidget * OptionsInnerContainer;
+        QWidget * StackContainer;
+
+        QWidget * mapContainerFree;
+        QWidget * mapContainerTabbed;
+        QWidget * optionsContainerFree;
+        QWidget * optionsContainerTabbed;
+        bool tabbed;
+        QTabWidget * tabs;
 
         void setNetAmmo(const QString& name, const QString& ammo);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/hatbutton.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,72 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDebug>
+
+#include "hatprompt.h"
+#include "DataManager.h"
+#include "HatModel.h"
+#include "hatbutton.h"
+
+HatButton::HatButton(QWidget* parent) : QPushButton(parent)
+{
+    setIconSize(QSize(32, 37));
+    setFixedSize(44, 44);
+
+    m_hatModel = DataManager::instance().hatModel();
+    connect(this, SIGNAL(clicked()), this, SLOT(showPrompt()));
+
+    setCurrentIndex(0);
+}
+
+void HatButton::setCurrentIndex(int index)
+{
+    m_hat = m_hatModel->index(index, 0);
+    setWhatsThis(QString(tr("Change hat (%1)")).arg(m_hat.data(Qt::DisplayRole).toString()));
+    setToolTip(m_hat.data(Qt::DisplayRole).toString());
+    setIcon(m_hat.data(Qt::DecorationRole).value<QIcon>());
+}
+
+int HatButton::currentIndex()
+{
+    return m_hat.row();
+}
+
+void HatButton::setCurrentHat(const QString & name)
+{
+    QList<QStandardItem *> hats = m_hatModel->findItems(name);
+
+    if (hats.count() > 0)
+        setCurrentIndex(hats[0]->row());
+}
+
+QString HatButton::currentHat() const
+{
+    return m_hat.data(Qt::DisplayRole).toString();
+}
+
+void HatButton::showPrompt()
+{
+    HatPrompt prompt(currentIndex(), this);
+    int hatID = prompt.exec() - 1; // Since 0 means canceled, so all indexes are +1'd
+    if (hatID < 0) return;
+
+    setCurrentIndex(hatID);
+    emit currentIndexChanged(hatID);
+    emit currentHatChanged(currentHat());
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/hatbutton.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,55 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef HATBUTTON_H
+#define HATBUTTON_H
+
+#include <QPushButton>
+#include <QString>
+#include <QModelIndex>
+
+class HatModel;
+
+class HatButton : public QPushButton
+{
+        Q_OBJECT
+        Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex)
+        Q_PROPERTY(QString currentHat READ currentHat WRITE setCurrentHat)
+
+    public:
+        HatButton(QWidget* parent);
+        int currentIndex();
+        QString currentHat() const;
+
+    private:
+        QModelIndex m_hat;
+        HatModel * m_hatModel;
+
+    signals:
+        void currentIndexChanged(int);
+        void currentHatChanged(const QString &);
+
+    public slots:
+        void setCurrentIndex(int index);
+        void setCurrentHat(const QString & name);
+
+    private slots:
+        void showPrompt();
+};
+
+#endif // HATBUTTON_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/hatprompt.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,169 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDialog>
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QScrollArea>
+#include <QPushButton>
+#include <QToolButton>
+#include <QWidgetItem>
+#include <QModelIndex>
+#include <QListView>
+#include <QLineEdit>
+#include <QLabel>
+#include <QSortFilterProxyModel>
+#include <QDebug>
+
+#include "DataManager.h"
+#include "lineeditcursor.h"
+#include "HatModel.h"
+#include "hatprompt.h"
+
+HatPrompt::HatPrompt(int currentIndex, QWidget* parent) : QDialog(parent)
+{
+    setModal(true);
+    setWindowFlags(Qt::Sheet);
+    setWindowModality(Qt::WindowModal);
+    setMinimumSize(550, 430);
+    resize(550, 430);
+    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+
+    setStyleSheet("QPushButton { padding: 5px; margin-top: 10px; }");
+
+    // Hat model, and a model for setting a filter
+    HatModel * hatModel = DataManager::instance().hatModel();
+    filterModel = new QSortFilterProxyModel();
+    filterModel->setSourceModel(hatModel);
+    filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
+
+    // Grid
+    QGridLayout * dialogLayout = new QGridLayout(this);
+    dialogLayout->setSpacing(0);
+    dialogLayout->setColumnStretch(1, 1);
+
+    QHBoxLayout * topLayout = new QHBoxLayout();
+
+    // Help/prompt message at top
+    QLabel * lblDesc = new QLabel(tr("Select a hat"));
+    lblDesc->setObjectName("lblDesc");
+    lblDesc->setStyleSheet("#lblDesc { color: #130F2A; background: #F6CB1C; border: solid 4px #F6CB1C; border-top-left-radius: 10px; padding: 4px 10px;}");
+    lblDesc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    lblDesc->setFixedHeight(24);
+    lblDesc->setMinimumWidth(0);
+
+    // Filter text box
+    QWidget * filterContainer = new QWidget();
+    filterContainer->setFixedHeight(24);
+    filterContainer->setObjectName("filterContainer");
+    filterContainer->setStyleSheet("#filterContainer { background: #F6CB1C; border-top-right-radius: 10px; padding: 3px; }");
+    filterContainer->setFixedWidth(250);
+    txtFilter = new LineEditCursor(filterContainer);
+    txtFilter->setFixedWidth(250);
+    txtFilter->setFocus();
+    txtFilter->setFixedHeight(22);
+    connect(txtFilter, SIGNAL(textChanged(const QString &)), this, SLOT(filterChanged(const QString &)));
+    connect(txtFilter, SIGNAL(moveUp()), this, SLOT(moveUp()));
+    connect(txtFilter, SIGNAL(moveDown()), this, SLOT(moveDown()));
+    connect(txtFilter, SIGNAL(moveLeft()), this, SLOT(moveLeft()));
+    connect(txtFilter, SIGNAL(moveRight()), this, SLOT(moveRight()));
+
+    // Filter label
+    QLabel * lblFilter = new QLabel(tr("Filter: "), txtFilter);
+    lblFilter->setStyleSheet(QString("background: none; margin-left: -%1px; margin-top: 4px;").arg(lblFilter->width() / 2 - 3));
+    txtFilter->setStyleSheet(QString("border-width: 0px; background-color: rgb(13, 5, 68); border-radius: 6px; margin-top: 3px; margin-right: 3px; padding-left: %1px; padding-bottom: 2px;").arg(lblFilter->width() / 2));
+
+    // Corner widget
+    QLabel * corner = new QLabel();
+    corner->setPixmap(QPixmap(QString::fromUtf8(":/res/inverse-corner-bl.png")));
+    corner->setFixedSize(10, 10);
+
+    // Add widgets to top layout
+    topLayout->addWidget(lblDesc);
+    topLayout->addWidget(filterContainer);
+    topLayout->addWidget(corner, 0, Qt::AlignBottom);
+    topLayout->addStretch(1);
+
+    // Cancel button (closes dialog)
+    QPushButton * btnCancel = new QPushButton(tr("Cancel"));
+    connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
+
+    // Select button
+    QPushButton * btnSelect = new QPushButton(tr("Use selected hat"));
+    btnSelect->setDefault(true);
+    connect(btnSelect, SIGNAL(clicked()), this, SLOT(onAccepted()));
+
+    // Add hats
+    list = new HatListView();
+    list->setModel(filterModel);
+    list->setViewMode(QListView::IconMode);
+    list->setResizeMode(QListView::Adjust);
+    list->setMovement(QListView::Static);
+    list->setEditTriggers(QAbstractItemView::NoEditTriggers);
+    list->setSpacing(8);
+    list->setWordWrap(true);
+    list->setSelectionMode(QAbstractItemView::SingleSelection);
+    list->setObjectName("hatList");
+    list->setCurrentIndex(filterModel->index(currentIndex, 0));
+    connect(list, SIGNAL(activated(const QModelIndex &)), this, SLOT(hatChosen(const QModelIndex &)));
+    connect(list, SIGNAL(clicked(const QModelIndex &)), this, SLOT(hatChosen(const QModelIndex &)));
+
+    // Add elements to layouts
+    dialogLayout->addLayout(topLayout, 0, 0, 1, 3);
+    dialogLayout->addWidget(list, 1, 0, 1, 3);
+    dialogLayout->addWidget(btnCancel, 2, 0, 1, 1, Qt::AlignLeft);
+    dialogLayout->addWidget(btnSelect, 2, 2, 1, 1, Qt::AlignRight);
+}
+
+void HatPrompt::moveUp()
+{
+    list->setCurrentIndex(list->moveCursor(QAbstractItemView::MoveUp, Qt::NoModifier));
+}
+
+void HatPrompt::moveDown()
+{
+    list->setCurrentIndex(list->moveCursor(QAbstractItemView::MoveDown, Qt::NoModifier));
+}
+
+void HatPrompt::moveLeft()
+{
+    list->setCurrentIndex(list->moveCursor(QAbstractItemView::MoveLeft, Qt::NoModifier));
+}
+
+void HatPrompt::moveRight()
+{
+    list->setCurrentIndex(list->moveCursor(QAbstractItemView::MoveRight, Qt::NoModifier));
+}
+
+void HatPrompt::onAccepted()
+{
+    hatChosen(list->currentIndex());
+}
+
+// When a hat is selected
+void HatPrompt::hatChosen(const QModelIndex & index)
+{
+    done(filterModel->mapToSource(index).row() + 1); // Since returning 0 means canceled
+}
+
+// When the text in the filter text box is changed
+void HatPrompt::filterChanged(const QString & text)
+{
+    filterModel->setFilterFixedString(text);
+    list->setCurrentIndex(filterModel->index(0, 0));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/hatprompt.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,61 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef HATPROMPT_H
+#define HATPROMPT_H
+
+#include <QWidget>
+#include <QDialog>
+#include <QListView>
+
+class QLineEdit;
+class QModelIndex;
+class QSortFilterProxyModel;
+class LineEditCursor;
+
+class HatListView : public QListView
+{
+    friend class HatPrompt;
+
+    public:
+        HatListView(QWidget* parent = 0) : QListView(parent){}
+};
+
+class HatPrompt : public QDialog
+{
+        Q_OBJECT
+
+    public:
+        HatPrompt(int currentIndex = 0, QWidget* parent = 0);
+
+    private:
+        LineEditCursor * txtFilter;
+        HatListView * list;
+        QSortFilterProxyModel * filterModel;
+
+    private slots:
+        void onAccepted();
+        void hatChosen(const QModelIndex & index);
+        void filterChanged(const QString & text);
+        void moveUp();
+        void moveDown();
+        void moveLeft();
+        void moveRight();
+};
+
+#endif // HATPROMPT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/keybinder.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,301 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "keybinder.h"
+#include "HWApplication.h"
+#include "DataManager.h"
+#include <QHBoxLayout>
+#include <QScrollArea>
+#include <QTableWidget>
+#include <QTableWidgetItem>
+#include <QStandardItemModel>
+#include <QAbstractItemModel>
+#include <QListWidget>
+#include <QListWidgetItem>
+#include <QPushButton>
+#include <QHeaderView>
+#include <QComboBox>
+#include <QLabel>
+#include <QFrame>
+#include <QDebug>
+
+KeyBinder::KeyBinder(QWidget * parent, const QString & helpText, const QString & defaultText, const QString & resetButtonText) : QWidget(parent)
+{
+    this->defaultText = defaultText;
+    enableSignal = false;
+
+    // Two-column tab layout
+    QHBoxLayout * pageKeysLayout = new QHBoxLayout(this);
+    pageKeysLayout->setSpacing(0);
+    pageKeysLayout->setContentsMargins(0, 0, 0, 0);
+
+    // Table for category list
+    QVBoxLayout * catListContainer = new QVBoxLayout();
+    catListContainer->setContentsMargins(10, 10, 10, 10);
+    catList = new QListWidget();
+    catList->setFixedWidth(180);
+    catList->setStyleSheet("QListWidget::item { font-size: 14px; } QListWidget:hover { border-color: #F6CB1C; } QListWidget::item:selected { background: #150A61; color: yellow; }");
+    catList->setFocusPolicy(Qt::NoFocus);
+    connect(catList, SIGNAL(currentRowChanged(int)), this, SLOT(changeBindingsPage(int)));
+    catListContainer->addWidget(catList);
+    pageKeysLayout->addLayout(catListContainer);
+
+    // Reset all binds button
+    if (!resetButtonText.isEmpty())
+    {
+        QPushButton * btnResetAll = new QPushButton(resetButtonText);
+        catListContainer->addWidget(btnResetAll);
+        btnResetAll->setFixedHeight(40);
+        catListContainer->setStretch(1, 0);
+        catListContainer->setSpacing(10);
+        connect(btnResetAll, SIGNAL(clicked()), this, SIGNAL(resetAllBinds()));
+    }
+
+    // Container for pages of key bindings
+    QWidget * bindingsPagesContainer = new QWidget();
+    QVBoxLayout * rightLayout = new QVBoxLayout(bindingsPagesContainer);
+
+    // Scroll area for key bindings
+    QScrollArea * scrollArea = new QScrollArea();
+    scrollArea->setContentsMargins(0, 0, 0, 0);
+    scrollArea->setWidget(bindingsPagesContainer);
+    scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+    scrollArea->setWidgetResizable(true);
+    scrollArea->setFrameShape(QFrame::NoFrame);
+    scrollArea->setStyleSheet("background: #130F2A;");
+
+    // Add key binding pages to bindings tab
+    pageKeysLayout->addWidget(scrollArea);
+    pageKeysLayout->setStretch(1, 1);
+
+    // Custom help text
+    QLabel * helpLabel = new QLabel();
+    helpLabel->setText(helpText);
+    helpLabel->setStyleSheet("color: #130F2A; background: #F6CB1C; border: solid 4px #F6CB1C; border-radius: 10px; padding: auto 20px;");
+    helpLabel->setFixedHeight(24);
+    rightLayout->addWidget(helpLabel, 0, Qt::AlignCenter);
+
+    // Category list and bind table row heights
+    const int rowHeight = 20;
+    QSize catSize, headerSize;
+    catSize.setHeight(36);
+    headerSize.setHeight(24);
+
+    // Category list header
+    QListWidgetItem * catListHeader = new QListWidgetItem(tr("Category"));
+    catListHeader->setSizeHint(headerSize);
+    catListHeader->setFlags(Qt::NoItemFlags);
+    catListHeader->setForeground(QBrush(QColor("#130F2A")));
+    catListHeader->setBackground(QBrush(QColor("#F6CB1C")));
+    catListHeader->setTextAlignment(Qt::AlignCenter);
+    catList->addItem(catListHeader);
+
+    // Populate
+    bindingsPages = new QHBoxLayout();
+    bindingsPages->setContentsMargins(0, 0, 0, 0);
+    rightLayout->addLayout(bindingsPages);
+    QWidget * curPage = NULL;
+    QVBoxLayout * curLayout = NULL;
+    QTableWidget * curTable = NULL;
+    bool bFirstPage = true;
+    selectedBindTable = NULL;
+    bindComboBoxCellMappings = new QHash<QObject *, QTableWidgetItem *>();
+    bindCellComboBoxMappings = new QHash<QTableWidgetItem *, QComboBox *>();
+    for (int i = 0; i < BINDS_NUMBER; i++)
+    {
+        if (cbinds[i].category != NULL)
+        {
+            // Add stretch at end of previous layout
+            if (curLayout != NULL) curLayout->insertStretch(-1, 1);
+
+            // Category list item
+            QListWidgetItem * catItem = new QListWidgetItem(HWApplication::translate("binds (categories)", cbinds[i].category));
+            catItem->setSizeHint(catSize);
+            catList->addItem(catItem);
+
+            // Create new page
+            curPage = new QWidget();
+            curLayout = new QVBoxLayout(curPage);
+            curLayout->setSpacing(2);
+            bindingsPages->addWidget(curPage);
+            if (!bFirstPage) curPage->setVisible(false);
+        }
+
+        // Description
+        if (cbinds[i].description != NULL)
+        {
+            QLabel * desc = new QLabel(HWApplication::translate("binds (descriptions)", cbinds[i].description));
+            curLayout->addWidget(desc, 0);
+            QFrame * divider = new QFrame();
+            divider->setFrameShape(QFrame::HLine);
+            divider->setFrameShadow(QFrame::Plain);
+            curLayout->addWidget(divider, 0);
+        }
+
+        // New table
+        if (cbinds[i].category != NULL || cbinds[i].description != NULL)
+        {
+            curTable = new QTableWidget(0, 2);
+            curTable->verticalHeader()->setVisible(false);
+            curTable->horizontalHeader()->setVisible(false);
+            curTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
+            curTable->verticalHeader()->setDefaultSectionSize(rowHeight);
+            curTable->setShowGrid(false);
+            curTable->setStyleSheet("QTableWidget { border: none; } ");
+            curTable->setSelectionBehavior(QAbstractItemView::SelectRows);
+            curTable->setSelectionMode(QAbstractItemView::SingleSelection);
+            curTable->setFocusPolicy(Qt::NoFocus);
+            connect(curTable, SIGNAL(itemSelectionChanged()), this, SLOT(bindSelectionChanged()));
+            connect(curTable, SIGNAL(itemClicked(QTableWidgetItem *)), this, SLOT(bindCellClicked(QTableWidgetItem *)));
+            curLayout->addWidget(curTable, 0);
+        }
+
+        // Hidden combo box
+        QComboBox * comboBox = CBBind[i] = new QComboBox(curTable);
+        comboBox->setModel((QAbstractItemModel*)DataManager::instance().bindsModel());
+        comboBox->setVisible(false);
+        comboBox->setFixedWidth(200);
+
+        // Table row
+        int row = curTable->rowCount();
+        QTableWidgetItem * nameCell = new QTableWidgetItem(HWApplication::translate("binds", cbinds[i].name));
+        nameCell->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+        curTable->insertRow(row);
+        curTable->setItem(row, 0, nameCell);
+        QTableWidgetItem * bindCell = new QTableWidgetItem(comboBox->currentText());
+        bindCell->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+        curTable->setItem(row, 1, bindCell);
+        curTable->resizeColumnsToContents();
+        curTable->setFixedHeight(curTable->verticalHeader()->length() + 10);
+
+        // Updates the text in the table cell
+        connect(comboBox, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(bindChanged(const QString &)));
+
+        // Map combo box and that row's cells to each other
+        bindComboBoxCellMappings->insert(comboBox, bindCell);
+        bindCellComboBoxMappings->insert(nameCell, comboBox);
+        bindCellComboBoxMappings->insert(bindCell, comboBox);
+    }
+
+    // Add stretch at end of last layout
+    if (curLayout != NULL) curLayout->insertStretch(-1, 1);
+
+    // Go to first page
+    catList->setCurrentItem(catList->item(1));
+
+    enableSignal = true;
+}
+
+KeyBinder::~KeyBinder()
+{
+    delete bindComboBoxCellMappings;
+    delete bindCellComboBoxMappings;
+}
+
+// Switches between different pages of key binds
+void KeyBinder::changeBindingsPage(int page)
+{
+    page--; // Disregard first item (the list header)
+    int pages = bindingsPages->count();
+    for (int i = 0; i < pages; i++)
+        bindingsPages->itemAt(i)->widget()->setVisible(false);
+    bindingsPages->itemAt(page)->widget()->setVisible(true);
+}
+
+// When a key bind combobox value is changed, updates the table cell text
+void KeyBinder::bindChanged(const QString & text)
+{
+    bindComboBoxCellMappings->value(sender())->setText(text);
+
+    if (enableSignal)
+    {
+        for (int i = 0; i < BINDS_NUMBER; i++)
+        {
+            if (CBBind[i] == sender())
+            {
+                emit bindUpdate(i);
+                break;
+            }
+        }
+    }
+}
+
+// When a row in a key bind table is clicked, this shows the popup
+void KeyBinder::bindCellClicked(QTableWidgetItem * item)
+{
+    QComboBox * box = bindCellComboBoxMappings->value(item);
+    QTableWidget * table = item->tableWidget();
+    QFrame * frame = box->findChild<QFrame*>();
+
+    box->showPopup();
+    frame->move(
+        frame->x() + table->horizontalHeader()->sectionSize(0),
+        frame->y() + (table->verticalHeader()->defaultSectionSize() * item->row())
+    );
+}
+
+// When a new row in a bind table is *selected*, this clears selection in any other table
+void KeyBinder::bindSelectionChanged()
+{
+    QTableWidget * theSender = (QTableWidget*)sender();
+    if (theSender != selectedBindTable)
+    {
+        if (selectedBindTable != NULL)
+            selectedBindTable->clearSelection();
+        selectedBindTable = theSender;
+    }
+}
+
+// Set a combobox's index
+void KeyBinder::setBindIndex(int keyIndex, int bindIndex)
+{
+    enableSignal = false;
+    CBBind[keyIndex]->setCurrentIndex(bindIndex);
+    enableSignal = true;
+}
+
+// Return a combobox's selected index
+int KeyBinder::bindIndex(int keyIndex)
+{
+    return CBBind[keyIndex]->currentIndex();
+}
+
+// Clears selection and goes to first category
+void KeyBinder::resetInterface()
+{
+    enableSignal = false;
+
+    catList->setCurrentItem(catList->item(1));
+    changeBindingsPage(1);
+    if (selectedBindTable != NULL)
+    {
+        selectedBindTable->clearSelection();
+        selectedBindTable = NULL;
+    }
+
+    // Default bind text
+    DataManager::instance().bindsModel()->item(0)->setData(defaultText, Qt::DisplayRole);
+    for (int i = 0; i < BINDS_NUMBER; i++)
+    {
+        CBBind[i]->setModel(DataManager::instance().bindsModel());
+        CBBind[i]->setCurrentIndex(0);
+        bindComboBoxCellMappings->value(CBBind[i])->setText(defaultText);
+    }
+
+    enableSignal = true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/keybinder.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,68 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef _KEY_BINDER_H
+#define _KEY_BINDER_H
+
+#include <QWidget>
+#include <QHash>
+
+#include "binds.h"
+
+class QListWidget;
+class QTableWidgetItem;
+class QTableWidget;
+class QBoxLayout;
+class QComboBox;
+
+// USAGE NOTE: Every time the widget comes into view, you must call resetInterface()
+
+class KeyBinder : public QWidget
+{
+    Q_OBJECT
+
+    public:
+        KeyBinder(QWidget * parent = NULL, const QString & helpText = QString(), const QString & defaultText = QString(), const QString & resetButtonText = QString());
+        ~KeyBinder();
+
+        void setBindIndex(int keyIndex, int bindIndex);
+        int bindIndex(int keyIndex);
+        void resetInterface();
+
+    private:
+        QHash<QObject *, QTableWidgetItem *> * bindComboBoxCellMappings;
+        QHash<QTableWidgetItem *, QComboBox *> * bindCellComboBoxMappings;
+        QTableWidget * selectedBindTable;
+        QListWidget * catList;
+        QBoxLayout *bindingsPages;
+        QComboBox * CBBind[BINDS_NUMBER];
+        QString defaultText;
+        bool enableSignal;
+
+    signals:
+        void bindUpdate(int bindID);
+        void resetAllBinds();
+
+    private slots:
+        void changeBindingsPage(int page);
+        void bindChanged(const QString &);
+        void bindCellClicked(QTableWidgetItem * item);
+        void bindSelectionChanged();
+};
+
+#endif // _KEY_BINDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/lineeditcursor.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,35 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QKeyEvent>
+
+#include "lineeditcursor.h"
+
+void LineEditCursor::keyPressEvent(QKeyEvent * event)
+{
+    if (event->key() == Qt::Key_Up)
+        emit moveUp();
+    else if (event->key() == Qt::Key_Down)
+        emit moveDown();
+    else if (event->key() == Qt::Key_Left)
+        emit moveLeft();
+    else if (event->key() == Qt::Key_Right)
+        emit moveRight();
+    else
+        QLineEdit::keyPressEvent(event);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/lineeditcursor.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,41 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef LINEEDITCURSOR_H
+#define LINEEDITCURSOR_H
+
+#include <QLineEdit>
+
+class LineEditCursor : public QLineEdit
+{
+        Q_OBJECT
+
+    public:
+        LineEditCursor(QWidget* parent = 0) : QLineEdit(parent) {}
+
+    signals:
+        void moveUp();
+        void moveDown();
+        void moveLeft();
+        void moveRight();
+
+    private:
+        void keyPressEvent(QKeyEvent * event);
+};
+
+#endif // LINEEDITCURSOR_H
--- a/QTfrontend/ui/widget/mapContainer.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/mapContainer.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -30,13 +30,24 @@
 #include <QIcon>
 #include <QLineEdit>
 #include <QStringListModel>
+#include <QListWidget>
+#include <QListWidgetItem>
+#include <QDebug>
+#include <QFile>
+#include <QFileDialog>
+#include <QInputDialog>
+#include <QMessageBox>
 
 #include "hwconsts.h"
 #include "mapContainer.h"
+#include "themeprompt.h"
+#include "seedprompt.h"
 #include "igbox.h"
 #include "HWApplication.h"
 #include "ThemeModel.h"
 
+
+
 HWMapContainer::HWMapContainer(QWidget * parent) :
     QWidget(parent),
     mainLayout(this),
@@ -47,145 +58,205 @@
     hhSmall.load(":/res/hh_small.png");
     hhLimit = 18;
     templateFilter = 0;
+    m_master = true;
 
     linearGrad = QLinearGradient(QPoint(128, 0), QPoint(128, 128));
     linearGrad.setColorAt(1, QColor(0, 0, 192));
     linearGrad.setColorAt(0, QColor(66, 115, 225));
 
     mainLayout.setContentsMargins(HWApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
-                                  1,
+                                  10,
                                   HWApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin),
                                   HWApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
 
-    QWidget* mapWidget = new QWidget(this);
-    mainLayout.addWidget(mapWidget, 0, 0, Qt::AlignHCenter);
-
-    QGridLayout* mapLayout = new QGridLayout(mapWidget);
-    mapLayout->setMargin(0);
+    m_staticMapModel = DataManager::instance().staticMapModel();
+    m_missionMapModel = DataManager::instance().missionMapModel();
+    m_themeModel = DataManager::instance().themeModel();
 
-    imageButt = new QPushButton(mapWidget);
-    imageButt->setObjectName("imageButt");
-    imageButt->setFixedSize(256 + 6, 128 + 6);
-    imageButt->setFlat(true);
-    imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum);
-    mapLayout->addWidget(imageButt, 0, 0, 1, 2);
-    connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomMap()));
+    /* Layouts */
 
-    chooseMap = new QComboBox(mapWidget);
-    chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-    m_mapModel = DataManager::instance().mapModel();
-    chooseMap->setEditable(false);
-    chooseMap->setModel(m_mapModel);
+    QHBoxLayout * typeLayout = new QHBoxLayout();
+    QHBoxLayout * seedLayout = new QHBoxLayout();
+    QHBoxLayout * twoColumnLayout = new QHBoxLayout();
+    QVBoxLayout * leftLayout = new QVBoxLayout();
+    QVBoxLayout * rightLayout = new QVBoxLayout();
+    twoColumnLayout->addLayout(leftLayout, 0);
+    twoColumnLayout->addStretch(1);
+    twoColumnLayout->addLayout(rightLayout, 0);
+    QVBoxLayout * drawnControls = new QVBoxLayout();
+    leftLayout->addLayout(typeLayout, 0);
+    rightLayout->addLayout(seedLayout, 0);
+
+    /* Map type combobox */
 
-    mapLayout->addWidget(chooseMap, 1, 1);
+    typeLayout->setSpacing(10);
+    typeLayout->addWidget(new QLabel(tr("Map type:")), 0);
+    cType = new QComboBox(this);
+    typeLayout->addWidget(cType, 1);
+    cType->insertItem(0, tr("Image map"), MapModel::StaticMap);
+    cType->insertItem(1, tr("Mission map"), MapModel::MissionMap);
+    cType->insertItem(2, tr("Hand-drawn"), MapModel::HandDrawnMap);
+    cType->insertItem(3, tr("Randomly generated"), MapModel::GeneratedMap);
+    cType->insertItem(4, tr("Random maze"), MapModel::GeneratedMaze);
+    connect(cType, SIGNAL(currentIndexChanged(int)), this, SLOT(mapTypeChanged(int)));
+    m_childWidgets << cType;
 
-    QLabel * lblMap = new QLabel(tr("Map"), mapWidget);
-    mapLayout->addWidget(lblMap, 1, 0);
-
-    lblFilter = new QLabel(tr("Filter"), mapWidget);
-    mapLayout->addWidget(lblFilter, 2, 0);
+    /* Randomize button */
 
-    cbTemplateFilter = new QComboBox(mapWidget);
-    cbTemplateFilter->addItem(tr("All"), 0);
-    cbTemplateFilter->addItem(tr("Small"), 1);
-    cbTemplateFilter->addItem(tr("Medium"), 2);
-    cbTemplateFilter->addItem(tr("Large"), 3);
-    cbTemplateFilter->addItem(tr("Cavern"), 4);
-    cbTemplateFilter->addItem(tr("Wacky"), 5);
-    mapLayout->addWidget(cbTemplateFilter, 2, 1);
+    seedLayout->addStretch(1);
+    const QIcon& lp = QIcon(":/res/dice.png");
+    QSize sz = lp.actualSize(QSize(65535, 65535));
+    btnRandomize = new QPushButton();
+    btnRandomize->setText(tr("Random"));
+    btnRandomize->setIcon(lp);
+    btnRandomize->setFixedHeight(30);
+    btnRandomize->setIconSize(sz);
+    btnRandomize->setFlat(true);
+    btnRandomize->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    connect(btnRandomize, SIGNAL(clicked()), this, SLOT(setRandomMap()));
+    m_childWidgets << btnRandomize;
+    btnRandomize->setStyleSheet("padding: 5px;");
+    btnRandomize->setFixedHeight(cType->height());
+    seedLayout->addWidget(btnRandomize, 1);
 
-    connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int)));
+    /* Seed button */
+    btnSeed = new QPushButton(parentWidget()->parentWidget());
+    btnSeed->setText(tr("Seed"));
+    btnSeed->setStyleSheet("padding: 5px;");
+    btnSeed->setFixedHeight(cType->height());
+    connect(btnSeed, SIGNAL(clicked()), this, SLOT(showSeedPrompt()));
+    seedLayout->addWidget(btnSeed, 0);
 
-    maze_size_label = new QLabel(tr("Type"), mapWidget);
-    mapLayout->addWidget(maze_size_label, 2, 0);
-    maze_size_label->hide();
-    cbMazeSize = new QComboBox(mapWidget);
-    cbMazeSize->addItem(tr("Small tunnels"), 0);
-    cbMazeSize->addItem(tr("Medium tunnels"), 1);
-    cbMazeSize->addItem(tr("Large tunnels"), 2);
-    cbMazeSize->addItem(tr("Small floating islands"), 3);
-    cbMazeSize->addItem(tr("Medium floating islands"), 4);
-    cbMazeSize->addItem(tr("Large floating islands"), 5);
-    cbMazeSize->setCurrentIndex(1);
+    /* Map preview label */
+
+    QLabel * lblMapPreviewText = new QLabel(this);
+    lblMapPreviewText->setText(tr("Map preview:"));
+    leftLayout->addWidget(lblMapPreviewText, 0);
+    leftLayout->addSpacing(2);
+
+    /* Map Preview */
 
-    mapLayout->addWidget(cbMazeSize, 2, 1);
-    cbMazeSize->hide();
-    connect(cbMazeSize, SIGNAL(activated(int)), this, SLOT(setMazeSize(int)));
+    mapPreview = new QLabel(this);
+    mapPreview->setObjectName("mapPreview");
+    mapPreview->setFixedSize(256, 128);
+    leftLayout->addWidget(mapPreview, 0);
+
+    /* Bottom-Left layout */
 
-    gbThemes = new IconedGroupBox(mapWidget);
-    gbThemes->setTitleTextPadding(80);
-    gbThemes->setContentTopPadding(15);
-    gbThemes->setTitle(tr("Themes"));
+    QVBoxLayout * bottomLeftLayout = new QVBoxLayout();
+    leftLayout->addLayout(bottomLeftLayout, 1);
+
+    /* Map list label */
+
+    lblMapList = new QLabel();
+    rightLayout->addWidget(lblMapList, 0);
+
+    /* Static maps list */
 
-    //gbThemes->setStyleSheet("padding: 0px"); // doesn't work - stylesheet is set with icon
-    mapLayout->addWidget(gbThemes, 0, 2, 3, 1);
-    // disallow row to be collapsed (so it can't get ignored when Qt applies rowSpan of gbThemes)
-    mapLayout->setRowMinimumHeight(2, 13);
-    QVBoxLayout * gbTLayout = new QVBoxLayout(gbThemes);
-    gbTLayout->setContentsMargins(0, 0, 0 ,0);
-    gbTLayout->setSpacing(0);
-    lvThemes = new QListView(mapWidget);
-    lvThemes->setMinimumHeight(30);
-    lvThemes->setFixedWidth(140);
-    m_themeModel = DataManager::instance().themeModel();
-    lvThemes->setModel(m_themeModel);
-    lvThemes->setIconSize(QSize(16, 16));
-    lvThemes->setEditTriggers(QListView::NoEditTriggers);
+    staticMapList = new QListView;
+    staticMapList->setModel(m_staticMapModel);
+    rightLayout->addWidget(staticMapList, 1);
+    staticMapList->setEditTriggers(QAbstractItemView::NoEditTriggers);
+    m_childWidgets << staticMapList;
+    QItemSelectionModel * staticSelectionModel = staticMapList->selectionModel();
+    connect(staticSelectionModel,
+            SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)),
+            this,
+            SLOT(staticMapChanged(const QModelIndex &, const QModelIndex &)));
 
-    connect(lvThemes->selectionModel(), SIGNAL(currentRowChanged( const QModelIndex &, const QModelIndex &)), this, SLOT(themeSelected( const QModelIndex &, const QModelIndex &)));
+    /* Mission maps list */
 
-    // override default style to tighten up theme scroller
-    lvThemes->setStyleSheet(QString(
-                                "QListView{"
-                                "border: solid;"
-                                "border-width: 0px;"
-                                "border-radius: 0px;"
-                                "border-color: transparent;"
-                                "background-color: #0d0544;"
-                                "color: #ffcc00;"
-                                "font: bold 13px;"
-                                "}"
-                            )
-                           );
+    missionMapList = new QListView;
+    missionMapList->setModel(m_missionMapModel);
+    missionMapList->setEditTriggers(QAbstractItemView::NoEditTriggers);
+    rightLayout->addWidget(missionMapList, 1);
+    m_childWidgets << missionMapList;
+    QItemSelectionModel * missionSelectionModel = missionMapList->selectionModel();
+    connect(missionSelectionModel,
+            SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)),
+            this,
+            SLOT(missionMapChanged(const QModelIndex &, const QModelIndex &)));
+
+    /* Map load and edit buttons */
+
+    drawnControls->addStretch(1);
 
-    gbTLayout->addWidget(lvThemes);
-    lvThemes->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum);
+    btnLoadMap = new QPushButton(tr("Load map drawing"));
+    btnLoadMap->setStyleSheet("padding: 20px;");
+    drawnControls->addWidget(btnLoadMap, 0);
+    m_childWidgets << btnLoadMap;
+    connect(btnLoadMap, SIGNAL(clicked()), this, SLOT(loadDrawing()));
+
+    btnEditMap = new QPushButton(tr("Edit map drawing"));
+    btnEditMap->setStyleSheet("padding: 20px;");
+    drawnControls->addWidget(btnEditMap, 0);
+    m_childWidgets << btnEditMap;
+    connect(btnEditMap, SIGNAL(clicked()), this, SIGNAL(drawMapRequested()));
+
+    drawnControls->addStretch(1);
+
+    rightLayout->addLayout(drawnControls);
+
+    /* Generator style list */
 
-    mapLayout->setSizeConstraint(QLayout::SetFixedSize);
+    generationStyles = new QListWidget();
+    new QListWidgetItem(tr("All"), generationStyles);
+    new QListWidgetItem(tr("Small"), generationStyles);
+    new QListWidgetItem(tr("Medium"), generationStyles);
+    new QListWidgetItem(tr("Large"), generationStyles);
+    new QListWidgetItem(tr("Cavern"), generationStyles);
+    new QListWidgetItem(tr("Wacky"), generationStyles);
+    connect(generationStyles, SIGNAL(currentRowChanged(int)), this, SLOT(setTemplateFilter(int)));
+    m_childWidgets << generationStyles;
+    rightLayout->addWidget(generationStyles, 1);
+
+    /* Maze style list */
 
-    QWidget* seedWidget = new QWidget(this);
-    mainLayout.addWidget(seedWidget, 1, 0);
+    mazeStyles = new QListWidget();
+    new QListWidgetItem(tr("Small tunnels"), mazeStyles);
+    new QListWidgetItem(tr("Medium tunnels"), mazeStyles);
+    new QListWidgetItem(tr("Largetunnels"), mazeStyles);
+    new QListWidgetItem(tr("Small islands"), mazeStyles);
+    new QListWidgetItem(tr("Medium islands"), mazeStyles);
+    new QListWidgetItem(tr("Large islands"), mazeStyles);
+    connect(mazeStyles, SIGNAL(currentRowChanged(int)), this, SLOT(setMazeSize(int)));
+    m_childWidgets << mazeStyles;
+    rightLayout->addWidget(mazeStyles, 1);
 
-    QGridLayout* seedLayout = new QGridLayout(seedWidget);
-    seedLayout->setMargin(0);
+    /* Mission description */
 
-    seedLabel = new QLabel(tr("Seed"), seedWidget);
-    seedLayout->addWidget(seedLabel, 3, 0);
-    seedEdit = new QLineEdit(seedWidget);
-    seedEdit->setMaxLength(54);
-    connect(seedEdit, SIGNAL(returnPressed()), this, SLOT(seedEdited()));
-    seedLayout->addWidget(seedEdit, 3, 1);
-    seedLayout->setColumnStretch(1, 5);
-    seedSet = new QPushButton(seedWidget);
-    seedSet->setText(QPushButton::tr("more"));
-    connect(seedSet, SIGNAL(clicked()), this, SLOT(seedEdited()));
-    seedLayout->setColumnStretch(2, 1);
-    seedLayout->addWidget(seedSet, 3, 2);
+    lblDesc = new QLabel();
+    lblDesc->setWordWrap(true);
+    lblDesc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    lblDesc->setAlignment(Qt::AlignTop | Qt::AlignLeft);
+    lblDesc->setStyleSheet("font: 10px;");
+    bottomLeftLayout->addWidget(lblDesc, 1);
+
+    /* Add stretch above theme button */
+
+    bottomLeftLayout->addStretch(1);
+
+    /* Theme chooser */
 
-    seedLabel->setVisible(false);
-    seedEdit->setVisible(false);
+    btnTheme = new QPushButton();
+    connect(btnTheme, SIGNAL(clicked()), this, SLOT(showThemePrompt()));
+    m_childWidgets << btnTheme;
+    bottomLeftLayout->addWidget(btnTheme, 0);
 
-    setRandomSeed();
-    setRandomTheme();
+    /* Add everything to main layout */
+
+    mainLayout.addLayout(twoColumnLayout, 0);
 
-    chooseMap->setCurrentIndex(0);
-    mapChanged(0);
-    // use signal "activated" rather than currentIndexChanged
-    // because index is somtimes changed a few times in a row programmatically
-    connect(chooseMap, SIGNAL(activated(int)), this, SLOT(mapChanged(int)));
+    /* Set defaults */
 
-    // update model views after model changes (to e.g. re-adjust separators)
-    connect(&DataManager::instance(), SIGNAL(updated()), this, SLOT(updateModelViews()));
+    setRandomTheme();
+    setRandomSeed();
+    setMazeSize(0);
+    setTemplateFilter(0);
+    staticMapChanged(m_staticMapModel->index(0, 0));
+    missionMapChanged(m_missionMapModel->index(0, 0));
+    updateTheme(m_themeModel->index(0, 0));
+    changeMapType(MapModel::GeneratedMap);
 }
 
 void HWMapContainer::setImage(const QImage newImage)
@@ -202,8 +273,9 @@
     p.drawPixmap(QPoint(0, 0), px);
 
     addInfoToPreview(pxres);
-    //chooseMap->setCurrentIndex(mapgen);
     pMap = 0;
+
+    cType->setEnabled(isMaster());
 }
 
 void HWMapContainer::setHHLimit(int newHHLimit)
@@ -211,70 +283,6 @@
     hhLimit = newHHLimit;
 }
 
-void HWMapContainer::mapChanged(int index)
-{
-    if (chooseMap->currentIndex() != index)
-        chooseMap->setCurrentIndex(index);
-
-    if (index < 0)
-    {
-        m_mapInfo.type = MapModel::Invalid;
-        updatePreview();
-        return;
-    }
-
-    Q_ASSERT(chooseMap->itemData(index, Qt::UserRole + 1).canConvert<MapModel::MapInfo>());
-    m_mapInfo = chooseMap->itemData(index, Qt::UserRole + 1).value<MapModel::MapInfo>();
-    m_curMap = m_mapInfo.name;
-
-    switch(m_mapInfo.type)
-    {
-        case MapModel::GeneratedMap:
-            mapgen = MAPGEN_REGULAR;
-            gbThemes->show();
-            lblFilter->show();
-            cbTemplateFilter->show();
-            maze_size_label->hide();
-            cbMazeSize->hide();
-            break;
-        case MapModel::GeneratedMaze:
-            mapgen = MAPGEN_MAZE;
-            gbThemes->show();
-            lblFilter->hide();
-            cbTemplateFilter->hide();
-            maze_size_label->show();
-            cbMazeSize->show();
-            break;
-        case MapModel::HandDrawnMap:
-            mapgen = MAPGEN_DRAWN;
-            gbThemes->show();
-            lblFilter->hide();
-            cbTemplateFilter->hide();
-            maze_size_label->hide();
-            cbMazeSize->hide();
-            break;
-        default:
-            mapgen = MAPGEN_MAP;
-            gbThemes->hide();
-            lblFilter->hide();
-            cbTemplateFilter->hide();
-            maze_size_label->hide();
-            cbMazeSize->hide();
-            m_theme = m_mapInfo.theme;
-    }
-
-    // the map has no pre-defined theme, so let's use the selected one
-    if (m_mapInfo.theme.isEmpty())
-    {
-        m_theme = lvThemes->currentIndex().data().toString();
-        emit themeChanged(m_theme);
-    }
-
-    updatePreview();
-    emit mapChanged(m_curMap);
-    emit mapgenChanged(mapgen);
-}
-
 // Should this add text to identify map size?
 void HWMapContainer::addInfoToPreview(QPixmap image)
 {
@@ -292,8 +300,7 @@
     p.drawText(image.rect().width() - hhSmall.rect().width() - 14 - (hhLimit > 9 ? 10 : 0), 18, text);
     p.drawPixmap(image.rect().width() - hhSmall.rect().width() - 5, 5, hhSmall.rect().width(), hhSmall.rect().height(), hhSmall);
 
-    imageButt->setIcon(finalImage);
-    imageButt->setIconSize(image.size());
+    mapPreview->setPixmap(finalImage);
 }
 
 void HWMapContainer::askForGeneratedPreview()
@@ -322,14 +329,8 @@
     p.drawPixmap(QPoint(x, y), waitIcon);
 
     addInfoToPreview(waitImage);
-}
 
-void HWMapContainer::themeSelected(const QModelIndex & current, const QModelIndex &)
-{
-    m_theme = current.data().toString();
-
-    gbThemes->setIcon(qVariantValue<QIcon>(current.data(Qt::UserRole)));
-    emit themeChanged(m_theme);
+    cType->setEnabled(false);
 }
 
 QString HWMapContainer::getCurrentSeed() const
@@ -339,8 +340,14 @@
 
 QString HWMapContainer::getCurrentMap() const
 {
-    if(chooseMap->currentIndex() < MAPGEN_MAP) return QString();
-    return(m_curMap);
+    switch (m_mapInfo.type)
+    {
+        case MapModel::StaticMap:
+        case MapModel::MissionMap:
+            return m_curMap;
+        default:
+            return QString();
+    }
 }
 
 QString HWMapContainer::getCurrentTheme() const
@@ -370,20 +377,17 @@
 
 quint32 HWMapContainer::getTemplateFilter() const
 {
-    return cbTemplateFilter->itemData(cbTemplateFilter->currentIndex()).toInt();
+    return generationStyles->currentRow();
 }
 
 void HWMapContainer::resizeEvent ( QResizeEvent * event )
 {
     Q_UNUSED(event);
-    //imageButt->setIconSize(imageButt->size());
 }
 
 void HWMapContainer::intSetSeed(const QString & seed)
 {
     m_seed = seed;
-    if (seed != seedEdit->text())
-        seedEdit->setText(seed);
 }
 
 void HWMapContainer::setSeed(const QString & seed)
@@ -395,11 +399,29 @@
 
 void HWMapContainer::intSetMap(const QString & map)
 {
-    m_curMap = map;
-
-    int id = m_mapModel->indexOf(map);
-
-    mapChanged(id);
+    if (map == "+rnd+")
+    {
+        changeMapType(MapModel::GeneratedMap);
+    }
+    else if (map == "+maze+")
+    {
+        changeMapType(MapModel::GeneratedMaze);
+    }
+    else if (map == "+drawn+")
+    {
+        changeMapType(MapModel::HandDrawnMap);
+    }
+    else if (m_staticMapModel->mapExists(map))
+    {
+        changeMapType(MapModel::StaticMap, m_staticMapModel->index(m_staticMapModel->findMap(map), 0));
+    }
+    else if (m_missionMapModel->mapExists(map))
+    {
+        changeMapType(MapModel::MissionMap, m_missionMapModel->index(m_missionMapModel->findMap(map), 0));
+    } else
+    {
+        qDebug() << "HWMapContainer::intSetMap: Map doesn't exist: " << map;
+    }
 }
 
 void HWMapContainer::setMap(const QString & map)
@@ -413,13 +435,13 @@
     QModelIndexList mdl = m_themeModel->match(m_themeModel->index(0), Qt::DisplayRole, theme);
 
     if(mdl.size())
-        lvThemes->setCurrentIndex(mdl.at(0));
+        updateTheme(mdl.at(0));
+    else
+        intSetIconlessTheme(theme);
 }
 
 void HWMapContainer::setRandomMap()
 {
-    int idx;
-
     setRandomSeed();
     switch(m_mapInfo.type)
     {
@@ -427,21 +449,17 @@
         case MapModel::GeneratedMaze:
             setRandomTheme();
             break;
-        case MapModel::HandDrawnMap:
-            emit drawMapRequested();
+        case MapModel::MissionMap:
+            missionMapChanged(m_missionMapModel->index(rand() % m_missionMapModel->rowCount(), 0));
             break;
-        case MapModel::MissionMap:
         case MapModel::StaticMap:
-            // get random map of same type
-            idx = m_mapModel->randomMap(m_mapInfo.type);
-            mapChanged(idx);
+            staticMapChanged(m_staticMapModel->index(rand() % m_staticMapModel->rowCount(), 0));
             break;
-        case MapModel::Invalid:
-            mapChanged(0);
+        default:
+            break;
     }
 }
 
-
 void HWMapContainer::setRandomSeed()
 {
     setSeed(QUuid::createUuid().toString());
@@ -452,12 +470,12 @@
 {
     if(!m_themeModel->rowCount()) return;
     quint32 themeNum = rand() % m_themeModel->rowCount();
-    lvThemes->setCurrentIndex(m_themeModel->index(themeNum));
+    updateTheme(m_themeModel->index(themeNum));
 }
 
 void HWMapContainer::intSetTemplateFilter(int filter)
 {
-    cbTemplateFilter->setCurrentIndex(filter);
+    generationStyles->setCurrentRow(filter);
     emit newTemplateFilter(filter);
 }
 
@@ -475,12 +493,12 @@
 
 int HWMapContainer::getMazeSize(void) const
 {
-    return cbMazeSize->currentIndex();
+    return mazeStyles->currentRow();
 }
 
 void HWMapContainer::intSetMazeSize(int size)
 {
-    cbMazeSize->setCurrentIndex(size);
+    mazeStyles->setCurrentRow(size);
     emit mazeSizeChanged(size);
 }
 
@@ -521,9 +539,6 @@
                 break;
         }
 
-        if(m != MAPGEN_MAP)
-            chooseMap->setCurrentIndex(m);
-
         emit mapgenChanged(m);
     }
 }
@@ -546,23 +561,10 @@
     return drawMapScene.encode();
 }
 
-void HWMapContainer::seedEdited()
+void HWMapContainer::setNewSeed(const QString & newSeed)
 {
-    if (seedLabel->isVisible() == false )
-    {
-        seedLabel->setVisible(true);
-        seedEdit->setVisible(true);
-        seedSet->setText(tr("Set"));
-        return;
-    }
-
-    if (seedEdit->text().isEmpty())
-        seedEdit->setText(m_seed);
-    else
-    {
-        setSeed(seedEdit->text());
-        emit seedChanged(seedEdit->text());
-    }
+    setSeed(newSeed);
+    emit seedChanged(newSeed);
 }
 
 DrawMapScene * HWMapContainer::getDrawMapScene()
@@ -592,8 +594,7 @@
     {
         case MapModel::Invalid:
             failIcon = QPixmap(":/res/btnDisabled.png");
-            imageButt->setIcon(failIcon);
-            imageButt->setIconSize(failIcon.size());
+            mapPreview->setPixmap(failIcon);
             break;
         case MapModel::GeneratedMap:
             askForGeneratedPreview();
@@ -610,7 +611,7 @@
 
             if(!success)
             {
-                imageButt->setIcon(QIcon());
+                mapPreview->setPixmap(QPixmap());
                 return;
             }
 
@@ -629,7 +630,6 @@
     intSetMap(map);
 }
 
-
 void HWMapContainer::updateModelViews()
 {
     // restore theme selection
@@ -638,13 +638,13 @@
     {
         QModelIndexList mdl = m_themeModel->match(m_themeModel->index(0), Qt::DisplayRole, m_theme);
         if (mdl.size() > 0)
-            lvThemes->setCurrentIndex(mdl.at(0));
+            updateTheme(mdl.at(0));
         else
             setRandomTheme();
     }
 
     // restore map selection
-    if ((!m_curMap.isEmpty()) && (chooseMap->currentIndex() < 0))
+    if (!m_curMap.isEmpty())
         intSetMap(m_curMap);
     else
         updatePreview();
@@ -656,3 +656,249 @@
     if (map == pMap)
         pMap = 0;
 }
+
+void HWMapContainer::mapTypeChanged(int index)
+{
+    changeMapType((MapModel::MapType)cType->itemData(index).toInt());
+}
+
+void HWMapContainer::changeMapType(MapModel::MapType type, const QModelIndex & newMap)
+{
+    staticMapList->hide();
+    missionMapList->hide();
+    lblMapList->hide();
+    generationStyles->hide();
+    mazeStyles->hide();
+    lblDesc->hide();
+    btnLoadMap->hide();
+    btnEditMap->hide();
+
+    switch (type)
+    {
+        case MapModel::GeneratedMap:
+            mapgen = MAPGEN_REGULAR;
+            setMapInfo(MapModel::MapInfoRandom);
+            lblMapList->setText(tr("Map size:"));
+            lblMapList->show();
+            generationStyles->show();
+            break;
+        case MapModel::GeneratedMaze:
+            mapgen = MAPGEN_MAZE;
+            setMapInfo(MapModel::MapInfoMaze);
+            lblMapList->setText(tr("Maze style:"));
+            lblMapList->show();
+            mazeStyles->show();
+            break;
+        case MapModel::HandDrawnMap:
+            mapgen = MAPGEN_DRAWN;
+            setMapInfo(MapModel::MapInfoDrawn);
+            btnLoadMap->show();
+            btnEditMap->show();
+            break;
+        case MapModel::MissionMap:
+            mapgen = MAPGEN_MAP;
+            missionMapChanged(newMap.isValid() ? newMap : missionMapList->currentIndex());
+            lblMapList->setText(tr("Mission:"));
+            lblMapList->show();
+            missionMapList->show();
+            lblDesc->setText(m_mapInfo.desc);
+            lblDesc->show();
+            emit mapChanged(m_curMap);
+            break;
+        case MapModel::StaticMap:
+            mapgen = MAPGEN_MAP;
+            staticMapChanged(newMap.isValid() ? newMap : staticMapList->currentIndex());
+            lblMapList->setText(tr("Map:"));
+            lblMapList->show();
+            staticMapList->show();
+            emit mapChanged(m_curMap);
+            break;
+        default:
+            break;
+    }
+
+    // Update theme button size
+    updateThemeButtonSize();
+
+    // Update cType combobox
+    for (int i = 0; i < cType->count(); i++)
+    {
+        if ((MapModel::MapType)cType->itemData(i).toInt() == type)
+        {
+            cType->setCurrentIndex(i);
+            break;
+        }
+    }
+
+    emit mapgenChanged(mapgen);
+}
+
+void HWMapContainer::updateThemeButtonSize()
+{
+    if (m_mapInfo.type == MapModel::MissionMap)
+    {
+        btnTheme->setIconSize(QSize(30, 30));
+        btnTheme->setFixedHeight(30);
+    }
+    else
+    {
+        QSize iconSize = btnTheme->icon().actualSize(QSize(65535, 65535));
+        btnTheme->setFixedHeight(64);
+        btnTheme->setIconSize(iconSize);
+    }
+
+    repaint();
+}
+
+void HWMapContainer::showThemePrompt()
+{
+    ThemePrompt prompt(this);
+    int theme = prompt.exec() - 1; // Since 0 means canceled, so all indexes are +1'd
+    if (theme < 0) return;
+
+    QModelIndex current = m_themeModel->index(theme, 0);
+    updateTheme(current);
+    emit themeChanged(m_theme);
+}
+
+void HWMapContainer::updateTheme(const QModelIndex & current)
+{
+    m_theme = selectedTheme = current.data().toString();
+    QIcon icon = qVariantValue<QIcon>(current.data(Qt::UserRole));
+    QSize iconSize = icon.actualSize(QSize(65535, 65535));
+    btnTheme->setFixedHeight(64);
+    btnTheme->setIconSize(iconSize);
+    btnTheme->setIcon(icon);
+    btnTheme->setText(tr("Theme: ") + current.data(Qt::DisplayRole).toString());
+    updateThemeButtonSize();
+}
+
+void HWMapContainer::staticMapChanged(const QModelIndex & map, const QModelIndex & old)
+{
+    mapChanged(map, 0, old);
+}
+
+void HWMapContainer::missionMapChanged(const QModelIndex & map, const QModelIndex & old)
+{
+    mapChanged(map, 1, old);
+}
+
+// Type: 0 = static, 1 = mission
+void HWMapContainer::mapChanged(const QModelIndex & map, int type, const QModelIndex & old)
+{
+    QListView * mapList;
+
+    if (type == 0)      mapList = staticMapList;
+    else if (type == 1) mapList = missionMapList;
+    else                return;
+
+    // Make sure it is a valid index
+    if (!map.isValid())
+    {
+        if (old.isValid())
+        {
+            mapList->setCurrentIndex(old);
+            mapList->scrollTo(old);
+        }
+        else
+        {
+            m_mapInfo.type = MapModel::Invalid;
+            updatePreview();
+        }
+
+        return;
+    }
+
+    // If map changed, update list selection
+    if (mapList->currentIndex() != map)
+    {
+        mapList->setCurrentIndex(map);
+        mapList->scrollTo(map);
+    }
+
+    if (map.data(Qt::UserRole + 1).canConvert<MapModel::MapInfo>())
+        setMapInfo(map.data(Qt::UserRole + 1).value<MapModel::MapInfo>());
+    else
+        Q_ASSERT(false); // Houston, we have a problem.
+
+}
+
+void HWMapContainer::setMapInfo(MapModel::MapInfo mapInfo)
+{
+    m_mapInfo = mapInfo;
+    m_curMap = m_mapInfo.name;
+
+    // the map has no pre-defined theme, so let's use the selected one
+    if (m_mapInfo.theme.isEmpty())
+    {
+        if (!selectedTheme.isEmpty())
+        {
+            setTheme(selectedTheme);
+            emit themeChanged(selectedTheme);
+        }
+    }
+    else
+    {
+        setTheme(m_mapInfo.theme);
+        emit themeChanged(m_mapInfo.theme);
+    }
+
+    lblDesc->setText(mapInfo.desc);
+
+    updatePreview();
+    emit mapChanged(m_curMap);
+}
+
+void HWMapContainer::loadDrawing()
+{
+    QString fileName = QFileDialog::getOpenFileName(NULL, tr("Load drawn map"), ".", tr("Drawn Maps") + " (*.hwmap);;" + tr("All files") + " (*)");
+
+    if(fileName.isEmpty()) return;
+
+    QFile f(fileName);
+
+    if(!f.open(QIODevice::ReadOnly))
+    {
+        QMessageBox errorMsg(parentWidget());
+        errorMsg.setIcon(QMessageBox::Warning);
+        errorMsg.setWindowTitle(QMessageBox::tr("File error"));
+        errorMsg.setText(QMessageBox::tr("Cannot open '%1' for reading").arg(fileName));
+        errorMsg.setWindowModality(Qt::WindowModal);
+        errorMsg.exec();
+    }
+    else
+    {
+        drawMapScene.decode(qUncompress(QByteArray::fromBase64(f.readAll())));
+        mapDrawingFinished();
+    }
+}
+
+void HWMapContainer::showSeedPrompt()
+{
+    SeedPrompt prompt(parentWidget()->parentWidget(), getCurrentSeed(), isMaster());
+    connect(&prompt, SIGNAL(seedSelected(const QString &)), this, SLOT(setNewSeed(const QString &)));
+    prompt.exec();
+}
+
+bool HWMapContainer::isMaster()
+{
+    return m_master;
+}
+
+void HWMapContainer::setMaster(bool master)
+{
+    if (master == m_master) return;
+    m_master = master;
+
+    foreach (QWidget *widget, m_childWidgets)
+        widget->setEnabled(master);
+}
+
+void HWMapContainer::intSetIconlessTheme(const QString & name)
+{
+    if (name.isEmpty()) return;
+
+    m_theme = name;
+    btnTheme->setIcon(QIcon());
+    btnTheme->setText(tr("Theme: ") + name);
+}
--- a/QTfrontend/ui/widget/mapContainer.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/mapContainer.h	Sun Jan 27 00:28:57 2013 +0100
@@ -22,6 +22,7 @@
 
 #include <QWidget>
 #include <QGridLayout>
+#include <QVBoxLayout>
 #include <QComboBox>
 #include <QLabel>
 #include <QByteArray>
@@ -37,6 +38,7 @@
 class IconedGroupBox;
 class QListView;
 class SeparatorPainter;
+class QListWidget;
 
 class MapFileErrorException
 {
@@ -46,6 +48,8 @@
 {
         Q_OBJECT
 
+        Q_PROPERTY(bool master READ isMaster WRITE setMaster)
+
     public:
         HWMapContainer(QWidget * parent=0);
         QString getCurrentSeed() const;
@@ -62,6 +66,7 @@
         DrawMapScene * getDrawMapScene();
         void mapDrawingFinished();
         QLineEdit* seedEdit;
+        bool isMaster();
 
     public slots:
         void askForGeneratedPreview();
@@ -75,6 +80,7 @@
         void setAllMapParameters(const QString & map, MapGenerator m, int mazesize, const QString & seed, int tmpl);
         void updateModelViews();
         void onPreviewMapDestroyed(QObject * map);
+        void setMaster(bool master);
 
     signals:
         void seedChanged(const QString & seed);
@@ -89,22 +95,28 @@
     private slots:
         void setImage(const QImage newImage);
         void setHHLimit(int hhLimit);
-        void mapChanged(int index);
         void setRandomSeed();
         void setRandomTheme();
         void setRandomMap();
-        void themeSelected(const QModelIndex & current, const QModelIndex &);
         void addInfoToPreview(QPixmap image);
-        void seedEdited();
+        void setNewSeed(const QString & newSeed);
+        void mapTypeChanged(int);
+        void showThemePrompt();
+        void updateTheme(const QModelIndex & current);
+        void staticMapChanged(const QModelIndex & map, const QModelIndex & old = QModelIndex());
+        void missionMapChanged(const QModelIndex & map, const QModelIndex & old = QModelIndex());
+        void loadDrawing();
+        void showSeedPrompt();
 
     protected:
         virtual void resizeEvent ( QResizeEvent * event );
 
     private:
-        QGridLayout mainLayout;
-        QPushButton* imageButt;
+        QVBoxLayout mainLayout;
+        QLabel* mapPreview;
         QComboBox* chooseMap;
-        MapModel * m_mapModel;
+        MapModel * m_staticMapModel;
+        MapModel * m_missionMapModel;
         IconedGroupBox* gbThemes;
         QListView* lvThemes;
         ThemeModel * m_themeModel;
@@ -121,13 +133,33 @@
         QComboBox *cbMazeSize;
         MapGenerator mapgen;
         DrawMapScene drawMapScene;
+        QComboBox * cType;
+        QListView * staticMapList;
+        QListView * missionMapList;
+        QListWidget * generationStyles;
+        QListWidget * mazeStyles;
+        QLabel * lblMapList;
+        QLabel * lblDesc;
+        QPushButton * btnTheme;
+        QPushButton * btnLoadMap;
+        QPushButton * btnEditMap;
+        QPushButton * btnRandomize;
+        QString selectedTheme;
+        QPushButton * btnSeed;
+        bool m_master;
+        QList<QWidget *> m_childWidgets;
 
         void intSetSeed(const QString & seed);
         void intSetMap(const QString & map);
         void intSetMapgen(MapGenerator m);
         void intSetTemplateFilter(int);
         void intSetMazeSize(int size);
+        void intSetIconlessTheme(const QString & name);
+        void mapChanged(const QModelIndex & map, int type, const QModelIndex & old = QModelIndex());
+        void setMapInfo(MapModel::MapInfo mapInfo);
+        void changeMapType(MapModel::MapType type, const QModelIndex & newMap = QModelIndex());
         void updatePreview();
+        void updateThemeButtonSize();
 
         MapModel::MapInfo m_mapInfo;
         QString m_theme;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/seedprompt.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,85 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDialog>
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QLineEdit>
+#include <QLabel>
+#include <QDebug>
+
+#include "seedprompt.h"
+
+SeedPrompt::SeedPrompt(QWidget* parent, const QString & seed, bool editable) : QDialog(parent)
+{
+    setModal(true);
+    setWindowFlags(Qt::Sheet);
+    setWindowModality(Qt::WindowModal);
+    setMinimumSize(360, 160);
+    resize(360, 160);
+    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+
+    // Layout
+    QVBoxLayout * dialogLayout = new QVBoxLayout(this);
+
+    // Label
+    QLabel * label = new QLabel(tr("The map seed is the basis for all random values generated by the game."));
+    label->setWordWrap(true);
+    dialogLayout->addWidget(label, 0);
+
+    // Input box
+    editBox = new QLineEdit();
+    editBox->setText(seed);
+    editBox->setReadOnly(!editable);
+    editBox->setStyleSheet("QLineEdit { padding: 3px; }");
+    dialogLayout->addWidget(editBox, 1);
+
+    dialogLayout->addStretch(1);
+
+    // Buttons
+    QHBoxLayout * buttonLayout = new QHBoxLayout();
+    buttonLayout->addStretch(1);
+    dialogLayout->addLayout(buttonLayout);
+    if (editable)
+    {
+        QPushButton * btnCancel = new QPushButton(tr("Cancel"));
+        QPushButton * btnOkay = new QPushButton(tr("Set seed"));
+        connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
+        connect(btnOkay, SIGNAL(clicked()), this, SLOT(accept()));
+        buttonLayout->addWidget(btnCancel);
+        buttonLayout->addWidget(btnOkay);
+        btnOkay->setDefault(true);
+    }
+    else
+    {
+        QPushButton * btnClose = new QPushButton(tr("Close"));
+        connect(btnClose, SIGNAL(clicked()), this, SLOT(reject()));
+        buttonLayout->addWidget(btnClose);
+        btnClose->setDefault(true);
+    }
+
+    setStyleSheet("QPushButton { padding: 5px; }");
+
+    connect(this, SIGNAL(accepted()), this, SLOT(setSeed()));
+}
+
+void SeedPrompt::setSeed()
+{
+    emit seedSelected(editBox->text());
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/seedprompt.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,43 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef SEEDPROMPT_H
+#define SEEDPROMPT_H
+
+#include <QDialog>
+
+class QLineEdit;
+
+class SeedPrompt : public QDialog
+{
+        Q_OBJECT
+
+    public:
+        SeedPrompt(QWidget* parent, const QString & seed, bool editable);
+
+    signals:
+        void seedSelected(const QString & seed);
+
+    private slots:
+        void setSeed();
+
+    private:
+        QLineEdit * editBox;
+};
+
+#endif // SEEDPROMPT_H
--- a/QTfrontend/ui/widget/teamselect.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/teamselect.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -36,8 +36,6 @@
     {
         framePlaying->addTeam(team, true);
         curPlayingTeams.push_back(team);
-        connect(framePlaying->getTeamWidget(team), SIGNAL(teamStatusChanged(HWTeam)),
-                this, SLOT(netTeamStatusChanged(const HWTeam&)));
         connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)),
                 this, SLOT(hhNumChanged(const HWTeam&)));
         dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged();
@@ -145,17 +143,6 @@
     emit setEnabledGameStart(curPlayingTeams.size()>1);
 }
 
-void TeamSelWidget::netTeamStatusChanged(const HWTeam& team)
-{
-    QList<HWTeam>::iterator itPlay=std::find(curPlayingTeams.begin(), curPlayingTeams.end(), team);
-
-}
-
-//void TeamSelWidget::removeTeam(__attribute__ ((unused)) HWTeam team)
-//{
-//curDontPlayingTeams.erase(std::find(curDontPlayingTeams.begin(), curDontPlayingTeams.end(), team));
-//}
-
 void TeamSelWidget::changeTeamStatus(HWTeam team)
 {
     QList<HWTeam>::iterator itDontPlay=std::find(m_curNotPlayingTeams.begin(), m_curNotPlayingTeams.end(), team);
@@ -237,6 +224,8 @@
         pRemoveTeams->resize(pRemoveTeams->size().width(), szh1.height());
     }
 
+    repaint();
+
     emit setEnabledGameStart(curPlayingTeams.size()>1);
 }
 
@@ -273,7 +262,7 @@
 
     QPalette p;
     p.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
-    addScrArea(framePlaying, p.color(QPalette::Window).light(105), 250);
+    addScrArea(framePlaying, p.color(QPalette::Window).light(105), 150);
     addScrArea(frameDontPlaying, p.color(QPalette::Window).dark(105), 0);
 }
 
@@ -297,7 +286,9 @@
     m_curNotPlayingTeams.clear();
 
     foreach(HWTeam team, teamslist)
-    addTeam(team);
+        addTeam(team);
+
+    repaint();
 }
 
 bool TeamSelWidget::isPlaying(const HWTeam &team) const
@@ -320,3 +311,10 @@
     //team.setColor(framePlaying->getNextColor());
     emit acceptRequested(team);
 }
+
+void TeamSelWidget::repaint()
+{
+    QWidget::repaint();
+    framePlaying->repaint();
+    frameDontPlaying->repaint();
+}
--- a/QTfrontend/ui/widget/teamselect.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/teamselect.h	Sun Jan 27 00:28:57 2013 +0100
@@ -51,7 +51,6 @@
 
     public slots:
         void addTeam(HWTeam team);
-        void netTeamStatusChanged(const HWTeam& team);
         void changeHHNum(const HWTeam&);
         void changeTeamColor(const HWTeam&);
         void changeTeamStatus(HWTeam team);
@@ -77,6 +76,7 @@
         QVBoxLayout mainLayout;
         QLabel *numTeamNotice;
         bool m_acceptOuter;
+        void repaint();
 
         QList<HWTeam> curPlayingTeams;
         QList<HWTeam> m_curNotPlayingTeams;
--- a/QTfrontend/ui/widget/teamselhelper.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui/widget/teamselhelper.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -55,7 +55,7 @@
 
     butt = new QPushButton(difficultyIcon, team.name().replace("&","&&"), this);
     butt->setFlat(true);
-    butt->setToolTip(team.owner());
+    butt->setWhatsThis(tr("%1's team").arg(team.owner()));
     mainLayout.addWidget(butt);
     butt->setStyleSheet("QPushButton{"
                         "icon-size: 48px;"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/themeprompt.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,101 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <QDialog>
+#include <QVBoxLayout>
+#include <QScrollArea>
+#include <QPushButton>
+#include <QToolButton>
+#include <QWidgetItem>
+#include <QModelIndex>
+#include <QLabel>
+
+#include "flowlayout.h"
+#include "DataManager.h"
+#include "ThemeModel.h"
+#include "themeprompt.h"
+
+ThemePrompt::ThemePrompt(QWidget* parent) : QDialog(parent)
+{
+    setModal(true);
+    setWindowFlags(Qt::Sheet);
+    setWindowModality(Qt::WindowModal);
+    setMinimumSize(550, 430);
+    resize(550, 430);
+    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+
+    // Grid
+    QVBoxLayout * dialogLayout = new QVBoxLayout(this);
+    dialogLayout->setSpacing(0);
+
+    // Help/prompt message at top
+    QLabel * lblDesc = new QLabel(tr("Select a theme for this map"));
+    lblDesc->setStyleSheet("color: #130F2A; background: #F6CB1C; border: solid 4px #F6CB1C; border-top-left-radius: 10px; border-top-right-radius: 10px; padding: auto 20px;");
+    lblDesc->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+    lblDesc->setFixedHeight(24);
+    lblDesc->setMinimumWidth(0);
+
+    // Scroll area and container for theme icons
+    QWidget * themesContainer = new QWidget();
+    FlowLayout * themesGrid = new FlowLayout();
+    themesContainer->setLayout(themesGrid);
+    QScrollArea * scrollArea = new QScrollArea();
+    scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+    scrollArea->setObjectName("scrollArea");
+    scrollArea->setStyleSheet("QScrollBar, #scrollArea { background-color: #130F2A; } #scrollArea { border-color: #F6CB1C; border-width: 3px; border-top-width: 0; border-style: solid; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; }");
+    scrollArea->setWidgetResizable(true);
+    scrollArea->setFrameShape(QFrame::NoFrame);
+    scrollArea->setWidget(themesContainer);
+
+    // Cancel button (closes dialog)
+    QPushButton * btnCancel = new QPushButton(tr("Cancel"));
+    btnCancel->setStyleSheet("padding: 5px; margin-top: 10px;");
+    connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
+
+    // Add elements to layouts
+    dialogLayout->addWidget(lblDesc, 0);
+    dialogLayout->addWidget(scrollArea, 1);
+    dialogLayout->addWidget(btnCancel, 0, Qt::AlignLeft);
+
+    // Tooltip label for theme name
+    lblToolTip = new QLabel(this);
+
+    // Add theme buttons
+    ThemeModel * themes = DataManager::instance().themeModel();
+    for (int i = 0; i < themes->rowCount(); i++)
+    {
+        QModelIndex index = themes->index(i, 0);
+        QToolButton * btn = new QToolButton();
+        bool dlc = themes->data(index, Qt::UserRole + 2).toBool();
+        btn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+        btn->setIcon(qVariantValue<QIcon>(themes->data(index, Qt::UserRole)));
+        btn->setText((dlc ? "*" : "") + themes->data(index, Qt::DisplayRole).toString());
+        btn->setIconSize(QSize(60, 60));
+        btn->setProperty("themeID", QVariant(i));
+        btn->setStyleSheet("padding: 2px;");
+        connect(btn, SIGNAL(clicked()), this, SLOT(themeClicked()));
+        themesGrid->addWidget(btn);
+    }
+}
+
+// When a theme is selected
+void ThemePrompt::themeClicked()
+{
+    QWidget * btn = (QWidget*)sender();
+    done(btn->property("themeID").toInt() + 1); // Since returning 0 means canceled
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/widget/themeprompt.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,41 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef THEMEPROMPT_H
+#define THEMEPROMPT_H
+
+#include <QWidget>
+#include <QDialog>
+
+class QLabel;
+
+class ThemePrompt : public QDialog
+{
+        Q_OBJECT
+
+    public:
+        ThemePrompt(QWidget* parent);
+
+    private:
+        QLabel * lblToolTip;
+
+    private slots:
+        void themeClicked();
+};
+
+#endif // THEMEPROMPT_H
--- a/QTfrontend/ui_hwform.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui_hwform.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -27,7 +27,6 @@
 #include "pagetraining.h"
 #include "pagenetserver.h"
 #include "pageoptions.h"
-#include "pagefeedback.h"
 #include "pageingame.h"
 #include "pagescheme.h"
 #include "pageroomslist.h"
@@ -140,9 +139,6 @@
     pageDataDownload = new PageDataDownload();
     Pages->addWidget(pageDataDownload);
 
-    pageFeedback = new PageFeedback();
-    Pages->addWidget(pageFeedback);
-
     pageVideos = new PageVideos();
     Pages->addWidget(pageVideos);
 }
--- a/QTfrontend/ui_hwform.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/ui_hwform.h	Sun Jan 27 00:28:57 2013 +0100
@@ -24,7 +24,6 @@
 class PageMultiplayer;
 class PagePlayDemo;
 class PageOptions;
-class PageFeedback;
 class PageNet;
 class PageNetServer;
 class PageNetChat;
@@ -59,7 +58,6 @@
         PageMultiplayer *pageMultiplayer;
         PagePlayDemo *pagePlayDemo;
         PageOptions *pageOptions;
-        PageFeedback *pageFeedback;
         PageNet *pageNet;
         PageNetServer * pageNetServer;
         PageNetChat *pageNetChat;
--- a/QTfrontend/util/DataManager.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/util/DataManager.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -40,7 +40,8 @@
 DataManager::DataManager()
 {
     m_hatModel = NULL;
-    m_mapModel = NULL;
+    m_staticMapModel = NULL;
+    m_missionMapModel = NULL;
     m_themeModel = NULL;
     m_colorsModel = NULL;
     m_bindsModel = NULL;
@@ -92,13 +93,22 @@
     return m_hatModel;
 }
 
-MapModel * DataManager::mapModel()
+MapModel * DataManager::staticMapModel()
 {
-    if (m_mapModel == NULL) {
-        m_mapModel = new MapModel();
-        m_mapModel->loadMaps();
+    if (m_staticMapModel == NULL) {
+        m_staticMapModel = new MapModel();
+        m_staticMapModel->loadMaps(MapModel::StaticMap);
     }
-    return m_mapModel;
+    return m_staticMapModel;
+}
+
+MapModel * DataManager::missionMapModel()
+{
+    if (m_missionMapModel == NULL) {
+        m_missionMapModel = new MapModel();
+        m_missionMapModel->loadMaps(MapModel::MissionMap);
+    }
+    return m_missionMapModel;
 }
 
 ThemeModel * DataManager::themeModel()
@@ -135,6 +145,11 @@
     {
         m_bindsModel = new QStandardItemModel();
 
+        QStandardItem * firstItem = new QStandardItem();
+        firstItem->setData(tr("Use Default"), Qt::DisplayRole);
+        firstItem->setData("default", Qt::UserRole + 1);
+        m_bindsModel->appendRow(firstItem);
+
         for(int j = 0; sdlkeys[j][1][0] != '\0'; j++)
         {
             QStandardItem * item = new QStandardItem();
--- a/QTfrontend/util/DataManager.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/util/DataManager.h	Sun Jan 27 00:28:57 2013 +0100
@@ -88,13 +88,22 @@
         HatModel * hatModel();
 
         /**
-         * @brief Returns pointer to a model of available maps.
+         * @brief Returns pointer to a model of available static maps.
          *
          * The model is updated automatically on data reload.
          *
          * @return map model pointer.
          */
-        MapModel * mapModel();
+        MapModel * staticMapModel();
+
+        /**
+         * @brief Returns pointer to a model of available mission maps.
+         *
+         * The model is updated automatically on data reload.
+         *
+         * @return map model pointer.
+         */
+        MapModel * missionMapModel();
 
         /**
          * @brief Returns pointer to a model of available themes.
@@ -132,7 +141,8 @@
 
         GameStyleModel * m_gameStyleModel; ///< game style model instance
         HatModel * m_hatModel; ///< hat model instance
-        MapModel * m_mapModel; ///< map model instance
+        MapModel * m_staticMapModel; ///< static map model instance
+        MapModel * m_missionMapModel; ///< mission map model instance
         ThemeModel * m_themeModel; ///< theme model instance
         QStandardItemModel * m_colorsModel;
         QStandardItemModel * m_bindsModel;
--- a/QTfrontend/util/LibavInteraction.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/QTfrontend/util/LibavInteraction.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -302,7 +302,7 @@
         else
             continue;
         AVCodec* pDecoder = avcodec_find_decoder(pCodec->codec_id);
-        desc += pDecoder? pDecoder->name : "unknown";
+        desc += pDecoder? pDecoder->name : tr("unknown");
         desc += "\n";
     }
     AVDictionaryEntry* pComment = av_dict_get(pContext->metadata, "comment", NULL, 0);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/MessageDialog.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,39 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "MessageDialog.h"
+
+int MessageDialog::ShowErrorMessage(const QString & msg, QWidget * parent)
+{
+    return ShowMessage(msg, QMessageBox::tr("Hedgewars - Warning"), QMessageBox::Warning, parent);
+}
+
+int MessageDialog::ShowInfoMessage(const QString & msg, QWidget * parent)
+{
+    return ShowMessage(msg, QMessageBox::tr("Hedgewars - Information"), QMessageBox::Information, parent);
+}
+
+int MessageDialog::ShowMessage(const QString & msg, const QString & title, QMessageBox::Icon icon, QWidget * parent)
+{
+    QMessageBox msgMsg(parent);
+    msgMsg.setIcon(icon);
+    msgMsg.setWindowTitle(title.isEmpty() ? QMessageBox::tr("Hedgewars") : title);
+    msgMsg.setText(msg);
+    msgMsg.setWindowModality(Qt::WindowModal);
+    return msgMsg.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/MessageDialog.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,35 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef MESSAGEDIALOG_H
+#define MESSAGEDIALOG_H
+
+#include <QString>
+#include <QMessageBox>
+
+class QWidget;
+
+class MessageDialog
+{
+    public:
+        static int ShowErrorMessage(const QString & msg, QWidget * parent = 0);
+        static int ShowInfoMessage(const QString & msg, QWidget * parent = 0);
+        static int ShowMessage(const QString & msg, const QString & title = QString(), QMessageBox::Icon icon = QMessageBox::NoIcon, QWidget * parent = 0);
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/AutoUpdater.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,9 @@
+/*
+ * Copyright (C) 2008 Remko Troncon
+ */
+
+#include "AutoUpdater.h"
+
+AutoUpdater::~AutoUpdater()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/AutoUpdater.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2008 Remko Troncon
+ */
+
+#ifndef AUTOUPDATER_H
+#define AUTOUPDATER_H
+
+class AutoUpdater
+{
+    public:
+        virtual ~AutoUpdater();
+
+        virtual void checkForUpdates() = 0;
+        virtual void checkForUpdatesNow() = 0;
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/CocoaInitializer.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,35 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+// see original example here http://el-tramo.be/blog/mixing-cocoa-and-qt
+
+#ifndef COCOAINITIALIZER_H
+#define COCOAINITIALIZER_H
+
+class CocoaInitializer
+{
+    public:
+        CocoaInitializer();
+        ~CocoaInitializer();
+
+    private:
+        class Private;
+        Private* c;
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/CocoaInitializer.mm	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,44 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+// see original example here http://el-tramo.be/blog/mixing-cocoa-and-qt
+
+#include "CocoaInitializer.h"
+
+#include <AppKit/AppKit.h>
+#include <Cocoa/Cocoa.h>
+#include <QtDebug>
+
+class CocoaInitializer::Private
+{
+    public:
+        NSAutoreleasePool* pool;
+};
+
+CocoaInitializer::CocoaInitializer()
+{
+    c = new CocoaInitializer::Private();
+    c->pool = [[NSAutoreleasePool alloc] init];
+    NSApplicationLoad();
+}
+
+CocoaInitializer::~CocoaInitializer()
+{
+    [c->pool release];
+    delete c;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/InstallController.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,23 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "InstallController.h"
+
+InstallController::~InstallController()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/InstallController.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,30 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef INSTALLCONTROLLER_H
+#define INSTALLCONTROLLER_H
+
+class InstallController
+{
+    public:
+        virtual ~InstallController();
+
+        virtual void showInstallController() = 0;
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/M3InstallController.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,53 @@
+/*****************************************************************
+ M3InstallController.m
+
+ Created by Martin Pilkington on 02/06/2007.
+
+ Copyright (c) 2006-2009 M Cubed Software
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ *****************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import <AvailabilityMacros.h>
+
+//#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050
+#if __LP64__ || NS_BUILD_32_LIKE_64
+typedef long NSInteger;
+typedef unsigned long NSUInteger;
+#else
+typedef int NSInteger;
+typedef unsigned int NSUInteger;
+#endif
+//#endif
+
+
+@interface M3InstallController :
+NSObject
+{
+    NSAlert *alert;
+}
+
+- (void)displayInstaller;
+- (void)installApp;
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/M3InstallController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,97 @@
+/*****************************************************************
+ M3InstallController.m
+
+ Created by Martin Pilkington on 02/06/2007.
+
+ Copyright (c) 2006-2009 M Cubed Software
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ *****************************************************************/
+
+#import "M3InstallController.h"
+#import "NSWorkspace_RBAdditions.h"
+
+#import <Foundation/Foundation.h>
+
+@implementation M3InstallController
+
+- (id) init {
+        if ((self = [super init])) {
+        NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
+        NSString *title = [NSString stringWithFormat:NSLocalizedString(@"%@ is currently running from a disk image", @"AppName is currently running from a disk image"), appName];
+        NSString *body = [NSString stringWithFormat:NSLocalizedString(@"Would you like to install %@ in your applications folder before quitting?", @"Would you like to install App Name in your applications folder before quitting?"), appName];
+        alert = [[NSAlert alertWithMessageText:title
+                                 defaultButton:NSLocalizedString(@"Install", @"Install")
+                               alternateButton:NSLocalizedString(@"Don't Install", @"Don't Install")
+                                   otherButton:nil
+                     informativeTextWithFormat:body] retain];
+        //[alert setShowsSuppressionButton:YES];
+    }
+    return self;
+}
+
+- (void)displayInstaller {
+    NSString *imageFilePath = [[[NSWorkspace sharedWorkspace] propertiesForPath:[[NSBundle mainBundle] bundlePath]] objectForKey:NSWorkspace_RBimagefilepath];
+    if (imageFilePath && ![imageFilePath isEqualToString:[NSString stringWithFormat:@"/Users/.%@/%@.sparseimage", NSUserName(), NSUserName()]] && ![[NSUserDefaults standardUserDefaults] boolForKey:@"M3DontAskInstallAgain"]) {
+        NSInteger returnValue = [alert runModal];
+        if (returnValue == NSAlertDefaultReturn) {
+            [self installApp];
+        }
+        if ([[alert suppressionButton] state] == NSOnState) {
+            [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"M3DontAskInstallAgain"];
+        }
+    }
+}
+
+- (void)installApp {
+    NSString *appsPath = [[NSString stringWithString:@"/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]];
+    NSString *userAppsPath = [[[NSString stringWithString:@"~/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]] stringByExpandingTildeInPath];
+    NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
+
+    //Delete the app that is installed
+    if ([[NSFileManager defaultManager] fileExistsAtPath:appsPath]) {
+        [[NSFileManager defaultManager] removeFileAtPath:appsPath handler:nil];
+    }
+    //Delete the app that is installed
+    if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:appsPath
+                                          handler:nil]) {
+        NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"App Name installed successfully"), appName],
+                        [NSString stringWithFormat:NSLocalizedString(@"%@ was installed in /Applications", @"App Name was installed in /Applications"), appName],
+                        NSLocalizedString(@"Quit", @"Quit"), nil, nil);
+    } else {
+        if ([[NSFileManager defaultManager] fileExistsAtPath:userAppsPath]) {
+            [[NSFileManager defaultManager] removeFileAtPath:userAppsPath handler:nil];
+        }
+        if ([[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath] toPath:userAppsPath
+                                                handler:nil]) {
+        NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"AppName installed successfully"), appName],
+                [NSString stringWithFormat:NSLocalizedString(@"%@ was installed in %@", @"App Name was installed in %@"), appName, [[NSString stringWithString:@"~/Applications"] stringByExpandingTildeInPath]],
+                        NSLocalizedString(@"Quit", @"Quit"), nil, nil);
+        } else {
+            NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"Could not install %@", @"Could not install App Name"), appName],
+                            NSLocalizedString(@"An error occurred when installing", @"An error occurred when installing"), NSLocalizedString(@"Quit", @"Quit"), nil, nil);
+        }
+    }
+}
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/M3Panel.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,37 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef M3PANEL_H
+#define M3PANEL_H
+
+#include "InstallController.h"
+
+class M3Panel : public InstallController
+{
+    public:
+        M3Panel(void);
+        ~M3Panel();
+
+        void showInstallController();
+
+    private:
+        class Private;
+        Private* m;
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/M3Panel.mm	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,47 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "M3Panel.h"
+#include "M3InstallController.h"
+
+#include <Cocoa/Cocoa.h>
+
+class M3Panel::Private
+{
+    public:
+        M3InstallController *install;
+};
+
+M3Panel::M3Panel(void)
+{
+    m = new M3Panel::Private();
+
+    m->install = [[M3InstallController alloc] init];
+    [m->install retain];
+}
+
+M3Panel::~M3Panel()
+{
+    [m->install release];
+    delete m;
+}
+
+void M3Panel::showInstallController()
+{
+    [m->install displayInstaller];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/NSWorkspace_RBAdditions.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,38 @@
+//
+//  NSWorkspace_RBAdditions.h
+//  PathProps
+//
+//  Created by Rainer Brockerhoff on 10/04/2007.
+//  Copyright 2007 Rainer Brockerhoff. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+extern NSString* NSWorkspace_RBfstypename;
+extern NSString* NSWorkspace_RBmntonname;
+extern NSString* NSWorkspace_RBmntfromname;
+extern NSString* NSWorkspace_RBdeviceinfo;
+extern NSString* NSWorkspace_RBimagefilepath;
+extern NSString* NSWorkspace_RBconnectiontype;
+extern NSString* NSWorkspace_RBpartitionscheme;
+extern NSString* NSWorkspace_RBserverURL;
+
+@interface NSWorkspace (NSWorkspace_RBAdditions)
+
+// This method will return nil if the input path is invalid. Otherwise, the returned NSDictionary may contain
+// the following keys:
+//- NSWorkspace_RBfstypename: will always be present.Shows the filesystem type (usually "hfs"), from statfs.
+//- NSWorkspace_RBmntonname: will always be present. Shows the volume mount point.
+//- NSWorkspace_RBmntfromname: will always be present. Shows the BSD device path for local volumes; info for
+//      remote volumes depends on the filesystem type.
+//- NSWorkspace_RBconnectiontype: should always be present for local volumes. Shows the connection type ("SATA", "USB", etc.).
+//- NSWorkspace_RBpartitionscheme: should always be present for local volumes. Shows the partition scheme.
+//- NSWorkspace_RBdeviceinfo: should always be present for local volumes. Shows some information about the
+//      physical device; varies widely.
+//- NSWorkspace_RBimagefilepath: should be present for disk images only. Shows the path of the disk image file.
+//- NSWorkspace_RBserverURL: should be present for remote volumes only. Shows the server URL.
+
+- (NSDictionary*)propertiesForPath:
+(NSString*)path;
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/NSWorkspace_RBAdditions.m	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,263 @@
+//
+//  NSWorkspace_RBAdditions.m
+//  PathProps
+//
+//  Created by Rainer Brockerhoff on 10/04/2007.
+//  Copyright 2007 Rainer Brockerhoff. All rights reserved.
+//
+
+#import "NSWorkspace_RBAdditions.h"
+#include <IOKit/IOKitLib.h>
+#include <sys/mount.h>
+#include <mach/mach.h>
+
+NSString* NSWorkspace_RBfstypename = @"NSWorkspace_RBfstypename";
+NSString* NSWorkspace_RBmntonname = @"NSWorkspace_RBmntonname";
+NSString* NSWorkspace_RBmntfromname = @"NSWorkspace_RBmntfromname";
+NSString* NSWorkspace_RBdeviceinfo = @"NSWorkspace_RBdeviceinfo";
+NSString* NSWorkspace_RBimagefilepath = @"NSWorkspace_RBimagefilepath";
+NSString* NSWorkspace_RBconnectiontype = @"NSWorkspace_RBconnectiontype";
+NSString* NSWorkspace_RBpartitionscheme = @"NSWorkspace_RBpartitionscheme";
+NSString* NSWorkspace_RBserverURL = @"NSWorkspace_RBserverURL";
+
+// This static funtion concatenates two strings, but first checks several possibilities...
+// like one or the other nil, or one containing the other already.
+
+static NSString* AddPart(NSString* first,NSString* second) {
+    if (!second) {
+        return first;
+    }
+    second = [second stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+    if (first) {
+        if ([first rangeOfString:second options:NSCaseInsensitiveSearch].location==NSNotFound) {
+            if ([second rangeOfString:first options:NSCaseInsensitiveSearch].location==NSNotFound) {
+                return [NSString stringWithFormat:@"%@; %@",first,second];
+            }
+            return second;
+        }
+        return first;
+    }
+    return second;
+}
+
+// This static functions recurses "upwards" over the IO registry. Returns strings that are concatenated
+// and ultimately end up under the NSWorkspace_RBdeviceinfo key.
+// This isn't too robust in that it assumes that objects returned by the objectForKey methods are
+// either strings or dictionaries. A "standard" implementations would use either only CoreFoundation and
+// IOKit calls for this, or do more robust type checking on the returned objects.
+//
+// Also notice that this works as determined experimentally in 10.4.9, there's no official docs I could find.
+// YMMV, and it may stop working in any new version of Mac OS X.
+
+static NSString* CheckParents(io_object_t thing,NSString* part,NSMutableDictionary* dict) {
+    NSString* result = part;
+    io_iterator_t parentsIterator = 0;
+    kern_return_t kernResult = IORegistryEntryGetParentIterator(thing,kIOServicePlane,&parentsIterator);
+    if ((kernResult==KERN_SUCCESS)&&parentsIterator) {
+        io_object_t nextParent = 0;
+        while ((nextParent = IOIteratorNext(parentsIterator))) {
+            NSDictionary* props = nil;
+            NSString* image = nil;
+            NSString* partition = nil;
+            NSString* connection = nil;
+            kernResult = IORegistryEntryCreateCFProperties(nextParent,(CFMutableDictionaryRef*)&props,kCFAllocatorDefault,0);
+            if (IOObjectConformsTo(nextParent,"IOApplePartitionScheme")) {
+                partition = [props objectForKey:@"Content Mask"];
+            } else if (IOObjectConformsTo(nextParent,"IOMedia")) {
+                partition = [props objectForKey:@"Content"];
+            } else if (IOObjectConformsTo(nextParent,"IODiskImageBlockStorageDeviceOutKernel")) {
+                NSData* data = nil;
+                                if ((data = [[props objectForKey:@"Protocol Characteristics"] objectForKey:@"Virtual Interface Location Path"])) {
+                    image = [[[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding] autorelease];
+                }
+            } else if (IOObjectConformsTo(nextParent,"IOHDIXHDDriveInKernel")) {
+                image = [props objectForKey:@"KDIURLPath"];
+            }
+            NSDictionary* subdict;
+                        if ((subdict = [props objectForKey:@"Protocol Characteristics"])) {
+                connection = [subdict objectForKey:@"Physical Interconnect"];
+            } else {
+                connection = [props objectForKey:@"Physical Interconnect"];
+            }
+            if (connection) {
+                [dict setObject:AddPart([dict objectForKey:NSWorkspace_RBconnectiontype],connection) forKey:NSWorkspace_RBconnectiontype];
+            }
+            if (partition) {
+                [dict setObject:partition forKey:NSWorkspace_RBpartitionscheme];
+            }
+            if (image) {
+                [dict setObject:image forKey:NSWorkspace_RBimagefilepath];
+            }
+            NSString* value;
+                        if ((subdict = [props objectForKey:@"Device Characteristics"])) {
+                                if ((value = [subdict objectForKey:@"Product Name"])) {
+                    result = AddPart(result,value);
+                }
+                                if ((value = [subdict objectForKey:@"Product Revision Level"])) {
+                    result = AddPart(result,value);
+                }
+                                if ((value = [subdict objectForKey:@"Vendor Name"])) {
+                    result = AddPart(result,value);
+                }
+            }
+                        if ((value = [props objectForKey:@"USB Serial Number"])) {
+                result = AddPart(result,value);
+            }
+                        if ((value = [props objectForKey:@"USB Vendor Name"])) {
+                result = AddPart(result,value);
+            }
+            NSString* cls = [(NSString*)IOObjectCopyClass(nextParent) autorelease];
+            if (![cls isEqualToString:@"IOPCIDevice"]) {
+
+// Uncomment the following line to have the device tree dumped to the console.
+//              NSLog(@"=================================> %@:%@\n",cls,props);
+
+                result = CheckParents(nextParent,result,dict);
+            }
+            IOObjectRelease(nextParent);
+        }
+    }
+    if (parentsIterator) {
+        IOObjectRelease(parentsIterator);
+    }
+    return result;
+}
+
+// This formats the (partially undocumented) AFPXMountInfo info into a string.
+
+/*
+static NSString* FormatAFPURL(AFPXVolMountInfoPtr mountInfo,NSString** devdesc) {
+    UInt8* work = ((UInt8*)mountInfo)+mountInfo->serverNameOffset;
+    if (devdesc) {
+        *devdesc = [[[NSString alloc] initWithBytes:&work[1] length:work[0] encoding:NSUTF8StringEncoding] autorelease];
+    }
+    work = ((UInt8*)mountInfo)+mountInfo->volNameOffset;
+    NSString* volname = [[[NSString alloc] initWithBytes:&work[1] length:work[0] encoding:NSUTF8StringEncoding] autorelease];
+    work = ((UInt8*)mountInfo)+mountInfo->alternateAddressOffset;
+    AFPAlternateAddress* afpa = (AFPAlternateAddress*)work;
+    AFPTagData* afpta = (AFPTagData*)(&afpa->fAddressList);
+    NSString* ip = nil;
+    NSString* dns = nil;
+    int i = afpa->fAddressCount;
+    while ((i-->0)) {
+        switch (afpta->fType) {
+            case kAFPTagTypeIP:
+                if (!ip) {
+                    ip = [[[NSString alloc] initWithBytes:&afpta->fData[0] length:afpta->fLength-2 encoding:NSUTF8StringEncoding] autorelease];
+                }
+                break;
+            case kAFPTagTypeIPPort:
+                ip = [NSString stringWithFormat:@"%u.%u.%u.%u:%u",afpta->fData[0],afpta->fData[1],afpta->fData[2],afpta->fData[3],OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[4])];
+                break;
+            case kAFPTagTypeDNS:
+                dns = [[[NSString alloc] initWithBytes:&afpta->fData[0] length:afpta->fLength-2 encoding:NSUTF8StringEncoding] autorelease];
+                break;
+            case 0x07:
+                ip = [NSString stringWithFormat:@"[%x:%x:%x:%x:%x:%x:%x:%x]",OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[0]),
+                    OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[2]),OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[4]),
+                    OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[6]),OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[8]),
+                    OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[10]),OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[12]),
+                    OSSwapBigToHostInt16(*(UInt16*)&afpta->fData[14])];
+                break;
+        }
+        afpta = (AFPTagData*)((char*)afpta+afpta->fLength);
+    }
+    return [NSString stringWithFormat:@"afp://%@/%@",dns?:(ip?:@""),volname];
+}
+*/
+
+@implementation NSWorkspace (NSWorkspace_RBAdditions)
+
+// Returns a NSDictionary with properties for the path. See details in the .h file.
+// This assumes that the length of path is less than PATH_MAX (currently 1024 characters).
+
+- (NSDictionary*)propertiesForPath:(NSString*)path {
+    const char* ccpath = (const char*)[path fileSystemRepresentation];
+    NSMutableDictionary* result = nil;
+    struct statfs fs;
+    if (!statfs(ccpath,&fs)) {
+        NSString* from = [NSString stringWithUTF8String:fs.f_mntfromname];
+        result = [NSMutableDictionary dictionaryWithObjectsAndKeys:
+            [NSString stringWithUTF8String:fs.f_fstypename],NSWorkspace_RBfstypename,
+            [NSString stringWithUTF8String:fs.f_mntonname],NSWorkspace_RBmntonname,
+            nil];
+        if (strncmp(fs.f_mntfromname,"/dev/",5)==0) {
+// For a local volume,get the IO registry tree and search it for further info.
+            mach_port_t masterPort = 0;
+            io_iterator_t mediaIterator = 0;
+            kern_return_t kernResult = IOMasterPort(bootstrap_port,&masterPort);
+            if (kernResult==KERN_SUCCESS) {
+                CFMutableDictionaryRef classesToMatch = IOBSDNameMatching(masterPort,0,&fs.f_mntfromname[5]);
+                if (classesToMatch) {
+                    kernResult = IOServiceGetMatchingServices(masterPort,classesToMatch,&mediaIterator);
+                    if ((kernResult==KERN_SUCCESS)&&mediaIterator) {
+                        io_object_t firstMedia = 0;
+                        while ((firstMedia = IOIteratorNext(mediaIterator))) {
+                            NSString* stuff = CheckParents(firstMedia,nil,result);
+                            if (stuff) {
+                                [result setObject:stuff forKey:NSWorkspace_RBdeviceinfo];
+                            }
+                            IOObjectRelease(firstMedia);
+                        }
+                    }
+                }
+            }
+            if (mediaIterator) {
+                IOObjectRelease(mediaIterator);
+            }
+            if (masterPort) {
+                mach_port_deallocate(mach_task_self(),masterPort);
+            }
+        }
+        //Don't need this for disk images, gets around warnings for some deprecated functions
+
+        /* else {
+// For a network volume, get the volume reference number and use to get the server URL.
+            FSRef ref;
+            if (FSPathMakeRef((const UInt8*)ccpath,&ref,NULL)==noErr) {
+                FSCatalogInfo info;
+                if (FSGetCatalogInfo(&ref,kFSCatInfoVolume,&info,NULL,NULL,NULL)==noErr) {
+                    ParamBlockRec pb;
+                    UInt16 vmisize = 0;
+                    VolumeMountInfoHeaderPtr mountInfo = NULL;
+                    pb.ioParam.ioCompletion = NULL;
+                    pb.ioParam.ioNamePtr = NULL;
+                    pb.ioParam.ioVRefNum = info.volume;
+                    pb.ioParam.ioBuffer = (Ptr)&vmisize;
+                    pb.ioParam.ioReqCount = sizeof(vmisize);
+                    if ((PBGetVolMountInfoSize(&pb)==noErr)&&vmisize) {
+                        mountInfo = (VolumeMountInfoHeaderPtr)malloc(vmisize);
+                        if (mountInfo) {
+                            pb.ioParam.ioBuffer = (Ptr)mountInfo;
+                            pb.ioParam.ioReqCount = vmisize;
+                            if (PBGetVolMountInfo(&pb)==noErr) {
+                                NSString* url = nil;
+                                switch (mountInfo->media) {
+                                case AppleShareMediaType:
+                                    url = FormatAFPURL((AFPXVolMountInfoPtr)mountInfo,&from);
+                                    break;
+                                case 'http':
+                                    url = from;
+                                    break;
+                                case 'crbm':
+                                case 'nfs_':
+                                case 'cifs':
+                                    url = [NSString stringWithUTF8String:(char*)mountInfo+sizeof(VolumeMountInfoHeader)+sizeof(OSType)];
+                                    break;
+                                }
+                                if (url) {
+                                    [result setObject:url forKey:NSWorkspace_RBserverURL];
+                                }
+                            }
+                        }
+                        free(mountInfo);
+                    }
+                }
+            }
+        }*/
+        [result setObject:from forKey:NSWorkspace_RBmntfromname];
+    }
+    return result;
+}
+
+@end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/SparkleAutoUpdater.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2008 Remko Troncon
+ */
+
+#ifndef SPARKLEAUTOUPDATER_H
+#define SPARKLEAUTOUPDATER_H
+
+#include <QString>
+
+#include "AutoUpdater.h"
+
+class SparkleAutoUpdater : public AutoUpdater
+{
+    public:
+        SparkleAutoUpdater();
+        ~SparkleAutoUpdater();
+
+        void checkForUpdates();
+        void checkForUpdatesNow();
+
+    private:
+        class Private;
+        Private* d;
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/SparkleAutoUpdater.mm	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,54 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+// see original example here http://el-tramo.be/blog/mixing-cocoa-and-qt
+
+#include "SparkleAutoUpdater.h"
+
+#include <Cocoa/Cocoa.h>
+#include <Sparkle/Sparkle.h>
+
+class SparkleAutoUpdater::Private
+{
+    public:
+        SUUpdater* updater;
+};
+
+SparkleAutoUpdater::SparkleAutoUpdater()
+{
+    d = new SparkleAutoUpdater::Private();
+
+    d->updater = [SUUpdater sharedUpdater];
+    [d->updater retain];
+}
+
+SparkleAutoUpdater::~SparkleAutoUpdater()
+{
+    [d->updater release];
+    delete d;
+}
+
+void SparkleAutoUpdater::checkForUpdates()
+{
+    [d->updater checkForUpdatesInBackground];
+}
+
+void SparkleAutoUpdater::checkForUpdatesNow()
+{
+    [d->updater checkForUpdates:NULL];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/Xfire Game SDK.url	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,5 @@
+[{000214A0-0000-0000-C000-000000000046}]
+Prop3=19,2
+[InternetShortcut]
+URL=http://www.xfire.com/cms/xf_game_sdk
+IDList=
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/xfire.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,85 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <string>
+#include <cstring>
+#include <stdio.h>
+
+#include "xfire.h"
+#include "xfiregameclient.h"
+
+#ifdef USE_XFIRE
+// use_xfire: stores if xfire is loaded and functions should do something at all
+bool use_xfire = false;
+char *keys[XFIRE_KEY_COUNT];
+char *values[XFIRE_KEY_COUNT];
+
+// xfire_init(): used to initialize all variables and set their default values
+void xfire_init(void)
+{
+    if(use_xfire)
+        return;
+    use_xfire = XfireIsLoaded() == 1;
+
+    if(!use_xfire)
+        return;
+
+    for(int i = 0; i < XFIRE_KEY_COUNT; i++)
+    {
+        keys[i] = new char[256];
+        values[i] = new char[256];
+        strcpy(keys[i], "");
+        strcpy(values[i], "");
+    }
+
+    strcpy(keys[XFIRE_NICKNAME], "Nickname");
+    strcpy(keys[XFIRE_ROOM], "Room");
+    strcpy(keys[XFIRE_SERVER], "Server");
+    strcpy(keys[XFIRE_STATUS], "Status");
+    xfire_update();
+}
+
+// xfire_free(): used to free up ressources used etc.
+void xfire_free(void)
+{
+    if(!use_xfire)
+        return;
+
+    for(int i = 0; i < XFIRE_KEY_COUNT; i++)
+    {
+        delete [] keys[i];
+        delete [] values[i];
+    }
+}
+
+// xfire_setvalue(): set a specific value
+void xfire_setvalue(const XFIRE_KEYS status, const char *value)
+{
+    if(!use_xfire || strlen(value) > 255)
+        return;
+    strcpy(values[status], value);
+}
+
+// xfire_update(): submits current values to the xfire app
+void xfire_update(void)
+{
+    if(!use_xfire)
+        return;
+    XfireSetCustomGameDataA(XFIRE_KEY_COUNT, (const char**)keys, (const char**)values);
+}
+#endif // USE_XFIRE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/xfire.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,39 @@
+/*
+ * Hedgewars, a free turn based strategy game
+ * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#ifndef XFIRE_H
+#define XFIRE_H
+
+
+#ifdef USE_XFIRE
+enum XFIRE_KEYS
+{
+    XFIRE_STATUS = 0,
+    XFIRE_NICKNAME,
+    XFIRE_SERVER,
+    XFIRE_ROOM,
+    XFIRE_KEY_COUNT,
+};
+
+void xfire_init(void);
+void xfire_free(void);
+void xfire_setvalue(const XFIRE_KEYS status, const char *value);
+void xfire_update(void);
+#endif
+
+#endif // XFIRE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/xfire_license.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,103 @@
+Terms and Conditions
+AGREEMENT BETWEEN USER AND XFIRE INC.
+This is a legal agreement between you and Xfire Inc. ("Xfire") with respect to your access and use of the Xfire Service, which may also include Xfire software, content and related documentation and information (collectively, the "Service"). You must accept without modification all of the terms, conditions, and notices contained in these Terms of Use in order to access and/or use the Service (collectively, the "Terms of Use" or "Agreement"). If you do not accept these Terms of Use in their entirety, you may not access or use the Service.
+
+Portions of the Service may be governed by posted guidelines, rules, or other terms and conditions. All such guidelines, rules, terms and conditions are hereby incorporated by reference into these Terms of Use. In the event of a conflict between such other guidelines, rules, terms and conditions and these Terms of Use, the Terms of Use shall control, except that the Xfire Service Privacy Policy, referenced below, supersedes any conflicting language in these Terms of Use and/or any other guidelines, rules, terms and conditions published in connection with the Service with respect to the subject matter covered by such privacy policy.
+
+MODIFICATION OF THESE TERMS OF USE; UPDATES
+Xfire may change the Terms of Use at any time and such changes shall be effective immediately. You are responsible for regularly reviewing the Terms of Use. The most recent version of the Terms of Use can be found at http://www.xfire.com/xf/terms.php. Your continued use of the Service affirms your agreement to the Terms of Use and any changes.
+
+Xfire is not obligated to provide updates or improvements to the Service. However, if Xfire, in its sole discretion, updates or improves the Service, these Terms of Use shall apply to such updates and improvements unless expressly noted otherwise.
+
+CLIENT SOFTWARE USE LIMITATION
+YOU MAY ONLY USE XFIRE CLIENT SOFTWARE OR AUTHORIZED THIRD-PARTY SOFTWARE TO ACCESS AND/OR USE THE SERVICE. You may not use any software or services in conjunction with the Xfire software or authorized third-party software which modifies or reroutes, or attempts to modify or reroute, the Service. You may not authorize any third party to access and/or use the Service on your behalf using any automated process such as a BOT, a spider or periodic caching of information stored by the Xfire Service on your behalf without a separate written agreement with Xfire. You may not use any software or hardware that reduces the number of users directly accessing or using the Service (sometimes called 'multiplexing' or 'pooling' software or hardware).
+
+You may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services that are part of the Service except as expressly provided in these Terms of Use.
+
+NO UNLAWFUL OR PROHIBITED USE; RESPONSIBILITY FOR YOUR ACCOUNT
+As a condition of your use of the Service, you will not use the Service for any purpose that is unlawful or prohibited by these Terms of Use. You may not use the Service in any manner that could damage, disable, overburden, or impair the Service or interfere with any other party's use and enjoyment of it. You may not attempt to gain unauthorized access to any account, computer systems or networks associated with the Service or to otherwise interfere with or disrupt any accounts, computer systems or networks connected to the Service. You may not obtain or attempt to obtain any materials or information through any means not intentionally made available or provided for through the Service. You may not use access to the Service to obtain information necessary for you to design, develop or update unauthorized software that you use or provide to others to use to access the Service. You may not charge others to use the Service either directly or indirectly without the express written agreement of Xfire.
+Subject to these Terms of Use, you may use the Service within your commercial organization, but you may not use the Service to advertise or offer to buy or sell any goods or services, or to run a business or commercial entity without the express written agreement of Xfire.
+You agree to use the Service only to send, receive, and transfer appropriate messages and material. By way of example, and not as a limitation, you agree that when using the Service, you will not:
+
+
+• Use the Service in connection with surveys, contests, pyramid schemes, chain letters, junk email, spamming or any duplicative, bulk or unsolicited messages (commercial or otherwise).
+
+• Defame, abuse, harass, stalk, threaten or otherwise violate the legal rights (such as rights of privacy and publicity) of others.
+
+• Create a false identity for the purpose of misleading others.
+
+• Publish, transfer, distribute or disseminate any inappropriate, profane, defamatory, obscene, indecent or unlawful topic, name, material or information.
+
+• Transfer, stream, or otherwise make available, files or other material that contain images, photographs, software or other material protected by intellectual property laws, including, by way of example, and not as limitation, copyright or trademark laws (or by rights of privacy or publicity) unless you own or control the rights thereto or have received all necessary consents to do the same.
+
+• Use any material or information, including images or photographs, which is made available through the Service in any manner that infringes any copyright, trademark, patent, trade secret, or other proprietary right of any party.
+
+• Transfer, stream or otherwise make available, files or other material that contain viruses, Trojan horses, worms, time bombs, cancelbots, corrupted files, or any other similar software or programs that may damage the operation of another's computer or property of another.
+
+• Download any file or other material transferred by another user of the Service that you know, or reasonably should know, cannot be legally distributed in such manner.
+
+• Use, download or otherwise copy, or provide (whether or not for a fee) to a person or entity any directory of users of the Service or other user or usage information or any portion thereof.
+
+• Falsify or delete any author attributions, legal or other proper notices or proprietary designations or labels of the origin or source of software or other material contained in a file that is transferred.
+
+• Violate any code of conduct or other guidelines which may be applicable to the Service.
+
+• Use any portion of the Service to harvest or otherwise collect information about others, including e-mail addresses.
+
+Xfire reserves the right at all times to monitor communications on the Service and disclose any information Xfire deems necessary to (i) ensure your compliance with this Agreement; (ii) satisfy any applicable law, regulation or legal process; or (iii) protect the rights, property, and interests of Xfire, its employees or the public. Xfire also reserves the right to edit, refuse to transfer or to remove any information or materials, in whole or in part, in Xfire's sole discretion.
+
+Always use caution when giving out any personally identifiable information about yourself or your children in the Service. Xfire does not control or endorse the content, messages or information exchanged by means of the Service and, therefore, Xfire specifically disclaims any liability with regard to the Service and any actions resulting from your participation in the Service.
+
+You are responsible for all activities that occur in your Service account. You agree to notify Xfire immediately of any unauthorized use of your account or breach in security known to you related to the Service.
+
+
+PRIVACY
+See the Xfire Service Privacy Statement at http://www.xfire.com/xf/privacy.php for disclosures relating to the collection and use of your information.
+
+
+INTERACTION WITH THIRD PARTY SITES AND SERVICES
+The Service may allow you to interact with third-party Web sites and Web services ("Link(s)"). The Links are not under the control of Xfire and Xfire is not responsible for the contents of any Links, including without limitation any link contained in a Link, or any changes or updates to a Link. Xfire is not responsible for any form of transmission received from any Link, nor is Xfire responsible if the Link is not working appropriately. Xfire is providing these Links to you only as a convenience, and the inclusion of any Link does not imply endorsement by Xfire of the Link or any association with its operators. You are responsible for viewing and abiding by any privacy statements and terms of use posted in connection with the Links.
+
+You are solely responsible for any dealings with third parties (including advertisers) who support the Service, including the delivery of and payment for goods and services.
+
+TERMS OF USE FOR SERVICE-ENABLED PROPERTIES
+For the terms and conditions governing your use of any Xfire or authorized third party Web site or service that enables you to use the Service other than the Service itself ("Service-Enabled Properties"), please refer to the applicable Terms of Use for such Service-Enabled Properties.
+
+SOFTWARE AND CONTENT AVAILABLE ON THE SERVICE
+All Xfire content and software (if any) that is made available to view and/or download in connection with the Service ("Software") is owned by and is the copyrighted work of Xfire and/or its suppliers and is licensed, not sold. Your use of the Software is governed by the terms of the license agreement, if any, which accompanies or is included with the Software ("License Agreement"). You may not install or use any Software that is accompanied by or includes a License Agreement unless you first agree to the License Agreement terms. For any Software not accompanied by a license agreement, Xfire hereby grants to you, the user, a non-exclusive, revocable, personal, non-transferable license to use the Software solely in connection with the Service in accordance with these Terms of Use. You may not lend, lease, rent or sublicense the Software or any aspect of the Service.
+
+You will not disassemble, decompile, or reverse engineer the Software. All Software is protected by copyright laws and international treaty provisions. Any unauthorized reproduction or redistribution of the Software is expressly prohibited by law, and may result in severe civil and criminal penalties. WITHOUT LIMITING THE FOREGOING, COPYING OR REPRODUCTION OF THE SOFTWARE TO ANY OTHER SERVER OR LOCATION FOR FURTHER REPRODUCTION OR REDISTRIBUTION IS EXPRESSLY PROHIBITED. THE SOFTWARE IS WARRANTED, IF AT ALL, ONLY ACCORDING TO THE TERMS OF THE LICENSE AGREEMENT. You acknowledge that the Software, and any accompanying documentation and/or technical information, is subject to applicable export control laws and regulations of the U.S.A. You agree not to export or re-export the Software, directly or indirectly, to any countries that are subject to U.S.A. export restrictions.
+
+Your license to use the Software with the Service terminates when you terminate your use of the Service. Your license to use the Software with the Service may also terminate if Xfire, in its sole discretion, modifies the Service to no longer support such Software.
+
+NO WARRANTIES; LIABILITY DISCLAIMER; EXCLUSIVE REMEDY
+XFIRE PROVIDES THE SERVICE AND THE SOFTWARE "AS IS," "WITH ALL FAULTS" AND "AS AVAILABLE," AND THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH YOU. XFIRE, ITS AFFILIATES, ITS RESELLERS, DISTRIBUTORS, SERVICE PROVIDERS AND/OR SUPPLIERS (COLLECTIVELY, THE "XFIRE PARTIES") MAKE NO WARRANTIES. THE XFIRE PARTIES DISCLAIM ANY AND ALL WARRANTIES, EXPRESS, STATUTORY AND IMPLIED, INCLUDING WITHOUT LIMITATION (1) WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, WORKMANLIKE EFFORT, ACCURACY, TITLE, QUIET ENJOYMENT, NO ENCUMBRANCES, NO LIENS AND NON-INFRINGEMENT, (2) WARRANTIES ARISING THROUGH COURSE OF DEALING OR USAGE OF TRADE, AND (3) WARRANTIES THAT ACCESS TO OR USE OF THE SERVICE WILL BE UNINTERRUPTED OR ERROR-FREE. THERE ARE NO WARRANTIES THAT EXTEND BEYOND THE FACE OF THIS AGREEMENT. XFIRE MAY CHANGE THE SERVICE OR THE FEATURES IN ANY WAY, AND AT ANY TIME AND FOR ANY REASON.
+
+IN NO EVENT SHALL ANY OF THE XFIRE PARTIES BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, OR PUNITIVE DAMAGES ARISING OUT OF, BASED ON, OR RESULTING FROM THIS AGREEMENT OR YOUR USE OF THE SERVICE, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA OR PROFITS, WITH THE DELAY OR INABILITY TO USE THE SERVICE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES, OR FOR ANY INFORMATION, SOFTWARE, PRODUCTS, OR SERVICES OBTAINED THROUGH THE SERVICE, OR OTHERWISE ARISING OUT OF THE USE OF THE SERVICE, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF XFIREOR ANY OF ITS SUPPLIERS HAS BEEN ADVISED OF THE POSSIBILITY OF DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.
+
+IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE SERVICE, OR WITH ANY OF THESE TERMS OF USE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USING THE SERVICE.
+
+INDEMNITY
+You agree to indemnify and hold Xfire, its officers, and employees, harmless from any claim or demand, including reasonable attorneys' fees, made by any third party due to or arising out of your use of the Services, the violation of these Terms of Use by you, or the infringement by you, or other user of the Services using your computer or identity, of any intellectual property or other right of any person or entity.
+
+CUSTOMER SUPPORT
+Xfire may, but is not required to, provide you with customer support ("Support"). Unless you have entered into a separate written support agreement with Xfire with respect to the Service, Xfire may terminate any Support it provides at any time in its sole discretion.
+
+Authorized third-party software that uses the Service is not supported by Xfire and you should contact the provider of such software for support, if any.
+
+TERMINATION/ACCESS RESTRICTION
+Unless you, or a third party on your behalf, have entered into a separate written agreement with Xfire that modifies these Terms of Use, Xfire reserves the right, in its sole discretion, to terminate your access to and use of the Service or any portion thereof at any time, without notice. Also, unless you or a third party on your behalf have entered into a separate agreement with Xfire, Xfire may terminate or suspend your access to the Service for inactivity, which is defined as failing to log onto the Service for an extended period of time, as determined by Xfire.
+ELECTRONIC NOTICES
+You consent to Xfire providing you any information regarding the Service in electronic form. Xfire may provide such information to you via e-mail at the e-mail address you specified when you registered for the Service, by instant message to your account, or by access to a Xfire web site. As long as you access and use the Service, you will have the necessary software and hardware to receive such notices. If you do not consent to receive any notices electronically, you must discontinue your use of the Service.
+
+GENERAL
+If you reside in the United States, claims for enforcement, breach or violation of duties or rights under these Terms of Use are governed by the laws of the State of California, without reference to conflict of laws principles. All other claims, including, without limitation, claims under or for violation of state consumer protection laws, unfair competition laws, and in tort, are governed by the laws of your state of residence in the United States. If you reside outside of the United States, these Terms of Use are governed by the laws of the State of California, without reference to conflict of laws principles. You hereby irrevocably consent to the exclusive jurisdiction and venue of courts in San Mateo County, California, U.S.A. in all disputes arising out of or relating to the use of the Service.
+
+YOU AND XFIRE AGREE THAT ANY CAUSE OF ACTION ARISING OUT OF OR RELATED TO THE SERVICE MUST COMMENCE WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. OTHERWISE, SUCH CAUSE OF ACTION IS PERMANENTLY BARRED.
+
+Xfire may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in any Web pages that are part of the Service. Except as expressly provided in these Terms of Use, the furnishing of such Web pages to you does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Any rights not expressly granted herein are reserved.
+
+June 2004
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/xfiregameclient.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,121 @@
+/* This file is NOT open source. See "license.txt" to read the full license provided with the Xfire SDK. */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <tlhelp32.h>
+
+#include "xfiregameclient.h"
+
+static HMODULE g_toucan_dll = NULL;
+static void HelperInit();
+static HMODULE HelperGetToucanDLL();
+
+typedef int (*XfireSetCustomGameDataAFunction)(int , const char **, const char **);
+typedef int (*XfireSetCustomGameDataWFunction)(int , const wchar_t **, const wchar_t **);
+typedef int (*XfireSetCustomGameDataUTF8Function)(int , const char **, const char **);
+
+static XfireSetCustomGameDataAFunction ptr_XfireSetCustomGameDataA = NULL;
+static XfireSetCustomGameDataWFunction ptr_XfireSetCustomGameDataW = NULL;
+static XfireSetCustomGameDataUTF8Function ptr_XfireSetCustomGameDataUTF8 = NULL;
+
+/* make sure we are going to call the ANSI version */
+#ifdef MODULEENTRY32
+#undef MODULEENTRY32
+#endif
+
+#ifdef Module32First
+#undef Module32First
+#endif
+
+#ifdef Module32Next
+#undef Module32Next
+#endif
+
+
+int XfireIsLoaded()
+{
+    HelperInit();
+    if (ptr_XfireSetCustomGameDataA &&
+        ptr_XfireSetCustomGameDataW &&
+        ptr_XfireSetCustomGameDataUTF8)
+        return 1;
+    return 0;
+}
+
+int XfireSetCustomGameDataA(int num_keys, const char **keys, const char **values)
+{
+    HelperInit();
+    if (ptr_XfireSetCustomGameDataA)
+        return ptr_XfireSetCustomGameDataA(num_keys, keys, values);
+    return 1;
+}
+
+int XfireSetCustomGameDataW(int num_keys, const wchar_t **keys, const wchar_t **values)
+{
+    HelperInit();
+    if (ptr_XfireSetCustomGameDataW)
+        return ptr_XfireSetCustomGameDataW(num_keys, keys, values);
+    return 1;
+}
+
+int XfireSetCustomGameDataUTF8(int num_keys, const char **keys, const char **values)
+{
+    HelperInit();
+    if (ptr_XfireSetCustomGameDataUTF8)
+        return ptr_XfireSetCustomGameDataUTF8(num_keys, keys, values);
+    return 1;
+}
+
+/* ------------------------------------------------------------------------- */
+static void HelperInit()
+{
+    if (!ptr_XfireSetCustomGameDataA ||
+        !ptr_XfireSetCustomGameDataW ||
+        !ptr_XfireSetCustomGameDataUTF8)
+    {
+        HMODULE toucan_dll = HelperGetToucanDLL();
+        if (toucan_dll)
+        {
+            ptr_XfireSetCustomGameDataA = (XfireSetCustomGameDataAFunction)::GetProcAddress(toucan_dll, "ToucanSendGameClientDataA_V1");
+            ptr_XfireSetCustomGameDataW = (XfireSetCustomGameDataWFunction)::GetProcAddress(toucan_dll, "ToucanSendGameClientDataW_V1");
+            ptr_XfireSetCustomGameDataUTF8 = (XfireSetCustomGameDataUTF8Function)::GetProcAddress(toucan_dll, "ToucanSendGameClientDataUTF8_V1");
+        }
+    }
+}
+
+
+static HMODULE HelperGetToucanDLL()
+{
+    if (g_toucan_dll)
+        return g_toucan_dll;
+
+    /*
+    ** We need to enumerate the DLLs loaded to find toucan dll.
+    ** This is done because the toucan dll changes with each update.
+    ** The toucan dll has the following format. "xfire_toucan_{BUILD_NUMBER}.dll"
+    ** We simply try to find a dll w/ the prefix "xfire_toucan"
+    */
+    HANDLE snapshot_handle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId());
+    if (snapshot_handle != INVALID_HANDLE_VALUE)
+    {
+        MODULEENTRY32 module_entry;
+        module_entry.dwSize = sizeof(MODULEENTRY32);
+
+        BOOL result = Module32First(snapshot_handle, &module_entry);
+        char module_name[] = "xfire_toucan";
+        DWORD module_name_len = sizeof(module_name)-1;
+        while (result)
+        {
+            if (CompareStringA(LOCALE_USER_DEFAULT, NORM_IGNORECASE, module_entry.szModule, module_name_len, module_name, module_name_len) == CSTR_EQUAL)
+            {
+                g_toucan_dll = module_entry.hModule;
+                break;
+            }
+            result = Module32Next(snapshot_handle, &module_entry);
+        }
+
+        CloseHandle(snapshot_handle);
+    }
+
+    return g_toucan_dll;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/util/platform/xfiregameclient.h	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,49 @@
+/* This file is NOT open source. See "license.txt" to read the full license provided with the Xfire SDK. */
+
+#ifndef __XFIREGAMECLIENT_H__
+#define __XFIREGAMECLIENT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+**  XfireIsLoaded()
+**
+**  returns 1 if application can talk to Xfire, 0 otherwise
+*/
+int XfireIsLoaded();
+
+/*
+**  XfireSetCustomGameDataA()
+**
+**  ANSI version to tell xfire of custom game data
+*/
+int XfireSetCustomGameDataA(int num_keys, const char **keys, const char **values);
+
+/*
+**  XfireSetCustomGameDataA()
+**
+**  UNICODE version to tell xfire of custom game data
+*/
+int XfireSetCustomGameDataW(int num_keys, const wchar_t **keys, const wchar_t **values);
+
+/*
+**  XfireSetCustomGameDataUTF8()
+**
+**  UTF8 version to tell xfire of custom game data
+*/
+int XfireSetCustomGameDataUTF8(int num_keys, const char **keys, const char **values);
+
+#ifdef UNICODE
+#define XfireSetCustomGameData XfireSetCustomGameDataW
+#else
+#define XfireSetCustomGameData XfireSetCustomGameDataA
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XFIREGAMECLIENT_H__ */
--- a/QTfrontend/xfire.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <string>
-#include <cstring>
-#include <stdio.h>
-
-#include "xfire.h"
-#include "../misc/xfire/xfiregameclient.h"
-
-#ifdef USE_XFIRE
-// use_xfire: stores if xfire is loaded and functions should do something at all
-bool use_xfire = false;
-char *keys[XFIRE_KEY_COUNT];
-char *values[XFIRE_KEY_COUNT];
-
-// xfire_init(): used to initialize all variables and set their default values
-void xfire_init(void)
-{
-    if(use_xfire)
-        return;
-    use_xfire = XfireIsLoaded() == 1;
-
-    if(!use_xfire)
-        return;
-
-    for(int i = 0; i < XFIRE_KEY_COUNT; i++)
-    {
-        keys[i] = new char[256];
-        values[i] = new char[256];
-        strcpy(keys[i], "");
-        strcpy(values[i], "");
-    }
-
-    strcpy(keys[XFIRE_NICKNAME], "Nickname");
-    strcpy(keys[XFIRE_ROOM], "Room");
-    strcpy(keys[XFIRE_SERVER], "Server");
-    strcpy(keys[XFIRE_STATUS], "Status");
-    xfire_update();
-}
-
-// xfire_free(): used to free up ressources used etc.
-void xfire_free(void)
-{
-    if(!use_xfire)
-        return;
-
-    for(int i = 0; i < XFIRE_KEY_COUNT; i++)
-    {
-        delete [] keys[i];
-        delete [] values[i];
-    }
-}
-
-// xfire_setvalue(): set a specific value
-void xfire_setvalue(const XFIRE_KEYS status, const char *value)
-{
-    if(!use_xfire || strlen(value) > 255)
-        return;
-    strcpy(values[status], value);
-}
-
-// xfire_update(): submits current values to the xfire app
-void xfire_update(void)
-{
-    if(!use_xfire)
-        return;
-    XfireSetCustomGameDataA(XFIRE_KEY_COUNT, (const char**)keys, (const char**)values);
-}
-#endif // USE_XFIRE
--- a/QTfrontend/xfire.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef XFIRE_H
-#define XFIRE_H
-
-
-#ifdef USE_XFIRE
-enum XFIRE_KEYS
-{
-    XFIRE_STATUS = 0,
-    XFIRE_NICKNAME,
-    XFIRE_SERVER,
-    XFIRE_ROOM,
-    XFIRE_KEY_COUNT,
-};
-
-void xfire_init(void);
-void xfire_free(void);
-void xfire_setvalue(const XFIRE_KEYS status, const char *value);
-void xfire_update(void);
-#endif
-
-#endif // XFIRE_H
--- a/cmake_modules/FindLibraryWithDebug.cmake	Wed Jan 02 11:11:49 2013 +0100
+++ b/cmake_modules/FindLibraryWithDebug.cmake	Sun Jan 27 00:28:57 2013 +0100
@@ -100,7 +100,7 @@
           SET(${var_name} ${${var_name}_DEBUG})
 
         ENDIF(${var_name}_RELEASE)
-       
+
       ENDIF(${var_name}_RELEASE AND ${var_name}_DEBUG)
 
       MARK_AS_ADVANCED(${var_name}_RELEASE)
--- a/cmake_modules/FindSDL_Extras.cmake	Wed Jan 02 11:11:49 2013 +0100
+++ b/cmake_modules/FindSDL_Extras.cmake	Sun Jan 27 00:28:57 2013 +0100
@@ -13,7 +13,7 @@
 
     if(sdlmixer_version GREATER "10209")
         message(STATUS "Mix_Init() is present")
-        set(pascal_flags "-dSDL_MIXER_NEWER" ${pascal_flags})
+        list(APPEND pascal_flags "-dSDL_MIXER_NEWER")
     endif()
 endif()
 
@@ -30,7 +30,7 @@
 
     if(sdlimage_version GREATER "010207")
         message(STATUS "IMG_Init() is present")
-        set(pascal_flags "-dSDL_IMAGE_NEWER" ${pascal_flags})
+        list(APPEND pascal_flags "-dSDL_IMAGE_NEWER")
     endif()
 endif()
 
--- a/gameServer/Actions.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/Actions.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -1,10 +1,10 @@
-{-# LANGUAGE CPP, OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings, ScopedTypeVariables #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Actions where
 
 import Control.Concurrent
 import qualified Data.Set as Set
-import qualified Data.Sequence as Seq
+import qualified Data.Map as Map
 import qualified Data.List as L
 import qualified Control.Exception as Exception
 import System.Log.Logger
@@ -56,7 +56,7 @@
     | BanList
     | Unban B.ByteString
     | ChangeMaster (Maybe ClientIndex)
-    | RemoveClientTeams ClientIndex
+    | RemoveClientTeams
     | ModifyClient (ClientInfo -> ClientInfo)
     | ModifyClient2 ClientIndex (ClientInfo -> ClientInfo)
     | ModifyRoomClients (ClientInfo -> ClientInfo)
@@ -76,6 +76,7 @@
     | AddIP2Bans B.ByteString B.ByteString UTCTime
     | CheckBanned Bool
     | SaveReplay
+    | Stats
 
 
 type CmdHandler = [B.ByteString] -> Reader (ClientIndex, IRnC) [Action]
@@ -84,7 +85,7 @@
     rnf (AnswerClients chans msg) = chans `deepseq` msg `deepseq` ()
     rnf a = a `seq` ()
 
-instance NFData B.ByteString
+--instance NFData B.ByteString
 instance NFData (Chan a)
 
 
@@ -143,13 +144,13 @@
 
     chan <- client's sendChan
     clNick <- client's nick
-    loggedIn <- client's logonPassed
+    loggedIn <- client's isVisible
 
     when (ri /= lobbyId) $ do
         processAction $ MoveToLobby ("quit: " `B.append` msg)
         return ()
 
-    clientsChans <- liftM (Prelude.map sendChan . Prelude.filter logonPassed) $! allClientsS
+    clientsChans <- liftM (Prelude.map sendChan . Prelude.filter isVisible) $! allClientsS
     io $
         infoM "Clients" (show ci ++ " quits: " ++ B.unpack msg)
 
@@ -158,7 +159,7 @@
     mapM_ processAction
         [
         AnswerClients [chan] ["BYE", msg]
-        , ModifyClient (\c -> c{nick = "", logonPassed = False}) -- this will effectively hide client from others while he isn't deleted from list
+        , ModifyClient (\c -> c{nick = "", isVisible = False}) -- this will effectively hide client from others while he isn't deleted from list
         ]
 
     s <- get
@@ -235,11 +236,11 @@
 
     if master then
         if playersNum > 1 then
-            mapM_ processAction [ChangeMaster Nothing, NoticeMessage AdminLeft, RemoveClientTeams ci, AnswerClients chans ["LEFT", clNick, msg]]
+            mapM_ processAction [ChangeMaster Nothing, NoticeMessage AdminLeft, RemoveClientTeams, AnswerClients chans ["LEFT", clNick, msg]]
             else
             processAction RemoveRoom
         else
-        mapM_ processAction [RemoveClientTeams ci, AnswerClients chans ["LEFT", clNick, msg]]
+        mapM_ processAction [RemoveClientTeams, AnswerClients chans ["LEFT", clNick, msg]]
 
     -- when not removing room
     ready <- client's isReady
@@ -374,7 +375,7 @@
         ModifyRoom (\r -> r{
                 gameInfo = liftM (\g -> g{
                     teamsInGameNumber = teamsInGameNumber g - 1
-                    , roundMsgs = roundMsgs g Seq.|> rmTeamMsg
+                    , roundMsgs = rmTeamMsg : roundMsgs g
                 }) $ gameInfo r
             })
         ]
@@ -382,16 +383,20 @@
     rnc <- gets roomsClients
     ri <- clientRoomA
     gi <- io $ room'sM rnc gameInfo ri
-    when (isJust gi && 0 == teamsInGameNumber (fromJust gi)) $
+    when (0 == teamsInGameNumber (fromJust gi)) $
         processAction FinishGame
     where
         rmTeamMsg = toEngineMsg $ 'F' `B.cons` teamName
 
 
 processAction (RemoveTeam teamName) = do
+    (Just ci) <- gets clientIndex
     rnc <- gets roomsClients
     ri <- clientRoomA
-    inGame <- io $ room'sM rnc (isJust . gameInfo) ri
+    inGame <- io $ do
+        r <- room'sM rnc (isJust . gameInfo) ri
+        c <- client'sM rnc isInGame ci
+        return $ r && c
     chans <- othersChans
     mapM_ processAction $
         ModifyRoom (\r -> r{
@@ -403,14 +408,14 @@
         : [SendTeamRemovalMessage teamName | inGame]
 
 
-processAction (RemoveClientTeams clId) = do
+processAction RemoveClientTeams = do
+    (Just ci) <- gets clientIndex
     rnc <- gets roomsClients
 
     removeTeamActions <- io $ do
-        clNick <- client'sM rnc nick clId
-        rId <- clientRoomM rnc clId
+        rId <- clientRoomM rnc ci
         roomTeams <- room'sM rnc teams rId
-        return . Prelude.map (RemoveTeam . teamname) . Prelude.filter (\t -> teamowner t == clNick) $ roomTeams
+        return . Prelude.map (RemoveTeam . teamname) . Prelude.filter (\t -> teamownerId t == ci) $ roomTeams
 
     mapM_ processAction removeTeamActions
 
@@ -421,11 +426,13 @@
     n <- client's nick
     h <- client's host
     p <- client's clientProto
+    checker <- client's isChecker
     uid <- client's clUID
-    haveSameNick <- liftM (not . null . tail . filter (\c -> caseInsensitiveCompare (nick c) n)) allClientsS
-    if haveSameNick then
+    -- allow multiple checker logins
+    haveSameNick <- liftM (not . null . tail . filter (\c -> (not $ isChecker c) && caseInsensitiveCompare (nick c) n)) allClientsS
+    if haveSameNick && (not checker) then
         if p < 38 then
-            processAction $ ByeClient "Nickname is already in use"
+            processAction $ ByeClient $ loc "Nickname is already in use"
             else
             processAction $ NoticeMessage NickAlreadyInUse
         else
@@ -444,9 +451,8 @@
     case info of
         HasAccount passwd isAdmin -> do
             b <- isBanned
-            when (not b) $ do
-                chan <- client's sendChan
-                mapM_ processAction [AnswerClients [chan] ["ASKPASSWORD"], ModifyClient (\c -> c{webPassword = passwd, isAdministrator = isAdmin})]
+            c <- client's isChecker
+            when (not b) $ (if c then checkerLogin else playerLogin) passwd isAdmin
         Guest -> do
             b <- isBanned
             when (not b) $
@@ -459,14 +465,21 @@
     isBanned = do
         processAction $ CheckBanned False
         liftM B.null $ client's nick
-
+    checkerLogin _ False = processAction $ ByeClient $ loc "No checker rights"
+    checkerLogin p True = do
+        wp <- client's webPassword
+        processAction $
+            if wp == p then ModifyClient $ \c -> c{logonPassed = True} else ByeClient $ loc "Authentication failed"
+    playerLogin p a = do
+        chan <- client's sendChan
+        mapM_ processAction [AnswerClients [chan] ["ASKPASSWORD"], ModifyClient (\c -> c{webPassword = p, isAdministrator = a})]
 
 processAction JoinLobby = do
     chan <- client's sendChan
     clientNick <- client's nick
     isAuthenticated <- liftM (not . B.null) $ client's webPassword
     isAdmin <- client's isAdministrator
-    loggedInClients <- liftM (Prelude.filter logonPassed) $! allClientsS
+    loggedInClients <- liftM (Prelude.filter isVisible) $! allClientsS
     let (lobbyNicks, clientsChans) = unzip . L.map (nick &&& sendChan) $ loggedInClients
     let authenticatedNicks = L.map nick . L.filter (not . B.null . webPassword) $ loggedInClients
     let adminsNicks = L.map nick . L.filter isAdministrator $ loggedInClients
@@ -477,7 +490,7 @@
         , [AnswerClients [chan] ("CLIENT_FLAGS" : "+u" : authenticatedNicks) | not $ null authenticatedNicks]
         , [AnswerClients [chan] ("CLIENT_FLAGS" : "+a" : adminsNicks) | not $ null adminsNicks]
         , [AnswerClients (chan : clientsChans) ["CLIENT_FLAGS",  B.concat["+" , clFlags], clientNick] | not $ B.null clFlags]
-        , [ModifyClient (\cl -> cl{logonPassed = True})]
+        , [ModifyClient (\cl -> cl{logonPassed = True, isVisible = True})]
         , [SendServerMessage]
         ]
 
@@ -487,7 +500,7 @@
     clHost <- client's host
     currentTime <- io getCurrentTime
     mapM_ processAction [
-        AddIP2Bans clHost "60 seconds cooldown after kick" (addUTCTime 60 currentTime)
+        AddIP2Bans clHost (loc "60 seconds cooldown after kick") (addUTCTime 60 currentTime)
         , ModifyClient (\c -> c{isKickedFromServer = True})
         , ByeClient "Kicked"
         ]
@@ -543,7 +556,7 @@
 processAction (KickRoomClient kickId) = do
     modify (\s -> s{clientIndex = Just kickId})
     ch <- client's sendChan
-    mapM_ processAction [AnswerClients [ch] ["KICKED"], MoveToLobby "kicked"]
+    mapM_ processAction [AnswerClients [ch] ["KICKED"], MoveToLobby $ loc "kicked"]
 
 
 processAction (AddClient cl) = do
@@ -606,7 +619,7 @@
             pq <- io $ client'sM rnc pingsQueue ci
             when (pq > 0) $ do
                 withStateT (\as -> as{clientIndex = Just ci}) $
-                    processAction (ByeClient "Ping timeout")
+                    processAction (ByeClient $ loc "Ping timeout")
 --                when (pq > 1) $
 --                    processAction $ DeleteClient ci -- smth went wrong with client io threads, issue DeleteClient here
 
@@ -633,10 +646,20 @@
             return ()
         processAction $ ModifyServerInfo (\s -> s{shutdownPending = True})
 
+processAction Stats = do
+    cls <- allClientsS
+    let stats = versions cls
+    processAction $ Warning stats
+    where
+        versions = B.concat . ((:) "<table border=1>") . (flip (++) ["</table>"])
+            . concatMap (\(p, n :: Int) -> ["<tr><td>", protoNumber2ver p, "</td><td>", showB n, "</td></tr>"])
+            . Map.toList . Map.fromListWith (+) . map (\c -> (clientProto c, 1))
+
 #if defined(OFFICIAL_SERVER)
 processAction SaveReplay = do
     ri <- clientRoomA
     rnc <- gets roomsClients
+
     io $ do
         r <- room'sM rnc id ri
         saveReplay r
--- a/gameServer/ClientIO.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/ClientIO.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -30,25 +30,26 @@
             return (B.splitWith (== '\n') packet : packets)
 
 listenLoop :: Socket -> Chan CoreMessage -> ClientIndex -> IO ()
-listenLoop sock chan ci = recieveWithBufferLoop B.empty
+listenLoop sock chan ci = receiveWithBufferLoop B.empty
     where
-        recieveWithBufferLoop recvBuf = do
+        receiveWithBufferLoop recvBuf = do
             recvBS <- recv sock 4096
             unless (B.null recvBS) $ do
                 let (packets, newrecvBuf) = bs2Packets $ B.append recvBuf recvBS
                 forM_ packets sendPacket
-                recieveWithBufferLoop newrecvBuf
+                receiveWithBufferLoop newrecvBuf
 
         sendPacket packet = writeChan chan $ ClientMessage (ci, packet)
 
 clientRecvLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> (forall a. IO a -> IO a) -> IO ()
 clientRecvLoop s chan clChan ci restore =
     (myThreadId >>=
-    \t -> (restore $ forkIO (clientSendLoop s t clChan ci) >>
+      (\t -> (restore $ forkIO (clientSendLoop s t clChan ci) >>
         listenLoop s chan ci >> return "Connection closed")
         `Exception.catch` (\(e :: ShutdownThreadException) -> return . B.pack . show $ e)
         `Exception.catch` (\(e :: Exception.IOException) -> return . B.pack . show $ e)
         `Exception.catch` (\(e :: Exception.SomeException) -> return . B.pack . show $ e)
+      )
         >>= clientOff) `Exception.finally` remove
     where
         clientOff msg = writeChan chan $ ClientMessage (ci, ["QUIT", msg])
--- a/gameServer/ConfigFile.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/ConfigFile.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -58,4 +58,3 @@
             , ("sv_message", sm)
             , ("sv_messageOld", smo)
             ]
-        
\ No newline at end of file
--- a/gameServer/CoreTypes.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/CoreTypes.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,6 @@
 import Control.Concurrent
 import Data.Word
 import qualified Data.Map as Map
-import Data.Sequence(Seq, empty)
 import Data.Time
 import Network
 import Data.Function
@@ -29,6 +28,7 @@
         nick :: B.ByteString,
         webPassword :: B.ByteString,
         logonPassed :: Bool,
+        isVisible :: Bool,
         clientProto :: !Word16,
         roomID :: RoomIndex,
         pingsQueue :: !Word,
@@ -36,6 +36,7 @@
         isReady :: !Bool,
         isInGame :: Bool,
         isAdministrator :: Bool,
+        isChecker :: Bool,
         isKickedFromServer :: Bool,
         clientClan :: Maybe B.ByteString,
         teamsInGame :: Word
@@ -68,11 +69,11 @@
 data GameInfo =
     GameInfo
     {
-        roundMsgs :: Seq B.ByteString,
+        roundMsgs :: [B.ByteString],
         leftTeams :: [B.ByteString],
         teamsAtStart :: [TeamInfo],
         teamsInGameNumber :: Int,
-        allPlayersHaveRegisteredAccounts :: Bool,
+        allPlayersHaveRegisteredAccounts :: !Bool,
         giMapParams :: Map.Map B.ByteString B.ByteString,
         giParams :: Map.Map B.ByteString [B.ByteString]
     } deriving (Show, Read)
@@ -85,7 +86,7 @@
                 -> GameInfo
 newGameInfo =
     GameInfo
-        Data.Sequence.empty
+        []
         []
 
 data RoomInfo =
--- a/gameServer/HWProtoCore.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/HWProtoCore.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -4,6 +4,7 @@
 import Control.Monad.Reader
 import Data.Maybe
 import qualified Data.ByteString.Char8 as B
+import qualified Data.List as L
 --------------------------------------
 import CoreTypes
 import Actions
@@ -22,7 +23,7 @@
 
 handleCmd ("QUIT" : xs) = return [ByeClient msg]
     where
-        msg = if not $ null xs then head xs else "bye"
+        msg = if not $ null xs then head xs else loc "bye"
 
 
 handleCmd ["PONG"] = do
@@ -32,6 +33,17 @@
         else
         return [ModifyClient (\c -> c{pingsQueue = pingsQueue c - 1})]
 
+handleCmd ("CMD" : params) =
+    let c = concatMap B.words params in
+        if not $ null c then
+            h $ (upperCase . head $ c) : tail c
+            else
+            return []
+    where
+        h ["DELEGATE", n] = handleCmd ["DELEGATE", n]
+        h ["STATS"] = handleCmd ["STATS"]
+        h c = return [Warning . B.concat . L.intersperse " " $ "Unknown cmd" : c]
+
 handleCmd cmd = do
     (ci, irnc) <- ask
     if logonPassed (irnc `client` ci) then
--- a/gameServer/HWProtoInRoomState.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/HWProtoInRoomState.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -2,13 +2,11 @@
 module HWProtoInRoomState where
 
 import qualified Data.Map as Map
-import Data.Sequence((|>))
 import Data.List as L
 import Data.Maybe
 import qualified Data.ByteString.Char8 as B
 import Control.Monad
 import Control.Monad.Reader
-import Control.DeepSeq
 --------------------------------------
 import CoreTypes
 import Actions
@@ -29,7 +27,7 @@
 
 
 handleCmd_inRoom ("CFG" : paramName : paramStrs)
-    | null paramStrs = return [ProtocolError "Empty config entry"]
+    | null paramStrs = return [ProtocolError $ loc "Empty config entry"]
     | otherwise = do
         chans <- roomOthersChans
         cl <- thisClient
@@ -38,7 +36,7 @@
                 ModifyRoom f,
                 AnswerClients chans ("CFG" : paramName : paramStrs)]
             else
-            return [ProtocolError "Not room master"]
+            return [ProtocolError $ loc "Not room master"]
     where
         f r = if paramName `Map.member` (mapParams r) then
                 r{mapParams = Map.insert paramName (head paramStrs) (mapParams r)}
@@ -46,7 +44,7 @@
                 r{params = Map.insert paramName paramStrs (params r)}
 
 handleCmd_inRoom ("ADD_TEAM" : tName : color : grave : fort : voicepack : flag : difStr : hhsInfo)
-    | length hhsInfo /= 16 = return [ProtocolError "Corrupted hedgehogs info"]
+    | length hhsInfo /= 16 = return [ProtocolError $ loc "Corrupted hedgehogs info"]
     | otherwise = do
         (ci, _) <- ask
         rm <- thisRoom
@@ -60,34 +58,37 @@
                 return color
                 else
                 liftM (head . (L.\\) (map B.singleton ['0'..]) . map teamcolor . teams) thisRoom
-        let newTeam = clNick `seq` TeamInfo ci clNick tName teamColor grave fort voicepack flag dif (newTeamHHNum rm) (hhsList hhsInfo)
+        let roomTeams = teams rm
+        let hhNum = let p = if not $ null roomTeams then hhnum $ head roomTeams else 4 in newTeamHHNum roomTeams p
+        let newTeam = clNick `seq` TeamInfo ci clNick tName teamColor grave fort voicepack flag dif hhNum (hhsList hhsInfo)
         return $
-            if not . null . drop (maxTeams rm - 1) $ teams rm then
-                [Warning "too many teams"]
-            else if canAddNumber rm <= 0 then
-                [Warning "too many hedgehogs"]
+            if not . null . drop (maxTeams rm - 1) $ roomTeams then
+                [Warning $ loc "too many teams"]
+            else if canAddNumber roomTeams <= 0 then
+                [Warning $ loc "too many hedgehogs"]
             else if isJust $ findTeam rm then
-                [Warning "There's already a team with same name in the list"]
+                [Warning $ loc "There's already a team with same name in the list"]
             else if isJust $ gameInfo rm then
-                [Warning "round in progress"]
+                [Warning $ loc "round in progress"]
             else if isRestrictedTeams rm then
-                [Warning "restricted"]
+                [Warning $ loc "restricted"]
             else
                 [ModifyRoom (\r -> r{teams = teams r ++ [newTeam]}),
                 SendUpdateOnThisRoom,
                 ModifyClient (\c -> c{teamsInGame = teamsInGame c + 1, clientClan = Just teamColor}),
                 AnswerClients clChan ["TEAM_ACCEPTED", tName],
+                AnswerClients clChan ["HH_NUM", tName, showB $ hhnum newTeam],
                 AnswerClients othChans $ teamToNet $ newTeam,
                 AnswerClients roomChans ["TEAM_COLOR", tName, teamColor]
                 ]
         where
-        canAddNumber r = 48 - (sum . map hhnum $ teams r)
+        canAddNumber rt = (48::Int) - (sum $ map hhnum rt)
         findTeam = find (\t -> tName == teamname t) . teams
         dif = readInt_ difStr
         hhsList [] = []
         hhsList [_] = error "Hedgehogs list with odd elements number"
         hhsList (n:h:hhs) = HedgehogInfo n h : hhsList hhs
-        newTeamHHNum r = min 4 (canAddNumber r)
+        newTeamHHNum rt p = min p (canAddNumber rt)
         maxTeams r
             | roomProto r < 38 = 6
             | otherwise = 8
@@ -102,10 +103,10 @@
         let team = fromJust maybeTeam
 
         return $
-            if isNothing $ findTeam r then
-                [Warning "REMOVE_TEAM: no such team"]
+            if isNothing $ maybeTeam then
+                [Warning $ loc "REMOVE_TEAM: no such team"]
             else if clNick /= teamowner team then
-                [ProtocolError "Not team owner!"]
+                [ProtocolError $ loc "Not team owner!"]
             else
                 [RemoveTeam tName,
                 ModifyClient
@@ -121,20 +122,23 @@
 
 handleCmd_inRoom ["HH_NUM", teamName, numberStr] = do
     cl <- thisClient
-    others <- roomOthersChans
     r <- thisRoom
+    clChan <- thisClientChans
+    roomChans <- roomClientsChans
 
     let maybeTeam = findTeam r
     let team = fromJust maybeTeam
 
     return $
         if not $ isMaster cl then
-            [ProtocolError "Not room master"]
-        else if hhNumber < 1 || hhNumber > 8 || isNothing maybeTeam || hhNumber > canAddNumber r + hhnum team then
+            [ProtocolError $ loc "Not room master"]
+        else if isNothing maybeTeam then
             []
+        else if hhNumber < 1 || hhNumber > 8 || hhNumber > canAddNumber r + hhnum team then
+            [AnswerClients clChan ["HH_NUM", teamName, showB $ hhnum team]]
         else
             [ModifyRoom $ modifyTeam team{hhnum = hhNumber},
-            AnswerClients others ["HH_NUM", teamName, showB hhNumber]]
+            AnswerClients roomChans ["HH_NUM", teamName, showB hhNumber]]
     where
         hhNumber = readInt_ numberStr
         findTeam = find (\t -> teamName == teamname t) . teams
@@ -152,7 +156,7 @@
 
     return $
         if not $ isMaster cl then
-            [ProtocolError "Not room master"]
+            [ProtocolError $ loc "Not room master"]
         else if isNothing maybeTeam then
             []
         else
@@ -187,7 +191,7 @@
     let nicks = map (nick . client rnc) . roomClients rnc $ clientRoom rnc ci
     let allPlayersRegistered = all ((<) 0 . B.length . webPassword . client rnc . teamownerId) $ teams rm
 
-    if isMaster cl && playersIn rm == readyPlayers rm && not (isJust $ gameInfo rm) then
+    if isMaster cl && (playersIn rm == readyPlayers rm || clientProto cl > 43) && not (isJust $ gameInfo rm) then
         if enoughClans rm then
             return [
                 ModifyRoom
@@ -201,7 +205,7 @@
                 , ModifyRoomClients (\c -> c{isInGame = True})
                 ]
             else
-            return [Warning "Less than two clans!"]
+            return [Warning $ loc "Less than two clans!"]
         else
         return []
     where
@@ -214,7 +218,8 @@
     chans <- roomOthersChans
 
     if teamsInGame cl > 0 && (isJust $ gameInfo rm) && isLegal then
-        return $ AnswerClients chans ["EM", msg] : [ModifyRoom (\r -> r{gameInfo = liftM (\g -> g{roundMsgs = roundMsgs g |> msg}) $ gameInfo r}) | not isKeepAlive]
+        return $ AnswerClients chans ["EM", msg]
+            : [ModifyRoom (\r -> r{gameInfo = liftM (\g -> g{roundMsgs = msg : roundMsgs g}) $ gameInfo r}) | not isKeepAlive]
         else
         return []
     where
@@ -231,10 +236,7 @@
 
     if isInGame cl then
         if isJust $ gameInfo rm then
-            if (isMaster cl && isCorrect) then
-                return $ FinishGame : unsetInGameState
-                else
-                return $ unsetInGameState ++ map SendTeamRemovalMessage clTeams
+            return $ unsetInGameState ++ map SendTeamRemovalMessage clTeams
             else
             return unsetInGameState
         else
@@ -250,7 +252,7 @@
     cl <- thisClient
     return $
         if not $ isMaster cl then
-            [ProtocolError "Not room master"]
+            [ProtocolError $ loc "Not room master"]
         else
             [ModifyRoom (\r -> r{isRestrictedJoins = not $ isRestrictedJoins r})]
 
@@ -259,7 +261,7 @@
     cl <- thisClient
     return $
         if not $ isMaster cl then
-            [ProtocolError "Not room master"]
+            [ProtocolError $ loc "Not room master"]
         else
             [ModifyRoom (\r -> r{isRestrictedTeams = not $ isRestrictedTeams r})]
 
@@ -268,7 +270,7 @@
     cl <- thisClient
     return $
         if not $ isMaster cl then
-            [ProtocolError "Not room master"]
+            [ProtocolError $ loc "Not room master"]
         else
             [ModifyRoom (\r -> r{isRegisteredOnly = not $ isRegisteredOnly r})]
 
@@ -280,10 +282,10 @@
 
     return $
         if not $ isMaster cl then
-            [ProtocolError "Not room master"]
+            [ProtocolError $ loc "Not room master"]
         else
         if isJust $ find (\r -> newName == name r) rs then
-            [Warning "Room with such name already exists"]
+            [Warning $ loc "Room with such name already exists"]
         else
             [ModifyRoom roomUpdate,
             AnswerClients chans ("ROOM" : "UPD" : name rm : roomInfo (nick cl) (roomUpdate rm))]
@@ -305,10 +307,15 @@
     (thisClientId, rnc) <- ask
     maybeClientId <- clientByNick newAdmin
     master <- liftM isMaster thisClient
+    serverAdmin <- liftM isAdministrator thisClient
     let newAdminId = fromJust maybeClientId
     let sameRoom = clientRoom rnc thisClientId == clientRoom rnc newAdminId
     return
-        [ChangeMaster (Just newAdminId) | master && isJust maybeClientId && (newAdminId /= thisClientId) && sameRoom]
+        [ChangeMaster (Just newAdminId) |
+            (master || serverAdmin)
+                && isJust maybeClientId
+                && ((newAdminId /= thisClientId) || (serverAdmin && not master))
+                && sameRoom]
 
 
 handleCmd_inRoom ["TEAMCHAT", msg] = do
--- a/gameServer/HWProtoLobbyState.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/HWProtoLobbyState.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -2,11 +2,9 @@
 module HWProtoLobbyState where
 
 import qualified Data.Map as Map
-import qualified Data.Foldable as Foldable
 import Data.Maybe
 import Data.List
 import Control.Monad.Reader
-import qualified Data.ByteString.Char8 as B
 --------------------------------------
 import CoreTypes
 import Actions
@@ -43,7 +41,7 @@
     return [AnswerClients s ["CHAT", n, msg]]
 
 handleCmd_lobby ["CREATE_ROOM", rName, roomPassword]
-    | illegalName rName = return [Warning "Illegal room name"]
+    | illegalName rName = return [Warning $ loc "Illegal room name"]
     | otherwise = do
         rs <- allRoomInfos
         cl <- thisClient
@@ -77,13 +75,13 @@
     let isBanned = host cl `elem` roomBansList jRoom
     return $
         if isNothing maybeRI || not sameProto then
-            [Warning "No such room"]
+            [Warning $ loc "No such room"]
             else if isRestrictedJoins jRoom then
-            [Warning "Joining restricted"]
+            [Warning $ loc "Joining restricted"]
             else if isRegisteredOnly jRoom then
-            [Warning "Registered users only"]
+            [Warning $ loc "Registered users only"]
             else if isBanned then
-            [Warning "You are banned in this room"]
+            [Warning $ loc "You are banned in this room"]
             else if roomPassword /= password jRoom then
             [NoticeMessage WrongPassword]
             else
@@ -128,7 +126,7 @@
                     [AnswerClients [sendChan cl]  ["RUN_GAME"]
                     , AnswerClients chans ["CLIENT_FLAGS", "+g", nick cl]
                     , ModifyClient (\c -> c{isInGame = True})
-                    , AnswerClients [sendChan cl] $ "EM" : toEngineMsg "e$spectate 1" : Foldable.toList (roundMsgs . fromJust . gameInfo $ jRoom)]
+                    , AnswerClients [sendChan cl] $ "EM" : toEngineMsg "e$spectate 1" : (reverse . roundMsgs . fromJust . gameInfo $ jRoom)]
 
 
 handleCmd_lobby ["JOIN_ROOM", roomName] =
@@ -205,5 +203,8 @@
     cl <- thisClient
     return [RestartServer | isAdministrator cl]
 
+handleCmd_lobby ["STATS"] = do
+    cl <- thisClient
+    return [Stats | isAdministrator cl]
 
 handleCmd_lobby _ = return [ProtocolError "Incorrect command (state: in lobby)"]
--- a/gameServer/HWProtoNEState.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/HWProtoNEState.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE OverloadedStrings, CPP #-}
 module HWProtoNEState where
 
 import Control.Monad.Reader
@@ -14,9 +14,9 @@
 handleCmd_NotEntered ["NICK", newNick] = do
     (ci, irnc) <- ask
     let cl = irnc `client` ci
-    if not . B.null $ nick cl then return [ProtocolError "Nickname already chosen"]
+    if not . B.null $ nick cl then return [ProtocolError $ loc "Nickname already chosen"]
         else
-        if illegalName newNick then return [ByeClient "Illegal nickname"]
+        if illegalName newNick then return [ByeClient $ loc "Illegal nickname"]
             else
             return $
                 ModifyClient (\c -> c{nick = newNick}) :
@@ -26,9 +26,9 @@
 handleCmd_NotEntered ["PROTO", protoNum] = do
     (ci, irnc) <- ask
     let cl = irnc `client` ci
-    if clientProto cl > 0 then return [ProtocolError "Protocol already known"]
+    if clientProto cl > 0 then return [ProtocolError $ loc "Protocol already known"]
         else
-        if parsedProto == 0 then return [ProtocolError "Bad number"]
+        if parsedProto == 0 then return [ProtocolError $ loc "Bad number"]
             else
             return $
                 ModifyClient (\c -> c{clientProto = parsedProto}) :
@@ -48,4 +48,18 @@
         return [ByeClient "Authentication failed"]
 
 
+#if defined(OFFICIAL_SERVER)
+handleCmd_NotEntered ["CHECKER", protoNum, newNick, password] = do
+    (ci, irnc) <- ask
+    let cl = irnc `client` ci
+
+    if parsedProto == 0 then return [ProtocolError $ loc "Bad number"]
+        else
+        return $ [
+            ModifyClient (\c -> c{clientProto = parsedProto, nick = newNick, webPassword = password, isChecker = True})
+            , CheckRegistered]
+    where
+        parsedProto = readInt_ protoNum
+#endif
+
 handleCmd_NotEntered _ = return [ProtocolError "Incorrect command (state: not entered)"]
--- a/gameServer/NetRoutines.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/NetRoutines.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -34,6 +34,7 @@
                     ""
                     ""
                     False
+                    False
                     0
                     lobbyId
                     0
@@ -42,6 +43,7 @@
                     False
                     False
                     False
+                    False
                     Nothing
                     0
                     )
--- a/gameServer/OfficialServer/GameReplayStore.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/OfficialServer/GameReplayStore.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -15,12 +15,12 @@
 
 saveReplay :: RoomInfo -> IO ()
 saveReplay r = do
-    time <- getCurrentTime
-    u <- liftM hashUnique newUnique
-    let fileName = "replays/" ++ show time ++ "-" ++ show u
     let gi = fromJust $ gameInfo r
-    let replayInfo = (teamsAtStart gi, Map.toList $ mapParams r, Map.toList $ params r, roundMsgs gi)
-    E.catch
-        (writeFile fileName (show replayInfo))
-        (\(e :: IOException) -> warningM "REPLAYS" $ "Couldn't write to " ++ fileName ++ ": " ++ show e)
-                   
\ No newline at end of file
+    when (allPlayersHaveRegisteredAccounts gi) $ do
+        time <- getCurrentTime
+        u <- liftM hashUnique newUnique
+        let fileName = "replays/" ++ show time ++ "-" ++ show u
+        let replayInfo = (teamsAtStart gi, Map.toList $ mapParams r, Map.toList $ params r, roundMsgs gi)
+        E.catch
+            (writeFile fileName (show replayInfo))
+            (\(e :: IOException) -> warningM "REPLAYS" $ "Couldn't write to " ++ fileName ++ ": " ++ show e)
--- a/gameServer/ServerState.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/ServerState.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -49,6 +49,6 @@
 sameProtoClientsS p = liftM f allClientsS
     where
         f = filter (\c -> clientProto c == p)
-    
+
 io :: IO a -> StateT ServerState IO a
 io = liftIO
--- a/gameServer/Utils.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/gameServer/Utils.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -118,10 +118,10 @@
 cutHost = B.intercalate "." .  flip (++) ["*","*"] . List.take 2 . B.split '.'
 
 caseInsensitiveCompare :: B.ByteString -> B.ByteString -> Bool
-caseInsensitiveCompare a b = f a == f b
-    where
-        f = map Char.toUpper . UTF8.toString
+caseInsensitiveCompare a b = upperCase a == upperCase b
 
+upperCase :: B.ByteString -> B.ByteString
+upperCase = UTF8.fromString . map Char.toUpper . UTF8.toString
 
 roomInfo :: B.ByteString -> RoomInfo -> [B.ByteString]
 roomInfo n r = [
@@ -134,3 +134,6 @@
         head (Map.findWithDefault ["Default"] "SCHEME" (params r)),
         head (Map.findWithDefault ["Default"] "AMMO" (params r))
         ]
+
+loc :: B.ByteString -> B.ByteString
+loc = id
--- a/hedgewars/ArgParsers.inc	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/ArgParsers.inc	Sun Jan 27 00:28:57 2013 +0100
@@ -43,8 +43,10 @@
     WriteLn(stdout, ' --user-prefix [path to folder]');
     WriteLn(stdout, ' --locale [name of language file]');
     WriteLn(stdout, ' --nick [string]');
-    WriteLn(stdout, ' --width [screen width in pixels]');
-    WriteLn(stdout, ' --height [screen height in pixels]');
+    WriteLn(stdout, ' --fullscreen-width [fullscreen width in pixels]');
+    WriteLn(stdout, ' --fullscreen-height [fullscreen height in pixels]');
+    WriteLn(stdout, ' --width [window width in pixels]');
+    WriteLn(stdout, ' --height [window height in pixels]');
     WriteLn(stdout, ' --volume [sound level]');
     WriteLn(stdout, ' --frame-interval [milliseconds]');
     Writeln(stdout, ' --stereo [value]');
@@ -103,25 +105,28 @@
 begin
     GrayScale:= false;
 {$IFDEF USE_S3D_RENDERING}
-    if (tmp > 9) and (tmp < 16) then
+    if (tmp > 6) and (tmp < 13) then
         begin
         // set the gray anaglyph rendering
         GrayScale:= true;
-        cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-9)))
+        cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-6)))
         end
-    else if tmp <= 9 then
+    else if tmp <= 6 then
         // set the fullcolor anaglyph
         cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp)))
     else
         // any other mode
         cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-6)));
 {$ELSE}
+    tmp:= tmp;
     cStereoMode:= smNone;
 {$ENDIF}
 end;
 
 procedure startVideoRecording(var paramIndex: LongInt);
 begin
+    // Silence the hint that appears when USE_VIDEO_RECORDING is not defined
+    paramIndex:= paramIndex;
 {$IFDEF USE_VIDEO_RECORDING}
     GameType:= gmtRecord;
     inc(paramIndex);
@@ -158,14 +163,15 @@
 procedure parseClassicParameter(cmdArray: array of String; size:LongInt; var paramIndex:LongInt); forward;
 
 function parseParameter(cmd:String; arg:String; var paramIndex:LongInt): Boolean;
-const videoArray: array [1..3] of String = ('--width','--height','--depth');
-      audioArray: array [1..3] of String = ('--volume','--nomusic','--nosound');
-      otherArray: array [1..3] of String = ('--locale','--fullscreen','--showfps');
-      mediaArray: array [1..8] of String = ('--width','--height','--depth','--volume','--nomusic','--nosound','--locale','--fullscreen');
-      allArray: array [1..12] of String = ('--width','--height','--depth','--volume','--nomusic','--nosound','--locale','--fullscreen','--showfps','--altdmg','--frame-interval','--low-quality');
-      reallyAll: array[0..28] of shortstring = (
-                '--prefix', '--user-prefix', '--locale', '--width', '--height', '--frame-interval', '--volume','--nomusic', '--nosound',
-                '--fullscreen', '--showfps', '--altdmg', '--low-quality', '--raw-quality', '--stereo', '--nick',
+const videoArray: Array [1..5] of String = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth');
+      audioArray: Array [1..3] of String = ('--volume','--nomusic','--nosound');
+      otherArray: Array [1..3] of String = ('--locale','--fullscreen','--showfps');
+      mediaArray: Array [1..10] of String = ('--fullscreen-width', '--fullscreen-height', '--width', '--height', '--depth', '--volume','--nomusic','--nosound','--locale','--fullscreen');
+      allArray: Array [1..14] of String = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth','--volume','--nomusic','--nosound','--locale','--fullscreen','--showfps','--altdmg','--frame-interval','--low-quality');
+      reallyAll: array[0..30] of shortstring = (
+                '--prefix', '--user-prefix', '--locale', '--fullscreen-width', '--fullscreen-height', '--width', 
+                '--height', '--frame-interval', '--volume','--nomusic', '--nosound',
+                '--fullscreen', '--showfps', '--altdmg', '--low-quality', '--raw-quality', '--stereo', '--nick', 
   {deprecated}  '--depth', '--set-video', '--set-audio', '--set-other', '--set-multimedia', '--set-everything',
   {internal}    '--internal', '--port', '--recorder', '--landpreview',
   {misc}        '--stats-only', '--gci', '--help');
@@ -179,38 +185,40 @@
 
     while (cmdIndex <= High(reallyAll)) and (cmd <> reallyAll[cmdIndex]) do inc(cmdIndex);
     case cmdIndex of
-        {--prefix}          0 : PathPrefix     := getStringParameter (arg, paramIndex, parseParameter);
-        {--user-prefix}     1 : UserPathPrefix := getStringParameter (arg, paramIndex, parseParameter);
-        {--locale}          2 : cLocaleFName   := getStringParameter (arg, paramIndex, parseParameter);
-        {--width}           3 : cScreenWidth   := getLongIntParameter(arg, paramIndex, parseParameter);
-        {--height}          4 : cScreenHeight  := getLongIntParameter(arg, paramIndex, parseParameter);
-        {--frame-interval}  5 : cTimerInterval := getLongIntParameter(arg, paramIndex, parseParameter);
-        {--volume}          6 : SetVolume       ( getLongIntParameter(arg, paramIndex, parseParameter) );
-        {--nomusic}         7 : SetMusic        ( false );
-        {--nosound}         8 : SetSound        ( false );
-        {--fullscreen}      9 : cFullScreen    := true;
-        {--showfps}        10 : cShowFPS       := true;
-        {--altdmg}         11 : cAltDamage     := true;
-        {--low-quality}    12 : cReducedQuality:= $FFFFFFFF xor rqLowRes;
-        {--raw-quality}    13 : cReducedQuality:= getLongIntParameter(arg, paramIndex, parseParameter);
-        {--stereo}         14 : setStereoMode   ( getLongIntParameter(arg, paramIndex, parseParameter) );
-        {--nick}           15 : UserNick       := parseNick( getStringParameter(arg, paramIndex, parseParameter) );
+        {--prefix}               0 : PathPrefix        := getStringParameter (arg, paramIndex, parseParameter);
+        {--user-prefix}          1 : UserPathPrefix    := getStringParameter (arg, paramIndex, parseParameter);
+        {--locale}               2 : cLocaleFName      := getStringParameter (arg, paramIndex, parseParameter);
+        {--fullscreen-width}     3 : cFullscreenWidth  := getLongIntParameter(arg, paramIndex, parseParameter);
+        {--fullscreen-height}    4 : cFullscreenHeight := getLongIntParameter(arg, paramIndex, parseParameter);
+        {--width}                5 : cWindowedWidth    := getLongIntParameter(arg, paramIndex, parseParameter);
+        {--height}               6 : cWindowedHeight   := getLongIntParameter(arg, paramIndex, parseParameter);
+        {--frame-interval}       7 : cTimerInterval    := getLongIntParameter(arg, paramIndex, parseParameter);
+        {--volume}               8 : SetVolume          ( getLongIntParameter(arg, paramIndex, parseParameter) );
+        {--nomusic}              9 : SetMusic           ( false );
+        {--nosound}             10 : SetSound           ( false );
+        {--fullscreen}          11 : cFullScreen       := true;
+        {--showfps}             12 : cShowFPS          := true;
+        {--altdmg}              13 : cAltDamage        := true;
+        {--low-quality}         14 : cReducedQuality   := $FFFFFFFF xor rqLowRes;
+        {--raw-quality}         15 : cReducedQuality   := getLongIntParameter(arg, paramIndex, parseParameter);
+        {--stereo}              16 : setStereoMode      ( getLongIntParameter(arg, paramIndex, parseParameter) );
+        {--nick}                17 : UserNick          := parseNick( getStringParameter(arg, paramIndex, parseParameter) );
         {deprecated options}
-        {--depth}          16 : setDepth(paramIndex);
-        {--set-video}      17 : parseClassicParameter(videoArray,3,paramIndex);
-        {--set-audio}      18 : parseClassicParameter(audioArray,3,paramIndex);
-        {--set-other}      19 : parseClassicParameter(otherArray,3,paramIndex);
-        {--set-multimedia} 20 : parseClassicParameter(mediaArray,8,paramIndex);
-        {--set-everything} 21 : parseClassicParameter(allArray,12,paramIndex);
+        {--depth}               18 : setDepth(paramIndex);
+        {--set-video}           19 : parseClassicParameter(videoArray,5,paramIndex);
+        {--set-audio}           20 : parseClassicParameter(audioArray,3,paramIndex);
+        {--set-other}           21 : parseClassicParameter(otherArray,3,paramIndex);
+        {--set-multimedia}      22 : parseClassicParameter(mediaArray,10,paramIndex);
+        {--set-everything}      23 : parseClassicParameter(allArray,14,paramIndex);
         {"internal" options}
-        {--internal}       22 : {note it, but do nothing};
-        {--port}            23 : setIpcPort( getLongIntParameter(arg, paramIndex, parseParameter), parseParameter );
-        {--recorder}       24 : startVideoRecording(paramIndex);
-        {--landpreview}    25 : GameType := gmtLandPreview;
+        {--internal}            24 : {$IFDEF HWLIBRARY}isInternal:= true{$ENDIF};
+        {--port}                25 : setIpcPort( getLongIntParameter(arg, paramIndex, parseParameter), parseParameter );
+        {--recorder}            26 : startVideoRecording(paramIndex);
+        {--landpreview}         27 : GameType := gmtLandPreview;
         {anything else}
-        {--stats-only}     26 : statsOnlyGame();
-        {--gci}            27 : GciEasterEgg();
-        {--help}           28 : DisplayUsage();
+        {--stats-only}          28 : statsOnlyGame();
+        {--gci}                 29 : GciEasterEgg();
+        {--help}                30 : DisplayUsage();
     else
         begin
         //Asusme the first "non parameter" is the replay file, anything else is invalid
@@ -239,6 +247,7 @@
     tmpInt:= 1;
     while (index < size) do
         begin
+        newSyntax:= '';
         inc(paramIndex);
         cmd:= cmdArray[index];
         arg:= ParamStr(paramIndex);
@@ -269,17 +278,32 @@
 procedure parseCommandLine{$IFDEF HWLIBRARY}(argc: LongInt; argv: PPChar){$ENDIF};
 var paramIndex: LongInt;
     paramTotal: LongInt;
+    index, nextIndex: LongInt;
     wrongParameter: boolean;
+//var tmpInt: LongInt;
 begin
-    paramIndex:= 1;
-    paramTotal:={$IFDEF HWLIBRARY}argc{$ELSE}ParamCount{$ENDIF};
+    paramIndex:= {$IFDEF HWLIBRARY}0{$ELSE}1{$ENDIF};
+    paramTotal:= {$IFDEF HWLIBRARY}argc-1{$ELSE}ParamCount{$ENDIF}; //-1 because pascal enumeration is inclusive
+    (*
+    WriteLn(stdout, 'total parameters: ' + inttostr(paramTotal));
+    tmpInt:= 0;
+    while (tmpInt <= paramTotal) do
+        begin
+        WriteLn(stdout, inttostr(tmpInt) + ': ' + {$IFDEF HWLIBRARY}argv[tmpInt]{$ELSE}paramCount(tmpInt){$ENDIF});
+        inc(tmpInt);
+        end;
+    *)
     wrongParameter:= false;
     while (paramIndex <= paramTotal) do
         begin
+        // avoid going past the number of paramTotal (esp. w/ library)
+        index:= paramIndex;
+        if index = paramTotal then nextIndex:= index
+        else nextIndex:= index+1;
         {$IFDEF HWLIBRARY}
-        wrongParameter:= parseParameter( argv[paramIndex], argv[paramIndex+1], paramIndex);
+        wrongParameter:= parseParameter( argv[index], argv[nextIndex], paramIndex);
         {$ELSE}
-        wrongParameter:= parseParameter( ParamStr(paramIndex), ParamStr(paramIndex+1), paramIndex);
+        wrongParameter:= parseParameter( ParamStr(index), ParamStr(nextIndex), paramIndex);
         {$ENDIF}
         inc(paramIndex);
         end;
@@ -289,17 +313,7 @@
 
 {$IFNDEF HWLIBRARY}
 procedure GetParams;
-//var tmpInt: LongInt;
 begin
-    (*
-    tmpInt:=0;
-    while (tmpInt <= ParamCount) do
-        begin
-        WriteLn(stdout, inttostr(tmpInt) + ': ' + ParamStr(tmpInt));
-        inc(tmpInt);
-        end;
-    *)
-
     isInternal:= (ParamStr(1) = '--internal');
 
     UserPathPrefix := '.';
--- a/hedgewars/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -93,16 +93,16 @@
 
 if(${LIBENGINE})
     message(WARNING "Engine will be built as library (experimental)")
-    set(pascal_flags "-dHWLIBRARY" ${pascal_flags})
+    list(APPEND pascal_flags "-dHWLIBRARY")
 
     # create position independent code, only required for x68_64 builds, similar to -fPIC
     if(CMAKE_SIZEOF_VOID_P MATCHES "8")
-        set(pascal_flags "-Cg" ${pascal_flags})
+        list(APPEND pascal_flags "-Cg")
     endif(CMAKE_SIZEOF_VOID_P MATCHES "8")
 
     # due to compiler/linker issues on Max OS X 10.6 -k-no_order_inits is needed to avoid linking fail
     if(APPLE AND current_macosx_version VERSION_GREATER "10.5")
-        set(pascal_flags "-k-no_order_inits" ${pascal_flags})
+        list(APPEND pascal_flags "-k-no_order_inits")
     endif()
     set(destination_dir ${target_library_install_dir})
 else(${LIBENGINE})
@@ -146,20 +146,20 @@
             include_directories(${SDL_INCLUDE_DIR})
             add_library (SDLmain STATIC sdlmain_osx/SDLMain.m)
             #add a dependency to the hwengine target
-            set(engine_sources ${engine_sources} SDLmain)
+            list(APPEND engine_sources SDLmain)
             set(SDLMAIN_LIB "${LIBRARY_OUTPUT_PATH}/libSDLmain.a")
         endif()
 
-        set(pascal_flags "-k${SDLMAIN_LIB}" ${pascal_flags})
+        list(APPEND pascal_flags "-k${SDLMAIN_LIB}")
     endif()
 endif(APPLE)
 
 if(NOT NOPNG)
     find_package(PNG)
     if(${PNG_FOUND})
-        set(pascal_flags "-dPNG_SCREENSHOTS" ${pascal_flags})
+        list(APPEND pascal_flags "-dPNG_SCREENSHOTS")
         if(APPLE)  # fpc png unit doesn't pull the library (see bug 21833)
-            set(pascal_flags "-k${PNG_LIBRARY}" ${pascal_flags})
+            list(APPEND pascal_flags "-k${PNG_LIBRARY}")
         endif()
     else()
         message(WARNING "Screenshots will be in BMP format because libpng was not found")
@@ -191,7 +191,7 @@
 
         #TODO: convert avwrapper to .pas unit so we can skip this step
         include_directories(${FFMPEG_INCLUDE_DIR})
-        set(pascal_flags "-dUSE_VIDEO_RECORDING" ${pascal_flags})
+        list(APPEND pascal_flags "-dUSE_VIDEO_RECORDING")
         IF (WIN32)
             # there are some problems with linking our avwrapper as static lib, so link it as shared
             add_library(avwrapper SHARED videorec/avwrapper.c)
@@ -199,7 +199,7 @@
             install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}avwrapper${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION ${target_library_install_dir})
         ELSE()
             add_library(avwrapper STATIC videorec/avwrapper.c)
-            set(pascal_flags "-k${FFMPEG_LIBAVCODEC}" "-k${FFMPEG_LIBAVFORMAT}" "-k${FFMPEG_LIBAVUTIL}" ${pascal_flags})
+            list(APPEND pascal_flags "-k${FFMPEG_LIBAVCODEC}" "-k${FFMPEG_LIBAVFORMAT}" "-k${FFMPEG_LIBAVUTIL}")
         ENDIF()
     else()
         message(WARNING "Could NOT find FFMPEG/LibAV, video recording will be disabled")
@@ -222,7 +222,7 @@
 else()
     #these are the dependencies for building a universal binary on Mac OS X
     foreach (build_arch ${powerpc_build} ${i386_build} ${x86_64_build})
-        set(lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}" ${lipo_args_list})
+        list(APPEND lipo_args_list "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}")
         add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hwengine.${build_arch}"
             COMMAND "${FPC_EXECUTABLE}"
             ARGS ${fpc_flags} -ohwengine.${build_arch} -P${build_arch}
@@ -245,25 +245,25 @@
 endif()
 
 
-add_custom_target(${engine_output_name} ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}")
+add_custom_target(hwengine ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}")
 
 #when system Lua is not found we need to compile it before engine
 if(NOT LUA_FOUND)
-    add_dependencies(${engine_output_name} lua)
+    add_dependencies(hwengine lua)
 endif()
 
 # compile physfs before engine
-add_dependencies(${engine_output_name} physfs)
+add_dependencies(hwengine physfs)
 
 #when ffmpeg/libav is found we need to compile it before engine
 #TODO: convert avwrapper to .pas unit so we can skip this step
 if(${FFMPEG_FOUND})
-    add_dependencies(${engine_output_name} avwrapper)
+    add_dependencies(hwengine avwrapper)
 endif()
 
 #this command is a workaround to some inlining issues present in older FreePascal versions and fixed in 2.6
 if((FPC_VERSION VERSION_LESS "2.6") AND (NOVIDEOREC OR NOT ${FFMPEG_FOUND}))
-    add_dependencies(${engine_output_name} ENGINECLEAN)
+    add_dependencies(hwengine ENGINECLEAN)
 endif()
 
 install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/${engine_output_name}" DESTINATION ${destination_dir})
--- a/hedgewars/GSHandlers.inc	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/GSHandlers.inc	Sun Jan 27 00:28:57 2013 +0100
@@ -298,7 +298,7 @@
 procedure doStepBomb(Gear: PGear);
 var
     i, x, y: LongInt;
-    dX, dY: hwFloat;
+    dX, dY, gdX: hwFloat;
     vg: PVisualGear;
 begin
     AllInactive := false;
@@ -338,10 +338,11 @@
                 begin
                 x := hwRound(Gear^.X);
                 y := hwRound(Gear^.Y);
+                gdX:= Gear^.dX;
                 doMakeExplosion(x, y, 20, Gear^.Hedgehog, EXPLAutoSound);
                 for i:= 0 to 4 do
                     begin
-                    dX := rndSign(GetRandomf * _0_1) + Gear^.dX / 5;
+                    dX := rndSign(GetRandomf * _0_1) + gdX / 5;
                     dY := (GetRandomf - _3) * _0_08;
                     FollowGear := AddGear(x, y, gtCluster, 0, dX, dY, 25)
                     end
@@ -350,10 +351,11 @@
                 begin
                 x := hwRound(Gear^.X);
                 y := hwRound(Gear^.Y);
+                gdX:= Gear^.dX;
                 doMakeExplosion(x, y, 75, Gear^.Hedgehog, EXPLAutoSound);
                 for i:= 0 to 5 do
                     begin
-                    dX := rndSign(GetRandomf * _0_1) + Gear^.dX / 5;
+                    dX := rndSign(GetRandomf * _0_1) + gdX / 5;
                     dY := (GetRandomf - _1_5) * _0_3;
                     FollowGear:= AddGear(x, y, gtMelonPiece, 0, dX, dY, 75);
                     FollowGear^.DirAngle := i * 60
@@ -2414,8 +2416,8 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 procedure doStepMortar(Gear: PGear);
-var
-    dX, dY: hwFloat;
+var 
+    dX, dY, gdX, gdY: hwFloat;
     i: LongInt;
     dxn, dyn: boolean;
 begin
@@ -2426,14 +2428,16 @@
     doStepFallingGear(Gear);
     if (Gear^.State and gstCollision) <> 0 then
         begin
+        gdX := Gear^.dX;
+        gdY := Gear^.dY;
         doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLAutoSound);
 
-        Gear^.dX.isNegative := not dxn;
-        Gear^.dY.isNegative := not dyn;
+        gdX.isNegative := not dxn;
+        gdY.isNegative := not dyn;
         for i:= 0 to 4 do
             begin
-            dX := Gear^.dX + (GetRandomf - _0_5) * _0_03;
-            dY := Gear^.dY + (GetRandomf - _0_5) * _0_03;
+            dX := gdX + (GetRandomf - _0_5) * _0_03;
+            dY := gdY + (GetRandomf - _0_5) * _0_03;
             AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtCluster, 0, dX, dY, 25);
             end;
 
@@ -5182,7 +5186,7 @@
 if (Gear^.State and gstTmpFlag <> 0) or (GameTicks and $7 = 0) then
     begin
     doStepFallingGear(Gear);
-    if (Gear^.State and gstInvisible <> 0) and (GameTicks and $FF = 0) and ((hwRound(Gear^.X) < leftX) or (hwRound(Gear^.X) > rightX) or (hwRound(Gear^.Y) < topY)) then
+    if (Gear^.State and gstInvisible <> 0) and (GameTicks and $FF = 0) and (hwRound(Gear^.X) < LongInt(leftX)) or (hwRound(Gear^.X) > LongInt(rightX)) or (hwRound(Gear^.Y) < LongInt(topY)) then
         begin
         Gear^.X:= int2hwFloat(GetRandom(rightX-leftX)+leftX);
         Gear^.Y:= int2hwFloat(GetRandom(LAND_HEIGHT-topY)+topY);
@@ -5275,9 +5279,9 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 procedure doStepKnife(Gear: PGear);
-var ox, oy: LongInt;
-    la: hwFloat;
-    a: real;
+//var ox, oy: LongInt;
+//    la: hwFloat;
+var   a: real;
 begin
     // Gear is shrunk so it can actually escape the hog without carving into the terrain
     if (Gear^.Radius = 6) and (Gear^.CollisionMask = $FFFF) then Gear^.Radius:= 16;
@@ -5299,14 +5303,14 @@
         end
     else if (Gear^.CollisionIndex = -1) and (Gear^.Timer = 0) then
         begin
-        ox:= 0; oy:= 0;
+        (*ox:= 0; oy:= 0;
         if TestCollisionYwithGear(Gear, -1) <> 0 then oy:= -1;
         if TestCollisionXwithGear(Gear, 1)       then ox:=  1;
         if TestCollisionXwithGear(Gear, -1)      then ox:= -1;
         if TestCollisionYwithGear(Gear, 1) <> 0  then oy:=  1;
         if Gear^.Health > 0 then
             PlaySound(sndRopeAttach);
-(*
+
         la:= _10000;
         if (ox <> 0) or (oy <> 0) then
             la:= CalcSlopeNearGear(Gear, ox, oy);
--- a/hedgewars/hwengine.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/hwengine.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -293,18 +293,24 @@
             end; //end case event.type_ of
         end; //end while SDL_PollEvent(@event) <> 0 do
 
+        if (CursorMovementX <> 0) or (CursorMovementY <> 0) then
+            handlePositionUpdate(CursorMovementX * cameraKeyboardSpeed, CursorMovementY * cameraKeyboardSpeed);
+
         if (cScreenResizeDelay <> 0) and (cScreenResizeDelay < RealTicks) and
            ((cNewScreenWidth <> cScreenWidth) or (cNewScreenHeight <> cScreenHeight)) then
         begin
             cScreenResizeDelay:= 0;
-            cScreenWidth:= cNewScreenWidth;
-            cScreenHeight:= cNewScreenHeight;
+            cWindowedWidth:= cNewScreenWidth;
+            cWindowedHeight:= cNewScreenHeight;
+            cScreenWidth:= cWindowedWidth;
+            cScreenHeight:= cWindowedHeight;
 
             ParseCommand('fullscr '+intToStr(LongInt(cFullScreen)), true);
             WriteLnToConsole('window resize: ' + IntToStr(cScreenWidth) + ' x ' + IntToStr(cScreenHeight));
             ScriptOnScreenResize();
             InitCameraBorders();
             InitTouchInterface();
+            SendIPC('W' + IntToStr(cScreenWidth) + 'x' + IntToStr(cScreenHeight));
         end;
 
         CurrTime:= SDL_GetTicks();
@@ -365,8 +371,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 procedure Game{$IFDEF HWLIBRARY}(argc: LongInt; argv: PPChar); cdecl; export{$ENDIF};
-var p: TPathType;
-    s: shortstring;
+//var p: TPathType;
+var s: shortstring;
     i: LongInt;
 {$IFDEF WEBGL}
     l:TResourceList;
@@ -490,7 +496,6 @@
 begin
     uUtils.initModule(complete);    // opens the debug file, must be the first
     uVariables.initModule;          // inits all global variables
-    uConsole.initModule;            // opens stdout
     uCommands.initModule;           // helps below
     uCommandHandlers.initModule;    // registers all messages from frontend
 
@@ -561,7 +566,6 @@
 
     uCommandHandlers.freeModule;
     uCommands.freeModule;
-    uConsole.freeModule;            // closes stdout
     uVariables.freeModule;
     uUtils.freeModule;              // closes debug file
 end;
--- a/hedgewars/uAIAmmoTests.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uAIAmmoTests.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -1140,7 +1140,7 @@
 var i: Longword;
     v: LongInt;
 begin
-while (not TestColl(hwRound(Gear^.X), hwRound(Gear^.Y), 6)) and (Gear^.Y.Round < LAND_HEIGHT) do
+while (not TestColl(hwRound(Gear^.X), hwRound(Gear^.Y), 6)) and (Gear^.Y.Round < LongWord(LAND_HEIGHT)) do
     Gear^.Y:= Gear^.Y + _1;
 
 for i:= 0 to 2040 do
--- a/hedgewars/uCommandHandlers.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uCommandHandlers.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -89,11 +89,11 @@
 end;
 
 procedure chCheckProto(var s: shortstring);
-var i, c: LongInt;
+var i: LongInt;
 begin
     if isDeveloperMode then
         begin
-        val(s, i, c);
+        i:= StrToInt(s);
         TryDo(i <= cNetProtoVersion, 'Protocol version mismatch: engine is too old (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true);
         TryDo(i >= cNetProtoVersion, 'Protocol version mismatch: engine is too new (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true);
         end
--- a/hedgewars/uConsole.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uConsole.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -21,61 +21,26 @@
 unit uConsole;
 interface
 
-procedure initModule;
-procedure freeModule;
-procedure WriteToConsole(s: shortstring);
-procedure WriteLnToConsole(s: shortstring);
-function  GetLastConsoleLine: shortstring;
-function  ShortStringAsPChar(s: shortstring): PChar;
-
-implementation
-uses Types, uVariables, uUtils {$IFDEF ANDROID}, log in 'log.pas'{$ENDIF};
-
-const cLinesCount = 8;
-var   cLineWidth: LongInt;
-
-type
-    TTextLine = record
-        s: shortstring
-        end;
-
-var   ConsoleLines: array[byte] of TTextLine;
-      CurrLine: LongInt;
-
-procedure SetLine(var tl: TTextLine; str: shortstring);
-begin
-with tl do
-    s:= str;
-end;
 
 procedure WriteToConsole(s: shortstring);
-{$IFNDEF NOCONSOLE}
-var Len: LongInt;
-    done: boolean;
-{$ENDIF}
+procedure WriteLnToConsole(s: shortstring);
+function  ShortStringAsPChar(s: shortstring): PChar;
+
+var lastConsoleline : shortstring;
+
+implementation
+uses Types, uUtils {$IFDEF ANDROID}, log in 'log.pas'{$ENDIF};
+
+
+procedure WriteToConsole(s: shortstring);
 begin
 {$IFNDEF NOCONSOLE}
-AddFileLog('[Con] ' + s);
+    AddFileLog('[Con] ' + s);
 {$IFDEF ANDROID}
+    //TODO integrate this function in the uMobile record
     Log.__android_log_write(Log.Android_LOG_DEBUG, 'HW_Engine', ShortStringAsPChar('[Con]' + s));
 {$ELSE}
-Write(stderr, s);
-done:= false;
-
-while not done do
-    begin
-    Len:= cLineWidth - Length(ConsoleLines[CurrLine].s);
-    SetLine(ConsoleLines[CurrLine], ConsoleLines[CurrLine].s + copy(s, 1, Len));
-    Delete(s, 1, Len);
-    if byte(ConsoleLines[CurrLine].s[0]) = cLineWidth then
-        begin
-        inc(CurrLine);
-        if CurrLine = cLinesCount then
-            CurrLine:= 0;
-        PByte(@ConsoleLines[CurrLine].s)^:= 0
-        end;
-    done:= (Length(s) = 0);
-    end;
+    Write(stderr, s);
 {$ENDIF}
 {$ENDIF}
 end;
@@ -83,13 +48,10 @@
 procedure WriteLnToConsole(s: shortstring);
 begin
 {$IFNDEF NOCONSOLE}
-WriteToConsole(s);
+    WriteToConsole(s);
+    lastConsoleline:= s;
 {$IFNDEF ANDROID}
-WriteLn(stderr, '');
-inc(CurrLine);
-if CurrLine = cLinesCount then
-    CurrLine:= 0;
-PByte(@ConsoleLines[CurrLine].s)^:= 0
+    WriteLn(stderr, '');
 {$ENDIF}
 {$ENDIF}
 end;
@@ -102,37 +64,5 @@
     ShortStringAsPChar:= @s[1];
 end;
 
-function GetLastConsoleLine: shortstring;
-var valueStr: shortstring;
-    i: LongWord;
-begin
-i:= (CurrLine + cLinesCount - 2) mod cLinesCount;
-valueStr:= ConsoleLines[i].s;
-
-valueStr:= valueStr + #10;
-
-i:= (CurrLine + cLinesCount - 1) mod cLinesCount;
-valueStr:= valueStr + ConsoleLines[i].s;
-
-GetLastConsoleLine:= valueStr;
-end;
-
-procedure initModule;
-var i: LongInt;
-begin
-    CurrLine:= 0;
-
-    // initConsole
-    cLineWidth:= cScreenWidth div 10;
-    if cLineWidth > 255 then
-        cLineWidth:= 255;
-    for i:= 0 to Pred(cLinesCount) do
-        PByte(@ConsoleLines[i])^:= 0;
-end;
-
-procedure freeModule;
-begin
-
-end;
 
 end.
--- a/hedgewars/uConsts.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uConsts.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -43,6 +43,9 @@
     msgFailedSize        = 'failed due to size';
     msgGettingConfig     = 'Getting game config...';
 
+    // camera movement multipliers
+    cameraKeyboardSpeed : ShortInt = 10;
+
     // color constants
     cWhiteColorChannels : TSDL_Color = (r:$FF; g:$FF; b:$FF; unused:$FF);
     cNearBlackColorChannels : TSDL_Color = (r:$00; g:$00; b:$10; unused:$FF);
--- a/hedgewars/uCursor.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uCursor.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -5,6 +5,7 @@
 procedure init;
 procedure resetPosition;
 procedure updatePosition;
+procedure handlePositionUpdate(x, y: LongInt);
 
 implementation
 
@@ -40,9 +41,8 @@
 {$ENDIF}
 
     if(x <> cScreenWidth div 2) or (y <> cScreenHeight div 2) then
-        begin
-        CursorPoint.X:= CursorPoint.X + x - cScreenWidth div 2;
-        CursorPoint.Y:= CursorPoint.Y - y + cScreenHeight div 2;
+    begin
+        handlePositionUpdate(x - cScreenWidth div 2, y - cScreenHeight div 2);
 
         if cHasFocus then
             begin
@@ -56,4 +56,10 @@
         end
 end;
 
+procedure handlePositionUpdate(x, y: LongInt);
+begin
+    CursorPoint.X:= CursorPoint.X + x;
+    CursorPoint.Y:= CursorPoint.Y - y;
+end;
+
 end.
--- a/hedgewars/uDebug.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uDebug.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -34,7 +34,7 @@
 WriteLnToConsole(Msg);
 if isFatalError then
     begin
-    ParseCommand('fatal ' + GetLastConsoleLine, true);
+    ParseCommand('fatal ' + lastConsoleline, true);
     SDL_Quit;
     halt(1)
     end
--- a/hedgewars/uGears.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uGears.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -55,7 +55,7 @@
 procedure doStepDrowningGear(Gear: PGear);
 
 implementation
-uses uStore, uSound, uTeams, uRandom, uCollisions, uIO, uLandGraphics,
+uses uStore, uSound, uTeams, uRandom, uCollisions, uIO, uLandGraphics, {$IFDEF SDL13}uTouch,{$ENDIF}
     uLocale, uAI, uAmmos, uStats, uVisualGears, uScript, GLunit, uVariables,
     uCommands, uUtils, uTextures, uRenderUtils, uGearsRender, uCaptions, uDebug, uLandTexture,
     uGearsHedgehog, uGearsUtils, uGearsList, uGearsHandlers, uGearsHandlersRope;
@@ -77,6 +77,7 @@
     stSpawn, stNTurn);
     upd: Longword;
     snowLeft,snowRight: LongInt;
+    NewTurnTick: LongWord;
     //SDMusic: shortstring;
 
 // For better maintainability the step handlers of gears are stored in
@@ -188,6 +189,16 @@
     i, AliveCount: LongInt;
     s: shortstring;
 begin
+ScriptCall('onGameTick');
+if GameTicks mod 20 = 0 then ScriptCall('onGameTick20');
+if GameTicks = NewTurnTick then
+    begin
+    ScriptCall('onNewTurn');
+{$IFDEF SDL13}
+    uTouch.NewTurnBeginning();
+{$ENDIF}
+    end;
+
 PrvInactive:= AllInactive;
 AllInactive:= true;
 
@@ -382,7 +393,8 @@
                 SwitchHedgehog;
 
                 AfterSwitchHedgehog;
-                bBetweenTurns:= false
+                bBetweenTurns:= false;
+                NewTurnTick:= GameTicks + 1
                 end;
             step:= Low(step)
             end;
@@ -469,8 +481,6 @@
         inc(hiTicks) // we do not recieve a message for this
     end;
 AddRandomness(CheckSum);
-ScriptCall('onGameTick');
-if GameTicks mod 20 = 0 then ScriptCall('onGameTick20');
 
 inc(GameTicks)
 end;
@@ -1396,6 +1406,7 @@
     upd:= 0;
 
     //SDMusic:= 'hell.ogg';
+    NewTurnTick:= $FFFFFFFF;
 end;
 
 procedure freeModule;
--- a/hedgewars/uGearsHandlersRope.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uGearsHandlersRope.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -196,10 +196,10 @@
         ly := hwRound(ny);
         if ((ly and LAND_HEIGHT_MASK) = 0) and ((lx and LAND_WIDTH_MASK) = 0) and ((Land[ly, lx] and $FF00) <> 0) then
             begin
-            ny := _1 / Distance(ropeDx, ropeDy);
+            tx := _1 / Distance(ropeDx, ropeDy);
             // old rope pos
-            nx := ropeDx * ny;
-            ny := ropeDy * ny;
+            nx := ropeDx * tx;
+            ny := ropeDy * tx;
 
             with RopePoints.ar[RopePoints.Count] do
                 begin
@@ -210,7 +210,7 @@
                 b := (nx * HHGear^.dY) > (ny * HHGear^.dX);
                 dLen := len
                 end;
-                
+
             with RopePoints.rounded[RopePoints.Count] do
                 begin
                 X := hwRound(Gear^.X);
--- a/hedgewars/uGearsHedgehog.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uGearsHedgehog.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -365,7 +365,7 @@
                                  Unplaced:= true;
                                  X:= _0;
                                  Y:= _0;
-                                 newGear:= AddGear(TargetPoint.X, 0, gtPiano, 0, _0, _0, 0);
+                                 newGear:= AddGear(TargetPoint.X, -1024, gtPiano, 0, _0, _0, 0);
                                  PauseMusic
                                  end;
                  amFlamethrower: newGear:= AddGear(hwRound(X), hwRound(Y), gtFlamethrower,  0, xx * _0_5, yy * _0_5, 0);
--- a/hedgewars/uGearsRender.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uGearsRender.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -44,7 +44,7 @@
 
 const
     // hog tag mask
-    htNone        = $00;
+    //htNone        = $00;
     htTeamName    = $01;
     htName        = $02;
     htHealth      = $04;
@@ -1110,8 +1110,8 @@
                                 startX:= max(max(LAND_WIDTH,4096) + 1024, endX + 2048)
                             else
                                 startX:= max(-max(LAND_WIDTH,4096) - 1024, endX - 2048);
-                            startY:= endY - 256;
-                            DrawTextureF(SpritesData[sprBirdy].Texture, 1, startX + WorldDx + LongInt(round((endX - startX) * (-power(2, -10 * LongInt(Gear^.Timer)/2000) + 1))), startY + WorldDy + LongInt(round((endY - startY) * sqrt(1 - power((LongInt(Gear^.Timer)/2000)-1, 2)))), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
+                            startY:= endY - 1024;
+                            DrawTextureF(SpritesData[sprBirdy].Texture, min(Gear^.Timer/750,1), startX + WorldDx + LongInt(round((endX - startX) * (-power(2, -10 * LongInt(Gear^.Timer)/2000) + 1))), startY + WorldDy + LongInt(round((endY - startY) * sqrt(1 - power((LongInt(Gear^.Timer)/2000)-1, 2)))), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
                             end
                         else // Disappearing
                             begin
@@ -1121,8 +1121,8 @@
                                 endX:= max(max(LAND_WIDTH,4096) + 1024, startX + 2048)
                             else
                                 endX:= max(-max(LAND_WIDTH,4096) - 1024, startX - 2048);
-                            endY:= startY + 256;
-                            DrawTextureF(SpritesData[sprBirdy].Texture, 1, startX + WorldDx + LongInt(round((endX - startX) * power(2, 10 * (LongInt(Gear^.Timer)/2000 - 1)))) + hwRound(Gear^.dX * Gear^.Timer), startY + WorldDy + LongInt(round((endY - startY) * cos(LongInt(Gear^.Timer)/2000 * (Pi/2)) - (endY - startY))) + hwRound(Gear^.dY * Gear^.Timer), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
+                            endY:= startY + 1024;
+                            DrawTextureF(SpritesData[sprBirdy].Texture, min((2000-Gear^.Timer)/750,1), startX + WorldDx + LongInt(round((endX - startX) * power(2, 10 * (LongInt(Gear^.Timer)/2000 - 1)))) + hwRound(Gear^.dX * Gear^.Timer), startY + WorldDy + LongInt(round((endY - startY) * cos(LongInt(Gear^.Timer)/2000 * (Pi/2)) - (endY - startY))) + hwRound(Gear^.dY * Gear^.Timer), ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
                             end;
                         end
                     else
--- a/hedgewars/uIO.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uIO.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -341,10 +341,12 @@
             // these are equations solved for CursorPoint
             // SDLNet_Read16(@(headcmd^.X)) == CursorPoint.X - WorldDx;
             // SDLNet_Read16(@(headcmd^.Y)) == cScreenHeight - CursorPoint.Y - WorldDy;
-            if not (CurrentTeam^.ExtDriven and bShowAmmoMenu) then
+            if CurrentTeam^.ExtDriven then
                begin
-               CursorPoint.X:= LongInt(SDLNet_Read32(@(headcmd^.X))) + WorldDx;
-               CursorPoint.Y:= cScreenHeight - LongInt(SDLNet_Read32(@(headcmd^.Y))) - WorldDy
+               TargetCursorPoint.X:= LongInt(SDLNet_Read32(@(headcmd^.X))) + WorldDx;
+               TargetCursorPoint.Y:= cScreenHeight - LongInt(SDLNet_Read32(@(headcmd^.Y))) - WorldDy;
+               if not bShowAmmoMenu and autoCameraOn then
+                    CursorPoint:= TargetCursorPoint
                end
              end;
         'w': ParseCommand('setweap ' + headcmd^.str[2], true);
--- a/hedgewars/uInputHandler.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uInputHandler.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -39,6 +39,7 @@
 
 procedure SetBinds(var binds: TBinds);
 procedure SetDefaultBinds;
+procedure chDefaultBind(var id: shortstring);
 
 procedure ControllerInit;
 procedure ControllerAxisEvent(joy, axis: Byte; value: Integer);
@@ -66,10 +67,11 @@
     //ControllerNumBalls: array[0..5] of Integer;
     ControllerNumHats: array[0..5] of Integer;
     ControllerNumButtons: array[0..5] of Integer;
-    ControllerAxes: array[0..5] of array[0..19] of Integer;
+    //ControllerAxes: array[0..5] of array[0..19] of Integer;
     //ControllerBalls: array[0..5] of array[0..19] of array[0..1] of Integer;
-    ControllerHats: array[0..5] of array[0..19] of Byte;
-    ControllerButtons: array[0..5] of array[0..19] of Byte;
+    //ControllerHats: array[0..5] of array[0..19] of Byte;
+    //ControllerButtons: array[0..5] of array[0..19] of Byte;
+    usingDBinds: boolean;
 
 function  KeyNameToCode(name: shortstring): LongInt; inline;
 begin
@@ -329,9 +331,9 @@
     binds:= binds; // avoid hint
     CurrentBinds:= DefaultBinds;
 {$ELSE}
-for t:= 0 to cKbdMaxIndex do
-    if (CurrentBinds[t] <> binds[t]) and tkbd[t] then
-        ProcessKey(t, False);
+    for t:= 0 to cKbdMaxIndex do
+        if (CurrentBinds[t] <> binds[t]) and tkbd[t] then
+            ProcessKey(t, False);
 
     CurrentBinds:= binds;
 {$ENDIF}
@@ -353,7 +355,7 @@
 var Controller: array [0..5] of PSDL_Joystick;
 
 procedure ControllerInit;
-var i, j: Integer;
+var j: Integer;
 begin
 ControllerEnabled:= 0;
 {$IFDEF IPHONE}
@@ -398,18 +400,18 @@
             if ControllerNumButtons[j] > 20 then
                 ControllerNumButtons[j]:= 20;
 
-            // reset all buttons/axes
+            (*// reset all buttons/axes
             for i:= 0 to pred(ControllerNumAxes[j]) do
                 ControllerAxes[j][i]:= 0;
-            (*for i:= 0 to pred(ControllerNumBalls[j]) do
+            for i:= 0 to pred(ControllerNumBalls[j]) do
                 begin
                 ControllerBalls[j][i][0]:= 0;
                 ControllerBalls[j][i][1]:= 0;
-                end;*)
+                end;
             for i:= 0 to pred(ControllerNumHats[j]) do
                 ControllerHats[j][i]:= SDL_HAT_CENTERED;
             for i:= 0 to pred(ControllerNumButtons[j]) do
-                ControllerButtons[j][i]:= 0;
+                ControllerButtons[j][i]:= 0;*)
             end;
         end;
     // enable event generation/controller updating
@@ -450,8 +452,45 @@
     ProcessKey(k +  ControllerNumAxes[joy]*2 + ControllerNumHats[joy]*4 + button, pressed);
 end;
 
+// Bind that isn't a team bind, but overrides defaultbinds.
+// When first called, DefaultBinds is cleared, because we assume we are getting a full list of dbinds.
+procedure chDefaultBind(var id: shortstring);
+var KeyName, Modifier, tmp: shortstring;
+    b: LongInt;
+begin
+KeyName:= '';
+Modifier:= '';
+
+if (not usingDBinds) then
+    begin
+    usingDBinds:= true;
+    FillByte(DefaultBinds, SizeOf(DefaultBinds), 0);
+    end;
+
+if (Pos('mod:', id) <> 0) then
+    begin
+    tmp:= '';
+    SplitBySpace(id, tmp);
+    Modifier:= id;
+    id:= tmp;
+    end;
+
+SplitBySpace(id, KeyName);
+if KeyName[1]='"' then
+    Delete(KeyName, 1, 1);
+if KeyName[byte(KeyName[0])]='"' then
+    Delete(KeyName, byte(KeyName[0]), 1);
+b:= KeyNameToCode(id, Modifier);
+if b = 0 then
+    OutError(errmsgUnknownVariable + ' "' + id + '"', false)
+else
+    DefaultBinds[b]:= KeyName;
+end;
+
 procedure initModule;
 begin
+    usingDBinds:= false;
+    RegisterVariable('dbind', @chDefaultBind, true );
 end;
 
 procedure freeModule;
--- a/hedgewars/uLand.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uLand.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -523,11 +523,8 @@
 end;
 
 procedure LoadMap;
-var tmpsurf : PSDL_Surface;
-    s       : shortstring;
-    f       : textfile;
-    mapName : shortstring = '';
-
+var tmpsurf: PSDL_Surface;
+    mapName: shortstring = '';
 begin
 WriteLnToConsole('Loading land from file...');
 AddProgress;
@@ -635,7 +632,7 @@
             if Land[y, x] <> 0 then
                 begin
                 inc(c);
-                if c > (LAND_WIDTH div 2) then // avoid accidental triggering
+                if c > LongWord((LAND_WIDTH div 2)) then // avoid accidental triggering
                     begin
                     hasBorder:= true;
                     break;
--- a/hedgewars/uLocale.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uLocale.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -40,14 +40,12 @@
     trevt_n: array[TEventId] of integer;
 
 procedure LoadLocale(FileName: shortstring);
-var s: ansistring;
+var s: ansistring = '';
     f: pfsFile;
     a, b, c: LongInt;
     first: array[TEventId] of boolean;
     e: TEventId;
-    loaded: boolean;
 begin
-loaded:= false;
 for e:= Low(TEventId) to High(TEventId) do
     first[e]:= true;
 
--- a/hedgewars/uScript.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uScript.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -37,6 +37,7 @@
 procedure ScriptLoad(name : shortstring);
 procedure ScriptOnGameInit;
 procedure ScriptOnScreenResize;
+procedure ScriptSetInteger(name : shortstring; value : LongInt);
 
 procedure ScriptCall(fname : shortstring);
 function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
@@ -224,6 +225,35 @@
     lc_hidemission:= 0;
 end;
 
+function lc_enablegameflags(L : Plua_State) : LongInt; Cdecl;
+var i : integer;
+begin
+    for i:= 1 to lua_gettop(L) do
+        if (GameFlags and lua_tointeger(L, i)) = 0 then
+            GameFlags := GameFlags + LongWord(lua_tointeger(L, i));
+    ScriptSetInteger('GameFlags', GameFlags);
+    lc_enablegameflags:= 0;
+end;
+
+function lc_disablegameflags(L : Plua_State) : LongInt; Cdecl;
+var i : integer;
+begin
+    for i:= 1 to lua_gettop(L) do
+        if (GameFlags and lua_tointeger(L, i)) <> 0 then
+            GameFlags := GameFlags - LongWord(lua_tointeger(L, i));
+    ScriptSetInteger('GameFlags', GameFlags);
+    lc_disablegameflags:= 0;
+end;
+
+function lc_cleargameflags(L : Plua_State) : LongInt; Cdecl;
+begin
+    // Silence hint
+    L:= L;
+    GameFlags:= 0;
+    ScriptSetInteger('GameFlags', GameFlags);
+    lc_cleargameflags:= 0;
+end;
+
 function lc_addcaption(L : Plua_State) : LongInt; Cdecl;
 begin
     if lua_gettop(L) = 1 then
@@ -1737,8 +1767,7 @@
 end;
 
 function lc_restorehog(L: Plua_State): LongInt; Cdecl;
-var hog: PHedgehog;
-    i, h: LongInt;
+var i, h: LongInt;
     uid: LongWord;
 begin
     if lua_gettop(L) <> 1 then
@@ -2337,6 +2366,9 @@
 lua_register(luaState, _P'GetInputMask', @lc_getinputmask);
 lua_register(luaState, _P'SetInputMask', @lc_setinputmask);
 lua_register(luaState, _P'AddGear', @lc_addgear);
+lua_register(luaState, _P'EnableGameFlags', @lc_enablegameflags);
+lua_register(luaState, _P'DisableGameFlags', @lc_disablegameflags);
+lua_register(luaState, _P'ClearGameFlags', @lc_cleargameflags);
 lua_register(luaState, _P'DeleteGear', @lc_deletegear);
 lua_register(luaState, _P'AddVisualGear', @lc_addvisualgear);
 lua_register(luaState, _P'DeleteVisualGear', @lc_deletevisualgear);
--- a/hedgewars/uSound.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uSound.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -106,7 +106,7 @@
 
 
 implementation
-uses uVariables, uConsole, uUtils, uCommands, uDebug, uPhysFSLayer;
+uses uVariables, uConsole, uCommands, uDebug, uPhysFSLayer;
 
 const chanTPU = 32;
 var Volume: LongInt;
--- a/hedgewars/uStore.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uStore.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -21,10 +21,7 @@
 
 unit uStore;
 interface
-uses SysUtils, uConsts, SDLh, GLunit, uTypes, uLandTexture, uCaptions, uChat
-     {$IFDEF GL2}, uMatrix{$ENDIF}
-     {$IFNDEF PAS2C}, StrUtils{$ENDIF}
-     ;
+uses {$IFNDEF PAS2C} StrUtils, {$ENDIF}SysUtils, uConsts, SDLh, GLunit, uTypes, uLandTexture, uCaptions, uChat;
 
 procedure initModule;
 procedure freeModule;
@@ -574,7 +571,7 @@
         DeleteFramebuffer(defaultFrame, depthv, texv);
 {$ENDIF}
 {$IFDEF USE_S3D_RENDERING}
-    if (cStereoMode = smHorizontal) or (cStereoMode = smVertical) or (cStereoMode = smAFR) then
+    if (cStereoMode = smHorizontal) or (cStereoMode = smVertical) then
         begin
         DeleteFramebuffer(framel, depthl, texl);
         DeleteFramebuffer(framer, depthr, texr);
@@ -632,6 +629,8 @@
 begin
     // check for file in user dir (never critical)
     tmpsurf:= LoadImage(cPathz[path] + '/' + filename, imageFlags);
+    
+    LoadDataImage:= tmpsurf;
 end;
 
 
@@ -1467,6 +1466,17 @@
     if Length(s) = 0 then
          cFullScreen:= (not cFullScreen)
     else cFullScreen:= s = '1';
+    
+    if cFullScreen then
+        begin
+        cScreenWidth:= cFullscreenWidth;
+        cScreenHeight:= cFullscreenHeight;
+        end
+    else
+        begin
+        cScreenWidth:= cWindowedWidth;
+        cScreenHeight:= cWindowedHeight;
+        end;
 
     AddFileLog('Preparing to change video parameters...');
 {$IFDEF SDL13}
@@ -1546,15 +1556,18 @@
 
     if SDLwindow = nil then
         if cFullScreen then
-            SDLwindow:= SDL_CreateWindow('Hedgewars', x, y, cOrigScreenWidth, cOrigScreenHeight, flags or SDL_WINDOW_FULLSCREEN)
+            SDLwindow:= SDL_CreateWindow('Hedgewars', x, y, cScreenWidth, cScreenHeight, flags or SDL_WINDOW_FULLSCREEN)
         else
+            begin
             SDLwindow:= SDL_CreateWindow('Hedgewars', x, y, cScreenWidth, cScreenHeight, flags);
+            end;
     SDLTry(SDLwindow <> nil, true);
 {$ELSE}
     flags:= SDL_OPENGL or SDL_RESIZABLE;
     if cFullScreen then
+        begin
         flags:= flags or SDL_FULLSCREEN;
-
+        end;
     if not cOnlyStats then
         begin
     {$IFDEF WIN32}
--- a/hedgewars/uTeams.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uTeams.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -40,7 +40,7 @@
 procedure SwitchCurrentHedgehog(newHog: PHedgehog);
 
 implementation
-uses uLocale, uAmmos, uChat, uVariables, uUtils, uIO, uCaptions, uCommands, uDebug, uScript,
+uses uLocale, uAmmos, uChat, uVariables, uUtils, uIO, uCaptions, uCommands, uDebug,
     uGearsUtils, uGearsList
     {$IFDEF USE_TOUCH_INTERFACE}, uTouch{$ENDIF};
 
@@ -321,16 +321,11 @@
         end;
     ReadyTimeLeft:= 0
     end;
-
-{$IFDEF SDL13}
-uTouch.NewTurnBeginning();
-{$ENDIF}
-ScriptCall('onNewTurn');
 end;
 
 function AddTeam(TeamColor: Longword): PTeam;
 var team: PTeam;
-    c: LongInt;
+    c, t: LongInt;
 begin
 TryDo(TeamsCount < cMaxTeams, 'Too many teams', true);
 New(team);
@@ -343,6 +338,9 @@
 TeamsArray[TeamsCount]:= team;
 inc(TeamsCount);
 
+for t:= 0 to cKbdMaxIndex do
+    team^.Binds[t]:= '';
+
 c:= Pred(ClansCount);
 while (c >= 0) and (ClansArray[c]^.Color <> TeamColor) do dec(c);
 if c < 0 then
@@ -505,7 +503,6 @@
 procedure chAddHH(var id: shortstring);
 var s: shortstring;
     Gear: PGear;
-    c: LongInt;
 begin
 s:= '';
 if (not isDeveloperMode) or (CurrentTeam = nil) then
@@ -514,10 +511,10 @@
     begin
     SplitBySpace(id, s);
     SwitchCurrentHedgehog(@Hedgehogs[HedgehogsNumber]);
-    val(id, CurrentHedgehog^.BotLevel, c);
+    CurrentHedgehog^.BotLevel:= StrToInt(id);
     Gear:= AddGear(0, 0, gtHedgehog, 0, _0, _0, 0);
     SplitBySpace(s, id);
-    val(s, Gear^.Health, c);
+    Gear^.Health:= StrToInt(s);
     TryDo(Gear^.Health > 0, 'Invalid hedgehog health', true);
     Gear^.Hedgehog^.Team:= CurrentTeam;
     if (GameFlags and gfSharedAmmo) <> 0 then
@@ -538,7 +535,6 @@
 
 procedure chAddTeam(var s: shortstring);
 var Color: Longword;
-    c: LongInt;
     ts, cs: shortstring;
 begin
 cs:= '';
@@ -547,7 +543,7 @@
     begin
     SplitBySpace(s, cs);
     SplitBySpace(cs, ts);
-    val(cs, Color, c);
+    Color:= StrToInt(cs);
     TryDo(Color <> 0, 'Error: black team color', true);
 
     // color is always little endian so the mask must be constant also in big endian archs
@@ -564,16 +560,16 @@
 
 procedure chSetHHCoords(var x: shortstring);
 var y: shortstring;
-    t, c: Longint;
+    t: Longint;
 begin
-y:= '';
-if (not isDeveloperMode) or (CurrentHedgehog = nil) or (CurrentHedgehog^.Gear = nil) then
-    exit;
-SplitBySpace(x, y);
-val(x, t, c);
-CurrentHedgehog^.Gear^.X:= int2hwFloat(t);
-val(y, t, c);
-CurrentHedgehog^.Gear^.Y:= int2hwFloat(t)
+    y:= '';
+    if (not isDeveloperMode) or (CurrentHedgehog = nil) or (CurrentHedgehog^.Gear = nil) then
+        exit;
+    SplitBySpace(x, y);
+    t:= StrToInt(x);
+    CurrentHedgehog^.Gear^.X:= int2hwFloat(t);
+    t:= StrToInt(y);
+    CurrentHedgehog^.Gear^.Y:= int2hwFloat(t)
 end;
 
 procedure chBind(var id: shortstring);
--- a/hedgewars/uTypes.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uTypes.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -170,7 +170,7 @@
     TWave = (waveRollup, waveSad, waveWave, waveHurrah, waveLemonade, waveShrug, waveJuggle);
 
     TRenderMode = (rmDefault, rmLeftEye, rmRightEye);
-    TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed, smHorizontal, smVertical, smAFR);
+    TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed, smHorizontal, smVertical);
 
     THHFont = record
             Handle: PTTF_Font;
--- a/hedgewars/uUtils.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uUtils.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -196,7 +196,11 @@
 function  StrToInt(s: shortstring): LongInt;
 var c: LongInt;
 begin
-val(s, StrToInt, c)
+val(s, StrToInt, c);
+{$IFDEF DEBUGFILE}
+if c <> 0 then
+    writeln(f, 'Error at position ' + IntToStr(c) + ' : ' + s[c])
+{$ENDIF}
 end;
 
 function FloatToStr(n: hwFloat): shortstring;
@@ -474,16 +478,14 @@
     InitCriticalSection(logMutex);
 {$ENDIF}
 {$I-}
-{$IFDEF MOBILE}
-    {$IFDEF IPHONEOS} Assign(f, UserPathPrefix + '/hw-' + logfileBase + '.log'); {$ENDIF}
-    {$IFDEF ANDROID} Assign(f, pathPrefix + '/' + logfileBase + '.log'); {$ENDIF}
-    i:= i; // avoid hint
-{$ELSE}
-    f:= stdout; // if everything fails, write to stderr
+    f:= stderr; // if everything fails, write to stderr
     if (UserPathPrefix <> '') then
         begin
+        // create directory if it doesn't exist
         if not FileExists(UserPathPrefix + '/Logs/') then
             CreateDir(UserPathPrefix + '/Logs/');
+
+        // if log is locked, write to the next one
         i:= 0;
         while(i < 7) do
             begin
@@ -493,7 +495,6 @@
             inc(i)
             end;
         end;
-{$ENDIF}
     Rewrite(f);
 {$I+}
 {$ENDIF}
--- a/hedgewars/uVariables.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uVariables.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -27,10 +27,12 @@
 /////// init flags ///////
     cMinScreenWidth    : LongInt;
     cMinScreenHeight   : LongInt;
+    cFullscreenWidth   : LongInt;
+    cFullscreenHeight  : LongInt;
+    cWindowedWidth     : LongInt;
+    cWindowedHeight    : LongInt;
     cScreenWidth       : LongInt;
     cScreenHeight      : LongInt;
-    cOrigScreenWidth   : LongInt;
-    cOrigScreenHeight  : LongInt;
     cNewScreenWidth    : LongInt;
     cNewScreenHeight   : LongInt;
     cScreenResizeDelay : LongWord;
@@ -175,8 +177,9 @@
     SDWaterColorArray : array[0..3] of HwColor4f;
     SDTint          : LongInt;
 
-    CursorPoint     : TPoint;
-    TargetPoint     : TPoint;
+    TargetCursorPoint     : TPoint;
+    CursorPoint           : TPoint;
+    TargetPoint           : TPoint;
 
     ScreenFade      : TScreenFade;
     ScreenFadeValue : LongInt;
@@ -2344,8 +2347,13 @@
 begin
     // initialisation flags - they are going to be overwritten by program args
 
-    cScreenWidth    := 1024;
-    cScreenHeight   := 768;
+    cFullscreenWidth  := 0;
+    cFullscreenHeight := 0;
+    cWindowedWidth    := 1024;
+    cWindowedHeight   := 768;
+    cScreenWidth      := cWindowedWidth;
+    cScreenHeight     := cWindowedHeight;
+
     cShowFPS        := false;
     cAltDamage      := true;
     cTimerInterval  := 8;
@@ -2526,15 +2534,20 @@
     vobSDVelocity:= 15;
     vobSDFallSpeed:= 250;
 
-    cMinScreenWidth:= min(cScreenWidth, 640);
-    cMinScreenHeight:= min(cScreenHeight, 480);
-    cOrigScreenWidth:= cScreenWidth;
-    cOrigScreenHeight:= cScreenHeight;
+    cMinScreenWidth  := min(cScreenWidth, 640);
+    cMinScreenHeight := min(cScreenHeight, 480);
 
     cNewScreenWidth    := cScreenWidth;
     cNewScreenHeight   := cScreenHeight;
     cScreenResizeDelay := 0;
 
+    // make sure fullscreen resolution is always initialised somehow
+    if cFullscreenWidth = 0 then
+        cFullscreenWidth:= min(cWindowedWidth, 640);
+    if cFullscreenHeight = 0 then
+        cFullscreenHeight:= min(cWindowedHeight, 480);
+
+
     LuaGoals:= '';
     cMapName:= '';
 
--- a/hedgewars/uVideoRec.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uVideoRec.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -196,7 +196,7 @@
 end;
 
 function LoadNextCameraPosition(out newRealTicks, newGameTicks: LongInt): Boolean;
-var frame: TFrame;
+var frame: TFrame = (realTicks: 0; gameTicks: 0; CamX: 0; CamY: 0; zoom: 0);
 begin
     // we need to skip or duplicate frames to match target framerate
     while Int64(curTime)*cVideoFramerateNum <= Int64(numFrames)*cVideoFramerateDen*1000 do
@@ -244,9 +244,12 @@
 var inF, outF: file;
     buffer: array[0..1023] of byte;
     result: LongInt;
+    i: integer;
 begin
 {$IOCHECKS OFF}
-    result:= 0; // avoid compiler hint
+    result:= 0; // avoid compiler hint and warning
+    for i:= 0 to 1023 do
+        buffer[i]:= 0;
 
     Assign(inF, src);
     Reset(inF, 1);
--- a/hedgewars/uVisualGears.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uVisualGears.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -57,7 +57,7 @@
 
 const
     cExplFrameTicks = 110;
-    cSmokeZ = 499;
+    //cSmokeZ = 499;
 var VGCounter: LongWord;
     VisualGearLayers: array[0..6] of PVisualGear;
 
--- a/hedgewars/uWorld.pas	Wed Jan 02 11:11:49 2013 +0100
+++ b/hedgewars/uWorld.pas	Sun Jan 27 00:28:57 2013 +0100
@@ -78,7 +78,7 @@
     FPS: Longword;
     CountTicks: Longword;
     SoundTimerTicks: Longword;
-    prevPoint: TPoint;
+    prevPoint, prevTargetPoint: TPoint;
     amSel: TAmmoType = amNothing;
     missionTex: PTexture;
     missionTimer: LongInt;
@@ -89,7 +89,6 @@
     AmmoMenuTex     : PTexture;
     HorizontOffset: LongInt;
     cOffsetY: LongInt;
-    AFRToggle: Boolean;
 
 const cStereo_Sky           = 0.0500;
       cStereo_Horizon       = 0.0250;
@@ -108,11 +107,10 @@
       AMTypeMaskX     = $00000001;
       AMTypeMaskY     = $00000002;
       AMTypeMaskAlpha = $00000004;
-      AMTypeMaskSlide = $00000008;
+      //AMTypeMaskSlide = $00000008;
 
 {$IFDEF MOBILE}
       AMSlotSize = 48;
-      AMTITLE    = 30;
 {$ELSE}
       AMSlotSize = 32;
 {$ENDIF}
@@ -227,6 +225,8 @@
 uCursor.init();
 prevPoint.X:= 0;
 prevPoint.Y:= cScreenHeight div 2;
+prevTargetPoint.X:= 0;
+prevTargetPoint.Y:= 0;
 WorldDx:=  -(LAND_WIDTH div 2) + cScreenWidth div 2;
 WorldDy:=  -(LAND_HEIGHT - (playHeight div 2)) + (cScreenHeight div 2);
 
@@ -646,6 +646,7 @@
             AMShiftX:= AMShiftTargetX;
             AMShiftY:= AMShiftTargetY;
             prevPoint:= CursorPoint;
+            prevTargetPoint:= TargetCursorPoint;
             AMState:= AMHidden;
             end;
     end;
@@ -1017,15 +1018,6 @@
         DrawWorldStereo(Lag, rmDefault)
         end
 {$IFDEF USE_S3D_RENDERING}
-    else if (cStereoMode = smAFR) then
-        begin
-        AFRToggle:= (not AFRToggle);
-        glClear(GL_COLOR_BUFFER_BIT);
-        if AFRToggle then
-            DrawWorldStereo(Lag, rmLeftEye)
-        else
-            DrawWorldStereo(Lag, rmRightEye)
-        end
     else if (cStereoMode = smHorizontal) or (cStereoMode = smVertical) then
         begin
         // create left fb
@@ -1708,6 +1700,7 @@
     begin
     if (not bShowAmmoMenu) then
         begin
+        if not CurrentTeam^.ExtDriven then TargetCursorPoint:= CursorPoint;
         with CurrentHedgehog^ do
             if (Gear <> nil) and ((Gear^.State and gstHHChooseTarget) <> 0) then
                 begin
@@ -1716,9 +1709,9 @@
             i:= GetCurAmmoEntry(CurrentHedgehog^)^.Pos;
             with Ammoz[CurAmmoType] do
                 if PosCount > 1 then
-                    DrawSprite(PosSprite, CursorPoint.X - (SpritesData[PosSprite].Width shr 1), cScreenHeight - CursorPoint.Y - (SpritesData[PosSprite].Height shr 1),i);
+                    DrawSprite(PosSprite, TargetCursorPoint.X - (SpritesData[PosSprite].Width shr 1), cScreenHeight - TargetCursorPoint.Y - (SpritesData[PosSprite].Height shr 1),i);
                 end;
-        DrawSprite(sprArrow, CursorPoint.X, cScreenHeight - CursorPoint.Y, (RealTicks shr 6) mod 8)
+        DrawSprite(sprArrow, TargetCursorPoint.X, cScreenHeight - TargetCursorPoint.Y, (RealTicks shr 6) mod 8)
         end
     end;
 
@@ -1731,7 +1724,7 @@
 var EdgesDist, wdy, shs,z, amNumOffsetX, amNumOffsetY: LongInt;
 begin
 {$IFNDEF MOBILE}
-if (not (CurrentTeam^.ExtDriven and isCursorVisible and (not bShowAmmoMenu))) and cHasFocus and (GameState <> gsConfirm) then
+if (not (CurrentTeam^.ExtDriven and isCursorVisible and (not bShowAmmoMenu) and autoCameraOn)) and cHasFocus and (GameState <> gsConfirm) then
     uCursor.updatePosition();
 {$ENDIF}
 z:= round(200/zoom);
@@ -1802,7 +1795,8 @@
     EdgesDist:= cGearScrEdgesDist;
 
 // this generates the border around the screen that moves the camera when cursor is near it
-if isCursorVisible or ((FollowGear <> nil) and autoCameraOn) then
+if (CurrentTeam^.ExtDriven and isCursorVisible and autoCameraOn) or
+   (not CurrentTeam^.ExtDriven and isCursorVisible) or ((FollowGear <> nil) and autoCameraOn) then
     begin
     if CursorPoint.X < - cScreenWidth div 2 + EdgesDist then
         begin
--- a/misc/physfs/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/misc/physfs/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -3,64 +3,65 @@
 #
 # Please see the file LICENSE.txt in the source's root directory.
 
-#lines overridden by Hedgewars configuration
-#CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
-#PROJECT(PhysicsFS)
-SET(PHYSFS_VERSION 2.1.0)
+## lines starting with '##' are lines overridden/modified/added by Hedgewars configuration
+##CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
+##PROJECT(PhysicsFS)
+set(PHYSFS_VERSION 2.1.0)
 
 # Increment this if/when we break backwards compatibility.
-SET(PHYSFS_SOVERSION 1)
+set(PHYSFS_SOVERSION 1)
 
 # I hate that they define "WIN32" ... we're about to move to Win64...I hope!
-IF(WIN32 AND NOT WINDOWS)
-    SET(WINDOWS TRUE)
-ENDIF(WIN32 AND NOT WINDOWS)
-
+if(WIN32 AND NOT WINDOWS)
+    set(WINDOWS TRUE)
+endif(WIN32 AND NOT WINDOWS)
 
 # Bleh, let's do it for "APPLE" too.
-IF(APPLE AND NOT MACOSX)
-    SET(MACOSX TRUE)
-ENDIF(APPLE AND NOT MACOSX)
+if(APPLE AND NOT MACOSX)
+    set(MACOSX TRUE)
+endif(APPLE AND NOT MACOSX)
 
 # For now, Haiku and BeOS are the same, as far as the build system cares.
-IF(HAIKU AND NOT BEOS)
-    SET(BEOS TRUE)
-ENDIF(HAIKU AND NOT BEOS)
+if(HAIKU AND NOT BEOS)
+    set(BEOS TRUE)
+endif(HAIKU AND NOT BEOS)
 
-IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
-    SET(SOLARIS TRUE)
-ENDIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+    set(SOLARIS TRUE)
+endif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
 
-INCLUDE(CheckIncludeFile)
-INCLUDE(CheckLibraryExists)
-INCLUDE(CheckCSourceCompiles)
+include(CheckIncludeFile)
+include(CheckLibraryExists)
+include(CheckCSourceCompiles)
 
+## SDL is needed by extra
 find_package(SDL REQUIRED)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
-include_directories(${SDL_INCLUDE_DIR}) #hw
-include_directories(${LUA_INCLUDE_DIR}) #hw
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) ##
+include_directories(${SDL_INCLUDE_DIR}) ##
+include_directories(${LUA_INCLUDE_DIR}) ##
 
-IF(MACOSX)
+if(MACOSX)
     # Fallback to older OS X on PowerPC to support wider range of systems...
-    IF(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
-        ADD_DEFINITIONS(-DMAC_OS_X_VERSION_MIN_REQUIRED=1020)
-        SET(OTHER_LDFLAGS ${OTHER_LDFLAGS} " -mmacosx-version-min=10.2")
-    ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
+    if(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
+        add_definitions(-DMAC_OS_X_VERSION_MIN_REQUIRED=1020)
+        set(OTHER_LDFLAGS ${OTHER_LDFLAGS} " -mmacosx-version-min=10.2")
+    endif(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
 
     # Need these everywhere...
-    ADD_DEFINITIONS(-fno-common)
-    SET(OTHER_LDFLAGS ${OTHER_LDFLAGS} "-framework IOKit")
-ENDIF(MACOSX)
+    add_definitions(-fno-common)
+    find_library(iokit_framework NAMES IOKit)
+    list(APPEND OTHER_LDFLAGS ${iokit_framework})
+endif(MACOSX)
 
 # Add some gcc-specific command lines.
-IF(CMAKE_COMPILER_IS_GNUCC)
+if(CMAKE_COMPILER_IS_GNUCC)
     # Always build with debug symbols...you can strip it later.
-    ADD_DEFINITIONS(-g -pipe -Werror -fsigned-char)
+    add_definitions(-g -pipe -Werror -fsigned-char)
 
     # Stupid BeOS generates warnings in the system headers.
-    IF(NOT BEOS)
-        ADD_DEFINITIONS(-Wall)
-    ENDIF(NOT BEOS)
+    if(NOT BEOS)
+        add_definitions(-Wall)
+    endif(NOT BEOS)
 
     CHECK_C_SOURCE_COMPILES("
         #if ((defined(__GNUC__)) && (__GNUC__ >= 4))
@@ -70,31 +71,31 @@
         #endif
     " PHYSFS_IS_GCC4)
 
-    IF(PHYSFS_IS_GCC4)
+    if(PHYSFS_IS_GCC4)
         # Not supported on several operating systems at this time.
-        IF(NOT SOLARIS AND NOT WINDOWS)
-            ADD_DEFINITIONS(-fvisibility=hidden)
-        ENDIF(NOT SOLARIS AND NOT WINDOWS)
-    ENDIF(PHYSFS_IS_GCC4)
+        if(NOT SOLARIS AND NOT WINDOWS)
+            add_definitions(-fvisibility=hidden)
+        endif(NOT SOLARIS AND NOT WINDOWS)
+    endif(PHYSFS_IS_GCC4)
 
     # Don't use -rpath.
-    SET(CMAKE_SKIP_RPATH ON CACHE BOOL "Skip RPATH" FORCE)
-ENDIF(CMAKE_COMPILER_IS_GNUCC)
+    set(CMAKE_SKIP_RPATH ON CACHE BOOL "Skip RPATH" FORCE)
+endif(CMAKE_COMPILER_IS_GNUCC)
 
-IF(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
-    ADD_DEFINITIONS(-erroff=E_EMPTY_TRANSLATION_UNIT)
-    ADD_DEFINITIONS(-xldscope=hidden)
-ENDIF(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
+if(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
+    add_definitions(-erroff=E_EMPTY_TRANSLATION_UNIT)
+    add_definitions(-xldscope=hidden)
+endif(CMAKE_C_COMPILER_ID STREQUAL "SunPro")
 
-IF(MSVC)
+if(MSVC)
     # VS.NET 8.0 got really really anal about strcpy, etc, which even if we
     #  cleaned up our code, zlib, etc still use...so disable the warning.
-    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS=1)
-ENDIF(MSVC)
+    add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)
+endif(MSVC)
+
 
 # Basic chunks of source code ...
-
-SET(LZMA_SRCS
+set(LZMA_SRCS
     src/lzma/C/7zCrc.c
     src/lzma/C/Archive/7z/7zBuffer.c
     src/lzma/C/Archive/7z/7zDecode.c
@@ -108,20 +109,28 @@
     src/lzma/C/Compress/Lzma/LzmaDecode.c
 )
 
-IF(BEOS)
+if(BEOS)
     # We add this explicitly, since we don't want CMake to think this
     #  is a C++ project unless we're on BeOS.
-    SET(PHYSFS_BEOS_SRCS src/platform_beos.cpp)
-    FIND_LIBRARY(BE_LIBRARY be)
-    FIND_LIBRARY(ROOT_LIBRARY root)
-    SET(OPTIONAL_LIBRARY_LIBS ${OPTIONAL_LIBRARY_LIBS} ${BE_LIBRARY} ${ROOT_LIBRARY})
-ENDIF(BEOS)
+    set(PHYSFS_BEOS_SRCS src/platform_beos.cpp)
+    find_library(BE_LIBRARY be)
+    find_library(ROOT_LIBRARY root)
+    set(optionAL_LIBRARY_LIBS ${optionAL_LIBRARY_LIBS} ${BE_LIBRARY} ${ROOT_LIBRARY})
+endif(BEOS)
+
+## extra functions needed by Hedgewars
+## TODO: maybe it's better to have them in a separate library?
+set(PHYSFS_HEDGE_SRCS
+    extras/physfsrwops.c
+    extras/physfslualoader.c
+    extras/hwpacksmounter.c
+)
 
 # Almost everything is "compiled" here, but things that don't apply to the
 #  build are #ifdef'd out. This is to make it easy to embed PhysicsFS into
 #  another project or bring up a new build system: just compile all the source
 #  code and #define the things you want.
-SET(PHYSFS_SRCS
+set(PHYSFS_SRCS
     src/physfs.c
     src/physfs_byteorder.c
     src/physfs_unicode.c
@@ -139,33 +148,30 @@
     src/archiver_wad.c
     src/archiver_zip.c
     src/archiver_iso9660.c
-    #custom files from Hedgewars
-    extras/physfsrwops.c
-    extras/physfslualoader.c
-    extras/hwpacksmounter.c
     ${PHYSFS_BEOS_SRCS}
+    ${PHYSFS_HEDGE_SRCS} ##
 )
 
 
 # platform layers ...
 
-IF(UNIX)
-    IF(BEOS)
-        SET(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
-        SET(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
-        SET(HAVE_PTHREAD_H TRUE)
-    ELSE(BEOS)
+if(UNIX)
+    if(BEOS)
+        set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
+        set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
+        set(HAVE_PTHREAD_H TRUE)
+    else(BEOS)
         CHECK_INCLUDE_FILE(sys/ucred.h HAVE_UCRED_H)
-        IF(HAVE_UCRED_H)
-            ADD_DEFINITIONS(-DPHYSFS_HAVE_SYS_UCRED_H=1)
-            SET(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
-        ENDIF(HAVE_UCRED_H)
+        if(HAVE_UCRED_H)
+            add_definitions(-DPHYSFS_HAVE_SYS_UCRED_H=1)
+            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
+        endif(HAVE_UCRED_H)
 
         CHECK_INCLUDE_FILE(mntent.h HAVE_MNTENT_H)
-        IF(HAVE_MNTENT_H)
-            ADD_DEFINITIONS(-DPHYSFS_HAVE_MNTENT_H=1)
-            SET(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
-        ENDIF(HAVE_MNTENT_H)
+        if(HAVE_MNTENT_H)
+            add_definitions(-DPHYSFS_HAVE_MNTENT_H=1)
+            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
+        endif(HAVE_MNTENT_H)
 
         # !!! FIXME: Solaris fails this, because mnttab.h implicitly
         # !!! FIXME:  depends on other system headers.  :(
@@ -176,387 +182,134 @@
             int main(int argc, char **argv) { return 0; }
         " HAVE_SYS_MNTTAB_H)
 
-        IF(HAVE_SYS_MNTTAB_H)
-            ADD_DEFINITIONS(-DPHYSFS_HAVE_SYS_MNTTAB_H=1)
-            SET(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
-        ENDIF(HAVE_SYS_MNTTAB_H)
+        if(HAVE_SYS_MNTTAB_H)
+            add_definitions(-DPHYSFS_HAVE_SYS_MNTTAB_H=1)
+            set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
+        endif(HAVE_SYS_MNTTAB_H)
 
         CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
-        IF(HAVE_PTHREAD_H)
-            SET(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
-        ENDIF(HAVE_PTHREAD_H)
-    ENDIF(BEOS)
-ENDIF(UNIX)
+        if(HAVE_PTHREAD_H)
+            set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
+        endif(HAVE_PTHREAD_H)
+    endif(BEOS)
+endif(UNIX)
 
-IF(WINDOWS)
-    SET(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
-    SET(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
-ENDIF(WINDOWS)
+if(WINDOWS)
+    set(PHYSFS_HAVE_CDROM_SUPPORT TRUE)
+    set(PHYSFS_HAVE_THREAD_SUPPORT TRUE)
+endif(WINDOWS)
 
-IF(NOT PHYSFS_HAVE_CDROM_SUPPORT)
-    ADD_DEFINITIONS(-DPHYSFS_NO_CDROM_SUPPORT=1)
-    MESSAGE(WARNING " ***")
-    MESSAGE(WARNING " *** There is no CD-ROM support in this build!")
-    MESSAGE(WARNING " *** PhysicsFS will just pretend there are no discs.")
-    MESSAGE(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
-    MESSAGE(WARNING " ***   but is this what you REALLY wanted?")
-    MESSAGE(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
-    MESSAGE(WARNING " ***")
-ENDIF(NOT PHYSFS_HAVE_CDROM_SUPPORT)
+if(NOT PHYSFS_HAVE_CDROM_SUPPORT)
+    add_definitions(-DPHYSFS_NO_CDROM_SUPPORT=1)
+    message(WARNING " ***")
+    message(WARNING " *** There is no CD-ROM support in this build!")
+    message(WARNING " *** PhysicsFS will just pretend there are no discs.")
+    message(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
+    message(WARNING " ***   but is this what you REALLY wanted?")
+    message(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
+    message(WARNING " ***")
+endif(NOT PHYSFS_HAVE_CDROM_SUPPORT)
 
-IF(PHYSFS_HAVE_THREAD_SUPPORT)
-    ADD_DEFINITIONS(-D_REENTRANT -D_THREAD_SAFE)
-ELSE(PHYSFS_HAVE_THREAD_SUPPORT)
-    ADD_DEFINITIONS(-DPHYSFS_NO_THREAD_SUPPORT=1)
-    MESSAGE(WARNING " ***")
-    MESSAGE(WARNING " *** There is no thread support in this build!")
-    MESSAGE(WARNING " *** PhysicsFS will NOT be reentrant!")
-    MESSAGE(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
-    MESSAGE(WARNING " ***   but is this what you REALLY wanted?")
-    MESSAGE(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
-    MESSAGE(WARNING " ***")
-ENDIF(PHYSFS_HAVE_THREAD_SUPPORT)
+if(PHYSFS_HAVE_THREAD_SUPPORT)
+    add_definitions(-D_REENTRANT -D_THREAD_SAFE)
+else(PHYSFS_HAVE_THREAD_SUPPORT)
+    add_definitions(-DPHYSFS_NO_THREAD_SUPPORT=1)
+    message(WARNING " ***")
+    message(WARNING " *** There is no thread support in this build!")
+    message(WARNING " *** PhysicsFS will NOT be reentrant!")
+    message(WARNING " *** This may be fine, depending on how PhysicsFS is used,")
+    message(WARNING " ***   but is this what you REALLY wanted?")
+    message(WARNING " *** (Maybe fix CMakeLists.txt, or write a platform driver?)")
+    message(WARNING " ***")
+endif(PHYSFS_HAVE_THREAD_SUPPORT)
 
 
 # Archivers ...
 
-OPTION(PHYSFS_ARCHIVE_ZIP "Enable ZIP support" TRUE)
-IF(PHYSFS_ARCHIVE_ZIP)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_ZIP=1)
-ENDIF(PHYSFS_ARCHIVE_ZIP)
+option(PHYSFS_ARCHIVE_ZIP "Enable ZIP support" TRUE)
+if(PHYSFS_ARCHIVE_ZIP)
+    add_definitions(-DPHYSFS_SUPPORTS_ZIP=1)
+    set(PHYSFS_FEATURES "ZIP")
+endif(PHYSFS_ARCHIVE_ZIP)
 
-OPTION(PHYSFS_ARCHIVE_7Z "Enable 7zip support" FALSE)
-IF(PHYSFS_ARCHIVE_7Z)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_7Z=1)
-    # !!! FIXME: rename to 7z.c?
-    SET(PHYSFS_SRCS ${PHYSFS_SRCS} ${LZMA_SRCS})
-ENDIF(PHYSFS_ARCHIVE_7Z)
-
-OPTION(PHYSFS_ARCHIVE_GRP "Enable Build Engine GRP support" TRUE)
-IF(PHYSFS_ARCHIVE_GRP)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_GRP=1)
-ENDIF(PHYSFS_ARCHIVE_GRP)
+option(PHYSFS_ARCHIVE_7Z "Enable 7zip support" FALSE)
+if(PHYSFS_ARCHIVE_7Z)
+    add_definitions(-DPHYSFS_SUPPORTS_7Z=1)
+    list(APPEND PHYSFS_SRCS ${LZMA_SRCS})
+    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} 7zip")
+endif(PHYSFS_ARCHIVE_7Z)
 
-OPTION(PHYSFS_ARCHIVE_WAD "Enable Doom WAD support" TRUE)
-IF(PHYSFS_ARCHIVE_WAD)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_WAD=1)
-ENDIF(PHYSFS_ARCHIVE_WAD)
+option(PHYSFS_ARCHIVE_GRP "Enable Build Engine GRP support" TRUE)
+if(PHYSFS_ARCHIVE_GRP)
+    add_definitions(-DPHYSFS_SUPPORTS_GRP=1)
+    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} GRP")
+endif(PHYSFS_ARCHIVE_GRP)
 
-OPTION(PHYSFS_ARCHIVE_HOG "Enable Descent I/II HOG support" TRUE)
-IF(PHYSFS_ARCHIVE_HOG)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_HOG=1)
-ENDIF(PHYSFS_ARCHIVE_HOG)
+option(PHYSFS_ARCHIVE_WAD "Enable Doom WAD support" TRUE)
+if(PHYSFS_ARCHIVE_WAD)
+    add_definitions(-DPHYSFS_SUPPORTS_WAD=1)
+    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} WAD")
+endif(PHYSFS_ARCHIVE_WAD)
 
-OPTION(PHYSFS_ARCHIVE_MVL "Enable Descent I/II MVL support" TRUE)
-IF(PHYSFS_ARCHIVE_MVL)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_MVL=1)
-ENDIF(PHYSFS_ARCHIVE_MVL)
+option(PHYSFS_ARCHIVE_HOG "Enable Descent I/II HOG support" TRUE)
+if(PHYSFS_ARCHIVE_HOG)
+    add_definitions(-DPHYSFS_SUPPORTS_HOG=1)
+    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} HOG")
+endif(PHYSFS_ARCHIVE_HOG)
 
-OPTION(PHYSFS_ARCHIVE_QPAK "Enable Quake I/II QPAK support" TRUE)
-IF(PHYSFS_ARCHIVE_QPAK)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_QPAK=1)
-ENDIF(PHYSFS_ARCHIVE_QPAK)
+option(PHYSFS_ARCHIVE_MVL "Enable Descent I/II MVL support" TRUE)
+if(PHYSFS_ARCHIVE_MVL)
+    add_definitions(-DPHYSFS_SUPPORTS_MVL=1)
+    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} MVL")
+endif(PHYSFS_ARCHIVE_MVL)
 
-OPTION(PHYSFS_ARCHIVE_ISO9660 "Enable ISO9660 support" TRUE)
-IF(PHYSFS_ARCHIVE_ISO9660)
-    ADD_DEFINITIONS(-DPHYSFS_SUPPORTS_ISO9660=1)
-ENDIF(PHYSFS_ARCHIVE_ISO9660)
+option(PHYSFS_ARCHIVE_QPAK "Enable Quake I/II QPAK support" TRUE)
+if(PHYSFS_ARCHIVE_QPAK)
+    add_definitions(-DPHYSFS_SUPPORTS_QPAK=1)
+    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} QPAK")
+endif(PHYSFS_ARCHIVE_QPAK)
 
-#as needed by Hedgewars configuration
-IF(WINDOWS)
-    OPTION(PHYSFS_BUILD_STATIC "Build static library" FALSE)
-    OPTION(PHYSFS_BUILD_SHARED "Build shared library" TRUE)
-    SET(OTHER_LDFLAGS ${OTHER_LDFLAGS} ${SDL_LIBRARY})
-ELSE(WINDOWS)
-    OPTION(PHYSFS_BUILD_STATIC "Build static library" TRUE)
-    OPTION(PHYSFS_BUILD_SHARED "Build shared library" FALSE)
-ENDIF(WINDOWS)
+option(PHYSFS_ARCHIVE_ISO9660 "Enable ISO9660 support" TRUE)
+if(PHYSFS_ARCHIVE_ISO9660)
+    add_definitions(-DPHYSFS_SUPPORTS_ISO9660=1)
+    set(PHYSFS_FEATURES "${PHYSFS_FEATURES} CD-ROM")
+endif(PHYSFS_ARCHIVE_ISO9660)
 
-IF(PHYSFS_BUILD_STATIC)
-    ADD_LIBRARY(physfs STATIC ${PHYSFS_SRCS})
-    SET_TARGET_PROPERTIES(physfs PROPERTIES OUTPUT_NAME "physfs")
-    SET(PHYSFS_LIB_TARGET physfs)
-    SET(PHYSFS_INSTALL_TARGETS ${PHYSFS_INSTALL_TARGETS} ";physfs")
-ENDIF(PHYSFS_BUILD_STATIC)
+##as needed by Hedgewars configuration
+if(WINDOWS)
+    option(PHYSFS_BUILD_STATIC "Build static library" FALSE)
+    option(PHYSFS_BUILD_SHARED "Build shared library" TRUE)
+    list(APPEND OTHER_LDFLAGS ${SDL_LIBRARY})
+else(WINDOWS)
+    option(PHYSFS_BUILD_STATIC "Build static library" TRUE)
+    option(PHYSFS_BUILD_SHARED "Build shared library" FALSE)
+endif(WINDOWS)
 
-IF(PHYSFS_BUILD_SHARED)
-    ADD_LIBRARY(physfs SHARED ${PHYSFS_SRCS})
-    SET_TARGET_PROPERTIES(physfs PROPERTIES VERSION ${PHYSFS_VERSION})
-    SET_TARGET_PROPERTIES(physfs PROPERTIES SOVERSION ${PHYSFS_SOVERSION})
-    TARGET_LINK_LIBRARIES(physfs ${OPTIONAL_LIBRARY_LIBS} ${OTHER_LDFLAGS})
-    SET(PHYSFS_LIB_TARGET physfs)
-    SET(PHYSFS_INSTALL_TARGETS ${PHYSFS_INSTALL_TARGETS} ";physfs")
-    INSTALL(TARGETS ${PHYSFS_INSTALL_TARGETS}
-            RUNTIME DESTINATION ${target_library_install_dir})
-ENDIF(PHYSFS_BUILD_SHARED)
+if(PHYSFS_BUILD_STATIC)
+    add_library(physfs STATIC ${PHYSFS_SRCS})
+    set_target_properties(physfs PROPERTIES OUTPUT_NAME "physfs")
+endif(PHYSFS_BUILD_STATIC)
 
-IF(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
-    MESSAGE(FATAL "Both shared and static libraries are disabled!")
-ENDIF(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
+if(PHYSFS_BUILD_SHARED)
+    add_library(physfs SHARED ${PHYSFS_SRCS})
+    set_target_properties(physfs PROPERTIES VERSION ${PHYSFS_VERSION})
+    set_target_properties(physfs PROPERTIES SOVERSION ${PHYSFS_SOVERSION})
+    target_link_libraries(physfs ${optionAL_LIBRARY_LIBS} ${OTHER_LDFLAGS})
+    install(TARGETS physfs RUNTIME DESTINATION ${target_library_install_dir}) ##
+endif(PHYSFS_BUILD_SHARED)
+
+if(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
+    message(FATAL "Both shared and static libraries are disabled!")
+endif(NOT PHYSFS_BUILD_SHARED AND NOT PHYSFS_BUILD_STATIC)
 
 # CMake FAQ says I need this...
-IF(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
-    SET_TARGET_PROPERTIES(physfs PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-ENDIF(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
-
-OPTION(PHYSFS_BUILD_TEST "Build stdio test program." FALSE)
-MARK_AS_ADVANCED(PHYSFS_BUILD_TEST)
-IF(PHYSFS_BUILD_TEST)
-    FIND_PATH(READLINE_H readline/readline.h)
-    FIND_PATH(HISTORY_H readline/history.h)
-    IF(READLINE_H AND HISTORY_H)
-        FIND_LIBRARY(CURSES_LIBRARY NAMES curses ncurses)
-        SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_LIBRARY})
-        FIND_LIBRARY(READLINE_LIBRARY readline)
-        IF(READLINE_LIBRARY)
-            SET(HAVE_SYSTEM_READLINE TRUE)
-            SET(TEST_PHYSFS_LIBS ${TEST_PHYSFS_LIBS} ${READLINE_LIBRARY} ${CURSES_LIBRARY})
-            INCLUDE_DIRECTORIES(${READLINE_H} ${HISTORY_H})
-            ADD_DEFINITIONS(-DPHYSFS_HAVE_READLINE=1)
-        ENDIF(READLINE_LIBRARY)
-    ENDIF(READLINE_H AND HISTORY_H)
-    ADD_EXECUTABLE(test_physfs test/test_physfs.c)
-    TARGET_LINK_LIBRARIES(test_physfs ${PHYSFS_LIB_TARGET} ${TEST_PHYSFS_LIBS} ${OTHER_LDFLAGS})
-    SET(PHYSFS_INSTALL_TARGETS ${PHYSFS_INSTALL_TARGETS} ";test_physfs")
-ENDIF(PHYSFS_BUILD_TEST)
+if(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
+    set_target_properties(physfs PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+endif(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC)
 
 
-# Scripting language bindings...
-
-#CMake's SWIG support is basically useless.
-#FIND_PACKAGE(SWIG)
-
-OPTION(PHYSFS_BUILD_SWIG "Build ${_LANG} bindings." FALSE)
-MARK_AS_ADVANCED(PHYSFS_BUILD_SWIG)
-
-FIND_PROGRAM(SWIG swig DOC "Path to swig command line app: http://swig.org/")
-IF(NOT SWIG)
-    MESSAGE(STATUS "SWIG not found. You won't be able to build scripting language bindings.")
-ELSE(NOT SWIG)
-    MARK_AS_ADVANCED(SWIG)
-    IF(DEFINED CMAKE_BUILD_TYPE)
-        IF((NOT CMAKE_BUILD_TYPE STREQUAL "") AND (NOT CMAKE_BUILD_TYPE STREQUAL "Debug"))
-            IF(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
-                SET(SWIG_OPT_CFLAGS "-small")
-            ELSE(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
-                SET(SWIG_OPT_CFLAGS "-O")
-            ENDIF(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
-        ENDIF((NOT CMAKE_BUILD_TYPE STREQUAL "") AND (NOT CMAKE_BUILD_TYPE STREQUAL "Debug"))
-    ENDIF(DEFINED CMAKE_BUILD_TYPE)
-
-    SET(SWIG_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/physfs-swig-bindings")
-
-    MACRO(CONFIGURE_SWIG_BINDING _LANG _INSTALLPATH _EXTRAOUTPUTS _EXTRACFLAGS _EXTRALDFLAGS)
-        STRING(TOUPPER "${_LANG}" _UPPERLANG)
-        STRING(TOLOWER "${_LANG}" _LOWERLANG)
-        SET(_TARGET "physfs-${_LOWERLANG}")
-        SET(_TARGETDIR "${SWIG_OUTPUT_DIR}/${_LOWERLANG}")
-
-        IF(NOT EXISTS "${_TARGETDIR}")
-            FILE(MAKE_DIRECTORY "${_TARGETDIR}")
-        ENDIF(NOT EXISTS "${_TARGETDIR}")
-
-        IF(PHYSFS_BUILD_${_UPPERLANG})
-            ADD_CUSTOM_COMMAND(
-                OUTPUT "${_TARGETDIR}/${_TARGET}.c" ${_EXTRAOUTPUTS}
-                MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/extras/physfs-swig.i"
-                COMMAND "${SWIG}"
-                ARGS ${SWIG_OPT_CFLAGS} -${_LOWERLANG} -outdir "${_TARGETDIR}" -o "${_TARGETDIR}/${_TARGET}.c" "${CMAKE_CURRENT_SOURCE_DIR}/extras/physfs-swig.i"
-                COMMENT "Generating ${_LANG} bindings..."
-            )
-
-            ADD_LIBRARY(${_TARGET} SHARED "${_TARGETDIR}/${_TARGET}.c")
-            TARGET_LINK_LIBRARIES(${_TARGET} ${PHYSFS_LIB_TARGET})
-            SET_TARGET_PROPERTIES(${_TARGET} PROPERTIES
-                COMPILE_FLAGS "${_EXTRACFLAGS}"
-                LINK_FLAGS "${_EXTRALDFLAGS}"
-                LIBRARY_OUTPUT_NAME "physfs"
-                LIBRARY_OUTPUT_DIRECTORY "${_TARGETDIR}"
-                CLEAN_DIRECT_OUTPUT 1
-            )
-            INSTALL(TARGETS ${_TARGET} LIBRARY DESTINATION "${_INSTALLPATH}")
-            MESSAGE(STATUS "${_LANG} bindings configured!")
-        ELSE(PHYSFS_BUILD_${_UPPERLANG})
-            MESSAGE(STATUS "Couldn't figure out ${_LANG} configuration. Skipping ${_LANG} bindings.")
-        ENDIF(PHYSFS_BUILD_${_UPPERLANG})
-    ENDMACRO(CONFIGURE_SWIG_BINDING)
-
-    MACRO(ADD_SCRIPT_BINDING_OPTION _VAR _LANG _DEFVAL)
-        SET(BUILDSWIGVAL ${_DEFVAL})
-        IF(NOT PHYSFS_BUILD_SWIG)
-            SET(BUILDSWIGVAL FALSE)
-        ENDIF(NOT PHYSFS_BUILD_SWIG)
-        OPTION(${_VAR} "Build ${_LANG} bindings." ${BUILDSWIGVAL})
-        MARK_AS_ADVANCED(${_VAR})
-    ENDMACRO(ADD_SCRIPT_BINDING_OPTION)
-
-    ADD_SCRIPT_BINDING_OPTION(PHYSFS_BUILD_PERL "Perl" TRUE)
-    ADD_SCRIPT_BINDING_OPTION(PHYSFS_BUILD_RUBY "Ruby" TRUE)
-ENDIF(NOT SWIG)
-
-IF(PHYSFS_BUILD_PERL)
-    MESSAGE(STATUS "Configuring Perl bindings...")
-    FIND_PROGRAM(PERL perl DOC "Path to perl command line app: http://perl.org/")
-    IF(NOT PERL)
-        MESSAGE(STATUS "Perl not found. You won't be able to build perl bindings.")
-        SET(PHYSFS_BUILD_PERL FALSE)
-    ENDIF(NOT PERL)
-    MARK_AS_ADVANCED(PERL)
-
-    MACRO(GET_PERL_CONFIG _KEY _VALUE)
-        IF(PHYSFS_BUILD_PERL)
-            MESSAGE(STATUS "Figuring out perl config value '${_KEY}' ...")
-            EXECUTE_PROCESS(
-                COMMAND ${PERL} -w -e "use Config; print \$Config{${_KEY}};"
-                RESULT_VARIABLE GET_PERL_CONFIG_RC
-                OUTPUT_VARIABLE ${_VALUE}
-            )
-            IF(NOT GET_PERL_CONFIG_RC EQUAL 0)
-                MESSAGE(STATUS "Perl executable ('${PERL}') reported failure: ${GET_PERL_CONFIG_RC}")
-                SET(PHYSFS_BUILD_PERL FALSE)
-            ENDIF(NOT GET_PERL_CONFIG_RC EQUAL 0)
-            IF(NOT ${_VALUE})
-                MESSAGE(STATUS "Perl executable ('${PERL}') didn't have a value for '${_KEY}'")
-                SET(PHYSFS_BUILD_PERL FALSE)
-            ENDIF(NOT ${_VALUE})
-
-            IF(PHYSFS_BUILD_PERL)
-                MESSAGE(STATUS "Perl says: '${${_VALUE}}'.")
-            ENDIF(PHYSFS_BUILD_PERL)
-        ENDIF(PHYSFS_BUILD_PERL)
-    ENDMACRO(GET_PERL_CONFIG)
-
-    # !!! FIXME: installsitearch might be the wrong location.
-    GET_PERL_CONFIG("archlibexp" PERL_INCLUDE_PATH)
-    GET_PERL_CONFIG("ccflags" PERL_CCFLAGS)
-    GET_PERL_CONFIG("ldflags" PERL_LDFLAGS)
-    GET_PERL_CONFIG("installsitearch" PERL_INSTALL_PATH)
+## removed install, language bindings and test program
+## simplified configuration output
 
-    # !!! FIXME: this test for Mac OS X is wrong.
-    IF(MACOSX)
-        GET_PERL_CONFIG("libperl" PERL_LIBPERL)
-        SET(TMPLIBPERL "${PERL_LIBPERL}")
-        STRING(REGEX REPLACE "^lib" "" TMPLIBPERL "${TMPLIBPERL}")
-        STRING(REGEX REPLACE "\\.so$" "" TMPLIBPERL "${TMPLIBPERL}")
-        STRING(REGEX REPLACE "\\.dylib$" "" TMPLIBPERL "${TMPLIBPERL}")
-        STRING(REGEX REPLACE "\\.dll$" "" TMPLIBPERL "${TMPLIBPERL}")
-        IF(NOT "${TMPLIBPERL}" STREQUAL "${PERL_LIBPERL}")
-            MESSAGE(STATUS "Stripped '${PERL_LIBPERL}' down to '${TMPLIBPERL}'.")
-            SET(PERL_LIBPERL "${TMPLIBPERL}")
-        ENDIF(NOT "${TMPLIBPERL}" STREQUAL "${PERL_LIBPERL}")
-        SET(PERL_LIBPERL "-l${PERL_LIBPERL}")
-    ENDIF(MACOSX)
-
-    CONFIGURE_SWIG_BINDING(Perl "${PERL_INSTALL_PATH}" "${SWIG_OUTPUT_DIR}/perl/physfs.pm" "\"-I${PERL_INCLUDE_PATH}/CORE\" ${PERL_CCFLAGS} -w" "\"-L${PERL_INCLUDE_PATH}/CORE\" ${PERL_LIBPERL} ${PERL_LDFLAGS}")
-    INSTALL(FILES "${SWIG_OUTPUT_DIR}/perl/physfs.pm" DESTINATION "${PERL_INSTALL_PATH}")
-    INSTALL(
-        FILES test/test_physfs.pl
-        DESTINATION bin
-        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
-                    GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-    )
-ENDIF(PHYSFS_BUILD_PERL)
-
-# !!! FIXME: lots of cut-and-paste from perl bindings.
-IF(PHYSFS_BUILD_RUBY)
-    MESSAGE(STATUS "Configuring Ruby bindings...")
-    FIND_PROGRAM(RUBY ruby DOC "Path to ruby command line app: http://ruby-lang.org/")
-    IF(NOT RUBY)
-        MESSAGE(STATUS "Ruby not found. You won't be able to build ruby bindings.")
-        SET(PHYSFS_BUILD_RUBY FALSE)
-    ENDIF(NOT RUBY)
-    MARK_AS_ADVANCED(RUBY)
-
-    MACRO(GET_RUBY_CONFIG _KEY _VALUE)
-        IF(PHYSFS_BUILD_RUBY)
-            MESSAGE(STATUS "Figuring out ruby config value '${_KEY}' ...")
-            EXECUTE_PROCESS(
-                COMMAND ${RUBY} -e "require 'rbconfig'; puts RbConfig::CONFIG['${_KEY}'];"
-                RESULT_VARIABLE GET_RUBY_CONFIG_RC
-                OUTPUT_VARIABLE ${_VALUE}
-                OUTPUT_STRIP_TRAILING_WHITESPACE
-            )
-            IF(NOT GET_RUBY_CONFIG_RC EQUAL 0)
-                MESSAGE(STATUS "Ruby executable ('${RUBY}') reported failure: ${GET_RUBY_CONFIG_RC}")
-                SET(PHYSFS_BUILD_RUBY FALSE)
-            ENDIF(NOT GET_RUBY_CONFIG_RC EQUAL 0)
-            IF(NOT ${_VALUE})
-                MESSAGE(STATUS "Ruby executable ('${RUBY}') didn't have a value for '${_KEY}'")
-                SET(PHYSFS_BUILD_RUBY FALSE)
-            ENDIF(NOT ${_VALUE})
-
-            IF(PHYSFS_BUILD_RUBY)
-                MESSAGE(STATUS "Ruby says: '${${_VALUE}}'.")
-            ENDIF(PHYSFS_BUILD_RUBY)
-        ENDIF(PHYSFS_BUILD_RUBY)
-    ENDMACRO(GET_RUBY_CONFIG)
+message(STATUS "PhysicsFS will build with ${PHYSFS_FEATURES} support")
 
-    GET_RUBY_CONFIG("archdir" RUBY_INCLUDE_PATH)
-    GET_RUBY_CONFIG("CFLAGS" RUBY_CCFLAGS)
-    GET_RUBY_CONFIG("LDFLAGS" RUBY_LDFLAGS)
-    GET_RUBY_CONFIG("sitearchdir" RUBY_INSTALL_PATH)
-    GET_RUBY_CONFIG("LIBRUBYARG_SHARED" RUBY_LIBRUBY)
-    GET_RUBY_CONFIG("libdir" RUBY_LIBDIR)
-
-    CONFIGURE_SWIG_BINDING(Ruby "${RUBY_INSTALL_PATH}" "" "\"-I${RUBY_INCLUDE_PATH}\" ${RUBY_CCFLAGS} -w" "\"-L${RUBY_LIBDIR}\" ${RUBY_LIBRUBY} ${RUBY_LDFLAGS}")
-    SET_TARGET_PROPERTIES(physfs-ruby PROPERTIES PREFIX "")
-    INSTALL(
-        FILES test/test_physfs.rb
-        DESTINATION bin
-        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
-                    GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-    )
-ENDIF(PHYSFS_BUILD_RUBY)
-
-
-#INSTALL(TARGETS ${PHYSFS_INSTALL_TARGETS}
-#        RUNTIME DESTINATION bin
-#        LIBRARY DESTINATION lib${LIB_SUFFIX}
-#        ARCHIVE DESTINATION lib${LIB_SUFFIX})
-#INSTALL(FILES src/physfs.h DESTINATION include)
-
-IF(UNIX)
-    SET(PHYSFS_TARBALL "${CMAKE_CURRENT_SOURCE_DIR}/../physfs-${PHYSFS_VERSION}.tar.gz")
-    ADD_CUSTOM_TARGET(
-        dist
-        hg archive -t tgz "${PHYSFS_TARBALL}"
-        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-        COMMENT "Building source tarball '${PHYSFS_TARBALL}'..."
-    )
-#    ADD_CUSTOM_TARGET(
-#        uninstall
-#        "${CMAKE_CURRENT_SOURCE_DIR}/extras/uninstall.sh"
-#        WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
-#        COMMENT "Uninstall the project..."
-#    )
-ENDIF(UNIX)
-
-MACRO(MESSAGE_BOOL_OPTION _NAME _VALUE)
-    IF(${_VALUE})
-        MESSAGE(STATUS "  ${_NAME}: enabled")
-    ELSE(${_VALUE})
-        MESSAGE(STATUS "  ${_NAME}: disabled")
-    ENDIF(${_VALUE})
-ENDMACRO(MESSAGE_BOOL_OPTION)
-
-MESSAGE(STATUS "PhysicsFS will build with the following options:")
-MESSAGE_BOOL_OPTION("ZIP support" PHYSFS_ARCHIVE_ZIP)
-MESSAGE_BOOL_OPTION("7zip support" PHYSFS_ARCHIVE_7Z)
-MESSAGE_BOOL_OPTION("GRP support" PHYSFS_ARCHIVE_GRP)
-MESSAGE_BOOL_OPTION("WAD support" PHYSFS_ARCHIVE_WAD)
-MESSAGE_BOOL_OPTION("HOG support" PHYSFS_ARCHIVE_HOG)
-MESSAGE_BOOL_OPTION("MVL support" PHYSFS_ARCHIVE_MVL)
-MESSAGE_BOOL_OPTION("QPAK support" PHYSFS_ARCHIVE_QPAK)
-MESSAGE_BOOL_OPTION("CD-ROM drive support" PHYSFS_HAVE_CDROM_SUPPORT)
-MESSAGE_BOOL_OPTION("Thread safety" PHYSFS_HAVE_THREAD_SUPPORT)
-MESSAGE_BOOL_OPTION("Build static library" PHYSFS_BUILD_STATIC)
-MESSAGE_BOOL_OPTION("Build shared library" PHYSFS_BUILD_SHARED)
-MESSAGE_BOOL_OPTION("Build Perl bindings" PHYSFS_BUILD_PERL)
-MESSAGE_BOOL_OPTION("Build Ruby bindings" PHYSFS_BUILD_RUBY)
-MESSAGE_BOOL_OPTION("Build stdio test program" PHYSFS_BUILD_TEST)
-IF(PHYSFS_BUILD_TEST)
-    MESSAGE_BOOL_OPTION("  Use readline in test program" HAVE_SYSTEM_READLINE)
-ENDIF(PHYSFS_BUILD_TEST)
-
-# end of CMakeLists.txt ...
-
Binary file misc/winutils/Hedgewars.lnk has changed
--- a/misc/xfire/Xfire Game SDK.url	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-[{000214A0-0000-0000-C000-000000000046}]
-Prop3=19,2
-[InternetShortcut]
-URL=http://www.xfire.com/cms/xf_game_sdk
-IDList=
--- a/misc/xfire/license.txt	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-Terms and Conditions
-AGREEMENT BETWEEN USER AND XFIRE INC.
-This is a legal agreement between you and Xfire Inc. ("Xfire") with respect to your access and use of the Xfire Service, which may also include Xfire software, content and related documentation and information (collectively, the "Service"). You must accept without modification all of the terms, conditions, and notices contained in these Terms of Use in order to access and/or use the Service (collectively, the "Terms of Use" or "Agreement"). If you do not accept these Terms of Use in their entirety, you may not access or use the Service. 
-
-Portions of the Service may be governed by posted guidelines, rules, or other terms and conditions. All such guidelines, rules, terms and conditions are hereby incorporated by reference into these Terms of Use. In the event of a conflict between such other guidelines, rules, terms and conditions and these Terms of Use, the Terms of Use shall control, except that the Xfire Service Privacy Policy, referenced below, supersedes any conflicting language in these Terms of Use and/or any other guidelines, rules, terms and conditions published in connection with the Service with respect to the subject matter covered by such privacy policy.
-
-MODIFICATION OF THESE TERMS OF USE; UPDATES
-Xfire may change the Terms of Use at any time and such changes shall be effective immediately. You are responsible for regularly reviewing the Terms of Use. The most recent version of the Terms of Use can be found at http://www.xfire.com/xf/terms.php. Your continued use of the Service affirms your agreement to the Terms of Use and any changes.
-
-Xfire is not obligated to provide updates or improvements to the Service. However, if Xfire, in its sole discretion, updates or improves the Service, these Terms of Use shall apply to such updates and improvements unless expressly noted otherwise.
-
-CLIENT SOFTWARE USE LIMITATION
-YOU MAY ONLY USE XFIRE CLIENT SOFTWARE OR AUTHORIZED THIRD-PARTY SOFTWARE TO ACCESS AND/OR USE THE SERVICE. You may not use any software or services in conjunction with the Xfire software or authorized third-party software which modifies or reroutes, or attempts to modify or reroute, the Service. You may not authorize any third party to access and/or use the Service on your behalf using any automated process such as a BOT, a spider or periodic caching of information stored by the Xfire Service on your behalf without a separate written agreement with Xfire. You may not use any software or hardware that reduces the number of users directly accessing or using the Service (sometimes called 'multiplexing' or 'pooling' software or hardware).
-
-You may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services that are part of the Service except as expressly provided in these Terms of Use.
-
-NO UNLAWFUL OR PROHIBITED USE; RESPONSIBILITY FOR YOUR ACCOUNT
-As a condition of your use of the Service, you will not use the Service for any purpose that is unlawful or prohibited by these Terms of Use. You may not use the Service in any manner that could damage, disable, overburden, or impair the Service or interfere with any other party's use and enjoyment of it. You may not attempt to gain unauthorized access to any account, computer systems or networks associated with the Service or to otherwise interfere with or disrupt any accounts, computer systems or networks connected to the Service. You may not obtain or attempt to obtain any materials or information through any means not intentionally made available or provided for through the Service. You may not use access to the Service to obtain information necessary for you to design, develop or update unauthorized software that you use or provide to others to use to access the Service. You may not charge others to use the Service either directly or indirectly without the express written agreement of Xfire.
-Subject to these Terms of Use, you may use the Service within your commercial organization, but you may not use the Service to advertise or offer to buy or sell any goods or services, or to run a business or commercial entity without the express written agreement of Xfire.
-You agree to use the Service only to send, receive, and transfer appropriate messages and material. By way of example, and not as a limitation, you agree that when using the Service, you will not:
-
-
-• Use the Service in connection with surveys, contests, pyramid schemes, chain letters, junk email, spamming or any duplicative, bulk or unsolicited messages (commercial or otherwise). 
-
-• Defame, abuse, harass, stalk, threaten or otherwise violate the legal rights (such as rights of privacy and publicity) of others. 
-
-• Create a false identity for the purpose of misleading others. 
-
-• Publish, transfer, distribute or disseminate any inappropriate, profane, defamatory, obscene, indecent or unlawful topic, name, material or information. 
-
-• Transfer, stream, or otherwise make available, files or other material that contain images, photographs, software or other material protected by intellectual property laws, including, by way of example, and not as limitation, copyright or trademark laws (or by rights of privacy or publicity) unless you own or control the rights thereto or have received all necessary consents to do the same. 
-
-• Use any material or information, including images or photographs, which is made available through the Service in any manner that infringes any copyright, trademark, patent, trade secret, or other proprietary right of any party. 
-
-• Transfer, stream or otherwise make available, files or other material that contain viruses, Trojan horses, worms, time bombs, cancelbots, corrupted files, or any other similar software or programs that may damage the operation of another's computer or property of another. 
-
-• Download any file or other material transferred by another user of the Service that you know, or reasonably should know, cannot be legally distributed in such manner. 
-
-• Use, download or otherwise copy, or provide (whether or not for a fee) to a person or entity any directory of users of the Service or other user or usage information or any portion thereof. 
-
-• Falsify or delete any author attributions, legal or other proper notices or proprietary designations or labels of the origin or source of software or other material contained in a file that is transferred. 
-
-• Violate any code of conduct or other guidelines which may be applicable to the Service. 
-
-• Use any portion of the Service to harvest or otherwise collect information about others, including e-mail addresses. 
-
-Xfire reserves the right at all times to monitor communications on the Service and disclose any information Xfire deems necessary to (i) ensure your compliance with this Agreement; (ii) satisfy any applicable law, regulation or legal process; or (iii) protect the rights, property, and interests of Xfire, its employees or the public. Xfire also reserves the right to edit, refuse to transfer or to remove any information or materials, in whole or in part, in Xfire's sole discretion.
-
-Always use caution when giving out any personally identifiable information about yourself or your children in the Service. Xfire does not control or endorse the content, messages or information exchanged by means of the Service and, therefore, Xfire specifically disclaims any liability with regard to the Service and any actions resulting from your participation in the Service.
-
-You are responsible for all activities that occur in your Service account. You agree to notify Xfire immediately of any unauthorized use of your account or breach in security known to you related to the Service.
-
-
-PRIVACY
-See the Xfire Service Privacy Statement at http://www.xfire.com/xf/privacy.php for disclosures relating to the collection and use of your information.
-
-
-INTERACTION WITH THIRD PARTY SITES AND SERVICES
-The Service may allow you to interact with third-party Web sites and Web services ("Link(s)"). The Links are not under the control of Xfire and Xfire is not responsible for the contents of any Links, including without limitation any link contained in a Link, or any changes or updates to a Link. Xfire is not responsible for any form of transmission received from any Link, nor is Xfire responsible if the Link is not working appropriately. Xfire is providing these Links to you only as a convenience, and the inclusion of any Link does not imply endorsement by Xfire of the Link or any association with its operators. You are responsible for viewing and abiding by any privacy statements and terms of use posted in connection with the Links.
-
-You are solely responsible for any dealings with third parties (including advertisers) who support the Service, including the delivery of and payment for goods and services.
-
-TERMS OF USE FOR SERVICE-ENABLED PROPERTIES
-For the terms and conditions governing your use of any Xfire or authorized third party Web site or service that enables you to use the Service other than the Service itself ("Service-Enabled Properties"), please refer to the applicable Terms of Use for such Service-Enabled Properties.
-
-SOFTWARE AND CONTENT AVAILABLE ON THE SERVICE
-All Xfire content and software (if any) that is made available to view and/or download in connection with the Service ("Software") is owned by and is the copyrighted work of Xfire and/or its suppliers and is licensed, not sold. Your use of the Software is governed by the terms of the license agreement, if any, which accompanies or is included with the Software ("License Agreement"). You may not install or use any Software that is accompanied by or includes a License Agreement unless you first agree to the License Agreement terms. For any Software not accompanied by a license agreement, Xfire hereby grants to you, the user, a non-exclusive, revocable, personal, non-transferable license to use the Software solely in connection with the Service in accordance with these Terms of Use. You may not lend, lease, rent or sublicense the Software or any aspect of the Service.
-
-You will not disassemble, decompile, or reverse engineer the Software. All Software is protected by copyright laws and international treaty provisions. Any unauthorized reproduction or redistribution of the Software is expressly prohibited by law, and may result in severe civil and criminal penalties. WITHOUT LIMITING THE FOREGOING, COPYING OR REPRODUCTION OF THE SOFTWARE TO ANY OTHER SERVER OR LOCATION FOR FURTHER REPRODUCTION OR REDISTRIBUTION IS EXPRESSLY PROHIBITED. THE SOFTWARE IS WARRANTED, IF AT ALL, ONLY ACCORDING TO THE TERMS OF THE LICENSE AGREEMENT. You acknowledge that the Software, and any accompanying documentation and/or technical information, is subject to applicable export control laws and regulations of the U.S.A. You agree not to export or re-export the Software, directly or indirectly, to any countries that are subject to U.S.A. export restrictions.
-
-Your license to use the Software with the Service terminates when you terminate your use of the Service. Your license to use the Software with the Service may also terminate if Xfire, in its sole discretion, modifies the Service to no longer support such Software.
-
-NO WARRANTIES; LIABILITY DISCLAIMER; EXCLUSIVE REMEDY
-XFIRE PROVIDES THE SERVICE AND THE SOFTWARE "AS IS," "WITH ALL FAULTS" AND "AS AVAILABLE," AND THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH YOU. XFIRE, ITS AFFILIATES, ITS RESELLERS, DISTRIBUTORS, SERVICE PROVIDERS AND/OR SUPPLIERS (COLLECTIVELY, THE "XFIRE PARTIES") MAKE NO WARRANTIES. THE XFIRE PARTIES DISCLAIM ANY AND ALL WARRANTIES, EXPRESS, STATUTORY AND IMPLIED, INCLUDING WITHOUT LIMITATION (1) WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, WORKMANLIKE EFFORT, ACCURACY, TITLE, QUIET ENJOYMENT, NO ENCUMBRANCES, NO LIENS AND NON-INFRINGEMENT, (2) WARRANTIES ARISING THROUGH COURSE OF DEALING OR USAGE OF TRADE, AND (3) WARRANTIES THAT ACCESS TO OR USE OF THE SERVICE WILL BE UNINTERRUPTED OR ERROR-FREE. THERE ARE NO WARRANTIES THAT EXTEND BEYOND THE FACE OF THIS AGREEMENT. XFIRE MAY CHANGE THE SERVICE OR THE FEATURES IN ANY WAY, AND AT ANY TIME AND FOR ANY REASON.
-
-IN NO EVENT SHALL ANY OF THE XFIRE PARTIES BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, OR PUNITIVE DAMAGES ARISING OUT OF, BASED ON, OR RESULTING FROM THIS AGREEMENT OR YOUR USE OF THE SERVICE, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA OR PROFITS, WITH THE DELAY OR INABILITY TO USE THE SERVICE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES, OR FOR ANY INFORMATION, SOFTWARE, PRODUCTS, OR SERVICES OBTAINED THROUGH THE SERVICE, OR OTHERWISE ARISING OUT OF THE USE OF THE SERVICE, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF XFIREOR ANY OF ITS SUPPLIERS HAS BEEN ADVISED OF THE POSSIBILITY OF DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.
-
-IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE SERVICE, OR WITH ANY OF THESE TERMS OF USE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USING THE SERVICE.
-
-INDEMNITY
-You agree to indemnify and hold Xfire, its officers, and employees, harmless from any claim or demand, including reasonable attorneys' fees, made by any third party due to or arising out of your use of the Services, the violation of these Terms of Use by you, or the infringement by you, or other user of the Services using your computer or identity, of any intellectual property or other right of any person or entity.
-
-CUSTOMER SUPPORT
-Xfire may, but is not required to, provide you with customer support ("Support"). Unless you have entered into a separate written support agreement with Xfire with respect to the Service, Xfire may terminate any Support it provides at any time in its sole discretion.
-
-Authorized third-party software that uses the Service is not supported by Xfire and you should contact the provider of such software for support, if any.
-
-TERMINATION/ACCESS RESTRICTION
-Unless you, or a third party on your behalf, have entered into a separate written agreement with Xfire that modifies these Terms of Use, Xfire reserves the right, in its sole discretion, to terminate your access to and use of the Service or any portion thereof at any time, without notice. Also, unless you or a third party on your behalf have entered into a separate agreement with Xfire, Xfire may terminate or suspend your access to the Service for inactivity, which is defined as failing to log onto the Service for an extended period of time, as determined by Xfire.
-ELECTRONIC NOTICES
-You consent to Xfire providing you any information regarding the Service in electronic form. Xfire may provide such information to you via e-mail at the e-mail address you specified when you registered for the Service, by instant message to your account, or by access to a Xfire web site. As long as you access and use the Service, you will have the necessary software and hardware to receive such notices. If you do not consent to receive any notices electronically, you must discontinue your use of the Service.
-
-GENERAL
-If you reside in the United States, claims for enforcement, breach or violation of duties or rights under these Terms of Use are governed by the laws of the State of California, without reference to conflict of laws principles. All other claims, including, without limitation, claims under or for violation of state consumer protection laws, unfair competition laws, and in tort, are governed by the laws of your state of residence in the United States. If you reside outside of the United States, these Terms of Use are governed by the laws of the State of California, without reference to conflict of laws principles. You hereby irrevocably consent to the exclusive jurisdiction and venue of courts in San Mateo County, California, U.S.A. in all disputes arising out of or relating to the use of the Service.
-
-YOU AND XFIRE AGREE THAT ANY CAUSE OF ACTION ARISING OUT OF OR RELATED TO THE SERVICE MUST COMMENCE WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. OTHERWISE, SUCH CAUSE OF ACTION IS PERMANENTLY BARRED.
-
-Xfire may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in any Web pages that are part of the Service. Except as expressly provided in these Terms of Use, the furnishing of such Web pages to you does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Any rights not expressly granted herein are reserved.
-
-June 2004
-
-
-
--- a/misc/xfire/xfiregameclient.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/* This file is NOT open source. See "license.txt" to read the full license provided with the Xfire SDK. */
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <tlhelp32.h>
-
-#include "xfiregameclient.h"
-
-static HMODULE g_toucan_dll = NULL;
-static void HelperInit();
-static HMODULE HelperGetToucanDLL();
-
-typedef int (*XfireSetCustomGameDataAFunction)(int , const char **, const char **);
-typedef int (*XfireSetCustomGameDataWFunction)(int , const wchar_t **, const wchar_t **);
-typedef int (*XfireSetCustomGameDataUTF8Function)(int , const char **, const char **);
-
-static XfireSetCustomGameDataAFunction ptr_XfireSetCustomGameDataA = NULL;
-static XfireSetCustomGameDataWFunction ptr_XfireSetCustomGameDataW = NULL;
-static XfireSetCustomGameDataUTF8Function ptr_XfireSetCustomGameDataUTF8 = NULL;
-
-/* make sure we are going to call the ANSI version */
-#ifdef MODULEENTRY32
-#undef MODULEENTRY32
-#endif
-
-#ifdef Module32First
-#undef Module32First
-#endif
-
-#ifdef Module32Next
-#undef Module32Next
-#endif
-
-
-int XfireIsLoaded()
-{
-	HelperInit();
-	if (ptr_XfireSetCustomGameDataA &&
-		ptr_XfireSetCustomGameDataW &&
-		ptr_XfireSetCustomGameDataUTF8)
-		return 1;
-	return 0;
-}
-
-int XfireSetCustomGameDataA(int num_keys, const char **keys, const char **values)
-{
-	HelperInit();
-	if (ptr_XfireSetCustomGameDataA)
-		return ptr_XfireSetCustomGameDataA(num_keys, keys, values);
-	return 1;
-}
-
-int XfireSetCustomGameDataW(int num_keys, const wchar_t **keys, const wchar_t **values)
-{
-	HelperInit();
-	if (ptr_XfireSetCustomGameDataW)
-		return ptr_XfireSetCustomGameDataW(num_keys, keys, values);
-	return 1;
-}
-
-int XfireSetCustomGameDataUTF8(int num_keys, const char **keys, const char **values)
-{
-	HelperInit();
-	if (ptr_XfireSetCustomGameDataUTF8)
-		return ptr_XfireSetCustomGameDataUTF8(num_keys, keys, values);
-	return 1;
-}
-
-/* ------------------------------------------------------------------------- */
-static void HelperInit()
-{
-	if (!ptr_XfireSetCustomGameDataA ||
-		!ptr_XfireSetCustomGameDataW ||
-		!ptr_XfireSetCustomGameDataUTF8)
-	{
-		HMODULE toucan_dll = HelperGetToucanDLL();
-		if (toucan_dll)
-		{
-			ptr_XfireSetCustomGameDataA = (XfireSetCustomGameDataAFunction)::GetProcAddress(toucan_dll, "ToucanSendGameClientDataA_V1");
-			ptr_XfireSetCustomGameDataW = (XfireSetCustomGameDataWFunction)::GetProcAddress(toucan_dll, "ToucanSendGameClientDataW_V1");
-			ptr_XfireSetCustomGameDataUTF8 = (XfireSetCustomGameDataUTF8Function)::GetProcAddress(toucan_dll, "ToucanSendGameClientDataUTF8_V1");
-		}
-	}
-}
-
-
-static HMODULE HelperGetToucanDLL()
-{
-	if (g_toucan_dll)
-		return g_toucan_dll;
-
-	/*
-	** We need to enumerate the DLLs loaded to find toucan dll.
-	** This is done because the toucan dll changes with each update.
-	** The toucan dll has the following format. "xfire_toucan_{BUILD_NUMBER}.dll"
-	** We simply try to find a dll w/ the prefix "xfire_toucan"
-	*/
-	HANDLE snapshot_handle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId());
-	if (snapshot_handle != INVALID_HANDLE_VALUE)
-	{
-		MODULEENTRY32 module_entry;
-		module_entry.dwSize = sizeof(MODULEENTRY32);
-
-		BOOL result = Module32First(snapshot_handle, &module_entry);
-		char module_name[] = "xfire_toucan";
-		DWORD module_name_len = sizeof(module_name)-1;
-		while (result)
-		{
-			if (CompareStringA(LOCALE_USER_DEFAULT, NORM_IGNORECASE, module_entry.szModule, module_name_len, module_name, module_name_len) == CSTR_EQUAL)
-			{
-				g_toucan_dll = module_entry.hModule;
-				break;
-			}
-			result = Module32Next(snapshot_handle, &module_entry);
-		}
-
-		CloseHandle(snapshot_handle);
-	}
-
-	return g_toucan_dll;
-}
--- a/misc/xfire/xfiregameclient.h	Wed Jan 02 11:11:49 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/* This file is NOT open source. See "license.txt" to read the full license provided with the Xfire SDK. */
-
-#ifndef __XFIREGAMECLIENT_H__
-#define __XFIREGAMECLIENT_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-**  XfireIsLoaded()
-**
-**  returns 1 if application can talk to Xfire, 0 otherwise
-*/
-int XfireIsLoaded();
-
-/*
-**  XfireSetCustomGameDataA()
-**
-**  ANSI version to tell xfire of custom game data
-*/
-int XfireSetCustomGameDataA(int num_keys, const char **keys, const char **values);
-
-/*
-**  XfireSetCustomGameDataA()
-**
-**  UNICODE version to tell xfire of custom game data
-*/
-int XfireSetCustomGameDataW(int num_keys, const wchar_t **keys, const wchar_t **values);
-
-/*
-**  XfireSetCustomGameDataUTF8()
-**
-**  UTF8 version to tell xfire of custom game data
-*/
-int XfireSetCustomGameDataUTF8(int num_keys, const char **keys, const char **values);
-
-#ifdef UNICODE
-#define XfireSetCustomGameData XfireSetCustomGameDataW
-#else
-#define XfireSetCustomGameData XfireSetCustomGameDataA
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __XFIREGAMECLIENT_H__ */
--- a/project_files/HedgewarsMobile/Classes/Appirater.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/Appirater.h	Sun Jan 27 00:28:57 2013 +0100
@@ -1,9 +1,9 @@
 /*
  This file is part of Appirater, http://arashpayan.com
- 
+
  Copyright (c) 2010, Arash Payan
  All rights reserved.
- 
+
  Permission is hereby granted, free of charge, to any person
  obtaining a copy of this software and associated documentation
  files (the "Software"), to deal in the Software without
@@ -12,10 +12,10 @@
  copies of the Software, and to permit persons to whom the
  Software is furnished to do so, subject to the following
  conditions:
- 
+
  The above copyright notice and this permission notice shall be
  included in all copies or substantial portions of the Software.
- 
+
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
--- a/project_files/HedgewarsMobile/Classes/Appirater.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/Appirater.m	Sun Jan 27 00:28:57 2013 +0100
@@ -1,9 +1,9 @@
 /*
  This file is part of Appirater, http://arashpayan.com
- 
+
  Copyright (c) 2010, Arash Payan
  All rights reserved.
- 
+
  Permission is hereby granted, free of charge, to any person
  obtaining a copy of this software and associated documentation
  files (the "Software"), to deal in the Software without
@@ -12,10 +12,10 @@
  copies of the Software, and to permit persons to whom the
  Software is furnished to do so, subject to the following
  conditions:
- 
+
  The above copyright notice and this permission notice shall be
  included in all copies or substantial portions of the Software.
- 
+
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -66,7 +66,7 @@
         trackingVersion = version;
         [userDefaults setObject:version forKey:kAppiraterCurrentVersion];
     }
-    
+
     if (APPIRATER_DEBUG)
         DLog(@"APPIRATER Tracking version: %@", trackingVersion);
 
@@ -98,7 +98,7 @@
              launchCount > LAUNCHES_UNTIL_PROMPT &&
              !declinedToRate &&
              !ratedApp) {
-            if ([HWUtils isNetworkReachable]) {	// check if they can reach the app store
+            if ([HWUtils isNetworkReachable]) { // check if they can reach the app store
                 willShowPrompt = YES;
                 [self performSelectorOnMainThread:@selector(showPrompt) withObject:nil waitUntilDone:NO];
             }
@@ -141,7 +141,7 @@
             // they want to rate it
             [[UIApplication sharedApplication] openURL:
              [NSURL URLWithString:[templateReviewURL stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", APPIRATER_APP_ID]]]];
-            
+
             [userDefaults setBool:YES forKey:kAppiraterRatedCurrentVersion];
             break;
         case 2:
--- a/project_files/HedgewarsMobile/Classes/AudioManagerController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/AudioManagerController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -79,7 +79,7 @@
         self.backgroundMusic.delegate = nil;
         self.backgroundMusic.numberOfLoops = -1;
     }
-    
+
     self.backgroundMusic.volume = DEFAULT_VOLUME;
     [self.backgroundMusic play];
 }
@@ -98,7 +98,7 @@
 
     if (self.audioFaderQueue == nil)
         self.audioFaderQueue = [[NSOperationQueue alloc] init];
-    
+
     MXAudioPlayerFadeOperation *fadeOut = [[MXAudioPlayerFadeOperation alloc] initFadeWithAudioPlayer:self.backgroundMusic
                                                                                              toVolume:0.0
                                                                                          overDuration:FADEOUT_DURATION];
@@ -144,30 +144,30 @@
 -(void) playClickSound {
     if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO)
         return;
-    
+
     if (self.clickSound == -1)
         self.clickSound = [self loadSound:@"clickSound"];
-    
+
     AudioServicesPlaySystemSound(self.clickSound);
 }
 
 -(void) playBackSound {
     if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO)
         return;
-    
+
     if (self.backSound == -1)
         self.backSound = [self loadSound:@"backSound"];
-    
+
     AudioServicesPlaySystemSound(self.backSound);
 }
 
 -(void) playSelectSound {
     if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO)
         return;
-    
+
     if (self.selSound == -1)
         self.selSound = [self loadSound:@"selSound"];
-    
+
     AudioServicesPlaySystemSound(self.selSound);
 }
 
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m	Sun Jan 27 00:28:57 2013 +0100
@@ -390,7 +390,7 @@
     [basicArray release];
 
     NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
-    
+
     [theScheme writeToFile:schemeFile atomically:YES];
     [schemeFile release];
     [theScheme release];
--- a/project_files/HedgewarsMobile/Classes/DefinesAndMacros.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/DefinesAndMacros.h	Sun Jan 27 00:28:57 2013 +0100
@@ -39,12 +39,12 @@
 #define rotationManager(x) (IS_IPAD() ? YES : (x == UIInterfaceOrientationLandscapeRight) || (x == UIInterfaceOrientationLandscapeLeft))
 
 #define START_TIMER()   NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];
-#define END_TIMER(msg) 	NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate]; DLog([NSString stringWithFormat:@"%@ Time = %f", msg, stop-start]);
+#define END_TIMER(msg)  NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate]; DLog([NSString stringWithFormat:@"%@ Time = %f", msg, stop-start]);
 
 
 #define DOCUMENTS_FOLDER()      [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
 
-#define DEBUG_FILE()            [DOCUMENTS_FOLDER() stringByAppendingString:@"/hw-game.log"]
+#define DEBUG_FILE()            [DOCUMENTS_FOLDER() stringByAppendingString:@"/Logs/game0.log"]
 #define BASICFLAGS_FILE()       [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/basicFlags.plist"]
 #define GAMEMODS_FILE()         [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/gameMods.plist"]
 #define CREDITS_FILE()          [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/credits.plist"]
--- a/project_files/HedgewarsMobile/Classes/FlagsViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/FlagsViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -35,7 +35,7 @@
 
     NSMutableArray *array_na = [[NSMutableArray alloc] init];
     NSMutableArray *array_cm = [[NSMutableArray alloc] init];
-    
+
     for (NSString *name in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:FLAGS_DIRECTORY() error:NULL]) {
         if ([name hasPrefix:@"cm_"]) {
             NSString *processed = [name substringFromIndex:3];
@@ -43,7 +43,7 @@
         } else
              [array_na addObject:name];
     }
-    
+
     self.flagArray = array_na;
     [array_na release];
     self.communityArray = array_cm;
@@ -135,14 +135,14 @@
     int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
     int newSection = [indexPath section];
     int oldSection = (lastIndexPath != nil) ? [lastIndexPath section] : -1;
-    
+
     if (newRow != oldRow || newSection != oldSection) {
         NSString *flag = nil;
         if ([indexPath section] == 0)
             flag = [self.flagArray objectAtIndex:newRow];
         else
             flag = [NSString stringWithFormat:@"cm_%@",[self.communityArray objectAtIndex:newRow]];
-        
+
         // if the two selected rows differ update data on the hog dictionary and reload table content
         [self.teamDictionary setValue:[flag stringByDeletingPathExtension] forKey:@"flag"];
 
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -62,7 +62,7 @@
                 }
             }
             [self startGame:theButton];
-            
+
             break;
         case 2:
             [[AudioManagerController mainManager] playClickSound];
--- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m	Sun Jan 27 00:28:57 2013 +0100
@@ -96,7 +96,6 @@
 
 // main routine for calling the actual game engine
 -(void) engineLaunch {
-    const char *gameArgs[11];
     CGFloat width, height;
     CGFloat screenScale = [[UIScreen mainScreen] safeScale];
     NSString *ipcString = [[NSString alloc] initWithFormat:@"%d",self.port];
@@ -127,34 +126,64 @@
     // disable tooltips on iPhone
     if (IS_IPAD() == NO)
         tmpQuality = tmpQuality | 0x00000400;
-
-    // prevents using an empty nickname
-    NSString *username = [settings objectForKey:@"username"];
-    if ([username length] == 0)
-        username = [NSString stringWithFormat:@"MobileUser-%@",ipcString];
+    NSString *rawQuality = [NSString stringWithFormat:@"%d",tmpQuality];
+    NSString *documentsDirectory = DOCUMENTS_FOLDER();
 
-    gameArgs[ 0] = [ipcString UTF8String];                                                      //ipcPort
-    gameArgs[ 1] = [horizontalSize UTF8String];                                                 //cScreenWidth
-    gameArgs[ 2] = [verticalSize UTF8String];                                                   //cScreenHeight
-    gameArgs[ 3] = [[NSString stringWithFormat:@"%d",tmpQuality] UTF8String];                   //quality
-    gameArgs[ 4] = [localeString UTF8String];                                                   //cLocaleFName
-    gameArgs[ 5] = [username UTF8String];                                                       //UserNick
-    gameArgs[ 6] = [[[settings objectForKey:@"sound"] stringValue] UTF8String];                 //isSoundEnabled
-    gameArgs[ 7] = [[[settings objectForKey:@"music"] stringValue] UTF8String];                 //isMusicEnabled
-    gameArgs[ 8] = [[[settings objectForKey:@"alternate"] stringValue] UTF8String];             //cAltDamage
-    gameArgs[ 9] = [resourcePath UTF8String];                                                   //PathPrefix
-    gameArgs[10] = ([HWUtils gameType] == gtSave) ? [self.savePath UTF8String] : NULL;          //recordFileName
-
+    NSMutableArray *gameParameters = [[NSMutableArray alloc] initWithObjects:
+                                      @"--internal",
+                                      @"--port", ipcString,
+                                      @"--width", horizontalSize,
+                                      @"--height", verticalSize,
+                                      @"--raw-quality", rawQuality,
+                                      @"--locale", localeString,
+                                      @"--prefix", resourcePath,
+                                      @"--user-prefix", documentsDirectory,
+                                      nil];
     [verticalSize release];
     [horizontalSize release];
     [resourcePath release];
     [localeString release];
     [ipcString release];
 
+    NSString *username = [settings objectForKey:@"username"];
+    if ([username length] > 0) {
+        [gameParameters addObject:@"--nick"];
+        [gameParameters addObject: username];
+    }
+
+    if ([[settings objectForKey:@"sound"] boolValue] == NO)
+        [gameParameters addObject:@"--nosound"];
+
+    if ([[settings objectForKey:@"music"] boolValue] == NO)
+        [gameParameters addObject:@"--nomusic"];
+
+    if([[settings objectForKey:@"alternate"] boolValue] == YES)
+        [gameParameters addObject:@"--altdmg"];
+
+#ifdef DEBUG
+    [gameParameters addObject:@"--showfps"];
+#endif
+
+    if ([HWUtils gameType] == gtSave)
+        [gameParameters addObject:self.savePath];
+
     [HWUtils setGameStatus:gsLoading];
 
+    int argc = [gameParameters count];
+    const char **argv = (const char **)malloc(sizeof(const char*)*argc);
+    for (int i = 0; i < argc; i++)
+        argv[i] = strdup([[gameParameters objectAtIndex:i] UTF8String]);
+    [gameParameters release];
+
     // this is the pascal function that starts the game
-    Game(gameArgs);
+    Game(argc, argv);
+
+    // cleanup
+    for (int i = 0; i < argc; i++)
+        free((void *)argv[i]);
+    free(argv);
+
+    // moar cleanup
     [self lateEngineLaunch];
 }
 
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -51,30 +51,14 @@
 #pragma mark -
 -(void) switchValueChanged:(id) sender {
     UISwitch *theSwitch = (UISwitch *)sender;
-    UISwitch *theOtherSwitch = nil;
     NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
 
     switch (theSwitch.tag) {
         case 10:    //soundSwitch
-            // setting this off will turn off also the switch below (music)
             [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"sound"];
-            [settings setObject:[NSNumber numberWithBool:NO] forKey:@"music"];
-            theOtherSwitch = (UISwitch *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1]].accessoryView;
-            [theOtherSwitch setOn:NO animated:YES];
-
-            // since switching sound on won't turn music on anyways, we can always turn off music
-            [[AudioManagerController mainManager]pauseBackgroundMusic];
-            [settings setObject:[NSNumber numberWithBool:NO] forKey:@"music"];
             break;
         case 20:    //musicSwitch
-            // if switch above (sound) is off, never turn on
-            if (NO == [[settings objectForKey:@"sound"] boolValue]) {
-                [settings setObject:[NSNumber numberWithBool:NO] forKey:@"music"];
-                theOtherSwitch = (UISwitch *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1]].accessoryView;
-                [theOtherSwitch setOn:NO animated:YES];
-            } else
-                [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"music"];
-
+            [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"music"];
             if (theSwitch.on)
                 [[AudioManagerController mainManager] playBackgroundMusic];
             else
@@ -165,7 +149,7 @@
                 editableCell.textField.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
                 editableCell.textField.textColor = [UIColor blackColor];
             }
-            
+
             if (row == 0) {
                 editableCell.titleLabel.text = NSLocalizedString(@"Nickname","from the settings table");
                 editableCell.textField.placeholder = NSLocalizedString(@"Insert your username (if you have one)",@"from the settings table");
@@ -179,7 +163,7 @@
                 editableCell.textField.secureTextEntry = YES;
                 editableCell.tag = 50;
             }
-            
+
             editableCell.accessoryView = nil;
             cell = editableCell;
             break;
@@ -192,10 +176,10 @@
                 cell.accessoryView = theSwitch;
                 [theSwitch release];
             }
-            
+
             switchContent = (UISwitch *)cell.accessoryView;
             if (row == 0) {
-                cell.textLabel.text = NSLocalizedString(@"Sound", @"from the settings table");
+                cell.textLabel.text = NSLocalizedString(@"Sound Effects", @"from the settings table");
                 switchContent.on = [[settings objectForKey:@"sound"] boolValue];
                 switchContent.tag = 10;
             } else {
@@ -213,7 +197,7 @@
                 cell.accessoryView = theSwitch;
                 [theSwitch release];
             }
-            
+
             switchContent = (UISwitch *)cell.accessoryView;
             cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
             switch (row) {
@@ -237,7 +221,7 @@
         default:
             break;
     }
-    
+
     cell.accessoryType = UITableViewCellAccessoryNone;
     cell.selectionStyle = UITableViewCellSelectionStyleNone;
     cell.imageView.image = nil;
--- a/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m	Sun Jan 27 00:28:57 2013 +0100
@@ -35,8 +35,8 @@
 
 -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
     UITouch *touch = [[event allTouches] anyObject];
-    
-    time = touch.timestamp; 
+
+    time = touch.timestamp;
     [self performSelector:@selector(holdAction) withObject:nil afterDelay:0.25];
 
     [super touchesBegan:touches withEvent:event];
@@ -44,12 +44,12 @@
 
 -(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
     UITouch *touch = [[event allTouches] anyObject];
-    
+
     if ( touch.timestamp - time < 0.25 ) {
         [NSObject cancelPreviousPerformRequestsWithTarget:self
                                                  selector:@selector(holdAction)
                                                    object:nil];
-        
+
         [super touchesEnded:touches withEvent:event];
     } else
         [super touchesCancelled:touches withEvent:event];
--- a/project_files/HedgewarsMobile/Classes/LevelViewController.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/LevelViewController.h	Sun Jan 27 00:28:57 2013 +0100
@@ -26,7 +26,7 @@
     NSArray *levelArray;
     NSArray *levelSprites;
     NSIndexPath *lastIndexPath;
-    
+
     NSInteger numberOfSections;
 }
 
--- a/project_files/HedgewarsMobile/Classes/LevelViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/LevelViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -48,19 +48,19 @@
 
 -(void) viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
-    
+
     if ([[[[self.teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:0] objectForKey:@"level"] intValue] == 0)
         numberOfSections = 1;
     else
         numberOfSections = 2;
-    
+
     [self.tableView reloadData];
     // this moves the tableview to the top
     [self.tableView setContentOffset:CGPointMake(0,0) animated:NO];
 }
 
 -(void) viewWillDisappear:(BOOL)animated {
- // stuff like checking that at least 1 field was selected   
+ // stuff like checking that at least 1 field was selected
 }
 
 #pragma mark -
@@ -84,7 +84,7 @@
     NSInteger row = [indexPath row];
     NSInteger section = [indexPath section];
     UITableViewCell *cell;
-    
+
     if (section == 0) {
         cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier0];
         if (cell == nil) {
@@ -104,7 +104,7 @@
         cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
         if (cell == nil)
             cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease];
-        
+
         cell.textLabel.text = [levelArray objectAtIndex:row];
         NSDictionary *hog = [[self.teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:0];
         if ([[hog objectForKey:@"level"] intValue] == row+1) {
@@ -113,14 +113,14 @@
         } else {
             cell.accessoryType = UITableViewCellAccessoryNone;
         }
-        
+
         NSString *botlevelPath = [[NSString alloc] initWithFormat:@"%@/bot%d.png",[[NSBundle mainBundle] resourcePath],row+1];
         UIImage *levelImage = [[UIImage alloc] initWithContentsOfFile:botlevelPath];
         [botlevelPath release];
         cell.imageView.image = levelImage;
         [levelImage release];
     }
-    
+
     return cell;
 }
 
@@ -129,7 +129,7 @@
     NSIndexSet *sections = [[NSIndexSet alloc] initWithIndex:1];
     NSMutableArray *hogs = [self.teamDictionary objectForKey:@"hedgehogs"];
     NSInteger level;
-    
+
     if (theSwitch.on) {
         numberOfSections = 2;
         [self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
@@ -156,19 +156,19 @@
     int newRow = [indexPath row];
     int oldRow = (self.lastIndexPath != nil) ? [self.lastIndexPath row] : -1;
 
-    if ([indexPath section] != 0) { 
+    if ([indexPath section] != 0) {
         if (newRow != oldRow) {
             NSMutableArray *hogs = [self.teamDictionary objectForKey:@"hedgehogs"];
-            
+
             NSInteger level = newRow + 1;
             for (NSMutableDictionary *hog in hogs)
                 [hog setObject:[NSNumber numberWithInt:level] forKey:@"level"];
             DLog(@"New level is %d",level);
-            
+
             // tell our boss to write this new stuff on disk
             [[NSNotificationCenter defaultCenter] postNotificationName:@"setWriteNeedTeams" object:nil];
             [self.tableView reloadData];
-            
+
             self.lastIndexPath = indexPath;
             [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
         }
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitCornersView.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitCornersView.h	Sun Jan 27 00:28:57 2013 +0100
@@ -9,18 +9,18 @@
 #import <UIKit/UIKit.h>
 
 typedef enum _MGCornersPosition {
-	MGCornersPositionLeadingVertical	= 0, // top of screen for a left/right split.
-	MGCornersPositionTrailingVertical	= 1, // bottom of screen for a left/right split.
-	MGCornersPositionLeadingHorizontal	= 2, // left of screen for a top/bottom split.
-	MGCornersPositionTrailingHorizontal	= 3  // right of screen for a top/bottom split.
+    MGCornersPositionLeadingVertical    = 0, // top of screen for a left/right split.
+    MGCornersPositionTrailingVertical   = 1, // bottom of screen for a left/right split.
+    MGCornersPositionLeadingHorizontal  = 2, // left of screen for a top/bottom split.
+    MGCornersPositionTrailingHorizontal = 3  // right of screen for a top/bottom split.
 } MGCornersPosition;
 
 @class MGSplitViewController;
 @interface MGSplitCornersView : UIView {
-	float cornerRadius;
-	MGSplitViewController *splitViewController;
-	MGCornersPosition cornersPosition;
-	UIColor *cornerBackgroundColor;
+    float cornerRadius;
+    MGSplitViewController *splitViewController;
+    MGCornersPosition cornersPosition;
+    UIColor *cornerBackgroundColor;
 }
 
 @property (nonatomic, assign) float cornerRadius;
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitCornersView.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitCornersView.m	Sun Jan 27 00:28:57 2013 +0100
@@ -19,23 +19,23 @@
 - (id)initWithFrame:(CGRect)frame
 {
     if ((self = [super initWithFrame:frame])) {
-		self.contentMode = UIViewContentModeRedraw;
-		self.userInteractionEnabled = NO;
-		self.opaque = NO;
-		self.backgroundColor = [UIColor clearColor];
-		cornerRadius = 0.0; // actual value is set by the splitViewController.
-		cornersPosition = MGCornersPositionLeadingVertical;
+        self.contentMode = UIViewContentModeRedraw;
+        self.userInteractionEnabled = NO;
+        self.opaque = NO;
+        self.backgroundColor = [UIColor clearColor];
+        cornerRadius = 0.0; // actual value is set by the splitViewController.
+        cornersPosition = MGCornersPositionLeadingVertical;
     }
-	
+
     return self;
 }
 
 
 - (void)dealloc
 {
-	self.cornerBackgroundColor = nil;
-	
-	[super dealloc];
+    self.cornerBackgroundColor = nil;
+
+    [super dealloc];
 }
 
 
@@ -45,131 +45,131 @@
 
 - (void)drawRect:(CGRect)rect
 {
-	// Draw two appropriate corners, with cornerBackgroundColor behind them.
-	if (cornerRadius > 0) {
-		if (NO) { // just for debugging.
-			[[UIColor redColor] set];
-			UIRectFill(self.bounds);
-		}
-		
-		float maxX = CGRectGetMaxX(self.bounds);
-		float maxY = CGRectGetMaxY(self.bounds);
-		UIBezierPath *path = [UIBezierPath bezierPath];
-		CGPoint pt = CGPointZero;
-		switch (cornersPosition) {
-			case MGCornersPositionLeadingVertical: // top of screen for a left/right split
-				[path moveToPoint:pt];
-				pt.y += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(90) endAngle:0 clockwise:YES]];
-				pt.x += cornerRadius;
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path addLineToPoint:CGPointZero];
-				[path closePath];
-				
-				pt.x = maxX - cornerRadius;
-				pt.y = 0;
-				[path moveToPoint:pt];
-				pt.y = maxY;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(90) clockwise:YES]];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			case MGCornersPositionTrailingVertical: // bottom of screen for a left/right split
-				pt.y = maxY;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(270) endAngle:degreesToRadians(360) clockwise:NO]];
-				pt.x += cornerRadius;
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				pt.x = maxX - cornerRadius;
-				pt.y = maxY;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(270) clockwise:NO]];
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			case MGCornersPositionLeadingHorizontal: // left of screen for a top/bottom split
-				pt.x = 0;
-				pt.y = cornerRadius;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(270) clockwise:NO]];
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				pt.x = 0;
-				pt.y = maxY - cornerRadius;
-				[path moveToPoint:pt];
-				pt.y = maxY;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(90) clockwise:YES]];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			case MGCornersPositionTrailingHorizontal: // right of screen for a top/bottom split
-				pt.y = cornerRadius;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(270) endAngle:degreesToRadians(360) clockwise:NO]];
-				pt.x += cornerRadius;
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				pt.y = maxY - cornerRadius;
-				[path moveToPoint:pt];
-				pt.y += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(90) endAngle:0 clockwise:YES]];
-				pt.x += cornerRadius;
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			default:
-				break;
-		}
-		
-		[self.cornerBackgroundColor set];
-		[path fill];
-	}
+    // Draw two appropriate corners, with cornerBackgroundColor behind them.
+    if (cornerRadius > 0) {
+        if (NO) { // just for debugging.
+            [[UIColor redColor] set];
+            UIRectFill(self.bounds);
+        }
+
+        float maxX = CGRectGetMaxX(self.bounds);
+        float maxY = CGRectGetMaxY(self.bounds);
+        UIBezierPath *path = [UIBezierPath bezierPath];
+        CGPoint pt = CGPointZero;
+        switch (cornersPosition) {
+            case MGCornersPositionLeadingVertical: // top of screen for a left/right split
+                [path moveToPoint:pt];
+                pt.y += cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(90) endAngle:0 clockwise:YES]];
+                pt.x += cornerRadius;
+                pt.y -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path addLineToPoint:CGPointZero];
+                [path closePath];
+
+                pt.x = maxX - cornerRadius;
+                pt.y = 0;
+                [path moveToPoint:pt];
+                pt.y = maxY;
+                [path addLineToPoint:pt];
+                pt.x += cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(90) clockwise:YES]];
+                pt.y -= cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path closePath];
+
+                break;
+
+            case MGCornersPositionTrailingVertical: // bottom of screen for a left/right split
+                pt.y = maxY;
+                [path moveToPoint:pt];
+                pt.y -= cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(270) endAngle:degreesToRadians(360) clockwise:NO]];
+                pt.x += cornerRadius;
+                pt.y += cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path closePath];
+
+                pt.x = maxX - cornerRadius;
+                pt.y = maxY;
+                [path moveToPoint:pt];
+                pt.y -= cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x += cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(270) clockwise:NO]];
+                pt.y += cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path closePath];
+
+                break;
+
+            case MGCornersPositionLeadingHorizontal: // left of screen for a top/bottom split
+                pt.x = 0;
+                pt.y = cornerRadius;
+                [path moveToPoint:pt];
+                pt.y -= cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x += cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(270) clockwise:NO]];
+                pt.y += cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path closePath];
+
+                pt.x = 0;
+                pt.y = maxY - cornerRadius;
+                [path moveToPoint:pt];
+                pt.y = maxY;
+                [path addLineToPoint:pt];
+                pt.x += cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(180) endAngle:degreesToRadians(90) clockwise:YES]];
+                pt.y -= cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path closePath];
+
+                break;
+
+            case MGCornersPositionTrailingHorizontal: // right of screen for a top/bottom split
+                pt.y = cornerRadius;
+                [path moveToPoint:pt];
+                pt.y -= cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(270) endAngle:degreesToRadians(360) clockwise:NO]];
+                pt.x += cornerRadius;
+                pt.y += cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path closePath];
+
+                pt.y = maxY - cornerRadius;
+                [path moveToPoint:pt];
+                pt.y += cornerRadius;
+                [path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:degreesToRadians(90) endAngle:0 clockwise:YES]];
+                pt.x += cornerRadius;
+                pt.y -= cornerRadius;
+                [path addLineToPoint:pt];
+                pt.x -= cornerRadius;
+                [path addLineToPoint:pt];
+                [path closePath];
+
+                break;
+
+            default:
+                break;
+        }
+
+        [self.cornerBackgroundColor set];
+        [path fill];
+    }
 }
 
 
@@ -179,38 +179,38 @@
 
 - (void)setCornerRadius:(float)newRadius
 {
-	if (newRadius != cornerRadius) {
-		cornerRadius = newRadius;
-		[self setNeedsDisplay];
-	}
+    if (newRadius != cornerRadius) {
+        cornerRadius = newRadius;
+        [self setNeedsDisplay];
+    }
 }
 
 
 - (void)setSplitViewController:(MGSplitViewController *)theController
 {
-	if (theController != splitViewController) {
-		splitViewController = theController;
-		[self setNeedsDisplay];
-	}
+    if (theController != splitViewController) {
+        splitViewController = theController;
+        [self setNeedsDisplay];
+    }
 }
 
 
 - (void)setCornersPosition:(MGCornersPosition)posn
 {
-	if (cornersPosition != posn) {
-		cornersPosition = posn;
-		[self setNeedsDisplay];
-	}
+    if (cornersPosition != posn) {
+        cornersPosition = posn;
+        [self setNeedsDisplay];
+    }
 }
 
 
 - (void)setCornerBackgroundColor:(UIColor *)color
 {
-	if (color != cornerBackgroundColor) {
-		[cornerBackgroundColor release];
-		cornerBackgroundColor = [color retain];
-		[self setNeedsDisplay];
-	}
+    if (color != cornerBackgroundColor) {
+        [cornerBackgroundColor release];
+        cornerBackgroundColor = [color retain];
+        [self setNeedsDisplay];
+    }
 }
 
 
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitDividerView.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitDividerView.h	Sun Jan 27 00:28:57 2013 +0100
@@ -10,8 +10,8 @@
 
 @class MGSplitViewController;
 @interface MGSplitDividerView : UIView {
-	MGSplitViewController *splitViewController;
-	BOOL allowsDragging;
+    MGSplitViewController *splitViewController;
+    BOOL allowsDragging;
 }
 
 @property (nonatomic, assign) MGSplitViewController *splitViewController; // weak ref.
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitDividerView.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitDividerView.m	Sun Jan 27 00:28:57 2013 +0100
@@ -19,19 +19,19 @@
 
 - (id)initWithFrame:(CGRect)frame
 {
-	if ((self = [super initWithFrame:frame])) {
-		self.userInteractionEnabled = NO;
-		self.allowsDragging = NO;
-		self.contentMode = UIViewContentModeRedraw;
-	}
-	return self;
+    if ((self = [super initWithFrame:frame])) {
+        self.userInteractionEnabled = NO;
+        self.allowsDragging = NO;
+        self.contentMode = UIViewContentModeRedraw;
+    }
+    return self;
 }
 
 
 - (void)dealloc
 {
-	self.splitViewController = nil;
-	[super dealloc];
+    self.splitViewController = nil;
+    [super dealloc];
 }
 
 
@@ -41,139 +41,139 @@
 
 - (void)drawRect:(CGRect)rect
 {
-	if (splitViewController.dividerStyle == MGSplitViewDividerStyleThin) {
-		[super drawRect:rect];
-		
-	} else if (splitViewController.dividerStyle == MGSplitViewDividerStylePaneSplitter) {
-		// Draw gradient background.
-		CGRect bounds = self.bounds;
-		CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
-		CGFloat locations[2] = {0, 1};
-		CGFloat components[8] = {	0.988, 0.988, 0.988, 1.0,  // light
-									0.875, 0.875, 0.875, 1.0 };// dark
-		CGGradientRef gradient = CGGradientCreateWithColorComponents (rgb, components, locations, 2);
-		CGContextRef context = UIGraphicsGetCurrentContext();
-		CGPoint start, end;
-		if (splitViewController.vertical) {
-			// Light left to dark right.
-			start = CGPointMake(CGRectGetMinX(bounds), CGRectGetMidY(bounds));
-			end = CGPointMake(CGRectGetMaxX(bounds), CGRectGetMidY(bounds));
-		} else {
-			// Light top to dark bottom.
-			start = CGPointMake(CGRectGetMidX(bounds), CGRectGetMinY(bounds));
-			end = CGPointMake(CGRectGetMidX(bounds), CGRectGetMaxY(bounds));
-		}
-		CGContextDrawLinearGradient(context, gradient, start, end, 0);
-		CGColorSpaceRelease(rgb);
-		CGGradientRelease(gradient);
-		
-		// Draw borders.
-		float borderThickness = 1.0;
-		[[UIColor colorWithWhite:0.7 alpha:1.0] set];
-		CGRect borderRect = bounds;
-		if (splitViewController.vertical) {
-			borderRect.size.width = borderThickness;
-			UIRectFill(borderRect);
-			borderRect.origin.x = CGRectGetMaxX(bounds) - borderThickness;
-			UIRectFill(borderRect);
-			
-		} else {
-			borderRect.size.height = borderThickness;
-			UIRectFill(borderRect);
-			borderRect.origin.y = CGRectGetMaxY(bounds) - borderThickness;
-			UIRectFill(borderRect);
-		}
-		
-		// Draw grip.
-		[self drawGripThumbInRect:bounds];
-	}
+    if (splitViewController.dividerStyle == MGSplitViewDividerStyleThin) {
+        [super drawRect:rect];
+
+    } else if (splitViewController.dividerStyle == MGSplitViewDividerStylePaneSplitter) {
+        // Draw gradient background.
+        CGRect bounds = self.bounds;
+        CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
+        CGFloat locations[2] = {0, 1};
+        CGFloat components[8] = {   0.988, 0.988, 0.988, 1.0,  // light
+                                    0.875, 0.875, 0.875, 1.0 };// dark
+        CGGradientRef gradient = CGGradientCreateWithColorComponents (rgb, components, locations, 2);
+        CGContextRef context = UIGraphicsGetCurrentContext();
+        CGPoint start, end;
+        if (splitViewController.vertical) {
+            // Light left to dark right.
+            start = CGPointMake(CGRectGetMinX(bounds), CGRectGetMidY(bounds));
+            end = CGPointMake(CGRectGetMaxX(bounds), CGRectGetMidY(bounds));
+        } else {
+            // Light top to dark bottom.
+            start = CGPointMake(CGRectGetMidX(bounds), CGRectGetMinY(bounds));
+            end = CGPointMake(CGRectGetMidX(bounds), CGRectGetMaxY(bounds));
+        }
+        CGContextDrawLinearGradient(context, gradient, start, end, 0);
+        CGColorSpaceRelease(rgb);
+        CGGradientRelease(gradient);
+
+        // Draw borders.
+        float borderThickness = 1.0;
+        [[UIColor colorWithWhite:0.7 alpha:1.0] set];
+        CGRect borderRect = bounds;
+        if (splitViewController.vertical) {
+            borderRect.size.width = borderThickness;
+            UIRectFill(borderRect);
+            borderRect.origin.x = CGRectGetMaxX(bounds) - borderThickness;
+            UIRectFill(borderRect);
+
+        } else {
+            borderRect.size.height = borderThickness;
+            UIRectFill(borderRect);
+            borderRect.origin.y = CGRectGetMaxY(bounds) - borderThickness;
+            UIRectFill(borderRect);
+        }
+
+        // Draw grip.
+        [self drawGripThumbInRect:bounds];
+    }
 }
 
 
 - (void)drawGripThumbInRect:(CGRect)rect
 {
-	float width = 9.0;
-	float height;
-	if (splitViewController.vertical) {
-		height = 30.0;
-	} else {
-		height = width;
-		width = 30.0;
-	}
-	
-	// Draw grip in centred in rect.
-	CGRect gripRect = CGRectMake(0, 0, width, height);
-	gripRect.origin.x = ((rect.size.width - gripRect.size.width) / 2.0);
-	gripRect.origin.y = ((rect.size.height - gripRect.size.height) / 2.0);
-	
-	float stripThickness = 1.0;
-	UIColor *stripColor = [UIColor colorWithWhite:0.35 alpha:1.0];
-	UIColor *lightColor = [UIColor colorWithWhite:1.0 alpha:1.0];
-	float space = 3.0;
-	if (splitViewController.vertical) {
-		gripRect.size.width = stripThickness;
-		[stripColor set];
-		UIRectFill(gripRect);
-		
-		gripRect.origin.x += stripThickness;
-		gripRect.origin.y += 1;
-		[lightColor set];
-		UIRectFill(gripRect);
-		gripRect.origin.x -= stripThickness;
-		gripRect.origin.y -= 1;
-		
-		gripRect.origin.x += space + stripThickness;
-		[stripColor set];
-		UIRectFill(gripRect);
-		
-		gripRect.origin.x += stripThickness;
-		gripRect.origin.y += 1;
-		[lightColor set];
-		UIRectFill(gripRect);
-		gripRect.origin.x -= stripThickness;
-		gripRect.origin.y -= 1;
-		
-		gripRect.origin.x += space + stripThickness;
-		[stripColor set];
-		UIRectFill(gripRect);
-		
-		gripRect.origin.x += stripThickness;
-		gripRect.origin.y += 1;
-		[lightColor set];
-		UIRectFill(gripRect);
-		
-	} else {
-		gripRect.size.height = stripThickness;
-		[stripColor set];
-		UIRectFill(gripRect);
-		
-		gripRect.origin.y += stripThickness;
-		gripRect.origin.x -= 1;
-		[lightColor set];
-		UIRectFill(gripRect);
-		gripRect.origin.y -= stripThickness;
-		gripRect.origin.x += 1;
-		
-		gripRect.origin.y += space + stripThickness;
-		[stripColor set];
-		UIRectFill(gripRect);
-		
-		gripRect.origin.y += stripThickness;
-		gripRect.origin.x -= 1;
-		[lightColor set];
-		UIRectFill(gripRect);
-		gripRect.origin.y -= stripThickness;
-		gripRect.origin.x += 1;
-		
-		gripRect.origin.y += space + stripThickness;
-		[stripColor set];
-		UIRectFill(gripRect);
-		
-		gripRect.origin.y += stripThickness;
-		gripRect.origin.x -= 1;
-		[lightColor set];
-		UIRectFill(gripRect);
-	}
+    float width = 9.0;
+    float height;
+    if (splitViewController.vertical) {
+        height = 30.0;
+    } else {
+        height = width;
+        width = 30.0;
+    }
+
+    // Draw grip in centred in rect.
+    CGRect gripRect = CGRectMake(0, 0, width, height);
+    gripRect.origin.x = ((rect.size.width - gripRect.size.width) / 2.0);
+    gripRect.origin.y = ((rect.size.height - gripRect.size.height) / 2.0);
+
+    float stripThickness = 1.0;
+    UIColor *stripColor = [UIColor colorWithWhite:0.35 alpha:1.0];
+    UIColor *lightColor = [UIColor colorWithWhite:1.0 alpha:1.0];
+    float space = 3.0;
+    if (splitViewController.vertical) {
+        gripRect.size.width = stripThickness;
+        [stripColor set];
+        UIRectFill(gripRect);
+
+        gripRect.origin.x += stripThickness;
+        gripRect.origin.y += 1;
+        [lightColor set];
+        UIRectFill(gripRect);
+        gripRect.origin.x -= stripThickness;
+        gripRect.origin.y -= 1;
+
+        gripRect.origin.x += space + stripThickness;
+        [stripColor set];
+        UIRectFill(gripRect);
+
+        gripRect.origin.x += stripThickness;
+        gripRect.origin.y += 1;
+        [lightColor set];
+        UIRectFill(gripRect);
+        gripRect.origin.x -= stripThickness;
+        gripRect.origin.y -= 1;
+
+        gripRect.origin.x += space + stripThickness;
+        [stripColor set];
+        UIRectFill(gripRect);
+
+        gripRect.origin.x += stripThickness;
+        gripRect.origin.y += 1;
+        [lightColor set];
+        UIRectFill(gripRect);
+
+    } else {
+        gripRect.size.height = stripThickness;
+        [stripColor set];
+        UIRectFill(gripRect);
+
+        gripRect.origin.y += stripThickness;
+        gripRect.origin.x -= 1;
+        [lightColor set];
+        UIRectFill(gripRect);
+        gripRect.origin.y -= stripThickness;
+        gripRect.origin.x += 1;
+
+        gripRect.origin.y += space + stripThickness;
+        [stripColor set];
+        UIRectFill(gripRect);
+
+        gripRect.origin.y += stripThickness;
+        gripRect.origin.x -= 1;
+        [lightColor set];
+        UIRectFill(gripRect);
+        gripRect.origin.y -= stripThickness;
+        gripRect.origin.x += 1;
+
+        gripRect.origin.y += space + stripThickness;
+        [stripColor set];
+        UIRectFill(gripRect);
+
+        gripRect.origin.y += stripThickness;
+        gripRect.origin.x -= 1;
+        [lightColor set];
+        UIRectFill(gripRect);
+    }
 }
 
 
@@ -183,16 +183,16 @@
 
 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
 {
-	UITouch *touch = [touches anyObject];
-	if (touch) {
-		CGPoint lastPt = [touch previousLocationInView:self];
-		CGPoint pt = [touch locationInView:self];
-		float offset = (splitViewController.vertical) ? pt.x - lastPt.x : pt.y - lastPt.y;
-		if (!splitViewController.masterBeforeDetail) {
-			offset = -offset;
-		}
-		splitViewController.splitPosition = splitViewController.splitPosition + offset;
-	}
+    UITouch *touch = [touches anyObject];
+    if (touch) {
+        CGPoint lastPt = [touch previousLocationInView:self];
+        CGPoint pt = [touch locationInView:self];
+        float offset = (splitViewController.vertical) ? pt.x - lastPt.x : pt.y - lastPt.y;
+        if (!splitViewController.masterBeforeDetail) {
+            offset = -offset;
+        }
+        splitViewController.splitPosition = splitViewController.splitPosition + offset;
+    }
 }
 
 
@@ -202,10 +202,10 @@
 
 - (void)setAllowsDragging:(BOOL)flag
 {
-	if (flag != allowsDragging) {
-		allowsDragging = flag;
-		self.userInteractionEnabled = allowsDragging;
-	}
+    if (flag != allowsDragging) {
+        allowsDragging = flag;
+        self.userInteractionEnabled = allowsDragging;
+    }
 }
 
 
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitViewController.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitViewController.h	Sun Jan 27 00:28:57 2013 +0100
@@ -9,28 +9,28 @@
 #import <UIKit/UIKit.h>
 
 typedef enum _MGSplitViewDividerStyle {
-	// These names have been chosen to be conceptually similar to those of NSSplitView on Mac OS X.
-	MGSplitViewDividerStyleThin			= 0, // Thin divider, like UISplitViewController (default).
-	MGSplitViewDividerStylePaneSplitter	= 1  // Thick divider, drawn with a grey gradient and a grab-strip.
+    // These names have been chosen to be conceptually similar to those of NSSplitView on Mac OS X.
+    MGSplitViewDividerStyleThin         = 0, // Thin divider, like UISplitViewController (default).
+    MGSplitViewDividerStylePaneSplitter = 1  // Thick divider, drawn with a grey gradient and a grab-strip.
 } MGSplitViewDividerStyle;
 
 @class MGSplitDividerView;
 @protocol MGSplitViewControllerDelegate;
 @interface MGSplitViewController : UIViewController <UIPopoverControllerDelegate> {
-	BOOL _showsMasterInPortrait;
-	BOOL _showsMasterInLandscape;
-	float _splitWidth;
-	id _delegate;
-	BOOL _vertical;
-	BOOL _masterBeforeDetail;
-	NSMutableArray *_viewControllers;
-	UIBarButtonItem *_barButtonItem; // To be compliant with wacky UISplitViewController behaviour.
+    BOOL _showsMasterInPortrait;
+    BOOL _showsMasterInLandscape;
+    float _splitWidth;
+    id _delegate;
+    BOOL _vertical;
+    BOOL _masterBeforeDetail;
+    NSMutableArray *_viewControllers;
+    UIBarButtonItem *_barButtonItem; // To be compliant with wacky UISplitViewController behaviour.
     UIPopoverController *_hiddenPopoverController; // Popover used to hold the master view if it's not always visible.
-	MGSplitDividerView *_dividerView; // View that draws the divider between the master and detail views.
-	NSArray *_cornerViews; // Views to draw the inner rounded corners between master and detail views.
-	float _splitPosition;
-	BOOL _reconfigurePopup;
-	MGSplitViewDividerStyle _dividerStyle; // Meta-setting which configures several aspects of appearance and behaviour.
+    MGSplitDividerView *_dividerView; // View that draws the divider between the master and detail views.
+    NSArray *_cornerViews; // Views to draw the inner rounded corners between master and detail views.
+    float _splitPosition;
+    BOOL _reconfigurePopup;
+    MGSplitViewDividerStyle _dividerStyle; // Meta-setting which configures several aspects of appearance and behaviour.
 }
 
 @property (nonatomic, assign) IBOutlet id <MGSplitViewControllerDelegate> delegate;
@@ -60,14 +60,14 @@
 // Conveniences for you, because I care.
 - (BOOL)isShowingMaster;
 - (void)setSplitPosition:(float)posn animated:(BOOL)animate; // Allows for animation of splitPosition changes. The property's regular setter is not animated.
-/* Note:	splitPosition is the width (in a left/right split, or height in a top/bottom split) of the master view.
-			It is relative to the appropriate side of the splitView, which can be any of the four sides depending on the values in isMasterBeforeDetail and isVertical:
-				isVertical = YES, isMasterBeforeDetail = YES: splitPosition is relative to the LEFT edge. (Default)
-				isVertical = YES, isMasterBeforeDetail = NO: splitPosition is relative to the RIGHT edge.
- 				isVertical = NO, isMasterBeforeDetail = YES: splitPosition is relative to the TOP edge.
- 				isVertical = NO, isMasterBeforeDetail = NO: splitPosition is relative to the BOTTOM edge.
+/* Note:    splitPosition is the width (in a left/right split, or height in a top/bottom split) of the master view.
+            It is relative to the appropriate side of the splitView, which can be any of the four sides depending on the values in isMasterBeforeDetail and isVertical:
+                isVertical = YES, isMasterBeforeDetail = YES: splitPosition is relative to the LEFT edge. (Default)
+                isVertical = YES, isMasterBeforeDetail = NO: splitPosition is relative to the RIGHT edge.
+                isVertical = NO, isMasterBeforeDetail = YES: splitPosition is relative to the TOP edge.
+                isVertical = NO, isMasterBeforeDetail = NO: splitPosition is relative to the BOTTOM edge.
 
-			This implementation was chosen so you don't need to recalculate equivalent splitPositions if the user toggles masterBeforeDetail themselves.
+            This implementation was chosen so you don't need to recalculate equivalent splitPositions if the user toggles masterBeforeDetail themselves.
  */
 - (void)setDividerStyle:(MGSplitViewDividerStyle)newStyle animated:(BOOL)animate; // Allows for animation of dividerStyle changes. The property's regular setter is not animated.
 - (NSArray *)cornerViews;
@@ -76,8 +76,8 @@
  The first view is the "leading" corners (top edge of screen for left/right split, left edge of screen for top/bottom split).
  The second view is the "trailing" corners (bottom edge of screen for left/right split, right edge of screen for top/bottom split).
  Do NOT modify them, except to:
-	1. Change their .cornerBackgroundColor
-	2. Change their .cornerRadius
+    1. Change their .cornerBackgroundColor
+    2. Change their .cornerRadius
  */
 
 @end
@@ -88,19 +88,19 @@
 @optional
 
 // Called when a button should be added to a toolbar for a hidden view controller.
-- (void)splitViewController:(MGSplitViewController*)svc 
-	 willHideViewController:(UIViewController *)aViewController 
-		  withBarButtonItem:(UIBarButtonItem*)barButtonItem 
-	   forPopoverController: (UIPopoverController*)pc;
+- (void)splitViewController:(MGSplitViewController*)svc
+     willHideViewController:(UIViewController *)aViewController
+          withBarButtonItem:(UIBarButtonItem*)barButtonItem
+       forPopoverController: (UIPopoverController*)pc;
 
 // Called when the master view is shown again in the split view, invalidating the button and popover controller.
-- (void)splitViewController:(MGSplitViewController*)svc 
-	 willShowViewController:(UIViewController *)aViewController 
+- (void)splitViewController:(MGSplitViewController*)svc
+     willShowViewController:(UIViewController *)aViewController
   invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem;
 
 // Called when the master view is shown in a popover, so the delegate can take action like hiding other popovers.
-- (void)splitViewController:(MGSplitViewController*)svc 
-		  popoverController:(UIPopoverController*)pc 
+- (void)splitViewController:(MGSplitViewController*)svc
+          popoverController:(UIPopoverController*)pc
   willPresentViewController:(UIViewController *)aViewController;
 
 // Called when the split orientation will change (from vertical to horizontal, or vice versa).
--- a/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MGSplitViewController/MGSplitViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -10,18 +10,18 @@
 #import "MGSplitDividerView.h"
 #import "MGSplitCornersView.h"
 
-#define MG_DEFAULT_SPLIT_POSITION		320.0	// default width of master view in UISplitViewController.
-#define MG_DEFAULT_SPLIT_WIDTH			1.0		// default width of split-gutter in UISplitViewController.
-#define MG_DEFAULT_CORNER_RADIUS		5.0		// default corner-radius of overlapping split-inner corners on the master and detail views.
-#define MG_DEFAULT_CORNER_COLOR			[UIColor blackColor]	// default color of intruding inner corners (and divider background).
+#define MG_DEFAULT_SPLIT_POSITION       320.0   // default width of master view in UISplitViewController.
+#define MG_DEFAULT_SPLIT_WIDTH          1.0     // default width of split-gutter in UISplitViewController.
+#define MG_DEFAULT_CORNER_RADIUS        5.0     // default corner-radius of overlapping split-inner corners on the master and detail views.
+#define MG_DEFAULT_CORNER_COLOR         [UIColor blackColor]    // default color of intruding inner corners (and divider background).
 
-#define MG_PANESPLITTER_CORNER_RADIUS	0.0		// corner-radius of split-inner corners for MGSplitViewDividerStylePaneSplitter style.
-#define MG_PANESPLITTER_SPLIT_WIDTH		25.0	// width of split-gutter for MGSplitViewDividerStylePaneSplitter style.
+#define MG_PANESPLITTER_CORNER_RADIUS   0.0     // corner-radius of split-inner corners for MGSplitViewDividerStylePaneSplitter style.
+#define MG_PANESPLITTER_SPLIT_WIDTH     25.0    // width of split-gutter for MGSplitViewDividerStylePaneSplitter style.
 
-#define MG_MIN_VIEW_WIDTH				200.0	// minimum width a view is allowed to become as a result of changing the splitPosition.
+#define MG_MIN_VIEW_WIDTH               200.0   // minimum width a view is allowed to become as a result of changing the splitPosition.
 
-#define MG_ANIMATION_CHANGE_SPLIT_ORIENTATION	@"ChangeSplitOrientation"	// Animation ID for internal use.
-#define MG_ANIMATION_CHANGE_SUBVIEWS_ORDER		@"ChangeSubviewsOrder"	// Animation ID for internal use.
+#define MG_ANIMATION_CHANGE_SPLIT_ORIENTATION   @"ChangeSplitOrientation"   // Animation ID for internal use.
+#define MG_ANIMATION_CHANGE_SUBVIEWS_ORDER      @"ChangeSubviewsOrder"  // Animation ID for internal use.
 
 
 @interface MGSplitViewController (MGPrivateMethods)
@@ -48,50 +48,50 @@
 
 - (NSString *)nameOfInterfaceOrientation:(UIInterfaceOrientation)theOrientation
 {
-	NSString *orientationName = nil;
-	switch (theOrientation) {
-		case UIInterfaceOrientationPortrait:
-			orientationName = @"Portrait"; // Home button at bottom
-			break;
-		case UIInterfaceOrientationPortraitUpsideDown:
-			orientationName = @"Portrait (Upside Down)"; // Home button at top
-			break;
-		case UIInterfaceOrientationLandscapeLeft:
-			orientationName = @"Landscape (Left)"; // Home button on left
-			break;
-		case UIInterfaceOrientationLandscapeRight:
-			orientationName = @"Landscape (Right)"; // Home button on right
-			break;
-		default:
-			break;
-	}
-	
-	return orientationName;
+    NSString *orientationName = nil;
+    switch (theOrientation) {
+        case UIInterfaceOrientationPortrait:
+            orientationName = @"Portrait"; // Home button at bottom
+            break;
+        case UIInterfaceOrientationPortraitUpsideDown:
+            orientationName = @"Portrait (Upside Down)"; // Home button at top
+            break;
+        case UIInterfaceOrientationLandscapeLeft:
+            orientationName = @"Landscape (Left)"; // Home button on left
+            break;
+        case UIInterfaceOrientationLandscapeRight:
+            orientationName = @"Landscape (Right)"; // Home button on right
+            break;
+        default:
+            break;
+    }
+
+    return orientationName;
 }
 
 
 - (BOOL)isLandscape
 {
-	return UIInterfaceOrientationIsLandscape(self.interfaceOrientation);
+    return UIInterfaceOrientationIsLandscape(self.interfaceOrientation);
 }
 
 
 - (BOOL)shouldShowMasterForInterfaceOrientation:(UIInterfaceOrientation)theOrientation
 {
-	// Returns YES if master view should be shown directly embedded in the splitview, instead of hidden in a popover.
-	return ((UIInterfaceOrientationIsLandscape(theOrientation)) ? _showsMasterInLandscape : _showsMasterInPortrait);
+    // Returns YES if master view should be shown directly embedded in the splitview, instead of hidden in a popover.
+    return ((UIInterfaceOrientationIsLandscape(theOrientation)) ? _showsMasterInLandscape : _showsMasterInPortrait);
 }
 
 
 - (BOOL)shouldShowMaster
 {
-	return [self shouldShowMasterForInterfaceOrientation:self.interfaceOrientation];
+    return [self shouldShowMasterForInterfaceOrientation:self.interfaceOrientation];
 }
 
 
 - (BOOL)isShowingMaster
 {
-	return [self shouldShowMaster] && self.masterViewController && self.masterViewController.view && ([self.masterViewController.view superview] == self.view);
+    return [self shouldShowMaster] && self.masterViewController && self.masterViewController.view && ([self.masterViewController.view superview] == self.view);
 }
 
 
@@ -101,61 +101,61 @@
 
 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
 {
-	if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
-		[self setup];
-	}
-	
-	return self;
+    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
+        [self setup];
+    }
+
+    return self;
 }
 
 
 - (id)initWithCoder:(NSCoder *)aDecoder
 {
-	if ((self = [super initWithCoder:aDecoder])) {
-		[self setup];
-	}
-	
-	return self;
+    if ((self = [super initWithCoder:aDecoder])) {
+        [self setup];
+    }
+
+    return self;
 }
 
 
 - (void)setup
 {
-	// Configure default behaviour.
-	_viewControllers = [[NSMutableArray alloc] initWithObjects:[NSNull null], [NSNull null], nil];
-	_splitWidth = MG_DEFAULT_SPLIT_WIDTH;
-	_showsMasterInPortrait = NO;
-	_showsMasterInLandscape = YES;
-	_reconfigurePopup = NO;
-	_vertical = YES;
-	_masterBeforeDetail = YES;
-	_splitPosition = MG_DEFAULT_SPLIT_POSITION;
-	CGRect divRect = self.view.bounds;
-	if ([self isVertical]) {
-		divRect.origin.y = _splitPosition;
-		divRect.size.height = _splitWidth;
-	} else {
-		divRect.origin.x = _splitPosition;
-		divRect.size.width = _splitWidth;
-	}
-	_dividerView = [[MGSplitDividerView alloc] initWithFrame:divRect];
-	_dividerView.splitViewController = self;
-	_dividerView.backgroundColor = MG_DEFAULT_CORNER_COLOR;
-	_dividerStyle = MGSplitViewDividerStyleThin;
+    // Configure default behaviour.
+    _viewControllers = [[NSMutableArray alloc] initWithObjects:[NSNull null], [NSNull null], nil];
+    _splitWidth = MG_DEFAULT_SPLIT_WIDTH;
+    _showsMasterInPortrait = NO;
+    _showsMasterInLandscape = YES;
+    _reconfigurePopup = NO;
+    _vertical = YES;
+    _masterBeforeDetail = YES;
+    _splitPosition = MG_DEFAULT_SPLIT_POSITION;
+    CGRect divRect = self.view.bounds;
+    if ([self isVertical]) {
+        divRect.origin.y = _splitPosition;
+        divRect.size.height = _splitWidth;
+    } else {
+        divRect.origin.x = _splitPosition;
+        divRect.size.width = _splitWidth;
+    }
+    _dividerView = [[MGSplitDividerView alloc] initWithFrame:divRect];
+    _dividerView.splitViewController = self;
+    _dividerView.backgroundColor = MG_DEFAULT_CORNER_COLOR;
+    _dividerStyle = MGSplitViewDividerStyleThin;
 }
 
 
 - (void)dealloc
 {
-	_delegate = nil;
-	[self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
-	[_viewControllers release];
-	[_barButtonItem release];
-	[_hiddenPopoverController release];
-	[_dividerView release];
-	[_cornerViews release];
-	
-	[super dealloc];
+    _delegate = nil;
+    [self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
+    [_viewControllers release];
+    [_barButtonItem release];
+    [_hiddenPopoverController release];
+    [_dividerView release];
+    [_cornerViews release];
+
+    [super dealloc];
 }
 
 
@@ -171,371 +171,371 @@
 
 - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
 {
-	[self.masterViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
-	[self.detailViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
+    [self.masterViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
+    [self.detailViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
 }
 
 
 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
 {
-	[self.masterViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
-	[self.detailViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
+    [self.masterViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
+    [self.detailViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
 }
 
 
-- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
-										 duration:(NSTimeInterval)duration
+- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
+                                         duration:(NSTimeInterval)duration
 {
-	[self.masterViewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
-	[self.detailViewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
-	
-	// Hide popover.
-	if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-		[_hiddenPopoverController dismissPopoverAnimated:NO];
-	}
-	
-	// Re-tile views.
-	_reconfigurePopup = YES;
-	[self layoutSubviewsForInterfaceOrientation:toInterfaceOrientation withAnimation:YES];
+    [self.masterViewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
+    [self.detailViewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
+
+    // Hide popover.
+    if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+        [_hiddenPopoverController dismissPopoverAnimated:NO];
+    }
+
+    // Re-tile views.
+    _reconfigurePopup = YES;
+    [self layoutSubviewsForInterfaceOrientation:toInterfaceOrientation withAnimation:YES];
 }
 
 
 - (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
 {
-	[self.masterViewController willAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
-	[self.detailViewController willAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
+    [self.masterViewController willAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
+    [self.detailViewController willAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
 }
 
 
 - (void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
 {
-	[self.masterViewController didAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation];
-	[self.detailViewController didAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation];
+    [self.masterViewController didAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation];
+    [self.detailViewController didAnimateFirstHalfOfRotationToInterfaceOrientation:toInterfaceOrientation];
 }
 
 
 - (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration
 {
-	[self.masterViewController willAnimateSecondHalfOfRotationFromInterfaceOrientation:fromInterfaceOrientation duration:duration];
-	[self.detailViewController willAnimateSecondHalfOfRotationFromInterfaceOrientation:fromInterfaceOrientation duration:duration];
+    [self.masterViewController willAnimateSecondHalfOfRotationFromInterfaceOrientation:fromInterfaceOrientation duration:duration];
+    [self.detailViewController willAnimateSecondHalfOfRotationFromInterfaceOrientation:fromInterfaceOrientation duration:duration];
 }
 
 
 - (CGSize)splitViewSizeForOrientation:(UIInterfaceOrientation)theOrientation
 {
-	UIScreen *screen = [UIScreen mainScreen];
-	CGRect fullScreenRect = screen.bounds; // always implicitly in Portrait orientation.
-	CGRect appFrame = screen.applicationFrame;
-	
-	// Find status bar height by checking which dimension of the applicationFrame is narrower than screen bounds.
-	// Little bit ugly looking, but it'll still work even if they change the status bar height in future.
-	float statusBarHeight = MAX((fullScreenRect.size.width - appFrame.size.width), (fullScreenRect.size.height - appFrame.size.height));
-	
-	// Initially assume portrait orientation.
-	float width = fullScreenRect.size.width;
-	float height = fullScreenRect.size.height;
-	
-	// Correct for orientation.
-	if (UIInterfaceOrientationIsLandscape(theOrientation)) {
-		width = height;
-		height = fullScreenRect.size.width;
-	}
-	
-	// Account for status bar, which always subtracts from the height (since it's always at the top of the screen).
-	height -= statusBarHeight;
-	
-	return CGSizeMake(width, height);
+    UIScreen *screen = [UIScreen mainScreen];
+    CGRect fullScreenRect = screen.bounds; // always implicitly in Portrait orientation.
+    CGRect appFrame = screen.applicationFrame;
+
+    // Find status bar height by checking which dimension of the applicationFrame is narrower than screen bounds.
+    // Little bit ugly looking, but it'll still work even if they change the status bar height in future.
+    float statusBarHeight = MAX((fullScreenRect.size.width - appFrame.size.width), (fullScreenRect.size.height - appFrame.size.height));
+
+    // Initially assume portrait orientation.
+    float width = fullScreenRect.size.width;
+    float height = fullScreenRect.size.height;
+
+    // Correct for orientation.
+    if (UIInterfaceOrientationIsLandscape(theOrientation)) {
+        width = height;
+        height = fullScreenRect.size.width;
+    }
+
+    // Account for status bar, which always subtracts from the height (since it's always at the top of the screen).
+    height -= statusBarHeight;
+
+    return CGSizeMake(width, height);
 }
 
 
 - (void)layoutSubviewsForInterfaceOrientation:(UIInterfaceOrientation)theOrientation withAnimation:(BOOL)animate
 {
-	if (_reconfigurePopup) {
-		[self reconfigureForMasterInPopover:![self shouldShowMasterForInterfaceOrientation:theOrientation]];
-	}
-	
-	// Layout the master, detail and divider views appropriately, adding/removing subviews as needed.
-	// First obtain relevant geometry.
-	CGSize fullSize = [self splitViewSizeForOrientation:theOrientation];
-	float width = fullSize.width;
-	float height = fullSize.height;
-	
-	if (NO) { // Just for debugging.
-		NSLog(@"Target orientation is %@, dimensions will be %.0f x %.0f", 
-			  [self nameOfInterfaceOrientation:theOrientation], width, height);
-	}
-	
-	// Layout the master, divider and detail views.
-	CGRect newFrame = CGRectMake(0, 0, width, height);
-	UIViewController *controller;
-	UIView *theView;
-	BOOL shouldShowMaster = [self shouldShowMasterForInterfaceOrientation:theOrientation];
-	BOOL masterFirst = [self isMasterBeforeDetail];
-	if ([self isVertical]) {
-		// Master on left, detail on right (or vice versa).
-		CGRect masterRect, dividerRect, detailRect;
-		if (masterFirst) {
-			if (!shouldShowMaster) {
-				// Move off-screen.
-				newFrame.origin.x -= (_splitPosition + _splitWidth);
-			}
-			
-			newFrame.size.width = _splitPosition;
-			masterRect = newFrame;
-			
-			newFrame.origin.x += newFrame.size.width;
-			newFrame.size.width = _splitWidth;
-			dividerRect = newFrame;
-			
-			newFrame.origin.x += newFrame.size.width;
-			newFrame.size.width = width - newFrame.origin.x;
-			detailRect = newFrame;
-			
-		} else {
-			if (!shouldShowMaster) {
-				// Move off-screen.
-				newFrame.size.width += (_splitPosition + _splitWidth);
-			}
-			
-			newFrame.size.width -= (_splitPosition + _splitWidth);
-			detailRect = newFrame;
-			
-			newFrame.origin.x += newFrame.size.width;
-			newFrame.size.width = _splitWidth;
-			dividerRect = newFrame;
-			
-			newFrame.origin.x += newFrame.size.width;
-			newFrame.size.width = _splitPosition;
-			masterRect = newFrame;
-		}
-		
-		// Position master.
-		controller = self.masterViewController;
-		if (controller && [controller isKindOfClass:[UIViewController class]])  {
-			theView = controller.view;
-			if (theView) {
-				theView.frame = masterRect;
-				if (!theView.superview) {
-					[controller viewWillAppear:NO];
-					[self.view addSubview:theView];
-					[controller viewDidAppear:NO];
-				}
-			}
-		}
-		
-		// Position divider.
-		theView = _dividerView;
-		theView.frame = dividerRect;
-		if (!theView.superview) {
-			[self.view addSubview:theView];
-		}
-		
-		// Position detail.
-		controller = self.detailViewController;
-		if (controller && [controller isKindOfClass:[UIViewController class]])  {
-			theView = controller.view;
-			if (theView) {
-				theView.frame = detailRect;
-				if (!theView.superview) {
-					[self.view insertSubview:theView aboveSubview:self.masterViewController.view];
-				} else {
-					[self.view bringSubviewToFront:theView];
-				}
-			}
-		}
-		
-	} else {
-		// Master above, detail below (or vice versa).
-		CGRect masterRect, dividerRect, detailRect;
-		if (masterFirst) {
-			if (!shouldShowMaster) {
-				// Move off-screen.
-				newFrame.origin.y -= (_splitPosition + _splitWidth);
-			}
-			
-			newFrame.size.height = _splitPosition;
-			masterRect = newFrame;
-			
-			newFrame.origin.y += newFrame.size.height;
-			newFrame.size.height = _splitWidth;
-			dividerRect = newFrame;
-			
-			newFrame.origin.y += newFrame.size.height;
-			newFrame.size.height = height - newFrame.origin.y;
-			detailRect = newFrame;
-			
-		} else {
-			if (!shouldShowMaster) {
-				// Move off-screen.
-				newFrame.size.height += (_splitPosition + _splitWidth);
-			}
-			
-			newFrame.size.height -= (_splitPosition + _splitWidth);
-			detailRect = newFrame;
-			
-			newFrame.origin.y += newFrame.size.height;
-			newFrame.size.height = _splitWidth;
-			dividerRect = newFrame;
-			
-			newFrame.origin.y += newFrame.size.height;
-			newFrame.size.height = _splitPosition;
-			masterRect = newFrame;
-		}
-		
-		// Position master.
-		controller = self.masterViewController;
-		if (controller && [controller isKindOfClass:[UIViewController class]])  {
-			theView = controller.view;
-			if (theView) {
-				theView.frame = masterRect;
-				if (!theView.superview) {
-					[controller viewWillAppear:NO];
-					[self.view addSubview:theView];
-					[controller viewDidAppear:NO];
-				}
-			}
-		}
-		
-		// Position divider.
-		theView = _dividerView;
-		theView.frame = dividerRect;
-		if (!theView.superview) {
-			[self.view addSubview:theView];
-		}
-		
-		// Position detail.
-		controller = self.detailViewController;
-		if (controller && [controller isKindOfClass:[UIViewController class]])  {
-			theView = controller.view;
-			if (theView) {
-				theView.frame = detailRect;
-				if (!theView.superview) {
-					[self.view insertSubview:theView aboveSubview:self.masterViewController.view];
-				} else {
-					[self.view bringSubviewToFront:theView];
-				}
-			}
-		}
-	}
-	
-	// Create corner views if necessary.
-	MGSplitCornersView *leadingCorners; // top/left of screen in vertical/horizontal split.
-	MGSplitCornersView *trailingCorners; // bottom/right of screen in vertical/horizontal split.
-	if (!_cornerViews) {
-		CGRect cornerRect = CGRectMake(0, 0, 10, 10); // arbitrary, will be resized below.
-		leadingCorners = [[MGSplitCornersView alloc] initWithFrame:cornerRect];
-		leadingCorners.splitViewController = self;
-		leadingCorners.cornerBackgroundColor = MG_DEFAULT_CORNER_COLOR;
-		leadingCorners.cornerRadius = MG_DEFAULT_CORNER_RADIUS;
-		trailingCorners = [[MGSplitCornersView alloc] initWithFrame:cornerRect];
-		trailingCorners.splitViewController = self;
-		trailingCorners.cornerBackgroundColor = MG_DEFAULT_CORNER_COLOR;
-		trailingCorners.cornerRadius = MG_DEFAULT_CORNER_RADIUS;
-		_cornerViews = [[NSArray alloc] initWithObjects:leadingCorners, trailingCorners, nil];
-		[leadingCorners release];
-		[trailingCorners release];
-		
-	} else if ([_cornerViews count] == 2) {
-		leadingCorners = [_cornerViews objectAtIndex:0];
-		trailingCorners = [_cornerViews objectAtIndex:1];
-	}
-	
-	// Configure and layout the corner-views.
-	leadingCorners.cornersPosition = (_vertical) ? MGCornersPositionLeadingVertical : MGCornersPositionLeadingHorizontal;
-	trailingCorners.cornersPosition = (_vertical) ? MGCornersPositionTrailingVertical : MGCornersPositionTrailingHorizontal;
-	leadingCorners.autoresizingMask = (_vertical) ? UIViewAutoresizingFlexibleBottomMargin : UIViewAutoresizingFlexibleRightMargin;
-	trailingCorners.autoresizingMask = (_vertical) ? UIViewAutoresizingFlexibleTopMargin : UIViewAutoresizingFlexibleLeftMargin;
-	
-	float x, y, cornersWidth, cornersHeight;
-	CGRect leadingRect, trailingRect;
-	float radius = leadingCorners.cornerRadius;
-	if (_vertical) { // left/right split
-		cornersWidth = (radius * 2.0) + _splitWidth;
-		cornersHeight = radius;
-		x = ((shouldShowMaster) ? ((masterFirst) ? _splitPosition : width - (_splitPosition + _splitWidth)) : (0 - _splitWidth)) - radius;
-		y = 0;
-		leadingRect = CGRectMake(x, y, cornersWidth, cornersHeight); // top corners
-		trailingRect = CGRectMake(x, (height - cornersHeight), cornersWidth, cornersHeight); // bottom corners
-		
-	} else { // top/bottom split
-		x = 0;
-		y = ((shouldShowMaster) ? ((masterFirst) ? _splitPosition : height - (_splitPosition + _splitWidth)) : (0 - _splitWidth)) - radius;
-		cornersWidth = radius;
-		cornersHeight = (radius * 2.0) + _splitWidth;
-		leadingRect = CGRectMake(x, y, cornersWidth, cornersHeight); // left corners
-		trailingRect = CGRectMake((width - cornersWidth), y, cornersWidth, cornersHeight); // right corners
-	}
-	
-	leadingCorners.frame = leadingRect;
-	trailingCorners.frame = trailingRect;
-	
-	// Ensure corners are visible and frontmost.
-	if (!leadingCorners.superview) {
-		[self.view insertSubview:leadingCorners aboveSubview:self.detailViewController.view];
-		[self.view insertSubview:trailingCorners aboveSubview:self.detailViewController.view];
-	} else {
-		[self.view bringSubviewToFront:leadingCorners];
-		[self.view bringSubviewToFront:trailingCorners];
-	}
+    if (_reconfigurePopup) {
+        [self reconfigureForMasterInPopover:![self shouldShowMasterForInterfaceOrientation:theOrientation]];
+    }
+
+    // Layout the master, detail and divider views appropriately, adding/removing subviews as needed.
+    // First obtain relevant geometry.
+    CGSize fullSize = [self splitViewSizeForOrientation:theOrientation];
+    float width = fullSize.width;
+    float height = fullSize.height;
+
+    if (NO) { // Just for debugging.
+        NSLog(@"Target orientation is %@, dimensions will be %.0f x %.0f",
+              [self nameOfInterfaceOrientation:theOrientation], width, height);
+    }
+
+    // Layout the master, divider and detail views.
+    CGRect newFrame = CGRectMake(0, 0, width, height);
+    UIViewController *controller;
+    UIView *theView;
+    BOOL shouldShowMaster = [self shouldShowMasterForInterfaceOrientation:theOrientation];
+    BOOL masterFirst = [self isMasterBeforeDetail];
+    if ([self isVertical]) {
+        // Master on left, detail on right (or vice versa).
+        CGRect masterRect, dividerRect, detailRect;
+        if (masterFirst) {
+            if (!shouldShowMaster) {
+                // Move off-screen.
+                newFrame.origin.x -= (_splitPosition + _splitWidth);
+            }
+
+            newFrame.size.width = _splitPosition;
+            masterRect = newFrame;
+
+            newFrame.origin.x += newFrame.size.width;
+            newFrame.size.width = _splitWidth;
+            dividerRect = newFrame;
+
+            newFrame.origin.x += newFrame.size.width;
+            newFrame.size.width = width - newFrame.origin.x;
+            detailRect = newFrame;
+
+        } else {
+            if (!shouldShowMaster) {
+                // Move off-screen.
+                newFrame.size.width += (_splitPosition + _splitWidth);
+            }
+
+            newFrame.size.width -= (_splitPosition + _splitWidth);
+            detailRect = newFrame;
+
+            newFrame.origin.x += newFrame.size.width;
+            newFrame.size.width = _splitWidth;
+            dividerRect = newFrame;
+
+            newFrame.origin.x += newFrame.size.width;
+            newFrame.size.width = _splitPosition;
+            masterRect = newFrame;
+        }
+
+        // Position master.
+        controller = self.masterViewController;
+        if (controller && [controller isKindOfClass:[UIViewController class]])  {
+            theView = controller.view;
+            if (theView) {
+                theView.frame = masterRect;
+                if (!theView.superview) {
+                    [controller viewWillAppear:NO];
+                    [self.view addSubview:theView];
+                    [controller viewDidAppear:NO];
+                }
+            }
+        }
+
+        // Position divider.
+        theView = _dividerView;
+        theView.frame = dividerRect;
+        if (!theView.superview) {
+            [self.view addSubview:theView];
+        }
+
+        // Position detail.
+        controller = self.detailViewController;
+        if (controller && [controller isKindOfClass:[UIViewController class]])  {
+            theView = controller.view;
+            if (theView) {
+                theView.frame = detailRect;
+                if (!theView.superview) {
+                    [self.view insertSubview:theView aboveSubview:self.masterViewController.view];
+                } else {
+                    [self.view bringSubviewToFront:theView];
+                }
+            }
+        }
+
+    } else {
+        // Master above, detail below (or vice versa).
+        CGRect masterRect, dividerRect, detailRect;
+        if (masterFirst) {
+            if (!shouldShowMaster) {
+                // Move off-screen.
+                newFrame.origin.y -= (_splitPosition + _splitWidth);
+            }
+
+            newFrame.size.height = _splitPosition;
+            masterRect = newFrame;
+
+            newFrame.origin.y += newFrame.size.height;
+            newFrame.size.height = _splitWidth;
+            dividerRect = newFrame;
+
+            newFrame.origin.y += newFrame.size.height;
+            newFrame.size.height = height - newFrame.origin.y;
+            detailRect = newFrame;
+
+        } else {
+            if (!shouldShowMaster) {
+                // Move off-screen.
+                newFrame.size.height += (_splitPosition + _splitWidth);
+            }
+
+            newFrame.size.height -= (_splitPosition + _splitWidth);
+            detailRect = newFrame;
+
+            newFrame.origin.y += newFrame.size.height;
+            newFrame.size.height = _splitWidth;
+            dividerRect = newFrame;
+
+            newFrame.origin.y += newFrame.size.height;
+            newFrame.size.height = _splitPosition;
+            masterRect = newFrame;
+        }
+
+        // Position master.
+        controller = self.masterViewController;
+        if (controller && [controller isKindOfClass:[UIViewController class]])  {
+            theView = controller.view;
+            if (theView) {
+                theView.frame = masterRect;
+                if (!theView.superview) {
+                    [controller viewWillAppear:NO];
+                    [self.view addSubview:theView];
+                    [controller viewDidAppear:NO];
+                }
+            }
+        }
+
+        // Position divider.
+        theView = _dividerView;
+        theView.frame = dividerRect;
+        if (!theView.superview) {
+            [self.view addSubview:theView];
+        }
+
+        // Position detail.
+        controller = self.detailViewController;
+        if (controller && [controller isKindOfClass:[UIViewController class]])  {
+            theView = controller.view;
+            if (theView) {
+                theView.frame = detailRect;
+                if (!theView.superview) {
+                    [self.view insertSubview:theView aboveSubview:self.masterViewController.view];
+                } else {
+                    [self.view bringSubviewToFront:theView];
+                }
+            }
+        }
+    }
+
+    // Create corner views if necessary.
+    MGSplitCornersView *leadingCorners; // top/left of screen in vertical/horizontal split.
+    MGSplitCornersView *trailingCorners; // bottom/right of screen in vertical/horizontal split.
+    if (!_cornerViews) {
+        CGRect cornerRect = CGRectMake(0, 0, 10, 10); // arbitrary, will be resized below.
+        leadingCorners = [[MGSplitCornersView alloc] initWithFrame:cornerRect];
+        leadingCorners.splitViewController = self;
+        leadingCorners.cornerBackgroundColor = MG_DEFAULT_CORNER_COLOR;
+        leadingCorners.cornerRadius = MG_DEFAULT_CORNER_RADIUS;
+        trailingCorners = [[MGSplitCornersView alloc] initWithFrame:cornerRect];
+        trailingCorners.splitViewController = self;
+        trailingCorners.cornerBackgroundColor = MG_DEFAULT_CORNER_COLOR;
+        trailingCorners.cornerRadius = MG_DEFAULT_CORNER_RADIUS;
+        _cornerViews = [[NSArray alloc] initWithObjects:leadingCorners, trailingCorners, nil];
+        [leadingCorners release];
+        [trailingCorners release];
+
+    } else if ([_cornerViews count] == 2) {
+        leadingCorners = [_cornerViews objectAtIndex:0];
+        trailingCorners = [_cornerViews objectAtIndex:1];
+    }
+
+    // Configure and layout the corner-views.
+    leadingCorners.cornersPosition = (_vertical) ? MGCornersPositionLeadingVertical : MGCornersPositionLeadingHorizontal;
+    trailingCorners.cornersPosition = (_vertical) ? MGCornersPositionTrailingVertical : MGCornersPositionTrailingHorizontal;
+    leadingCorners.autoresizingMask = (_vertical) ? UIViewAutoresizingFlexibleBottomMargin : UIViewAutoresizingFlexibleRightMargin;
+    trailingCorners.autoresizingMask = (_vertical) ? UIViewAutoresizingFlexibleTopMargin : UIViewAutoresizingFlexibleLeftMargin;
+
+    float x, y, cornersWidth, cornersHeight;
+    CGRect leadingRect, trailingRect;
+    float radius = leadingCorners.cornerRadius;
+    if (_vertical) { // left/right split
+        cornersWidth = (radius * 2.0) + _splitWidth;
+        cornersHeight = radius;
+        x = ((shouldShowMaster) ? ((masterFirst) ? _splitPosition : width - (_splitPosition + _splitWidth)) : (0 - _splitWidth)) - radius;
+        y = 0;
+        leadingRect = CGRectMake(x, y, cornersWidth, cornersHeight); // top corners
+        trailingRect = CGRectMake(x, (height - cornersHeight), cornersWidth, cornersHeight); // bottom corners
+
+    } else { // top/bottom split
+        x = 0;
+        y = ((shouldShowMaster) ? ((masterFirst) ? _splitPosition : height - (_splitPosition + _splitWidth)) : (0 - _splitWidth)) - radius;
+        cornersWidth = radius;
+        cornersHeight = (radius * 2.0) + _splitWidth;
+        leadingRect = CGRectMake(x, y, cornersWidth, cornersHeight); // left corners
+        trailingRect = CGRectMake((width - cornersWidth), y, cornersWidth, cornersHeight); // right corners
+    }
+
+    leadingCorners.frame = leadingRect;
+    trailingCorners.frame = trailingRect;
+
+    // Ensure corners are visible and frontmost.
+    if (!leadingCorners.superview) {
+        [self.view insertSubview:leadingCorners aboveSubview:self.detailViewController.view];
+        [self.view insertSubview:trailingCorners aboveSubview:self.detailViewController.view];
+    } else {
+        [self.view bringSubviewToFront:leadingCorners];
+        [self.view bringSubviewToFront:trailingCorners];
+    }
 }
 
 
 - (void)layoutSubviewsWithAnimation:(BOOL)animate
 {
-	[self layoutSubviewsForInterfaceOrientation:self.interfaceOrientation withAnimation:animate];
+    [self layoutSubviewsForInterfaceOrientation:self.interfaceOrientation withAnimation:animate];
 }
 
 
 - (void)layoutSubviews
 {
-	[self layoutSubviewsForInterfaceOrientation:self.interfaceOrientation withAnimation:YES];
+    [self layoutSubviewsForInterfaceOrientation:self.interfaceOrientation withAnimation:YES];
 }
 
 
 - (void)viewWillAppear:(BOOL)animated
 {
-	[super viewWillAppear:animated];
-	
-	if ([self isShowingMaster]) {
-		[self.masterViewController viewWillAppear:animated];
-	}
-	[self.detailViewController viewWillAppear:animated];
-	
-	_reconfigurePopup = YES;
-	[self layoutSubviews];
+    [super viewWillAppear:animated];
+
+    if ([self isShowingMaster]) {
+        [self.masterViewController viewWillAppear:animated];
+    }
+    [self.detailViewController viewWillAppear:animated];
+
+    _reconfigurePopup = YES;
+    [self layoutSubviews];
 }
 
 
 - (void)viewDidAppear:(BOOL)animated
 {
-	[super viewDidAppear:animated];
-	
-	if ([self isShowingMaster]) {
-		[self.masterViewController viewDidAppear:animated];
-	}
-	[self.detailViewController viewDidAppear:animated];
+    [super viewDidAppear:animated];
+
+    if ([self isShowingMaster]) {
+        [self.masterViewController viewDidAppear:animated];
+    }
+    [self.detailViewController viewDidAppear:animated];
 }
 
 
 - (void)viewWillDisappear:(BOOL)animated
 {
-	[super viewWillDisappear:animated];
-	
-	if ([self isShowingMaster]) {
-		[self.masterViewController viewWillDisappear:animated];
-	}
-	[self.detailViewController viewWillDisappear:animated];
+    [super viewWillDisappear:animated];
+
+    if ([self isShowingMaster]) {
+        [self.masterViewController viewWillDisappear:animated];
+    }
+    [self.detailViewController viewWillDisappear:animated];
 }
 
 
 - (void)viewDidDisappear:(BOOL)animated
 {
-	[super viewDidDisappear:animated];
-	
-	if ([self isShowingMaster]) {
-		[self.masterViewController viewDidDisappear:animated];
-	}
-	[self.detailViewController viewDidDisappear:animated];
+    [super viewDidDisappear:animated];
+
+    if ([self isShowingMaster]) {
+        [self.masterViewController viewDidDisappear:animated];
+    }
+    [self.detailViewController viewDidDisappear:animated];
 }
 
 
@@ -545,73 +545,73 @@
 
 - (void)reconfigureForMasterInPopover:(BOOL)inPopover
 {
-	_reconfigurePopup = NO;
-	
-	if ((inPopover && _hiddenPopoverController) || (!inPopover && !_hiddenPopoverController) || !self.masterViewController) {
-		// Nothing to do.
-		return;
-	}
-	
-	if (inPopover && !_hiddenPopoverController && !_barButtonItem) {
-		// Create and configure popover for our masterViewController.
-		[_hiddenPopoverController release];
-		_hiddenPopoverController = nil;
-		[self.masterViewController viewWillDisappear:NO];
-		_hiddenPopoverController = [[UIPopoverController alloc] initWithContentViewController:self.masterViewController];
-		[self.masterViewController viewDidDisappear:NO];
-		
-		// Create and configure _barButtonItem.
-		_barButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Master", nil) 
-														  style:UIBarButtonItemStyleBordered 
-														 target:self 
-														 action:@selector(showMasterPopover:)];
-		
-		// Inform delegate of this state of affairs.
-		if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willHideViewController:withBarButtonItem:forPopoverController:)]) {
-			[(NSObject <MGSplitViewControllerDelegate> *)_delegate splitViewController:self 
-																willHideViewController:self.masterViewController 
-																	 withBarButtonItem:_barButtonItem 
-																  forPopoverController:_hiddenPopoverController];
-		}
-		
-	} else if (!inPopover && _hiddenPopoverController && _barButtonItem) {
-		// I know this looks strange, but it fixes a bizarre issue with UIPopoverController leaving masterViewController's views in disarray.
-		[_hiddenPopoverController presentPopoverFromRect:CGRectZero inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
-		
-		// Remove master from popover and destroy popover, if it exists.
-		[_hiddenPopoverController dismissPopoverAnimated:NO];
-		[_hiddenPopoverController release];
-		_hiddenPopoverController = nil;
-		
-		// Inform delegate that the _barButtonItem will become invalid.
-		if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willShowViewController:invalidatingBarButtonItem:)]) {
-			[(NSObject <MGSplitViewControllerDelegate> *)_delegate splitViewController:self 
-																willShowViewController:self.masterViewController 
-															 invalidatingBarButtonItem:_barButtonItem];
-		}
-		
-		// Destroy _barButtonItem.
-		[_barButtonItem release];
-		_barButtonItem = nil;
-		
-		// Move master view.
-		UIView *masterView = self.masterViewController.view;
-		if (masterView && masterView.superview != self.view) {
-			[masterView removeFromSuperview];
-		}
-	}
+    _reconfigurePopup = NO;
+
+    if ((inPopover && _hiddenPopoverController) || (!inPopover && !_hiddenPopoverController) || !self.masterViewController) {
+        // Nothing to do.
+        return;
+    }
+
+    if (inPopover && !_hiddenPopoverController && !_barButtonItem) {
+        // Create and configure popover for our masterViewController.
+        [_hiddenPopoverController release];
+        _hiddenPopoverController = nil;
+        [self.masterViewController viewWillDisappear:NO];
+        _hiddenPopoverController = [[UIPopoverController alloc] initWithContentViewController:self.masterViewController];
+        [self.masterViewController viewDidDisappear:NO];
+
+        // Create and configure _barButtonItem.
+        _barButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Master", nil)
+                                                          style:UIBarButtonItemStyleBordered
+                                                         target:self
+                                                         action:@selector(showMasterPopover:)];
+
+        // Inform delegate of this state of affairs.
+        if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willHideViewController:withBarButtonItem:forPopoverController:)]) {
+            [(NSObject <MGSplitViewControllerDelegate> *)_delegate splitViewController:self
+                                                                willHideViewController:self.masterViewController
+                                                                     withBarButtonItem:_barButtonItem
+                                                                  forPopoverController:_hiddenPopoverController];
+        }
+
+    } else if (!inPopover && _hiddenPopoverController && _barButtonItem) {
+        // I know this looks strange, but it fixes a bizarre issue with UIPopoverController leaving masterViewController's views in disarray.
+        [_hiddenPopoverController presentPopoverFromRect:CGRectZero inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
+
+        // Remove master from popover and destroy popover, if it exists.
+        [_hiddenPopoverController dismissPopoverAnimated:NO];
+        [_hiddenPopoverController release];
+        _hiddenPopoverController = nil;
+
+        // Inform delegate that the _barButtonItem will become invalid.
+        if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willShowViewController:invalidatingBarButtonItem:)]) {
+            [(NSObject <MGSplitViewControllerDelegate> *)_delegate splitViewController:self
+                                                                willShowViewController:self.masterViewController
+                                                             invalidatingBarButtonItem:_barButtonItem];
+        }
+
+        // Destroy _barButtonItem.
+        [_barButtonItem release];
+        _barButtonItem = nil;
+
+        // Move master view.
+        UIView *masterView = self.masterViewController.view;
+        if (masterView && masterView.superview != self.view) {
+            [masterView removeFromSuperview];
+        }
+    }
 }
 
 
 - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
 {
-	[self reconfigureForMasterInPopover:NO];
+    [self reconfigureForMasterInPopover:NO];
 }
 
 
 - (void)notePopoverDismissed
 {
-	[self popoverControllerDidDismissPopover:_hiddenPopoverController];
+    [self popoverControllerDidDismissPopover:_hiddenPopoverController];
 }
 
 
@@ -621,14 +621,14 @@
 
 - (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
 {
-	if (([animationID isEqualToString:MG_ANIMATION_CHANGE_SPLIT_ORIENTATION] || 
-		 [animationID isEqualToString:MG_ANIMATION_CHANGE_SUBVIEWS_ORDER])
-		&& _cornerViews) {
-		for (UIView *corner in _cornerViews) {
-			corner.hidden = NO;
-		}
-		_dividerView.hidden = NO;
-	}
+    if (([animationID isEqualToString:MG_ANIMATION_CHANGE_SPLIT_ORIENTATION] ||
+         [animationID isEqualToString:MG_ANIMATION_CHANGE_SUBVIEWS_ORDER])
+        && _cornerViews) {
+        for (UIView *corner in _cornerViews) {
+            corner.hidden = NO;
+        }
+        _dividerView.hidden = NO;
+    }
 }
 
 
@@ -638,83 +638,83 @@
 
 - (IBAction)toggleSplitOrientation:(id)sender
 {
-	BOOL showingMaster = [self isShowingMaster];
-	if (showingMaster) {
-		if (_cornerViews) {
-			for (UIView *corner in _cornerViews) {
-				corner.hidden = YES;
-			}
-			_dividerView.hidden = YES;
-		}
-		[UIView beginAnimations:MG_ANIMATION_CHANGE_SPLIT_ORIENTATION context:nil];
-		[UIView setAnimationDelegate:self];
-		[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
-	}
-	self.vertical = (!self.vertical);
-	if (showingMaster) {
-		[UIView commitAnimations];
-	}
+    BOOL showingMaster = [self isShowingMaster];
+    if (showingMaster) {
+        if (_cornerViews) {
+            for (UIView *corner in _cornerViews) {
+                corner.hidden = YES;
+            }
+            _dividerView.hidden = YES;
+        }
+        [UIView beginAnimations:MG_ANIMATION_CHANGE_SPLIT_ORIENTATION context:nil];
+        [UIView setAnimationDelegate:self];
+        [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
+    }
+    self.vertical = (!self.vertical);
+    if (showingMaster) {
+        [UIView commitAnimations];
+    }
 }
 
 
 - (IBAction)toggleMasterBeforeDetail:(id)sender
 {
-	BOOL showingMaster = [self isShowingMaster];
-	if (showingMaster) {
-		if (_cornerViews) {
-			for (UIView *corner in _cornerViews) {
-				corner.hidden = YES;
-			}
-			_dividerView.hidden = YES;
-		}
-		[UIView beginAnimations:MG_ANIMATION_CHANGE_SUBVIEWS_ORDER context:nil];
-		[UIView setAnimationDelegate:self];
-		[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
-	}
-	self.masterBeforeDetail = (!self.masterBeforeDetail);
-	if (showingMaster) {
-		[UIView commitAnimations];
-	}
+    BOOL showingMaster = [self isShowingMaster];
+    if (showingMaster) {
+        if (_cornerViews) {
+            for (UIView *corner in _cornerViews) {
+                corner.hidden = YES;
+            }
+            _dividerView.hidden = YES;
+        }
+        [UIView beginAnimations:MG_ANIMATION_CHANGE_SUBVIEWS_ORDER context:nil];
+        [UIView setAnimationDelegate:self];
+        [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
+    }
+    self.masterBeforeDetail = (!self.masterBeforeDetail);
+    if (showingMaster) {
+        [UIView commitAnimations];
+    }
 }
 
 
 - (IBAction)toggleMasterView:(id)sender
 {
-	if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-		[_hiddenPopoverController dismissPopoverAnimated:NO];
-	}
-	
-	if (![self isShowingMaster]) {
-		// We're about to show the master view. Ensure it's in place off-screen to be animated in.
-		_reconfigurePopup = YES;
-		[self reconfigureForMasterInPopover:NO];
-		[self layoutSubviews];
-	}
-	
-	// This action functions on the current primary orientation; it is independent of the other primary orientation.
-	[UIView beginAnimations:@"toggleMaster" context:nil];
-	if (self.isLandscape) {
-		self.showsMasterInLandscape = !_showsMasterInLandscape;
-	} else {
-		self.showsMasterInPortrait = !_showsMasterInPortrait;
-	}
-	[UIView commitAnimations];
+    if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+        [_hiddenPopoverController dismissPopoverAnimated:NO];
+    }
+
+    if (![self isShowingMaster]) {
+        // We're about to show the master view. Ensure it's in place off-screen to be animated in.
+        _reconfigurePopup = YES;
+        [self reconfigureForMasterInPopover:NO];
+        [self layoutSubviews];
+    }
+
+    // This action functions on the current primary orientation; it is independent of the other primary orientation.
+    [UIView beginAnimations:@"toggleMaster" context:nil];
+    if (self.isLandscape) {
+        self.showsMasterInLandscape = !_showsMasterInLandscape;
+    } else {
+        self.showsMasterInPortrait = !_showsMasterInPortrait;
+    }
+    [UIView commitAnimations];
 }
 
 
 - (IBAction)showMasterPopover:(id) sender
 {
-	if (_hiddenPopoverController && !(_hiddenPopoverController.popoverVisible)) {
-		// Inform delegate.
-		if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:popoverController:willPresentViewController:)]) {
-			[(NSObject <MGSplitViewControllerDelegate> *)_delegate splitViewController:self 
-																	 popoverController:_hiddenPopoverController 
-															 willPresentViewController:self.masterViewController];
-		}
-		
-		// Show popover.
-		[_hiddenPopoverController presentPopoverFromBarButtonItem:_barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
-	}
+    if (_hiddenPopoverController && !(_hiddenPopoverController.popoverVisible)) {
+        // Inform delegate.
+        if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:popoverController:willPresentViewController:)]) {
+            [(NSObject <MGSplitViewControllerDelegate> *)_delegate splitViewController:self
+                                                                     popoverController:_hiddenPopoverController
+                                                             willPresentViewController:self.masterViewController];
+        }
+
+        // Show popover.
+        [_hiddenPopoverController presentPopoverFromBarButtonItem:_barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
+    }
 }
 
 
@@ -724,395 +724,395 @@
 
 - (id)delegate
 {
-	return _delegate;
+    return _delegate;
 }
 
 
 - (void)setDelegate:(id <MGSplitViewControllerDelegate>)newDelegate
 {
-	if (newDelegate != _delegate && 
-		(!newDelegate || [(NSObject *)newDelegate conformsToProtocol:@protocol(MGSplitViewControllerDelegate)])) {
-		_delegate = newDelegate;
-	}
+    if (newDelegate != _delegate &&
+        (!newDelegate || [(NSObject *)newDelegate conformsToProtocol:@protocol(MGSplitViewControllerDelegate)])) {
+        _delegate = newDelegate;
+    }
 }
 
 
 - (BOOL)showsMasterInPortrait
 {
-	return _showsMasterInPortrait;
+    return _showsMasterInPortrait;
 }
 
 
 - (void)setShowsMasterInPortrait:(BOOL)flag
 {
-	if (flag != _showsMasterInPortrait) {
-		_showsMasterInPortrait = flag;
-		
-		if (![self isLandscape]) { // i.e. if this will cause a visual change.
-			if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-				[_hiddenPopoverController dismissPopoverAnimated:NO];
-			}
-			
-			// Rearrange views.
-			_reconfigurePopup = YES;
-			[self layoutSubviews];
-		}
-	}
+    if (flag != _showsMasterInPortrait) {
+        _showsMasterInPortrait = flag;
+
+        if (![self isLandscape]) { // i.e. if this will cause a visual change.
+            if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+                [_hiddenPopoverController dismissPopoverAnimated:NO];
+            }
+
+            // Rearrange views.
+            _reconfigurePopup = YES;
+            [self layoutSubviews];
+        }
+    }
 }
 
 
 - (BOOL)showsMasterInLandscape
 {
-	return _showsMasterInLandscape;
+    return _showsMasterInLandscape;
 }
 
 
 - (void)setShowsMasterInLandscape:(BOOL)flag
 {
-	if (flag != _showsMasterInLandscape) {
-		_showsMasterInLandscape = flag;
-		
-		if ([self isLandscape]) { // i.e. if this will cause a visual change.
-			if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-				[_hiddenPopoverController dismissPopoverAnimated:NO];
-			}
-			
-			// Rearrange views.
-			_reconfigurePopup = YES;
-			[self layoutSubviews];
-		}
-	}
+    if (flag != _showsMasterInLandscape) {
+        _showsMasterInLandscape = flag;
+
+        if ([self isLandscape]) { // i.e. if this will cause a visual change.
+            if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+                [_hiddenPopoverController dismissPopoverAnimated:NO];
+            }
+
+            // Rearrange views.
+            _reconfigurePopup = YES;
+            [self layoutSubviews];
+        }
+    }
 }
 
 
 - (BOOL)isVertical
 {
-	return _vertical;
+    return _vertical;
 }
 
 
 - (void)setVertical:(BOOL)flag
 {
-	if (flag != _vertical) {
-		if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-			[_hiddenPopoverController dismissPopoverAnimated:NO];
-		}
-		
-		_vertical = flag;
-		
-		// Inform delegate.
-		if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willChangeSplitOrientationToVertical:)]) {
-			[_delegate splitViewController:self willChangeSplitOrientationToVertical:_vertical];
-		}
-		
-		[self layoutSubviews];
-	}
+    if (flag != _vertical) {
+        if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+            [_hiddenPopoverController dismissPopoverAnimated:NO];
+        }
+
+        _vertical = flag;
+
+        // Inform delegate.
+        if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willChangeSplitOrientationToVertical:)]) {
+            [_delegate splitViewController:self willChangeSplitOrientationToVertical:_vertical];
+        }
+
+        [self layoutSubviews];
+    }
 }
 
 
 - (BOOL)isMasterBeforeDetail
 {
-	return _masterBeforeDetail;
+    return _masterBeforeDetail;
 }
 
 
 - (void)setMasterBeforeDetail:(BOOL)flag
 {
-	if (flag != _masterBeforeDetail) {
-		if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-			[_hiddenPopoverController dismissPopoverAnimated:NO];
-		}
-		
-		_masterBeforeDetail = flag;
-		
-		if ([self isShowingMaster]) {
-			[self layoutSubviews];
-		}
-	}
+    if (flag != _masterBeforeDetail) {
+        if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+            [_hiddenPopoverController dismissPopoverAnimated:NO];
+        }
+
+        _masterBeforeDetail = flag;
+
+        if ([self isShowingMaster]) {
+            [self layoutSubviews];
+        }
+    }
 }
 
 
 - (float)splitPosition
 {
-	return _splitPosition;
+    return _splitPosition;
 }
 
 
 - (void)setSplitPosition:(float)posn
 {
-	// Check to see if delegate wishes to constrain the position.
-	float newPosn = posn;
-	BOOL constrained = NO;
-	CGSize fullSize = [self splitViewSizeForOrientation:self.interfaceOrientation];
-	if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:constrainSplitPosition:splitViewSize:)]) {
-		newPosn = [_delegate splitViewController:self constrainSplitPosition:newPosn splitViewSize:fullSize];
-		constrained = YES; // implicitly trust delegate's response.
-		
-	} else {
-		// Apply default constraints if delegate doesn't wish to participate.
-		float minPos = MG_MIN_VIEW_WIDTH;
-		float maxPos = ((_vertical) ? fullSize.width : fullSize.height) - (MG_MIN_VIEW_WIDTH + _splitWidth);
-		constrained = (newPosn != _splitPosition && newPosn >= minPos && newPosn <= maxPos);
-	}
-	
-	if (constrained) {
-		if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-			[_hiddenPopoverController dismissPopoverAnimated:NO];
-		}
-		
-		_splitPosition = newPosn;
-		
-		// Inform delegate.
-		if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willMoveSplitToPosition:)]) {
-			[_delegate splitViewController:self willMoveSplitToPosition:_splitPosition];
-		}
-		
-		if ([self isShowingMaster]) {
-			[self layoutSubviews];
-		}
-	}
+    // Check to see if delegate wishes to constrain the position.
+    float newPosn = posn;
+    BOOL constrained = NO;
+    CGSize fullSize = [self splitViewSizeForOrientation:self.interfaceOrientation];
+    if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:constrainSplitPosition:splitViewSize:)]) {
+        newPosn = [_delegate splitViewController:self constrainSplitPosition:newPosn splitViewSize:fullSize];
+        constrained = YES; // implicitly trust delegate's response.
+
+    } else {
+        // Apply default constraints if delegate doesn't wish to participate.
+        float minPos = MG_MIN_VIEW_WIDTH;
+        float maxPos = ((_vertical) ? fullSize.width : fullSize.height) - (MG_MIN_VIEW_WIDTH + _splitWidth);
+        constrained = (newPosn != _splitPosition && newPosn >= minPos && newPosn <= maxPos);
+    }
+
+    if (constrained) {
+        if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+            [_hiddenPopoverController dismissPopoverAnimated:NO];
+        }
+
+        _splitPosition = newPosn;
+
+        // Inform delegate.
+        if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:willMoveSplitToPosition:)]) {
+            [_delegate splitViewController:self willMoveSplitToPosition:_splitPosition];
+        }
+
+        if ([self isShowingMaster]) {
+            [self layoutSubviews];
+        }
+    }
 }
 
 
 - (void)setSplitPosition:(float)posn animated:(BOOL)animate
 {
-	BOOL shouldAnimate = (animate && [self isShowingMaster]);
-	if (shouldAnimate) {
-		[UIView beginAnimations:@"SplitPosition" context:nil];
-	}
-	[self setSplitPosition:posn];
-	if (shouldAnimate) {
-		[UIView commitAnimations];
-	}
+    BOOL shouldAnimate = (animate && [self isShowingMaster]);
+    if (shouldAnimate) {
+        [UIView beginAnimations:@"SplitPosition" context:nil];
+    }
+    [self setSplitPosition:posn];
+    if (shouldAnimate) {
+        [UIView commitAnimations];
+    }
 }
 
 
 - (float)splitWidth
 {
-	return _splitWidth;
+    return _splitWidth;
 }
 
 
 - (void)setSplitWidth:(float)width
 {
-	if (width != _splitWidth && width >= 0) {
-		_splitWidth = width;
-		if ([self isShowingMaster]) {
-			[self layoutSubviews];
-		}
-	}
+    if (width != _splitWidth && width >= 0) {
+        _splitWidth = width;
+        if ([self isShowingMaster]) {
+            [self layoutSubviews];
+        }
+    }
 }
 
 
 - (NSArray *)viewControllers
 {
-	return [[_viewControllers copy] autorelease];
+    return [[_viewControllers copy] autorelease];
 }
 
 
 - (void)setViewControllers:(NSArray *)controllers
 {
-	if (controllers != _viewControllers) {
-		for (UIViewController *controller in _viewControllers) {
-			if ([controller isKindOfClass:[UIViewController class]]) {
-				[controller.view removeFromSuperview];
-			}
-		}
-		[_viewControllers release];
-		_viewControllers = [[NSMutableArray alloc] initWithCapacity:2];
-		if (controllers && [controllers count] >= 2) {
-			self.masterViewController = [controllers objectAtIndex:0];
-			self.detailViewController = [controllers objectAtIndex:1];
-		} else {
-			NSLog(@"Error: %@ requires 2 view-controllers. (%@)", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
-		}
-		
-		[self layoutSubviews];
-	}
+    if (controllers != _viewControllers) {
+        for (UIViewController *controller in _viewControllers) {
+            if ([controller isKindOfClass:[UIViewController class]]) {
+                [controller.view removeFromSuperview];
+            }
+        }
+        [_viewControllers release];
+        _viewControllers = [[NSMutableArray alloc] initWithCapacity:2];
+        if (controllers && [controllers count] >= 2) {
+            self.masterViewController = [controllers objectAtIndex:0];
+            self.detailViewController = [controllers objectAtIndex:1];
+        } else {
+            NSLog(@"Error: %@ requires 2 view-controllers. (%@)", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
+        }
+
+        [self layoutSubviews];
+    }
 }
 
 
 - (UIViewController *)masterViewController
 {
-	if (_viewControllers && [_viewControllers count] > 0) {
-		NSObject *controller = [_viewControllers objectAtIndex:0];
-		if ([controller isKindOfClass:[UIViewController class]]) {
-			return [[controller retain] autorelease];
-		}
-	}
-	
-	return nil;
+    if (_viewControllers && [_viewControllers count] > 0) {
+        NSObject *controller = [_viewControllers objectAtIndex:0];
+        if ([controller isKindOfClass:[UIViewController class]]) {
+            return [[controller retain] autorelease];
+        }
+    }
+
+    return nil;
 }
 
 
 - (void)setMasterViewController:(UIViewController *)master
 {
-	if (!_viewControllers) {
-		_viewControllers = [[NSMutableArray alloc] initWithCapacity:2];
-	}
-	
-	NSObject *newMaster = master;
-	if (!newMaster) {
-		newMaster = [NSNull null];
-	}
-	
-	BOOL changed = YES;
-	if ([_viewControllers count] > 0) {
-		if ([_viewControllers objectAtIndex:0] == newMaster) {
-			changed = NO;
-		} else {
-			[_viewControllers replaceObjectAtIndex:0 withObject:newMaster];
-		}
-		
-	} else {
-		[_viewControllers addObject:newMaster];
-	}
-	
-	if (changed) {
-		[self layoutSubviews];
-	}
+    if (!_viewControllers) {
+        _viewControllers = [[NSMutableArray alloc] initWithCapacity:2];
+    }
+
+    NSObject *newMaster = master;
+    if (!newMaster) {
+        newMaster = [NSNull null];
+    }
+
+    BOOL changed = YES;
+    if ([_viewControllers count] > 0) {
+        if ([_viewControllers objectAtIndex:0] == newMaster) {
+            changed = NO;
+        } else {
+            [_viewControllers replaceObjectAtIndex:0 withObject:newMaster];
+        }
+
+    } else {
+        [_viewControllers addObject:newMaster];
+    }
+
+    if (changed) {
+        [self layoutSubviews];
+    }
 }
 
 
 - (UIViewController *)detailViewController
 {
-	if (_viewControllers && [_viewControllers count] > 1) {
-		NSObject *controller = [_viewControllers objectAtIndex:1];
-		if ([controller isKindOfClass:[UIViewController class]]) {
-			return [[controller retain] autorelease];
-		}
-	}
-	
-	return nil;
+    if (_viewControllers && [_viewControllers count] > 1) {
+        NSObject *controller = [_viewControllers objectAtIndex:1];
+        if ([controller isKindOfClass:[UIViewController class]]) {
+            return [[controller retain] autorelease];
+        }
+    }
+
+    return nil;
 }
 
 
 - (void)setDetailViewController:(UIViewController *)detail
 {
-	if (!_viewControllers) {
-		_viewControllers = [[NSMutableArray alloc] initWithCapacity:2];
-		[_viewControllers addObject:[NSNull null]];
-	}
-	
-	BOOL changed = YES;
-	if ([_viewControllers count] > 1) {
-		if ([_viewControllers objectAtIndex:1] == detail) {
-			changed = NO;
-		} else {
-			[_viewControllers replaceObjectAtIndex:1 withObject:detail];
-		}
-		
-	} else {
-		[_viewControllers addObject:detail];
-	}
-	
-	if (changed) {
-		[self layoutSubviews];
-	}
+    if (!_viewControllers) {
+        _viewControllers = [[NSMutableArray alloc] initWithCapacity:2];
+        [_viewControllers addObject:[NSNull null]];
+    }
+
+    BOOL changed = YES;
+    if ([_viewControllers count] > 1) {
+        if ([_viewControllers objectAtIndex:1] == detail) {
+            changed = NO;
+        } else {
+            [_viewControllers replaceObjectAtIndex:1 withObject:detail];
+        }
+
+    } else {
+        [_viewControllers addObject:detail];
+    }
+
+    if (changed) {
+        [self layoutSubviews];
+    }
 }
 
 
 - (MGSplitDividerView *)dividerView
 {
-	return [[_dividerView retain] autorelease];
+    return [[_dividerView retain] autorelease];
 }
 
 
 - (void)setDividerView:(MGSplitDividerView *)divider
 {
-	if (divider != _dividerView) {
-		[_dividerView removeFromSuperview];
-		[_dividerView release];
-		_dividerView = [divider retain];
-		_dividerView.splitViewController = self;
-		_dividerView.backgroundColor = MG_DEFAULT_CORNER_COLOR;
-		if ([self isShowingMaster]) {
-			[self layoutSubviews];
-		}
-	}
+    if (divider != _dividerView) {
+        [_dividerView removeFromSuperview];
+        [_dividerView release];
+        _dividerView = [divider retain];
+        _dividerView.splitViewController = self;
+        _dividerView.backgroundColor = MG_DEFAULT_CORNER_COLOR;
+        if ([self isShowingMaster]) {
+            [self layoutSubviews];
+        }
+    }
 }
 
 
 - (BOOL)allowsDraggingDivider
 {
-	if (_dividerView) {
-		return _dividerView.allowsDragging;
-	}
-	
-	return NO;
+    if (_dividerView) {
+        return _dividerView.allowsDragging;
+    }
+
+    return NO;
 }
 
 
 - (void)setAllowsDraggingDivider:(BOOL)flag
 {
-	if (self.allowsDraggingDivider != flag && _dividerView) {
-		_dividerView.allowsDragging = flag;
-	}
+    if (self.allowsDraggingDivider != flag && _dividerView) {
+        _dividerView.allowsDragging = flag;
+    }
 }
 
 
 - (MGSplitViewDividerStyle)dividerStyle
 {
-	return _dividerStyle;
+    return _dividerStyle;
 }
 
 
 - (void)setDividerStyle:(MGSplitViewDividerStyle)newStyle
 {
-	if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
-		[_hiddenPopoverController dismissPopoverAnimated:NO];
-	}
-	
-	// We don't check to see if newStyle equals _dividerStyle, because it's a meta-setting.
-	// Aspects could have been changed since it was set.
-	_dividerStyle = newStyle;
-	
-	// Reconfigure general appearance and behaviour.
-	float cornerRadius;
-	if (_dividerStyle == MGSplitViewDividerStyleThin) {
-		cornerRadius = MG_DEFAULT_CORNER_RADIUS;
-		_splitWidth = MG_DEFAULT_SPLIT_WIDTH;
-		self.allowsDraggingDivider = NO;
-		
-	} else if (_dividerStyle == MGSplitViewDividerStylePaneSplitter) {
-		cornerRadius = MG_PANESPLITTER_CORNER_RADIUS;
-		_splitWidth = MG_PANESPLITTER_SPLIT_WIDTH;
-		self.allowsDraggingDivider = YES;
-	}
-	
-	// Update divider and corners.
-	[_dividerView setNeedsDisplay];
-	if (_cornerViews) {
-		for (MGSplitCornersView *corner in _cornerViews) {
-			corner.cornerRadius = cornerRadius;
-		}
-	}
-	
-	// Layout all views.
-	[self layoutSubviews];
+    if (_hiddenPopoverController && _hiddenPopoverController.popoverVisible) {
+        [_hiddenPopoverController dismissPopoverAnimated:NO];
+    }
+
+    // We don't check to see if newStyle equals _dividerStyle, because it's a meta-setting.
+    // Aspects could have been changed since it was set.
+    _dividerStyle = newStyle;
+
+    // Reconfigure general appearance and behaviour.
+    float cornerRadius;
+    if (_dividerStyle == MGSplitViewDividerStyleThin) {
+        cornerRadius = MG_DEFAULT_CORNER_RADIUS;
+        _splitWidth = MG_DEFAULT_SPLIT_WIDTH;
+        self.allowsDraggingDivider = NO;
+
+    } else if (_dividerStyle == MGSplitViewDividerStylePaneSplitter) {
+        cornerRadius = MG_PANESPLITTER_CORNER_RADIUS;
+        _splitWidth = MG_PANESPLITTER_SPLIT_WIDTH;
+        self.allowsDraggingDivider = YES;
+    }
+
+    // Update divider and corners.
+    [_dividerView setNeedsDisplay];
+    if (_cornerViews) {
+        for (MGSplitCornersView *corner in _cornerViews) {
+            corner.cornerRadius = cornerRadius;
+        }
+    }
+
+    // Layout all views.
+    [self layoutSubviews];
 }
 
 
 - (void)setDividerStyle:(MGSplitViewDividerStyle)newStyle animated:(BOOL)animate
 {
-	BOOL shouldAnimate = (animate && [self isShowingMaster]);
-	if (shouldAnimate) {
-		[UIView beginAnimations:@"DividerStyle" context:nil];
-	}
-	[self setDividerStyle:newStyle];
-	if (shouldAnimate) {
-		[UIView commitAnimations];
-	}
+    BOOL shouldAnimate = (animate && [self isShowingMaster]);
+    if (shouldAnimate) {
+        [UIView beginAnimations:@"DividerStyle" context:nil];
+    }
+    [self setDividerStyle:newStyle];
+    if (shouldAnimate) {
+        [UIView commitAnimations];
+    }
 }
 
 
 - (NSArray *)cornerViews
 {
-	if (_cornerViews) {
-		return [[_cornerViews retain] autorelease];
-	}
-	
-	return nil;
+    if (_cornerViews) {
+        return [[_cornerViews retain] autorelease];
+    }
+
+    return nil;
 }
 
 
--- a/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.h	Sun Jan 27 00:28:57 2013 +0100
@@ -17,26 +17,26 @@
   BOOL _playBeforeFade;
 }
 
-// The AVAudioPlayer that the volume fade will be applied to. 
+// The AVAudioPlayer that the volume fade will be applied to.
 // Retained until the fade is completed.
 // Must be set with init method.
-@property (nonatomic, retain, readonly) AVAudioPlayer *audioPlayer; 
+@property (nonatomic, retain, readonly) AVAudioPlayer *audioPlayer;
 
-// The duration of the volume fade. 
+// The duration of the volume fade.
 // Default value is 1.0
-@property (nonatomic, assign) NSTimeInterval fadeDuration; 
+@property (nonatomic, assign) NSTimeInterval fadeDuration;
 
-// The delay before the volume fade begins. 
+// The delay before the volume fade begins.
 // Default value is 0.0
-@property (nonatomic, assign) NSTimeInterval delay; 
+@property (nonatomic, assign) NSTimeInterval delay;
 
-// The volume that will be faded to. 
+// The volume that will be faded to.
 // Default value is 0.0
-@property (nonatomic, assign) float finishVolume; 
+@property (nonatomic, assign) float finishVolume;
 
-// If YES, audio player will be sent a pause message when the fade has completed. 
+// If YES, audio player will be sent a pause message when the fade has completed.
 // Default value is NO, however, if finishVolume is 0.0, default is YES
-@property (nonatomic, assign) BOOL pauseAfterFade; 
+@property (nonatomic, assign) BOOL pauseAfterFade;
 
 // If YES, when the fade has completed the audio player will be sent a stop message.
 // Default value is NO.
--- a/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.m	Sun Jan 27 00:28:57 2013 +0100
@@ -10,7 +10,7 @@
 #define SKVolumeChangesPerSecond 15
 
 @interface MXAudioPlayerFadeOperation ()
-@property (nonatomic, retain, readwrite) AVAudioPlayer *audioPlayer; 
+@property (nonatomic, retain, readwrite) AVAudioPlayer *audioPlayer;
 - (void)beginFadeOperation;
 - (void)finishFadeOperation;
 @end
@@ -87,21 +87,21 @@
   else {
     ALog(@"AudioPlayerFadeOperation began with invalid AVAudioPlayer");
   }
-  
+
   [pool release];
 }
 
 - (void)beginFadeOperation {
   if (![self.audioPlayer isPlaying] && _playBeforeFade) [self.audioPlayer play];
-  
+
   if (_fadeDuration != 0.0) {
-    
+
     NSTimeInterval sleepInterval = (1.0 / SKVolumeChangesPerSecond);
     NSTimeInterval startTime = [[NSDate date] timeIntervalSinceReferenceDate];
     NSTimeInterval now = startTime;
-    
+
     float startVolume = [self.audioPlayer volume];
-    
+
     while (now < (startTime + _fadeDuration)) {
       float ratioOfFadeCompleted = (now - startTime)/_fadeDuration;
       float volume = (_finishVolume * ratioOfFadeCompleted) + (startVolume * (1-ratioOfFadeCompleted));
@@ -109,7 +109,7 @@
       [NSThread sleepForTimeInterval:sleepInterval];
       now = [[NSDate date] timeIntervalSinceReferenceDate];
     }
-    
+
     [self.audioPlayer setVolume:_finishVolume];
     [self finishFadeOperation];
   }
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -150,8 +150,8 @@
 // this set details for a static map (called by didSelectRowAtIndexPath)
 -(void) setDetailsForStaticMap:(NSInteger) index {
     NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
-    
-    NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg", 
+
+    NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg",
                          (scIndex == 1) ? MAPS_DIRECTORY() : MISSIONS_DIRECTORY(),[source objectAtIndex:index]];
     NSString *contents = [[NSString alloc] initWithContentsOfFile:fileCfg encoding:NSUTF8StringEncoding error:NULL];
     [fileCfg release];
@@ -166,7 +166,7 @@
     else
         max = @"18";
     [self setMaxLabelText:max];
-    
+
     self.themeCommand = [NSString stringWithFormat:@"etheme %@", [split objectAtIndex:0]];
     self.staticMapCommand = [NSString stringWithFormat:@"emap %@", [source objectAtIndex:index]];
 
@@ -357,7 +357,7 @@
 -(NSArray *) dataSourceArray {
     if (dataSourceArray == nil) {
         NSString *model = [HWUtils modelType];
-        
+
         // only folders containing icon.png are a valid theme
         NSArray *themeArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:THEMES_DIRECTORY() error:NULL];
         NSMutableArray *themeArray = [[NSMutableArray alloc] init];
@@ -367,7 +367,7 @@
                 [themeArray addObject:themeName];
             [checkPath release];
         }
-        
+
         // remove images that are too big for certain devices without loading the whole image
         NSArray *mapArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL];
         NSMutableArray *mapArray = [[NSMutableArray alloc] init];
@@ -379,7 +379,7 @@
                 continue;
             [mapArray addObject:str];
         }
-        
+
         NSArray *missionArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MISSIONS_DIRECTORY() error:NULL];
         NSMutableArray *missionArray = [[NSMutableArray alloc] init];
         for (NSString *str in missionArrayFull) {
@@ -394,7 +394,7 @@
         [missionArray release];
         [themeArray release];
         [mapArray release];
-        
+
         self.dataSourceArray = array;
         [array release];
     }
@@ -404,7 +404,7 @@
 -(void) viewDidLoad {
     [super viewDidLoad];
     srandom(time(NULL));
-    
+
     // initialize some "default" values
     self.slider.value = 0.05f;
     self.slider.enabled = NO;
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m	Sun Jan 27 00:28:57 2013 +0100
@@ -52,7 +52,7 @@
 }
 
 #pragma mark -
-#pragma mark preview 
+#pragma mark preview
 -(int) sendToEngine:(NSString *)string {
     unsigned char length = [string length];
 
@@ -157,7 +157,7 @@
     [self performSelectorOnMainThread:@selector(removeIndicator)
                            withObject:nil
                         waitUntilDone:NO];
-    
+
     [pool release];
 }
 
@@ -165,12 +165,12 @@
     // remove the current preview and title
     [self setImage:nil forState:UIControlStateNormal];
     [self setTitle:nil forState:UIControlStateNormal];
-    
+
     // don't display preview on slower device, too slow and memory hog
     if (IS_NOT_POWERFUL([HWUtils modelType])) {
         [self setTitle:NSLocalizedString(@"Preview not available",@"") forState:UIControlStateNormal];
         [self turnOnWidgets];
-    } else {        
+    } else {
         // add a very nice spinning wheel
         UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc]
                                               initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
@@ -179,7 +179,7 @@
         [indicator startAnimating];
         [self addSubview:indicator];
         [indicator release];
-        
+
         // let's draw in a separate thread so the gui can work; at the end it restore other widgets
         [NSThread detachNewThreadSelector:@selector(drawingThread) toTarget:self withObject:nil];
     }
--- a/project_files/HedgewarsMobile/Classes/PascalImports.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/PascalImports.h	Sun Jan 27 00:28:57 2013 +0100
@@ -28,7 +28,7 @@
      * that you want to use in your non-Pascal code
      */
 
-    void Game(const char *args[]);
+    void Game(const int argc, const char *argv[]);
     void GenLandPreview(void);
     void LoadLocaleWrapper(const char *filename);
 
@@ -44,7 +44,7 @@
     int  HW_getMaxNumberOfTeams(void);
 
     void HW_memoryWarningCallback(void);
-    
+
 #ifdef __cplusplus
 }
 #endif
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -203,12 +203,12 @@
         [self updateTable];
     NSString *oldFilePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),[self.listOfSavegames objectAtIndex:tagValue]];
     NSString *newFilePath = [NSString stringWithFormat:@"%@/%@.hws",SAVES_DIRECTORY(),textString];
-    
+
     if ([oldFilePath isEqualToString:newFilePath] == NO) {
         [[NSFileManager defaultManager] moveItemAtPath:oldFilePath toPath:newFilePath error:nil];
         [self.listOfSavegames replaceObjectAtIndex:tagValue withObject:[textString stringByAppendingString:@".hws"]];
     }
-    
+
 }
 
 #pragma mark -
--- a/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -151,7 +151,7 @@
             editableCell.selectionStyle = UITableViewCellSelectionStyleNone;
             editableCell.imageView.image = nil;
             editableCell.detailTextLabel.text = nil;
-         
+
             if (row == 0) {
                 editableCell.textField.text = self.schemeName;
                 editableCell.textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
@@ -199,7 +199,7 @@
                 if ([oneView isMemberOfClass:[UISlider class]]) {
                     cellSlider = (UISlider *)oneView;
                     break;
-                } 
+                }
             }
             cellSlider.tag = SLIDER_TAG + row;
             cellSlider.maximumValue = [[detail objectForKey:@"max"] floatValue];
@@ -244,7 +244,7 @@
             UISwitch *switcher = (UISwitch *)cell.accessoryView;
             switcher.tag = SWITCH_TAG + row;
             [switcher setOn:[[[self.schemeDictionary objectForKey:@"gamemod"] objectAtIndex:row] boolValue] animated:NO];
-            
+
             UIImage *image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/btn%@.png",ICONS_DIRECTORY(),
                                                                       [[self.gameModifierArray objectAtIndex:row] objectForKey:@"image"]]];
             cell.imageView.image = image;
--- a/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -69,7 +69,7 @@
                       NSLocalizedString(@"Level",@""),nil];
     self.secondaryItems = array;
     [array release];
-    
+
     // labels for the subtitles
     NSArray *moreArray = [[NSArray alloc] initWithObjects:
                           NSLocalizedString(@"Mark the death of your fallen warriors",@""),
@@ -295,35 +295,35 @@
             case 0: // grave
                 if (nil == gravesViewController)
                     gravesViewController = [[GravesViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                
+
                 [gravesViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:gravesViewController animated:YES];
                 break;
             case 1: // voice
                 if (nil == voicesViewController)
                     voicesViewController = [[VoicesViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                
+
                 [voicesViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:voicesViewController animated:YES];
                 break;
             case 2: // fort
                 if (nil == fortsViewController)
                     fortsViewController = [[FortsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                
+
                 [fortsViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:fortsViewController animated:YES];
                 break;
             case 3: // flag
                 if (nil == flagsViewController)
                     flagsViewController = [[FlagsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                
+
                 [flagsViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:flagsViewController animated:YES];
                 break;
             case 4: // level
                 if (nil == levelViewController)
                     levelViewController = [[LevelViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                
+
                 [levelViewController setTeamDictionary:teamDictionary];
                 [self.navigationController pushViewController:levelViewController animated:YES];
                 break;
--- a/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -31,38 +31,38 @@
 #pragma mark View lifecycle
 -(void) viewDidLoad {
     [super viewDidLoad];
-    
+
     NSString *trFilePath = [NSString stringWithFormat:@"%@/%@.txt",LOCALE_DIRECTORY(),[[NSLocale preferredLanguages] objectAtIndex:0]];
     // fill the data structure that we are going to read
     LoadLocaleWrapper([trFilePath UTF8String]);
-    
+
     quantity = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
     probability = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
     delay = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
     crateness = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
-    
+
     NSString *str = [NSString stringWithFormat:@"%@/AmmoMenu/Ammos.png",GRAPHICS_DIRECTORY()];
     UIImage *img = [[UIImage alloc] initWithContentsOfFile:str];
     self.ammoStoreImage = img;
     [img release];
-    
+
     self.title = NSLocalizedString(@"Edit weapons preferences",@"");
 }
 
 -(void) viewWillAppear:(BOOL) animated {
     [super viewWillAppear:animated];
-    
+
     NSString *ammoFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName];
     NSDictionary *weapon = [[NSDictionary alloc] initWithContentsOfFile:ammoFile];
     [ammoFile release];
-    
+
     self.description = [weapon objectForKey:@"description"];
     const char *tmp1 = [[weapon objectForKey:@"ammostore_initialqt"] UTF8String];
     const char *tmp2 = [[weapon objectForKey:@"ammostore_probability"] UTF8String];
     const char *tmp3 = [[weapon objectForKey:@"ammostore_delay"] UTF8String];
     const char *tmp4 = [[weapon objectForKey:@"ammostore_crate"] UTF8String];
     [weapon release];
-    
+
     // if the new weaponset is diffrent from the older we need to update it replacing
     // the missing ammos with 0 quantity
     int oldlen = strlen(tmp1);
@@ -78,7 +78,7 @@
         delay[i] = '0';
         crateness[i] = '0';
     }
-    
+
     [self.tableView reloadData];
 }
 
@@ -92,20 +92,20 @@
     probability[HW_getNumberOfWeapons()] = '\0';
     delay[HW_getNumberOfWeapons()] = '\0';
     crateness[HW_getNumberOfWeapons()] = '\0';
-    
+
     NSString *quantityStr = [NSString stringWithUTF8String:quantity];
     NSString *probabilityStr = [NSString stringWithUTF8String:probability];
     NSString *delayStr = [NSString stringWithUTF8String:delay];
     NSString *cratenessStr = [NSString stringWithUTF8String:crateness];
-    
+
     NSDictionary *weapon = [[NSDictionary alloc] initWithObjectsAndKeys:
                             quantityStr,@"ammostore_initialqt",
                             probabilityStr,@"ammostore_probability",
                             delayStr,@"ammostore_delay",
-                            cratenessStr,@"ammostore_crate", 
+                            cratenessStr,@"ammostore_crate",
                             self.description,@"description",
                             nil];
-    
+
     NSString *ammoFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName];
     [weapon writeToFile:ammoFile atomically:YES];
     [ammoFile release];
@@ -131,7 +131,7 @@
     static NSString *CellIdentifier1 = @"Cell1";
     NSInteger row = [indexPath row];
     UITableViewCell *cell = nil;
-    
+
     if (0 == [indexPath section]) {
         EditableCellView *editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier0];
         if (editableCell == nil) {
@@ -143,7 +143,7 @@
         editableCell.selectionStyle = UITableViewCellSelectionStyleNone;
         editableCell.imageView.image = nil;
         editableCell.detailTextLabel.text = nil;
-        
+
         if (row == 0) {
             editableCell.textField.text = self.weaponName;
             editableCell.textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -107,7 +107,7 @@
         [imgView release];
     }
     [img release];
-    
+
     return cell;
 }
 
@@ -150,7 +150,7 @@
         imgView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
         [footer addSubview:imgView];
         [imgView release];
-        
+
         UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 20)];
         label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
         label.textAlignment = UITextAlignmentCenter;
@@ -159,7 +159,7 @@
         label.center = CGPointMake(self.tableView.frame.size.width/2, 250);
         [footer addSubview:label];
         [label release];
-        
+
         return [footer autorelease];
     } else
         return nil;
--- a/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m	Sun Jan 27 00:28:57 2013 +0100
@@ -150,7 +150,7 @@
 
         cell.textLabel.text = [[[self.listOfAllTeams objectAtIndex:[indexPath row]] objectForKey:@"team"] stringByDeletingPathExtension];
         cell.textLabel.backgroundColor = [UIColor clearColor];
-        
+
         NSString *teamPath = [NSString stringWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),cell.textLabel.text];
         NSDictionary *firstHog = [[[NSDictionary dictionaryWithContentsOfFile:teamPath] objectForKey:@"hedgehogs"] objectAtIndex:0];
         if ([[firstHog objectForKey:@"level"] intValue] != 0) {
@@ -159,7 +159,7 @@
             [imgString release];
             UIImageView *spriteView = [[UIImageView alloc] initWithImage:sprite];
             [sprite release];
-            
+
             cell.accessoryView = spriteView;
             [spriteView release];
         } else
--- a/project_files/HedgewarsMobile/Classes/WeaponCellView.m	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Classes/WeaponCellView.m	Sun Jan 27 00:28:57 2013 +0100
@@ -159,7 +159,7 @@
 
     weaponIcon.frame = CGRectMake(5, 5, 32, 32);
     weaponName.frame = CGRectMake(45, 8, 200, 25);
-    
+
     helpLabel.frame = CGRectMake(200 + helpLabelOffset, 11, helpLabelLength, 20);
 
     // second line
@@ -212,7 +212,7 @@
 -(void) startDragging:(id) sender {
     UISlider *slider = (UISlider *)sender;
     NSString *str = nil;
-    
+
     switch (slider.tag) {
         case 100:
             str = NSLocalizedString(@"Initial quantity",@"ammo selection");
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Sun Jan 27 00:28:57 2013 +0100
@@ -67,7 +67,6 @@
 		6129B9F711EFB04D0017E305 /* denied.png in Resources */ = {isa = PBXBuildFile; fileRef = 6129B9F611EFB04D0017E305 /* denied.png */; };
 		612CABAB1391CE68005E9596 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 612CABAA1391CE68005E9596 /* AVFoundation.framework */; };
 		61370653117B1D50004EE44A /* Entitlements-Distribution.plist in Resources */ = {isa = PBXBuildFile; fileRef = 61370652117B1D50004EE44A /* Entitlements-Distribution.plist */; };
-		61399013125D19C0003C2DC0 /* uMobile.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61399012125D19C0003C2DC0 /* uMobile.pas */; };
 		6147DAD31253DCDE0010357E /* savesButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 6147DAD21253DCDE0010357E /* savesButton.png */; };
 		61536DF411CEAE7100D87A7E /* GameConfigViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924A11CA9CB400D6E256 /* GameConfigViewController-iPhone.xib */; };
 		615AD96212073B4D00F2FF04 /* startGameButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD96112073B4D00F2FF04 /* startGameButton.png */; };
@@ -456,7 +455,6 @@
 		6129B9F611EFB04D0017E305 /* denied.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = denied.png; path = Resources/denied.png; sourceTree = "<group>"; };
 		612CABAA1391CE68005E9596 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
 		61370652117B1D50004EE44A /* Entitlements-Distribution.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Entitlements-Distribution.plist"; sourceTree = "<group>"; };
-		61399012125D19C0003C2DC0 /* uMobile.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uMobile.pas; path = ../../hedgewars/uMobile.pas; sourceTree = SOURCE_ROOT; };
 		6147DAD21253DCDE0010357E /* savesButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = savesButton.png; path = Resources/Frontend/savesButton.png; sourceTree = "<group>"; };
 		614E333D11DE9A93009DBA4E /* VGSHandlers.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = VGSHandlers.inc; path = ../../hedgewars/VGSHandlers.inc; sourceTree = SOURCE_ROOT; };
 		6154A53114C37E4A00F6EEF6 /* Romanian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Romanian; path = Locale/Romanian.lproj/About.strings; sourceTree = "<group>"; };
@@ -1243,7 +1241,6 @@
 				61A4A39112A5CCC2004D81E6 /* uTypes.pas */,
 				61A4A39212A5CCC2004D81E6 /* uUtils.pas */,
 				61A4A39312A5CCC2004D81E6 /* uVariables.pas */,
-				61399012125D19C0003C2DC0 /* uMobile.pas */,
 				619C5AF3124F7E3100D041AE /* LuaPas.pas */,
 				61E1F4F711D004240016A5AA /* adler32.pas */,
 				617987E7114AA34C00BA94A9 /* hwengine.pas */,
@@ -1711,7 +1708,6 @@
 				611D9BFB12497E9800008271 /* SavedGamesViewController.m in Sources */,
 				619C5AF4124F7E3100D041AE /* LuaPas.pas in Sources */,
 				619C5BA2124FA59000D041AE /* MapPreviewButtonView.m in Sources */,
-				61399013125D19C0003C2DC0 /* uMobile.pas in Sources */,
 				61D205A1127CDD1100ABD83E /* ObjcExports.m in Sources */,
 				61006F95128DE31F00EBA7F7 /* CreationChamber.m in Sources */,
 				61A4A39412A5CCC2004D81E6 /* uCommandHandlers.pas in Sources */,
--- a/project_files/HedgewarsMobile/Locale/hw-desc_da.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_da.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 Hedgewars er tilgængeligt i Mac App Store! Søg efter Hedgewars på din Mac og få din GRATIS kopi i dag!
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 iOS versionen har flere eksklusive funktioner, så som
 * iPad VGA-udgangssignal: tilslut en ekstern skærm og spil i fuld oplysning;
--- a/project_files/HedgewarsMobile/Locale/hw-desc_de.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_de.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 Hedgewars ist jetzt auch im Mac Appstore verfügbar! Suche Hedgewars von deinem Mac und bekomme deine GRATIS Kopie!
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 Der iOS-Port hat einige exklusiven Features, wie z.B.:
 * iPad VGA-Ausgabe: Schließe einen externen Bildschirm an und spiele mit voller Auflösung;
--- a/project_files/HedgewarsMobile/Locale/hw-desc_en.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_en.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 Hedgewars is available for the Mac Appstore! Search Hedgewars on your Mac and get your FREE copy today!
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 The iOS port has some exclusive features, such as
 * iPad VGA Out: hook an external display and play at full resolution;
--- a/project_files/HedgewarsMobile/Locale/hw-desc_es.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_es.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 ¡Hedgewars esta disponible en la Mac Appstore! ¡Busca Hedgewars en tu Mac y consigue tu copia gratuita hoy!
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 La versión para iOS contiene algunas características exclusivas, como:
 * Salida VGA para iPad: conecta un monitor externo y juega a resolución completa;
--- a/project_files/HedgewarsMobile/Locale/hw-desc_fr.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_fr.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 Hedgewars est disponible sur le Mac Appstore ! Cherchez Hedgewars sur votre Mac et obtenez une copie gratuite aujourd'hui !
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 Le portage vers iOS a quelques fonctionnalités exclusives, comme :
 * Sortie VGA de l'iPad: connectez un affichage externe et jouez à la résolution maximale;
--- a/project_files/HedgewarsMobile/Locale/hw-desc_it.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_it.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 Hedgewars è disponiile sul Mac Appstore! Cerca Hedgewars sul tuo Mac e scarica la tua copia gratuitamente!
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 La verisone per iOS offre alcune fantastiche esclusive, come
 * iPad VGA Out: attacca un dispaly esterno e gioca a piena risoluzione;
--- a/project_files/HedgewarsMobile/Locale/hw-desc_pl.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_pl.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 Hedgewars jest dostępny na Mac Appstore! Poszukaj Hedgewars na swoim Mac'u i otrzymaj kopię za darmo!
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 Port na iOS posiada kilka unikalnych funkcji, takich jak:
 * Wtyczka iPad VGA : podłącz zewnętrzny ekran i graj w pełnej rozdzielczości;
--- a/project_files/HedgewarsMobile/Locale/hw-desc_pt.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/HedgewarsMobile/Locale/hw-desc_pt.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 O Hedgewars está disponível na Mac App Store! Pesquisa Hedgewars no teu MacBook e obtém a tua cópia GRATUITA hoje!
 ✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
-✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭ 
+✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭
 
 A versão para iOS tem algumas funcionalidades exclusivas, como
 * Saída VGA no iPad: liga-o a um ecrã externo e joga em resolução completa;
--- a/project_files/hedgewars.pro	Wed Jan 02 11:11:49 2013 +0100
+++ b/project_files/hedgewars.pro	Sun Jan 27 00:28:57 2013 +0100
@@ -9,6 +9,7 @@
 INCLUDEPATH += ../QTfrontend/ui/dialog
 INCLUDEPATH += ../QTfrontend/net
 INCLUDEPATH += ../QTfrontend/util
+INCLUDEPATH += ../QTfrontend/util/platform
 INCLUDEPATH += ../misc/physfs/src
 INCLUDEPATH += ../misc/physfs/extras
 
@@ -26,7 +27,6 @@
     ../QTfrontend/ui/page/pagetraining.h \
     ../QTfrontend/ui/page/pageselectweapon.h \
     ../QTfrontend/ui/page/pagesingleplayer.h \
-    ../QTfrontend/ui/page/pagenettype.h \
     ../QTfrontend/ui/page/pageingame.h \
     ../QTfrontend/ui/page/pageadmin.h \
     ../QTfrontend/ui/page/pagescheme.h \
@@ -92,9 +92,7 @@
     ../QTfrontend/hwconsts.h \
     ../QTfrontend/sdlkeys.h \
     ../QTfrontend/ui/mouseoverfilter.h \
-    ../QTfrontend/ui/qpushbuttonwithsound.h \
     ../QTfrontend/ui/widget/qpushbuttonwithsound.h \
-    ../QTfrontend/ui/page/pagefeedback.h \
     ../QTfrontend/model/roomslistmodel.h \
     ../QTfrontend/ui/dialog/input_password.h \
     ../QTfrontend/ui/widget/colorwidget.h \
@@ -108,7 +106,17 @@
     ../QTfrontend/model/playerslistmodel.h \
     ../QTfrontend/util/LibavInteraction.h \
     ../QTfrontend/util/FileEngine.h \
-    ../QTfrontend/ui/dialog/bandialog.h
+    ../QTfrontend/ui/dialog/bandialog.h \
+    ../QTfrontend/ui/widget/keybinder.h \
+    ../QTfrontend/ui/widget/seedprompt.h \
+    ../QTfrontend/ui/widget/themeprompt.h \
+    ../QTfrontend/ui/widget/hatbutton.h \
+    ../QTfrontend/util/MessageDialog.h \
+    ../QTfrontend/ui/widget/hatprompt.h \
+    ../QTfrontend/ui/widget/feedbackdialog.h \
+    ../QTfrontend/ui/widget/flowlayout.h \
+    ../QTfrontend/ui/widget/lineeditcursor.h \
+    ../QTfrontend/servermessages.h
 
 
 SOURCES += ../QTfrontend/model/ammoSchemeModel.cpp \
@@ -121,7 +129,6 @@
     ../QTfrontend/ui/page/pageroomslist.cpp \
     ../QTfrontend/ui/page/pagemultiplayer.cpp \
     ../QTfrontend/ui/page/pagegamestats.cpp \
-    ../QTfrontend/ui/page/pagenettype.cpp \
     ../QTfrontend/ui/page/pageeditteam.cpp \
     ../QTfrontend/ui/page/pagenetgame.cpp \
     ../QTfrontend/ui/page/pagedata.cpp \
@@ -186,10 +193,11 @@
     ../QTfrontend/hwconsts.cpp \
     ../QTfrontend/ui/mouseoverfilter.cpp \
     ../QTfrontend/ui/widget/qpushbuttonwithsound.cpp \
-    ../QTfrontend/ui/page/pagefeedback.cpp \
     ../QTfrontend/model/roomslistmodel.cpp \
     ../QTfrontend/ui/dialog/input_password.cpp \
     ../QTfrontend/ui/widget/colorwidget.cpp \
+    ../QTfrontend/ui/widget/hatbutton.cpp \
+    ../QTfrontend/ui/widget/hatprompt.cpp \
     ../QTfrontend/model/HatModel.cpp \
     ../QTfrontend/model/GameStyleModel.cpp \
     ../QTfrontend/ui/page/pagevideos.cpp \
@@ -200,7 +208,14 @@
     ../QTfrontend/model/playerslistmodel.cpp \
     ../QTfrontend/util/LibavInteraction.cpp \
     ../QTfrontend/util/FileEngine.cpp \
-    ../QTfrontend/ui/dialog/bandialog.cpp
+    ../QTfrontend/ui/dialog/bandialog.cpp \
+    ../QTfrontend/ui/widget/keybinder.cpp \
+    ../QTfrontend/ui/widget/seedprompt.cpp \
+    ../QTfrontend/ui/widget/themeprompt.cpp \
+    ../QTfrontend/util/MessageDialog.cpp \
+    ../QTfrontend/ui/widget/feedbackdialog.cpp \
+    ../QTfrontend/ui/widget/flowlayout.cpp \
+    ../QTfrontend/ui/widget/lineeditcursor.cpp
 
 
 TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_ar.ts \
@@ -239,15 +254,13 @@
 
 macx {
     QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6
-    QMAKE_MAC_SDK=/Developer/SDKs/MacOSX10.6.sdk
+    QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.6.sdk
 
-    OBJECTIVE_SOURCES += ../QTfrontend/*.m ../QTfrontend/*.mm
-    SOURCES += ../QTfrontend/AutoUpdater.cpp ../QTfrontend/InstallController.cpp \
+    OBJECTIVE_SOURCES += ../QTfrontend/util/platform/*.m ../QTfrontend/util/platform/*.mm
+    SOURCES += ../QTfrontend/util/platform/AutoUpdater.cpp \
+               ../QTfrontend/util/platform/InstallController.cpp \
                ../../build/QTfrontend/hwconsts.cpp
-    HEADERS += ../QTfrontend/M3InstallController.h ../QTfrontend/M3Panel.h \
-               ../QTfrontend/NSWorkspace_RBAdditions.h ../QTfrontend/AutoUpdater.h \
-               ../QTfrontend/CocoaInitializer.h ../QTfrontend/InstallController.h \
-               ../QTfrontend/SparkleAutoUpdater.h
+    HEADERS += ../QTfrontend/util/platform/*.h
 
     LIBS += -lobjc -framework AppKit -framework IOKit -framework Foundation -framework SDL -framework SDL_Mixer -framework Sparkle -DSPARKLE_ENABLED
     INCLUDEPATH += /Library/Frameworks/SDL.framework/Headers /Library/Frameworks/SDL_Mixer.framework/Headers
@@ -257,9 +270,9 @@
 
 win32 {
     RC_FILE = ../QTfrontend/hedgewars.rc
-    SOURCES += ../QTfrontend/xfire.cpp
+    SOURCES += ../QTfrontend/util/platform/xfire.cpp ../QTfrontend/util/platform/xfiregameclient.cpp
+    LIBS += -L../misc/winutils/lib
     INCLUDEPATH += ../misc/winutils/include
-    LIBS += -L../misc/winutils/lib
 }
 
 !macx {
@@ -268,5 +281,3 @@
         INCLUDEPATH += /usr/local/include/SDL /usr/include/SDL
     }
 }
-
-FORMS +=
--- a/share/Info.plist.in	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/Info.plist.in	Sun Jan 27 00:28:57 2013 +0100
@@ -2,159 +2,159 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-	<key>LSApplicationCategoryType</key>
-	<string>public.app-category.strategy-games</string>
-	<key>CFBundleName</key>
-	<string>Hedgewars</string>
-	<key>CFBundleExecutable</key>
-	<string>hedgewars</string>
-	<key>CFBundleGetInfoString</key>
-	<string>http://www.hedgewars.org</string>
-	<key>CFBundleIconFile</key>
-	<string>Icon.icns</string>
-	<key>CFBundleIdentifier</key>
-	<string>org.hedgewars.desktop</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>Hedge</string>
-	<key>CFBundleVersion</key>
-	<string>${HEDGEWARS_REVISION}</string>
-	<key>CFBundleShortVersionString</key>
-	<string>${HEDGEWARS_VERSION}</string>
-	<key>NSHumanReadableCopyright</key>
-	<string>Copyright © 2004-2012, Hedgewars Project</string>
-	<key>NSAppleScriptEnabled</key>
-	<false/>
-	<key>LSRequiresNativeExecution</key>
-	<true/>
-	<key>LSMinimumSystemVersionByArchitecture</key>
-	<dict>
-		<key>x86_64</key>
-		<string>10.6.0</string>
-		<key>i386</key>
-		<string>10.4.0</string>
-		<key>ppc</key>
-		<string>10.4.0</string>
-	</dict>
-	<key>LSArchitecturePriority</key>
-	<array>
-		<string>x86_64</string>
-		<string>i386</string>
-		<string>ppc</string>
-	</array>
-	<key>LSMinimumSystemVersion</key>
-	<string>${minimum_macosx_version}</string>
-	<key>SUPublicDSAKeyFile</key>
-	<string>dsa_pub.pem</string>
-	<key>SUFeedURL</key>
-	<string>http://www.hedgewars.org/download/appcast.xml</string>
-	<key>CFBundleLocalizations</key>
-	<array>
-		<string>ar</string>
-		<string>bg</string>
-		<string>cs</string>
-		<string>da</string>
-		<string>de</string>
-		<string>el</string>
-		<string>en</string>
-		<string>es</string>
-		<string>fi</string>
-		<string>fr</string>
-		<string>gl</string>
-		<string>hu</string>
-		<string>it</string>
-		<string>ja</string>
-		<string>ko</string>
-		<string>lt</string>
-		<string>nl</string>
-		<string>pl</string>
-		<string>pt_BR</string>
-		<string>pt_PT</string>
-		<string>ro</string>
-		<string>ru</string>
-		<string>sk</string>
-		<string>sv</string>
-		<string>tr_TR</string>
-		<string>uk</string>
-		<string>zh_CN</string>
-		<string>zh_TW</string>
-	</array>
-	<key>UTExportedTypeDeclarations</key>
-	<array>
-		<dict>
-			<key>UTTypeIdentifier</key>
-			<string>org.hedgewars.desktop.hws</string>
-			<key>UTTypeReferenceURL</key>
-			<string>http://www.hedgewars.org/demos/</string>
-			<key>UTTypeDescription</key>
-			<string>Hedgewars Save Game</string>
-			<key>UTTypeIconFile</key>
-			<string>public.text.icns</string>
-			<key>UTTypeConformsTo</key>
-			<array>
-				<string>public.data</string>
-			</array>
-			<key>UTTypeTagSpecification</key>
-			<dict>
-				<key>public.filename-extension</key>
-				<array>
-					<string>hws</string>
-				</array>
-				<key>public.mime-type</key>
-				<string>application/x-hedgewars-save</string>
-			</dict>
-		</dict>
-		<dict>
-			<key>UTTypeIdentifier</key>
-			<string>org.hedgewars.desktop.hwd</string>
-			<key>UTTypeReferenceURL</key>
-			<string>http://www.hedgewars.org/demos/</string>
-			<key>UTTypeIconFile</key>
-			<string>public.text.icns</string>
-			<key>UTTypeDescription</key>
-			<string>Hedgewars Demo Game</string>
-			<key>UTTypeConformsTo</key>
-			<array>
-				<string>public.data</string>
-			</array>
-			<key>UTTypeTagSpecification</key>
-			<dict>
-				<key>public.filename-extension</key>
-				<array>
-					<string>hwd</string>
-				</array>
-				<key>public.mime-type</key>
-				<string>application/x-hedgewars-demo</string>
-			</dict>
-		</dict>
-	</array>
-	<key>CFBundleDocumentTypes</key>
-	<array>
-		<dict>
-			<key>CFBundleTypeIconFile</key>
-			<string>hwico.icns</string>
-			<key>CFBundleTypeName</key>
-			<string>Hedgewars Savefile</string>
-			<key>LSItemContentTypes</key>
-			<array>
-				<string>org.hedgewars.desktop.hws</string>
-			</array>
-			<key>CFBundleTypeRole</key>
-			<string>Editor</string>
-		</dict>
-		<dict>
-			<key>CFBundleTypeIconFile</key>
-			<string>hwico.icns</string>
-			<key>CFBundleTypeName</key>
-			<string>Hedgewars Demofile</string>
-			<key>LSItemContentTypes</key>
-			<array>
-				<string>org.hedgewars.desktop.hwd</string>
-			</array>
-			<key>CFBundleTypeRole</key>
-			<string>Viewer</string>
-		</dict>
-	</array>
+    <key>LSApplicationCategoryType</key>
+    <string>public.app-category.strategy-games</string>
+    <key>CFBundleName</key>
+    <string>Hedgewars</string>
+    <key>CFBundleExecutable</key>
+    <string>hedgewars</string>
+    <key>CFBundleGetInfoString</key>
+    <string>http://www.hedgewars.org</string>
+    <key>CFBundleIconFile</key>
+    <string>Icon.icns</string>
+    <key>CFBundleIdentifier</key>
+    <string>org.hedgewars.desktop</string>
+    <key>CFBundlePackageType</key>
+    <string>APPL</string>
+    <key>CFBundleSignature</key>
+    <string>Hedge</string>
+    <key>CFBundleVersion</key>
+    <string>${HEDGEWARS_REVISION}</string>
+    <key>CFBundleShortVersionString</key>
+    <string>${HEDGEWARS_VERSION}</string>
+    <key>NSHumanReadableCopyright</key>
+    <string>Copyright © 2004-2012, Hedgewars Project</string>
+    <key>NSAppleScriptEnabled</key>
+    <false/>
+    <key>LSRequiresNativeExecution</key>
+    <true/>
+    <key>LSMinimumSystemVersionByArchitecture</key>
+    <dict>
+        <key>x86_64</key>
+        <string>10.6.0</string>
+        <key>i386</key>
+        <string>10.4.0</string>
+        <key>ppc</key>
+        <string>10.4.0</string>
+    </dict>
+    <key>LSArchitecturePriority</key>
+    <array>
+        <string>x86_64</string>
+        <string>i386</string>
+        <string>ppc</string>
+    </array>
+    <key>LSMinimumSystemVersion</key>
+    <string>${minimum_macosx_version}</string>
+    <key>SUPublicDSAKeyFile</key>
+    <string>dsa_pub.pem</string>
+    <key>SUFeedURL</key>
+    <string>http://www.hedgewars.org/download/appcast.xml</string>
+    <key>CFBundleLocalizations</key>
+    <array>
+        <string>ar</string>
+        <string>bg</string>
+        <string>cs</string>
+        <string>da</string>
+        <string>de</string>
+        <string>el</string>
+        <string>en</string>
+        <string>es</string>
+        <string>fi</string>
+        <string>fr</string>
+        <string>gl</string>
+        <string>hu</string>
+        <string>it</string>
+        <string>ja</string>
+        <string>ko</string>
+        <string>lt</string>
+        <string>nl</string>
+        <string>pl</string>
+        <string>pt_BR</string>
+        <string>pt_PT</string>
+        <string>ro</string>
+        <string>ru</string>
+        <string>sk</string>
+        <string>sv</string>
+        <string>tr_TR</string>
+        <string>uk</string>
+        <string>zh_CN</string>
+        <string>zh_TW</string>
+    </array>
+    <key>UTExportedTypeDeclarations</key>
+    <array>
+        <dict>
+            <key>UTTypeIdentifier</key>
+            <string>org.hedgewars.desktop.hws</string>
+            <key>UTTypeReferenceURL</key>
+            <string>http://www.hedgewars.org/demos/</string>
+            <key>UTTypeDescription</key>
+            <string>Hedgewars Save Game</string>
+            <key>UTTypeIconFile</key>
+            <string>public.text.icns</string>
+            <key>UTTypeConformsTo</key>
+            <array>
+                <string>public.data</string>
+            </array>
+            <key>UTTypeTagSpecification</key>
+            <dict>
+                <key>public.filename-extension</key>
+                <array>
+                    <string>hws</string>
+                </array>
+                <key>public.mime-type</key>
+                <string>application/x-hedgewars-save</string>
+            </dict>
+        </dict>
+        <dict>
+            <key>UTTypeIdentifier</key>
+            <string>org.hedgewars.desktop.hwd</string>
+            <key>UTTypeReferenceURL</key>
+            <string>http://www.hedgewars.org/demos/</string>
+            <key>UTTypeIconFile</key>
+            <string>public.text.icns</string>
+            <key>UTTypeDescription</key>
+            <string>Hedgewars Demo Game</string>
+            <key>UTTypeConformsTo</key>
+            <array>
+                <string>public.data</string>
+            </array>
+            <key>UTTypeTagSpecification</key>
+            <dict>
+                <key>public.filename-extension</key>
+                <array>
+                    <string>hwd</string>
+                </array>
+                <key>public.mime-type</key>
+                <string>application/x-hedgewars-demo</string>
+            </dict>
+        </dict>
+    </array>
+    <key>CFBundleDocumentTypes</key>
+    <array>
+        <dict>
+            <key>CFBundleTypeIconFile</key>
+            <string>hwico.icns</string>
+            <key>CFBundleTypeName</key>
+            <string>Hedgewars Savefile</string>
+            <key>LSItemContentTypes</key>
+            <array>
+                <string>org.hedgewars.desktop.hws</string>
+            </array>
+            <key>CFBundleTypeRole</key>
+            <string>Editor</string>
+        </dict>
+        <dict>
+            <key>CFBundleTypeIconFile</key>
+            <string>hwico.icns</string>
+            <key>CFBundleTypeName</key>
+            <string>Hedgewars Demofile</string>
+            <key>LSItemContentTypes</key>
+            <array>
+                <string>org.hedgewars.desktop.hwd</string>
+            </array>
+            <key>CFBundleTypeRole</key>
+            <string>Viewer</string>
+        </dict>
+    </array>
 </dict>
 </plist>
--- a/share/hedgewars/Data/Fonts/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Fonts/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,4 +1,4 @@
 install(FILES
-	DejaVuSans-Bold.ttf
+    DejaVuSans-Bold.ttf
     wqy-zenhei.ttc
-	DESTINATION ${SHAREPATH}Data/Fonts)
+    DESTINATION ${SHAREPATH}Data/Fonts)
--- a/share/hedgewars/Data/Forts/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Forts/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,7 +1,7 @@
-file(GLOB FortSprites *L.png *R.png) 
+file(GLOB FortSprites *L.png *R.png)
 list(REMOVE_ITEM FortSprites *@2x.png)
 list(REMOVE_ITEM FortSprites *-icon.png)
 
 install(FILES
-	${FortSprites}
-	DESTINATION ${SHAREPATH}Data/Forts)
+    ${FortSprites}
+    DESTINATION ${SHAREPATH}Data/Forts)
--- a/share/hedgewars/Data/Graphics/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -6,9 +6,9 @@
 add_subdirectory(SuddenDeath)
 add_subdirectory(Missions)
 
-file(GLOB BaseSprites *.png) 
+file(GLOB BaseSprites *.png)
 list(REMOVE_ITEM BaseSprites *@2x.png)
 
 install(FILES
-	${BaseSprites}
-	DESTINATION ${SHAREPATH}Data/Graphics)
+    ${BaseSprites}
+    DESTINATION ${SHAREPATH}Data/Graphics)
--- a/share/hedgewars/Data/Graphics/Flags/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/Flags/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
-file(GLOB FlagTemplates *.png) 
+file(GLOB FlagTemplates *.png)
 
 install(FILES
-	${FlagTemplates}
-	DESTINATION ${SHAREPATH}Data/Graphics/Flags)
+    ${FlagTemplates}
+    DESTINATION ${SHAREPATH}Data/Graphics/Flags)
--- a/share/hedgewars/Data/Graphics/Graves/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/Graves/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
-file(GLOB GraveSprites *.png) 
+file(GLOB GraveSprites *.png)
 
 install(FILES
-	${GraveSprites}
-	DESTINATION ${SHAREPATH}Data/Graphics/Graves)
+    ${GraveSprites}
+    DESTINATION ${SHAREPATH}Data/Graphics/Graves)
--- a/share/hedgewars/Data/Graphics/Hats/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/Hats/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -3,5 +3,5 @@
 file(GLOB HatSprites *.png)
 
 install(FILES
-	${HatSprites}
-	DESTINATION ${SHAREPATH}Data/Graphics/Hats)
+    ${HatSprites}
+    DESTINATION ${SHAREPATH}Data/Graphics/Hats)
--- a/share/hedgewars/Data/Graphics/Hats/Reserved/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/Hats/Reserved/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 file(GLOB HatSprites *.png)
 
 install(FILES
-	${HatSprites}
-	DESTINATION ${SHAREPATH}Data/Graphics/Hats/Reserved)
+    ${HatSprites}
+    DESTINATION ${SHAREPATH}Data/Graphics/Hats/Reserved)
--- a/share/hedgewars/Data/Graphics/Hedgehog/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/Hedgehog/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 file(GLOB HedgehogSprites *.png)
 
 install(FILES
-	${HedgehogSprites}
-	DESTINATION ${SHAREPATH}Data/Graphics/Hedgehog)
+    ${HedgehogSprites}
+    DESTINATION ${SHAREPATH}Data/Graphics/Hedgehog)
--- a/share/hedgewars/Data/Graphics/Missions/Training/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/Missions/Training/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 file(GLOB MissionPics *@2x.png)
 
 install(FILES
-	${MissionPics}
-	DESTINATION ${SHAREPATH}Data/Graphics/Missions/Training)
+    ${MissionPics}
+    DESTINATION ${SHAREPATH}Data/Graphics/Missions/Training)
--- a/share/hedgewars/Data/Graphics/SuddenDeath/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Graphics/SuddenDeath/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 file(GLOB Sprites *.png)
 
 install(FILES
-	${Sprites}
-	DESTINATION ${SHAREPATH}Data/Graphics/SuddenDeath)
+    ${Sprites}
+    DESTINATION ${SHAREPATH}Data/Graphics/SuddenDeath)
--- a/share/hedgewars/Data/Locale/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -6,17 +6,17 @@
 
 QT4_ADD_TRANSLATION(QM ${tsfiles})
 
-add_custom_target (release-translation ALL 
-		DEPENDS ${QM}
-		COMMENT "Compiling ts files"
+add_custom_target (release-translation ALL
+        DEPENDS ${QM}
+        COMMENT "Compiling ts files"
 )
 
 install(FILES
-	${txttrans2}
-	${txttrans5}
-	${QM}
-	${luafiles}
-	${missionfiles}
-	DESTINATION ${SHAREPATH}Data/Locale
+    ${txttrans2}
+    ${txttrans5}
+    ${QM}
+    ${luafiles}
+    ${missionfiles}
+    DESTINATION ${SHAREPATH}Data/Locale
 )
 
--- a/share/hedgewars/Data/Locale/cs.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/cs.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -506,7 +506,7 @@
 04:51=Získat ve volném záběru vrhá kouli bláta.|Žihadla bit, a srazí prasata zpět.
 04:52=NEPOUŽITO
 04:53=Vydejte se na dobrodružství v Äase a prostoru,|pÅ™iÄemž vaÅ¡i kamarádi bojovat dál sám.|Být pÅ™ipraven vrátit kdykoliv,|nebo náhlé smrti nebo pokud jsou vÅ¡ichni poraženi.|Prohlášení. Nefunguje v náhlé smrti,|Pokud jste sami, nebo jste-li král.
-04:54=NEÚPLNà                 
+04:54=NEÚPLNÃ
 04:55=Sprej proud lepkavými vloÄkami.|StavÄ›t mosty, pohÅ™bít nepřátele, utÄ›snÄ›ní tunely.|BuÄte opatrní, nechcete dostat každý z vás!
 
 ; Game goal strings
--- a/share/hedgewars/Data/Locale/da.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/da.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -505,7 +505,7 @@
 04:51=Få et skud lige ind med en Mudderklat.|Bider en smule og slår fjender omkuld.
 04:52=UBRUGT
 04:53=Tag på et eventyr gennem tid og rum,|mens du efterlader kampen til dine kammerater.|Vær klar til at vende tilbage når som helst,|eller hvis Pludselig Død indtræder|eller alle dine andre pindsvin dør.|Advarsel! Virker ikke under Pludselig Død,|hvis du er alene eller er Konge.
-04:54=UFÆRDIG                                                                                                                                    
+04:54=UFÆRDIG
 04:55=Sprøjt rundt med klistrende flammer.|Byg broer, begrav fjender, luk tunneler af.|Pas på ikke selv at få noget på dig.
 
 ; Game goal strings
--- a/share/hedgewars/Data/Locale/el.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/el.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -164,7 +164,7 @@
 02:01=Ο %1 βÏήκε την χαμένη πόλη της Ατλαντίδας!
 02:01=Ο %1 έγινε Ï„Ïοφή για τα ψάÏια!
 02:01=Του %1 δεν του αÏέσουν τα αθλήματα του νεÏοÏ!
-02:01=Ο %1 έπÏεπε να φέÏει τη σχεδία του! 
+02:01=Ο %1 έπÏεπε να φέÏει τη σχεδία του!
 02:01=Ο %1 πιστεÏει ότι το θαλασσινό νεÏÏŒ κάνει καλό στο δέÏμα!
 02:01=Ο %1 βάζει αλάτι στις πληγές του!
 02:01=Ο %1 πάει ταξίδι στην άβυσσο!
@@ -187,10 +187,10 @@
 02:02=ΣυνέτÏιψε τους εχθÏοÏÏ‚ σου!
 02:02=Ας νικήσει ο καλÏτεÏος σκαντζόχοιÏος!
 02:02=Îίκη ή θάνατος!
-02:02=Τα λάφυÏα πάνε στο νικητή! 
+02:02=Τα λάφυÏα πάνε στο νικητή!
 02:02=Η ήττα δεν είναι επιλογή!
 02:02=ΣκοÏπίστε τον όλεθÏο!
-02:02=Αφέθηκαν ελεÏθεÏοι οι σκαντζόχοιÏοι του πολέμου! 
+02:02=Αφέθηκαν ελεÏθεÏοι οι σκαντζόχοιÏοι του πολέμου!
 02:02=Hedgewars, σας Ï€ÏοσφέÏεται από το Hedgewars.org
 02:02=ΑΑΑΑΕΕΕΕΕΕΡΡΡΡΡΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑ.....
 02:02=Είσαι Ï€Î¿Î»Ï Ï„Ï…Ï‡ÎµÏός αν δεν είσαι εναντίων του Tiyuri!
@@ -486,7 +486,7 @@
 
 ; Game goal strings
 05:00=Κανόνες ΠαιχνιδιοÏ
-05:01=ΙσχÏουν οι ακόλουθοι κανόνες : 
+05:01=ΙσχÏουν οι ακόλουθοι κανόνες :
 05:02=ΦÏοÏÏια : ΥπεÏασπιστείτε το φÏοÏÏιό σας, συντÏίψτε τους εχθÏοÏÏ‚ σας!
 05:03=ΜικÏοβαÏÏτητα : ΠÏοσέξτε Ï€Î¿Ï Ï€Î±Ï„Î¬Ï„Îµ!
 05:04=Ασπίδα: Οι σκαντζόχοιÏοι είναι (σχεδόν) άτÏωτοι.
--- a/share/hedgewars/Data/Locale/es.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/es.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -504,7 +504,7 @@
 04:51=¿Qué hay más barato que el barro?|Un tiro gratis gracias a la bola de barro.|Hará que el enemigo salga volando|y escuece un poco si te entra en los ojos.
 04:52=SIN USAR
 04:53=Vive una trepidante aventura a través del|espacio y el tiempo mientras tus compañeros|siguen luchando en tu lugar.|Estate preparado para volver en cualquier momento,|o al llegar la Muerte súbita si te has quedado solo.|Aviso: no funciona durante la Muerte súbita,|si estás solo o si eres el rey.
-04:54=INCOMPLETO                                                                                                                                     
+04:54=INCOMPLETO
 04:55=Esparce un chorro de pegajoso barro.|Construye puentes, entierra enemigos o cierra túneles.|¡Ten especial cuidado de no mancharte!
 
 ; Game goal strings
--- a/share/hedgewars/Data/Locale/fi.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/fi.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -416,18 +416,18 @@
 04:01=Hyökkää sirpalepommilla.|Se jakaantuu pienemmiksi pommeiksi ajan|loppuessa ajastimesta|1-5: Säädä kranaatin ajastin|Hyökkää: Pidä pohjassa lisätäksesi heittovoimaa
 04:02=Hyökkää ballistisella ammuksella|johon tuuli saattaa vaikuttaa|Hyökkää: Pidä pohjassa lisätäksesi voimaa
 04:03=Laukaise ohjattu mehiläinen joka lukittuu|valittuun kohteeseen. Älä ammu täydellä voimalla|lisätäksesi tarkkuutta|Kursori: Valitse kohde|Hyökkää: Pidä pohjassa lisätäksesi voimaa
-04:04=Ammu vihollisiasi kahdesti laukeavalla haulikolla.|Kiitos leviämisen sinun ei tarvitse tähdätä suoraan|vahingoittaeksi vihollisiasi.|Hyökkää: Ammu (useita kertoja)                   
+04:04=Ammu vihollisiasi kahdesti laukeavalla haulikolla.|Kiitos leviämisen sinun ei tarvitse tähdätä suoraan|vahingoittaeksi vihollisiasi.|Hyökkää: Ammu (useita kertoja)
 04:05=Siirry maan alle! Käytä maaporaa porataksesi|reiän maahan päästäksesi muille alueille.|Hyökkää: Aloita ja lopeta kaivaminen
 04:06=Tylsää? Ei mitään tapaa hyökätä? Säästät ammuksiasi?|Ei hätää! Jätä vuoro väliin, pelkuri!|Hyökkää: Jätä vuorosi väliin ilman tappelua
 04:07=Ylitä pitkiä välimatkoja|hyvin ajoitetuilla laukauksilla ja köydellä.|Käytä momenttiasi liukuaksesi muiden siilien sekaan|tai pudota kranaatteja ja muita aseita niiden päälle.|Hyökkää: Ammu ja irroita köysi|Pitkä hyppy: Pudota kranaatteja ja vastaavia aseita
 04:08=Pidä viholliset kaukana pudottamalla miina|kapeille käytäville tai suoraan niiden jalkojen juureen.|Pakene ennen kuin aktivoit sen itse!|Hyökkää: Pudota miina viereesi
 04:09=Oletko epävarma tähtäyksestäsi? Käytä Desert|Eaglea hyökätäksesi neljällä laukauksella| Hyökkää: Ammu (useita kertoja)
-04:10=Raaka voima on aina vaihtoehto. Käytä tätä klassista|räjähdettä vihollisiis ja pakene.|Hyökkää: Pudota dynamiitti viereesi                                                             
+04:10=Raaka voima on aina vaihtoehto. Käytä tätä klassista|räjähdettä vihollisiis ja pakene.|Hyökkää: Pudota dynamiitti viereesi
 04:11=Hankkiudu vihollissiileistä eroon lyömällä ne mailalla|kartan ulkopuolelle tai veteen. Tai miten olisi|muutaman miinan lyöminen kavereillesi?|Hyökkää: Lyö kaikkia edessä olevia
-04:12=Mene henkilökohtaisuuksiin vapauttamalla|tämän melkein tappavan kamppailulajitekniikan voimat.|Hyökkää: Suorita Fire Punch                                                                           
-04:13=UNUSED                                                                                                                                                                                             
+04:12=Mene henkilökohtaisuuksiin vapauttamalla|tämän melkein tappavan kamppailulajitekniikan voimat.|Hyökkää: Suorita Fire Punch
+04:13=UNUSED
 04:14=Korkean paikan kammo? Parempi ottaa laskuvarjo.|Se avautuu kun putoat liian kauas|ja pelastaa siilen putoamisvaurioilta.|Hyökkää: Avaa laskuvarjo
-04:15=Kutsu lentokone hyökkäämään vihollisiasi päin|pommituslennolla|Vasen/Oikea: Valitse suunta|Osoitin: Valitse kohdealue                                                              
+04:15=Kutsu lentokone hyökkäämään vihollisiasi päin|pommituslennolla|Vasen/Oikea: Valitse suunta|Osoitin: Valitse kohdealue
 04:16=Kutsu lentokone pudottaaman useita miinoja kohdealueelle|Vasen/Oikea: Valitse hyökkäyssuunta|Osoitin: Valitse kohdealue
 04:17=Tarvitsetko suojaa? Käytä puhalluslamppua kaivaaksesi|tunnelin maahan saadaksesi suojaa|Hyökkää: Aloita ja lopeta kaivaminen
 04:18=Tarvitsetko suojaa vai haluatko ylittää|ylittämättömän maa-alueen? Sijoita muutamia palkkeja kuten haluat|Vasen/Oikea: Valitse asetettava palkki|Osoitin: Sijoita palkki sallittuun kohtaan
@@ -436,7 +436,7 @@
 04:21=Ammu kranaatin kaltainen ammus|joka vapauttaa useita pommeja osuessaan|Hyökkää: Ammu täydellä voimalla
 04:22=Ei vain Indiana Jonesille! Piiska on hyödyllinen ase|useissa tilanteissa. Erityisesti|jos haluat sysätä jonkun alas kielekkeeltä|Hyökkää: Iske kaikkea edessäsi olevaa
 04:23=Jos sinulla ei ole mitään menettävää|tämä saattaa olla melko kätevä.|Uhraa siilesi laukaisemalla se|valittuun suuntan vahingottaen kaikkea tiellä olevaa räjähtäen lopussa|Hyökkää: Laukaise tuhoisa ja tappava hyökkäys
-04:24=Hyvää syntymäpäivää! Laukaise tämä kakku ja anna sen kävellä|vihollistesi viereen ja järjestä heille räjähtävät kekkerit.|Tämä kakku voi ylittää melkein minkä tahansa maaston|Mutta se saattaa räjähtää matkalla|Hyökkää: Laukaise kakku tai anna sen pysähtyä ja räjähtää                                      
+04:24=Hyvää syntymäpäivää! Laukaise tämä kakku ja anna sen kävellä|vihollistesi viereen ja järjestä heille räjähtävät kekkerit.|Tämä kakku voi ylittää melkein minkä tahansa maaston|Mutta se saattaa räjähtää matkalla|Hyökkää: Laukaise kakku tai anna sen pysähtyä ja räjähtää
 04:25=Käytä tätä naamioitumispakkausta saadaksesi vihollisesi|hyppäämään halatakseen (ja sitten putoamaan kuoppaan tai reikään).|Hyökkää: Käytä pakkausta ja yritä vietellä toinen siili
 04:26=Heitä tämä mehukas vesimeloni vihollsiasi kohti|Kun ajastimesta loppuu aika, se hajoaa useiksi|räjähtäviksi palasiksi.|1-5: säädä vesimelonin ajastinta|Hyökkää: Pidä pohjassa lisätäksesi voimaa
 04:27=Anna helvetin tulen sataa vihollistesi päälle käyttämällä tätä|pirullista räjähdettä. Älä mene liian lähelle tätä räjähdettä|koska pienemmät tulet saattavat kestää pitempään.|Hyökkää: Pidä pohjassa ampuaksesi voimakkaammin
--- a/share/hedgewars/Data/Locale/fr.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/fr.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -351,113 +351,113 @@
 02:10=Hors du parc !
 02:10=Coup gagnant !
 02:10=I believe I can FLY ! I believe I can... *boum*
-; Weapon Categories 
-03:00=Grenade à retardement 
-03:01=Grenade à retardement 
-03:02=Arme balistique 
-03:03=Arme téléguidée 
-03:04=Fusil (plusieurs coups) 
-03:05=Engin excavateur 
-03:06=Action 
-03:07=Véhicule utilitaire 
-03:08=Bombe de proximité 
-03:09=Révolver (à plusieurs coups) 
-03:10=BOUM! 
-03:11=Bonk! 
-03:12=Arts martiaux 
-03:13=Non Utilisé 
-03:14=Véhicule utilitaire 
-03:15=Attaque aéroportée 
-03:16=Attaque aéroportée 
-03:17=Engin excavateur 
-03:18=Utilitaire 
-03:19=Véhicule utilitaire 
-03:20=Action 
-03:21=Engin balistique 
-03:22=Appelez-moi Indiana ! 
-03:23=Arts (vraiment) martiaux ! 
-03:24=Le gâteau n'est PAS un mensonge ! 
-03:25=Déguisement 
-03:26=Grenade à fragmentation 
-03:27=Grenade infernale 
-03:28=Missile balistique 
-03:29=Missile balistique 
-03:30=Attaque aéroportée 
-03:31=Bombe à déclenchement télécommandé 
-03:32=Effet temporaire 
-03:33=Effet temporaire 
-03:34=Effet temporaire 
-03:35=Effet temporaire 
-03:36=Effet temporaire 
-03:37=Effet temporaire 
-03:38=Fusil (à coups multiples) 
-03:39=Moyen de transport 
-03:40=Grenade incendiaire 
+; Weapon Categories
+03:00=Grenade à retardement
+03:01=Grenade à retardement
+03:02=Arme balistique
+03:03=Arme téléguidée
+03:04=Fusil (plusieurs coups)
+03:05=Engin excavateur
+03:06=Action
+03:07=Véhicule utilitaire
+03:08=Bombe de proximité
+03:09=Révolver (à plusieurs coups)
+03:10=BOUM!
+03:11=Bonk!
+03:12=Arts martiaux
+03:13=Non Utilisé
+03:14=Véhicule utilitaire
+03:15=Attaque aéroportée
+03:16=Attaque aéroportée
+03:17=Engin excavateur
+03:18=Utilitaire
+03:19=Véhicule utilitaire
+03:20=Action
+03:21=Engin balistique
+03:22=Appelez-moi Indiana !
+03:23=Arts (vraiment) martiaux !
+03:24=Le gâteau n'est PAS un mensonge !
+03:25=Déguisement
+03:26=Grenade à fragmentation
+03:27=Grenade infernale
+03:28=Missile balistique
+03:29=Missile balistique
+03:30=Attaque aéroportée
+03:31=Bombe à déclenchement télécommandé
+03:32=Effet temporaire
+03:33=Effet temporaire
+03:34=Effet temporaire
+03:35=Effet temporaire
+03:36=Effet temporaire
+03:37=Effet temporaire
+03:38=Fusil (à coups multiples)
+03:39=Moyen de transport
+03:40=Grenade incendiaire
 03:41=Un supporter enragé de Squawks
 
-; Weapon Descriptions (use | as line breaks) 
-04:00=Attaquez vos ennemis en utilisant une simple grenade.|Elle explosera une fois que le compte à rebours atteindra zéro.|1-5: Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force 
-04:01=Attaquez vos ennemis en utilisant une bombe à retardement.|Elle se désintégrera en de multiples petites bombes |quand le compte à rebours atteindra zéro|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force 
-04:02=Attaquez vos ennemis en utilisant un missile balistique|subissant l'influence du vent.|Attaque : maintenez pour tirer avec plus de force 
-04:03=Lancez une bombe téléguidée qui se verrouillera|sur la cible choisie. Ne tirez pas à pleine puissance|pour une meilleure précision.|Curseur : choix de la cible|Attaque : maintenez pour tirer avec plus de force 
-04:04=Attaquez votre ennemi en utilisant un fusil à deux coups.|Grâce à son pouvoir de dispersion vous n'avez pas besoin de frapper directement sur la cible|pour toucher votre ennemi.|Attaque : tirez (coups multiples) 
-04:05=Descendez sous terre ! Utilisez le marteau-piqueur pour creuser un trou|dans le sol et atteindre d'autres zones.|Attaque : commencez/achevez de creuser 
-04:06=Vous en avez marre ? Pas moyen d'attaquer ? Vous économisez vos munitions ?|Pas de problèmes ! Passez simplement votre tour, espèce de lâche !|Attaque : Passez votre tour sans combattre 
-04:07=Franchissez les grandes distances en utilisant par intervalles la |corde ninja. Utilisez votre élan pour vous lancer contre les autres hérissons,|balancez leurs des grenades ou d'autres armes explosives.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires 
+; Weapon Descriptions (use | as line breaks)
+04:00=Attaquez vos ennemis en utilisant une simple grenade.|Elle explosera une fois que le compte à rebours atteindra zéro.|1-5: Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
+04:01=Attaquez vos ennemis en utilisant une bombe à retardement.|Elle se désintégrera en de multiples petites bombes |quand le compte à rebours atteindra zéro|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
+04:02=Attaquez vos ennemis en utilisant un missile balistique|subissant l'influence du vent.|Attaque : maintenez pour tirer avec plus de force
+04:03=Lancez une bombe téléguidée qui se verrouillera|sur la cible choisie. Ne tirez pas à pleine puissance|pour une meilleure précision.|Curseur : choix de la cible|Attaque : maintenez pour tirer avec plus de force
+04:04=Attaquez votre ennemi en utilisant un fusil à deux coups.|Grâce à son pouvoir de dispersion vous n'avez pas besoin de frapper directement sur la cible|pour toucher votre ennemi.|Attaque : tirez (coups multiples)
+04:05=Descendez sous terre ! Utilisez le marteau-piqueur pour creuser un trou|dans le sol et atteindre d'autres zones.|Attaque : commencez/achevez de creuser
+04:06=Vous en avez marre ? Pas moyen d'attaquer ? Vous économisez vos munitions ?|Pas de problèmes ! Passez simplement votre tour, espèce de lâche !|Attaque : Passez votre tour sans combattre
+04:07=Franchissez les grandes distances en utilisant par intervalles la |corde ninja. Utilisez votre élan pour vous lancer contre les autres hérissons,|balancez leurs des grenades ou d'autres armes explosives.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires
 04:08=Maintenez vos ennemis à distance en laissant une mine|dans les passages étroits ou juste sous leurs pieds. Assurez-vous|que vous pouvez vous sauver avant son déclenchement !|Attaque : lâchez la mine à vos pieds
-04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez l'Aigle| du Désert pour attaquer en utilisant vos quatre coups. Poussez dans l'eau vos ennemis ou transpercez leur défense|Attaque : tirez (coups multiples) 
-04:10=La force brute est toujours une possibilité. Lancez cet explosif|classique sur vos ennemis et prenez le temps de vous retirer.|Attaque : Lâchez la dynamite à vos pieds 
+04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez l'Aigle| du Désert pour attaquer en utilisant vos quatre coups. Poussez dans l'eau vos ennemis ou transpercez leur défense|Attaque : tirez (coups multiples)
+04:10=La force brute est toujours une possibilité. Lancez cet explosif|classique sur vos ennemis et prenez le temps de vous retirer.|Attaque : Lâchez la dynamite à vos pieds
 04:11=Débarrassez-vous des hérissons ennemis en leur donnant des coups pour les chasser |vers d'autres horizons ou en les jetant à l'eau. Ou bien préférez-vous|envoyer quelques tonneaux ou mines sur vos ennemis ?|Attaque : frappez un bon coup sur tout ce qui bouge.
 04:12=Allez au combat rapproché corps à corps pour utiliser toute la force presque mortelle de ces arts martiaux.|Attaque : lancez un coup de poing fulgurant
 04:13=non-utilisé
 04:14=Vous avez le vertige ? Prenez donc un parachute.|Il se déploiera lorsque|vous serez tombé trop loin|et épargnera le choc de la chute à votre hérisson.|Attaque: Dépliez le parachute
 04:15=Appelez le 3615 BOMBE pour commander une frappe aérienne dévastatrice sur vos ennemis.|Gauche/Droite : Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
 04:16=Appelez un avion qui enverra plusieurs mines|sur la zone cible.|Gauche/Droite : Détermine la direction de l'attaque|Curseur : Sélectionnez la zone cible
-04:17=vous avez besoin d'un abri ? de pousser quelques ennemis dans l'eau ? Utilisez le chalumeau| pour creuser un tunnel dans le sol, vous protéger ou faire de nouvelles victimes.|Attaque : Commencez/cessez de creuser. 
-04:18=Vous avez besoin de vous protéger davantage ou de passer un |obstacle infranchissable ? Placez quelques poutrelles|où vous voulez .|Gauche/Droite : Choisissez la poutrelle à placer|Curseur : Placez la poutrelle dans la bonne position 
+04:17=vous avez besoin d'un abri ? de pousser quelques ennemis dans l'eau ? Utilisez le chalumeau| pour creuser un tunnel dans le sol, vous protéger ou faire de nouvelles victimes.|Attaque : Commencez/cessez de creuser.
+04:18=Vous avez besoin de vous protéger davantage ou de passer un |obstacle infranchissable ? Placez quelques poutrelles|où vous voulez .|Gauche/Droite : Choisissez la poutrelle à placer|Curseur : Placez la poutrelle dans la bonne position
 04:19=La téléportation utilisée au bon moment|peut être bien plus efficace|que la plupart des autres armes|car elle vous permet de sauver des hérissons de situations dangereuses|en quelques secondes.|Curseur : Choisissez la zone cible
-04:20=Vous permet de jouer la partie en cours avec|un hérisson différent.|Attaque : Activez le changement de hérisson 
+04:20=Vous permet de jouer la partie en cours avec|un hérisson différent.|Attaque : Activez le changement de hérisson
 04:21=Tirez un missile balistique qui va|envoyer de multiples bombes au point d'impact.|Attaque : Tirez à pleine puissance
-04:22=Ce n'est pas réservé à Indiana Jones ! Le fouet est une|arme bien utile dans plusieurs situations. Particulièrement|quand vous devez hisser quelqu'un en haut d'une falaise.|Attaque : Frappez tout ce qui bouge devant vous 
+04:22=Ce n'est pas réservé à Indiana Jones ! Le fouet est une|arme bien utile dans plusieurs situations. Particulièrement|quand vous devez hisser quelqu'un en haut d'une falaise.|Attaque : Frappez tout ce qui bouge devant vous
 04:23=Si vous n'avez rien à perdre, voilà qui peut être |bien pratique. Sacrifiez votre hérisson en le lançant dans une direction| particulière. Il heurtera tout sur son passage avant |d'exploser finalement.|Attaque : Lancer l'attaque mortelle et dévastatrice
-04:24=Joyeux anniversaire ! Lancez ce gâteau, faites-le atterrir|tout près de vos ennemis et offrez-leur une fête explosive.|Le gâteau peut franchir presque tous les environnements mais|il se peut qu'il explose à mi-chemin.|Attaque : Lancez le gâteau ou bien faites-le s'arrêter et exploser 
-04:25=Arme de séduction massive ! Utilisez le déguisement pour amener vos ennemis| à sauter vers votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson 
-04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Une fois le compte-à-rebours achevé, elle se désintégrera en de multiples fragments explosifs|1-5 : Lancer le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance 
+04:24=Joyeux anniversaire ! Lancez ce gâteau, faites-le atterrir|tout près de vos ennemis et offrez-leur une fête explosive.|Le gâteau peut franchir presque tous les environnements mais|il se peut qu'il explose à mi-chemin.|Attaque : Lancez le gâteau ou bien faites-le s'arrêter et exploser
+04:25=Arme de séduction massive ! Utilisez le déguisement pour amener vos ennemis| à sauter vers votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson
+04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Une fois le compte-à-rebours achevé, elle se désintégrera en de multiples fragments explosifs|1-5 : Lancer le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance
 04:27=Faites tomber un déluge de feu sur vos adversaires en utilisant|cet explosif dévastateur.|Ne vous tenez pas trop prêt|de l'impact car les flammes peuvent durer longtemps|Attaque : Maintenez pour tirer avec plus de puissance
 04:28=Peu après le lancement de ce missile, il va se mettre|à creuser le sol le plus résistant et explosera|une fois son détonateur amorcé ou une fois atteint l'air libre.|Attaque : Maintenez pour tirer avec plus de puissance
 04:29=Ce n'est pas un jouet pour les enfants ! La mitrailleuse envoie|des centaines de petites balles colorées explosives.|Attaque : Tirez à pleine puissance|Haut/Bas : Continuez à tirer
-04:30=Appelez un avion pour larguer une puissante giclée de napalm.|En la menant correctement cette attaque peut éradiquer|des zones entières du paysage, et notamment les hérissons qui auraient la malchance de se trouver là.|Gauche/Droite: Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible 
-04:31=L'avion télécommandé est l'arme idéale pour récolter des boites ou|attaquer des hérissons très éloignés. Une fois vos ennemis bombardés, vous pourrez lancer votre avion sur l'ennemi dans une explosion incendiaire.|Attaque : Lancez l'avion ou larguez des bombes|Saut longue distance : laissez les valkyries entrer dans la danse guerrière|Haut/Bas : Pilotez l'avion 
+04:30=Appelez un avion pour larguer une puissante giclée de napalm.|En la menant correctement cette attaque peut éradiquer|des zones entières du paysage, et notamment les hérissons qui auraient la malchance de se trouver là.|Gauche/Droite: Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
+04:31=L'avion télécommandé est l'arme idéale pour récolter des boites ou|attaquer des hérissons très éloignés. Une fois vos ennemis bombardés, vous pourrez lancer votre avion sur l'ennemi dans une explosion incendiaire.|Attaque : Lancez l'avion ou larguez des bombes|Saut longue distance : laissez les valkyries entrer dans la danse guerrière|Haut/Bas : Pilotez l'avion
 04:32=La fable gravité est plus efficace que n'importe quel régime ! Sautez|plus haut et franchissez de plus grandes distances ou bien faites voltiger vos ennemis |encore plus loin.|Attaque : Activez
-04:33=Parfois vous avez besoin d'un petit coup de pouce supplémentaire|pour gérer les dégâts.|Attaque : Activez 
+04:33=Parfois vous avez besoin d'un petit coup de pouce supplémentaire|pour gérer les dégâts.|Attaque : Activez
 04:34=Personne ne peut me toucher !|Attaque : Activez
 04:35=Parfois le temps passe trop vite. Grappillez quelques secondes de plus pour terminer votre attaque|Attaque : Activez
-04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt de l'aide|à la technologie de pointe actuelle pour bien viser.|Attaque : Activez 
+04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt de l'aide|à la technologie de pointe actuelle pour bien viser.|Attaque : Activez
 04:37=Ne craignez pas la lumière du jour. Rafraichissez vous |d'un peu de sang en récupérant des points de vie sur les dégats faits aux ennemis.|Attaque : Activez
-04:38= Le fusil à lunette peut être une des armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois) 
+04:38= Le fusil à lunette peut être une des armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois)
 04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport, pas facile à dompter, vous|emportera vers presque tous les horizons du champ de bataille|Attaque : Activer|Haut/Gauche/Droite : Prenez de l'altitude et controllez votre direction
-04:40=Mettez le feu à un territoire en utilisant cette bouteille remplie|de liquide inflammable.|Attaque : maintenez pour tirer avec plus de force 
+04:40=Mettez le feu à un territoire en utilisant cette bouteille remplie|de liquide inflammable.|Attaque : maintenez pour tirer avec plus de force
 04:41=Une arme naturelle qui peut suffire à remplacer la soucoupe volante.|Cet oiseau a du manger un vieux fromage pourri (du Limburger vous dites ?)|car ses oeufs ont comme quelquechose de ... toxique.|Le piaf peut donc transporter votre hérisson et balancer des œufs|sur vos ennemis !|Attaque : Activez et larguez des œufs|Haut/Gauche/Droite: voltigez vers une direction.
 04:42=Ce fusil à portails est capable de transporter instantanément hérissons,|tonneaux ou mines entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
 04:43=Faites de vos débuts musicaux un succès explosif !| Lâchez un piano depuis les cieux, mais attention ... si quelqu'un doit|jouer dessus, cela pourrait lui coûter la vie !|Curseur : Choix de la cible|F1-F9 : Jouer du piano
-04:44=Ce n'est pas juste un fromage, c'est une arme bactériologique !|Si il ne provoque que de faibles dommages, sa puissance se|trouve dans sa durée. Il empoisonnera tous les malchanceux|touchés par l'odeur et réduira leur vie à l'agonie !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force 
+04:44=Ce n'est pas juste un fromage, c'est une arme bactériologique !|Si il ne provoque que de faibles dommages, sa puissance se|trouve dans sa durée. Il empoisonnera tous les malchanceux|touchés par l'odeur et réduira leur vie à l'agonie !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
 04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinus dévastatrice sur vos ennemis.|Attention au recul ! (cette arme est incomplète)|Attaque : Activez
 04:46=Aspergez vos ennemis de flammes liquides ou creusez vous un passage dans le sol.|Hardi !|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
 04:47=Doublez le fun avec deux mines, piquantes, furtives et collantes.|Provoquez une réaction en chaine dévastatrice et/ou défendez-vous ! |Attaque : maintenez pour tirer avec plus de force (deux fois)
 04:48=Outre une bonne bosse, un bon coup de ce marteau enlèvera un tiers de la santé |du hérisson ennemi et l'enfoncera dans le sol ou dans l'eau comme un vulgaire asticot !|Attaque : Activez
 04:49=Ressuscite vos amis oubliés six pieds sous terre ! Mais méfiez-vous, ressuscite également vos ennemis. |Attaque : Maintenez attaque pressée pour ressusciter lentement|Haut : Accélérer la résurrection
 
-; Game goal strings 
-05:00=Modes de jeu 
-05:01=Les règles suivantes s'appliquent 
-05:02=Forts : Défendez votre forteresse ; exterminez vos ennemis ! 
-05:03=Faible gravité : Attention à vos mouvements 
-05:04=Invulnérabilité : Les hérissons sont (presque) invulnérables 
-05:05=Vampirisme : Les hérissons récupèrent des points de vie par les dégats qu'ils infligent 
+; Game goal strings
+05:00=Modes de jeu
+05:01=Les règles suivantes s'appliquent
+05:02=Forts : Défendez votre forteresse ; exterminez vos ennemis !
+05:03=Faible gravité : Attention à vos mouvements
+05:04=Invulnérabilité : Les hérissons sont (presque) invulnérables
+05:05=Vampirisme : Les hérissons récupèrent des points de vie par les dégats qu'ils infligent
 05:06=Karma: Les hérissons sont victimes des blessures qu'ils infligent
-05:07=Protégez le roi : Ne laissez pas mourir le roi !|Placez le roi : Choisissez un point de départ sécurisé pour le roi 
-05:08=Placez les hérissons : Placez vos hérissons avant le début de la partie 
-05:09=Artillerie : Les hérissons ne peuvent pas se déplacer pour changer de place 
+05:07=Protégez le roi : Ne laissez pas mourir le roi !|Placez le roi : Choisissez un point de départ sécurisé pour le roi
+05:08=Placez les hérissons : Placez vos hérissons avant le début de la partie
+05:09=Artillerie : Les hérissons ne peuvent pas se déplacer pour changer de place
 05:10=Terrain indestructible : La plupart des armes sont incapables de modifier le terrain
 05:11=Munitions partagées : Toutes les équipes de la même couleur partagent leurs munitions
 05:12=Mines à retardement : Les mines exploseront après %1 seconde(s)
--- a/share/hedgewars/Data/Locale/hedgewars_ar.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">الغاء</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">الغاء</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -45,13 +118,36 @@
         <translation>Edit schemes</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -102,10 +198,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -140,17 +232,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">اسم اللاعب</translation>
     </message>
@@ -163,6 +244,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -178,18 +312,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>خارطة</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>نمط</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Ùلنر</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>كل</translation>
     </message>
@@ -214,10 +336,6 @@
         <translation>تعبان</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation type="unfinished">نوع</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished">انقاق صغيرة</translation>
     </message>
@@ -226,27 +344,95 @@
         <translation type="unfinished">انÙاق متوسطة</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished">انÙاق كبيرة</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished">جزر طائÙØ© صغيرة</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished">جزر طائÙØ© متوسطة</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished">جزر طائÙØ© كبيرة</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">عشوائي</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -319,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">كلمة السر</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -335,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">الغاء</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -342,6 +554,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -360,6 +579,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -391,6 +621,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">عام</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -445,8 +707,40 @@
         <translation>عام</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>متقدم</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">اسم</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Ùريق عشوائي</translation>
     </message>
 </context>
 <context>
@@ -527,267 +821,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -815,6 +856,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -822,6 +871,10 @@
         <source>Start</source>
         <translation>ابدا</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -829,24 +882,13 @@
         <source>Control</source>
         <translation>تحكم</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>لعبة شبكية</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>الخادم الرسمي</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">ابدا</translation>
     </message>
 </context>
 <context>
@@ -892,10 +934,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">عام</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">متقدم</translation>
     </message>
@@ -935,6 +973,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Ùرق</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">اسلحة</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1134,18 +1260,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1154,26 +1272,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">تحميل</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1219,14 +1325,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1234,6 +1332,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1246,10 +1354,6 @@
         <translation>معلومات</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>ابدا</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>امنع الانضمام</translation>
     </message>
@@ -1297,18 +1401,6 @@
         <translation type="unfinished">ملء الشاشة</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>شاشة القائمة ملء العرض</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Ùعل الصوت</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Ùعل الموسيقى</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>اضهر عدد الاطارات ÙÙŠ الثانية</translation>
     </message>
@@ -1325,18 +1417,6 @@
         <translation>اضهر قوائم للعتاد</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Ùعل اصوات شاشة المقدمة</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Ùعل موسيقى شاشة المقدمة</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>تأثيرات المقدمة</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1356,14 +1436,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation type="unfinished">ولد خارطة</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>انسان</translation>
     </message>
@@ -1376,14 +1480,6 @@
         <translation>نمط النظام</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>مهمة</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation type="unfinished">ولد متاهة</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1400,10 +1496,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1440,10 +1532,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1479,18 +1567,6 @@
         <translation>حصن</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>ربط المÙاتيج</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Ùرق</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>قوائم الصوتيات و المرئيات</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>لعبة شبكية</translation>
     </message>
@@ -1511,26 +1587,6 @@
         <translation>اعدادات الÙريق</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>متنوعة</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1538,10 +1594,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1558,26 +1610,6 @@
         <translation>نسخة</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation type="unfinished">المطورون</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation type="unfinished">قنون</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation type="unfinished">الاصوات</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation type="unfinished">المترجمون</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation type="unfinished">شكر خاص</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>اسلحة</translation>
     </message>
@@ -1634,10 +1666,6 @@
         <translation>المساعدات</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>نمط اللعبة</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% الغام</translation>
     </message>
@@ -1674,10 +1702,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1752,10 +1776,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1783,6 +1803,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">ملء الشاشة</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1821,10 +1873,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1871,18 +1919,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2029,16 +2065,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>اسم اللاعب</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>ادحل اسم اللاعب</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2096,26 +2153,10 @@
         <translation>تحميل</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>تنصيب</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>ابدا</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Ùريق عشوائي</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2208,6 +2249,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">الغاء</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2235,106 +2295,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>مصاص دماء</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>كارما</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>مدÙعية</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation type="unfinished">طريقة الحصن</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>قسم الÙرق</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>ارض صلبة</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>اض٠اطار</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>جاذبية قليلة</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>منظار ليزري</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>غير قابل للتدمير</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>توزيع عشوائي</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>ملك</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>ضع الاعبين</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>الÙريق يتشارك بالعتاد</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>ابطال البناء</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished">ابطال الاجسام الارضية</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">الغاء</translation>
     </message>
 </context>
 <context>
@@ -2468,12 +2443,6 @@
         <translation>capture</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>hedgehogs
-info</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>quit</translation>
     </message>
@@ -2509,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>الاسلحة الاولية</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>السيطرة على الاسلحة</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation type="unfinished">السيطرة على الكامرة و المؤشر</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>اخرى</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">اسلحة</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished">تحريك اللاعب و التصويب</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished">Ù‚Ùز Ùوق الحواجز</translation>
     </message>
@@ -2599,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отказ</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отказ</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Редактиране на оръжиÑта</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Когато тази наÑтройка е включена, при избирането на игрова Ñхема автоматично ще Ñе избере оръжие</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">ПрÑкорът ви %1 е
-региÑтриран на Hedgewars.org
-ÐœÐ¾Ð»Ñ Ð²ÑŠÐ´ÐµÑ‚Ðµ паролата Ñи по-долу
-или изберете друг прÑкор в наÑтройките на играта:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">ПрÑкор</translation>
     </message>
@@ -165,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Карта</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Тема</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Филтър</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Ð’Ñички</translation>
     </message>
@@ -216,10 +335,6 @@
         <translation>Щура</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Тип</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Малки тунели</translation>
     </message>
@@ -228,27 +343,95 @@
         <translation>Средни тунели</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Големи тунели</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Малки плаващи оÑтрови</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Средни плаващи оÑтрови</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Големи плаващи оÑтрови</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Зареждане на начертана карта</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -321,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Парола</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -337,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отказ</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -344,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -362,6 +578,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -393,6 +620,38 @@
         <source>Set data</source>
         <translation>Задаване на данни</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Общи</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -447,8 +706,40 @@
         <translation>Общи</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>За напреднали</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Име</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Случаен отбор</translation>
     </message>
 </context>
 <context>
@@ -529,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -817,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -824,6 +870,10 @@
         <source>Start</source>
         <translation>Старт</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -831,24 +881,13 @@
         <source>Control</source>
         <translation>Контрол</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Игра по локална мрежа</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Официален Ñървър</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Старт</translation>
     </message>
 </context>
 <context>
@@ -894,10 +933,6 @@
         <translation>Изтриване на комплекта оръжиÑ</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Общи</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">За напреднали</translation>
     </message>
@@ -937,6 +972,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Отбори</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">ОръжиÑ</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1136,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1156,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Зареждане</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1221,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1236,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1248,10 +1353,6 @@
         <translation>ЗабранÑване</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Старт</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Ограничи приÑъединÑване</translation>
     </message>
@@ -1295,10 +1396,6 @@
         <translation>ПроверÑване за Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ Ñтартиране</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Включване на звука</translation>
-    </message>
-    <message>
         <source>Fullscreen</source>
         <translation>Пълен екран</translation>
     </message>
@@ -1311,14 +1408,6 @@
         <translation>Показване на алтернативен режим на щетите</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Включване на музиката</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Пълен екран</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Добави дата и Ñ‡Ð°Ñ ÐºÑŠÐ¼ името на запиÑаното демо</translation>
     </message>
@@ -1327,18 +1416,6 @@
         <translation>Показване на подÑказки за боеприпаÑите</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Включване на звуци</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Включване на музика</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Ефекти</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1358,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>Случайна карта...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Човек</translation>
     </message>
@@ -1378,14 +1479,6 @@
         <translation>(Стандартно за ÑиÑтемата)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>генериран лабиринт...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>МиÑиÑ</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>ОбщноÑÑ‚</translation>
     </message>
@@ -1402,10 +1495,6 @@
         <translation>Ð’ прогреÑ</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>Ръчно нариÑувана карта...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Изключено</translation>
     </message>
@@ -1442,10 +1531,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1489,18 +1574,6 @@
         <translation>Форт</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Клавиши</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Отбори</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>ÐаÑтройки на Звук/Графика</translation>
-    </message>
-    <message>
         <source>Playing teams</source>
         <translation>Играещи отбори</translation>
     </message>
@@ -1513,26 +1586,6 @@
         <translation>ÐаÑтройки на отборите</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Разни</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Схеми и оръжиÑ</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,18 +1593,10 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
     <message>
-        <source>Game scheme</source>
-        <translation>Игрови Ñхеми</translation>
-    </message>
-    <message>
         <source>Damage Modifier</source>
         <translation>Модификатор на щетите</translation>
     </message>
@@ -1592,22 +1637,6 @@
         <translation>Ограничение на брой кадри за Ñекунда</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Разработчици:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Графика:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Преводи:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Специални благодарноÑти на:</translation>
-    </message>
-    <message>
         <source>Server name:</source>
         <translation>Име на Ñървъра:</translation>
     </message>
@@ -1632,10 +1661,6 @@
         <translation>ВерÑиÑ</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Звуци:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Първоначална Ñила на звука</translation>
     </message>
@@ -1676,10 +1701,6 @@
         <translation>Съвет:</translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>КачеÑтво</translation>
     </message>
@@ -1754,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1785,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Пълен екран</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1823,10 +1872,6 @@
         <translation>Файловата аÑÐ¾Ñ†Ð¸Ð°Ñ†Ð¸Ñ Ñе провали.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1873,18 +1918,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2032,25 +2065,42 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>ПрÑкор</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ прÑкорът Ñи</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>QPushButton</name>
     <message>
-        <source>Setup</source>
-        <translation>ÐаÑтройки</translation>
-    </message>
-    <message>
         <source>Play demo</source>
         <translation>ПуÑкане на демо</translation>
     </message>
@@ -2103,22 +2153,10 @@
         <translation>Изтриване</translation>
     </message>
     <message>
-        <source>Ready</source>
-        <translation>Готово</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Случаен отбор</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>ÐÑоцииране на файлови разширениÑ</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>повече</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2211,6 +2249,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отказ</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2238,106 +2295,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Режим на фортове</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>РазделÑне на отборите</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Твърда земÑ</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Добави гранична ивица</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>ÐиÑка гравитациÑ</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Лазерен мерник</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>ÐеуÑзвимоÑÑ‚</translation>
-    </message>
-    <message>
-        <source>Vampirism</source>
-        <translation>Вампиризъм</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Карма</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>ÐртилериÑ</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Произволен ред</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Крал</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>ПоÑтавÑне на таралежи</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Кланът ÑÐ¿Ð¾Ð´ÐµÐ»Ñ Ð¾Ñ€ÑŠÐ¶Ð¸Ñта</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Изкбючване на греди</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Изключване на обекти по земÑта</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Режим ИИ оцелÑване</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>ИзчиÑтване на здрането</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Ðеограничени атаки</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>ИзчиÑтване на оръжиÑта</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>БоеприпаÑи за вÑеки таралеж поотделно</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Изключване на вÑтъра</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Още вÑÑ‚ÑŠÑ€</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отказ</translation>
     </message>
 </context>
 <context>
@@ -2459,12 +2431,6 @@
         <translation>Слот 9</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>ИнформациÑ
-за играта</translation>
-    </message>
-    <message>
         <source>chat</source>
         <translation>Чат</translation>
     </message>
@@ -2512,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>ОÑновни контроли</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Контроли за оръжиÑта</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Контроли за камерата и показалеца</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Друго</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">ОръжиÑ</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>ПремеÑтете таралежите Ñи и Ñе прицелете:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>ПреодолÑвайте празнини и препÑÑ‚ÑÑ‚Ð²Ð¸Ñ Ñ‡Ñ€ÐµÐ· Ñкачане:</translation>
     </message>
@@ -2602,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušit</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušit</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -45,13 +118,36 @@
         <translation>Editovat schémata</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Pokud je tato volba aktivována, výběr herního schématu vybere automaticky i zbraňové schéma</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -102,10 +198,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -140,20 +232,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Tvoje přezdívka %1 je
-registrovaná na Hedgewars.org
-Prosím, zadej své heslo
-nebo si v konfiguraci vyber jinou přezdívku:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Přezdívka</translation>
     </message>
@@ -166,6 +244,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -181,18 +312,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mapa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Témata</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtr</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>VÅ¡e</translation>
     </message>
@@ -217,10 +336,6 @@
         <translation>Šílená</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Typ</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Malé tunely</translation>
     </message>
@@ -229,28 +344,96 @@
         <translation>Střední tunely</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Velké tunely</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Malé plovoucí ostrovy</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Střední plovoucí ostrovy</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Velké plovoucí ostrovy</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Semínko</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Sada</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Náhodné</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Nahrát nakreslenou mapu</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -322,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Heslo</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -338,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušit</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -345,6 +554,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -363,6 +579,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -394,6 +621,38 @@
         <source>Set data</source>
         <translation>Nastavit data</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Obecné</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -448,8 +707,40 @@
         <translation>Obecné</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Rozšířené</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">KlobouÄek</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Jméno</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Náhodný tým</translation>
     </message>
 </context>
 <context>
@@ -536,267 +827,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>JednoduÅ¡e zvol stejnou barvu jako spoluhráÄ, abys hrál ve stejném týmu. Každý z vás bude mít kontrolu nad svými vlastními ježky, ale vyhraje nebo prohraje spoleÄnÄ›.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Některé zbraně mohou způsobovat jen malé poškození, ale mohou být devastující v pravé chvíli. Zkus použít pistoli Desert Eagle ke sražení několika nepřátelských ježků do vody.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Pokud si nejsi jistý, co dÄ›lat a nechceÅ¡ plýtvat municí, pÅ™eskoÄ tah. Ale nenech ubÄ›hnout moc Äasu, protože pak pÅ™ijde Náhlá smrt!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Pokud chceš zabránit ostatním, aby používali tvoji oblíbenou přezdívku na oficiálním serveru, zaregistruj se na http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Jsi znuděn standardní hrou? Vyzkoušej některou misi - nabídnou jiný herní zážitek v závislosti na tom, kterou si vybereš.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>StandardnÄ› hra vždycky nahrává poslední odehraný zápas jako ukázku. Vyber si &apos;Místní hru&apos; a zvol tlaÄítko &apos;Ukázky&apos; v pravém spodním rohu k jejich pÅ™ehrávání a správÄ›.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, který jsme vytvoÅ™ili v naÅ¡em volném Äase. Pokud máš problémy, zeptej se na naÅ¡em fóru, ale neoÄekávej prosím nonstop podporu!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, který jsme vytvoÅ™ili v naÅ¡em volném Äase. Pokud se ti líbí, pomož nám malým příspÄ›vkem, nebo se podílej na práci!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, který jsme vytvoÅ™ili v naÅ¡em volném Äase. Sdílej ho se svoji rodinou a přáteli dle libosti!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>ÄŒas od Äasu se konají oficiální turnaje. Nadcházející události budou publikovány na http://www.hedgewars.org/ s nÄ›kolika denním pÅ™edstihem.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je k dispozici v mnoha jazycích. Pokud překlad do tvého jazyka vypadá zastaralý nebo chybí, neváhej nás kontaktovat!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars může být spuÅ¡tÄ›no na mnoha různých operaÄních systémech vÄetnÄ› Microsoft Windows, Mac OS X a Linuxu.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Vždycky si pamatuj, že můžeš vytvořit vlastní hru na místní síti i internetu. Nejsi odkázán jen na možnost &apos;Prostá hra&apos;.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Během hraní bys měl dělat krátké přestávky alespoň jednou za hodinu.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Pokud tvoje grafická karta nepodporuje hardwarovou akceleraci OpenGL, zkus zapnout nízkou kvalitu pro zlepšení výkonu.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Jsme otevřeni návrhům a konstruktivní kritice. Pokud se ti něco nelíbí, nebo máš skvělý nápad, dej nám vědět!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>ObzvláštÄ› pÅ™i hÅ™e online buÄ sluÅ¡ný a vždy pamatuj na to, že s tebou nebo proti tobÄ› může hrát nÄ›kdo z nÄ›jaké menÅ¡iny!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Speciální herní módy jako třeba &apos;Vampyrismus&apos; nebo &apos;Karma&apos; ti dovolují vymýšlet úplně jiné herní taktiky. Vyzkoušej je v nějaké hře!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Nikdy bys nemÄ›l instalovat Hedgewars na poÄítaÄi, který ti nepatří (Å¡kola, univerzita, práce a jiné). Prosím, zeptej se nejprve zodpovÄ›dné osoby!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars mohou být perfektní pro krátkou hru bÄ›hem pauzy. Jen se ujisti, že jsi nepÅ™idal příliÅ¡ mnoho ježků nebo nezvolil velkou mapu. ZmenÅ¡it Äas nebo zdraví také urychlí hru.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Žádný ježek nebyl zraněn během vytváření této hry.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, který jsme vytvoÅ™ili v naÅ¡em volném Äase. Pokud ti tuto hru nÄ›kdo prodal, mÄ›l bys chtít vrátit peníze!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>PÅ™ipojenim jednoho nebo více gamepadů pÅ™ed zaÄátkem hry ti umožní nastavit je jako ovladaÄ pro tvé týmy.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>VytvoÅ™ si úÄet na %1, abys zabránil ostatním používat tvoji oblíbenou pÅ™ezdívku na oficiálním serveru.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Pokud tvoje grafická karta nepodporuje hardwarovou akceleraci OpenGL, zkus aktualizovat ovladaÄe.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">K dispozici jsou tÅ™i různé druhy skoků. ZmáÄkni [Vysoký skok] dvakrát, abys udÄ›lal skok do vÄ›tší výšky a dozadu.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Bojíš se pádu z útesu? Stiskni [pÅ™esnost], aby ses otoÄil [vlevo], Äi [vpravo] bez jakéhokoliv pohybu.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>NÄ›které zbranÄ› vyžadují speciální strategii, nebo jen spoustu cviÄení. Nezavrhuj hned nÄ›kterou zbraň, pokud jednou mineÅ¡ cíl.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>VÄ›tÅ¡ina zbraní nefunguje, jakmile se ponoří do vody. NavádÄ›ná vÄela nebo dort jsou vyjímka z tohoto pravidla.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Olomoucké tvarůžky vybuchují jen málo, ale vítr ovlivňuje oblak smradu, který může nakazit mnoho ježků najednou.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Útok pianem je nejniÄivÄ›jší letecký útok. Na druhé stranÄ› ale ztratíš ježka, který tento útok vykoná.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Přisavné miny jsou perfektní nástroj na vytváření malých řetězových reakcí, které mohou nepřátelské ježky dostat do divokých situací ... nebo vody.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Kladivo je nejefektivnÄ›jší pÅ™i použitÇ na mostech a traverzách. Zasažený ježek prostÄ› prorazí skrz zem.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Pokud jsi zaseklý za nepřátelským ježkem, použij kladivo, aby ses osvobodil a nemusel riskovat zranění z exploze.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Maximální vzdálenost, do které dort dojde, je ovlivněna terénem, kterým musí jít. Použij [útok] k dřívější explozi.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Plamenomet je zbraň, ale dá se použít i pro kopání tunelů.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Chceš vědět, kdo stojí za touto hrou? Klikni na logo Hedgewars v hlavním menu a podívej se.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Líbí se ti Hedgewars? Staň se fanouškem na %1 nebo nás sleduj na %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Neboj se kreslit vlastní hroby, Äepice, vlajky nebo mapy a témata! Ale pamatuj, že je musíš nÄ›kde sdílet, abys je mohl používat online.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Opravdu chceÅ¡ nosit specifickou Äepici? Daruj nám nÄ›co a dostaneÅ¡ exklusivní Äepici dle svého výbÄ›ru!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Udržuj ovladaÄe grafické karty aktuální, aby ses vyhnul problémům pÅ™i hÅ™e.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Své nastavení Hedgewars najdeÅ¡ v &quot;Dokumenty\Hedgewars&quot;. VytvoÅ™ si zálohu nebo si je pÅ™enášej s sebou, ale needituj je ruÄnÄ›.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>MůžeÅ¡ si asociovat Hedgewars soubory (uložené hry a nahrávky) tak, abys je mohl ihned spouÅ¡tÄ›t z internetového prohlížeÄe nebo prúzkumníka souborů.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Chceš ušetřit lana? Uvolni ho ve vzduchu a vystřel znovu. Dokud se nedotkneš země, využíváš ho bez plýtvání munice!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Konfigurace Hedgewars je k nalezení ve tvém domovském adresáři pod &quot;Library/Application Support/Hedgewars&quot;. VytvoÅ™ si zálohu, pÅ™enášej ho s sebou, ale neměň ho ruÄnÄ›.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Konfigurace Hedgewars je k nalezení ve tvém domovském adresáři pod &quot;.hedgewars&quot;. VytvoÅ™ si zálohu, pÅ™enášej ho s sebou, ale neměň ho ruÄnÄ›.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>Windows verze Hedgewars podporuje Xfire. Přidej si Hedgewars do jeho seznamu her, abys viděl přátele, kteří ho hrají.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Použij Molotov nebo plamenomet, abys doÄasnÄ› zamezil ježkům v pÅ™echodu terénu jako jsou tunely nebo ploÅ¡iny.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -824,6 +862,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -831,6 +877,10 @@
         <source>Start</source>
         <translation>Start</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -838,24 +888,13 @@
         <source>Control</source>
         <translation>Ovládání</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Hra po místní síti</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Oficiální server</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
     </message>
 </context>
 <context>
@@ -901,10 +940,6 @@
         <translation>Smazat sadu zbraní</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Obecné</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Rozšířené</translation>
     </message>
@@ -944,6 +979,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Týmy</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">ZbranÄ›</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1144,18 +1267,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1164,26 +1279,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Nahrát</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1230,14 +1333,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1245,6 +1340,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1257,10 +1362,6 @@
         <translation>Info</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Omezit připojení</translation>
     </message>
@@ -1308,18 +1409,6 @@
         <translation>Celá obrazovka</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Celá obrazovka v menu</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Zapnout zvuky</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Zapnout hudbu</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Zobrazovat FPS</translation>
     </message>
@@ -1336,18 +1425,6 @@
         <translation>Ukazovat tipy ke zbraním</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Zapnout zvuky v menu</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Zapnout hudbu v menu</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Efekty v menu</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1367,14 +1444,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>generovaná mapa...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Člověk</translation>
     </message>
@@ -1387,14 +1488,6 @@
         <translation>(Podle systému)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>generovaný labyrint...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Mise</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Komunita</translation>
     </message>
@@ -1411,10 +1504,6 @@
         <translation>Probíhá</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>ruÄnÄ› kreslená mapa...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Vypnuto</translation>
     </message>
@@ -1451,10 +1540,6 @@
         <translation type="unfinished">Shora-Dolu</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished">Kývat se</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1490,18 +1575,6 @@
         <translation>Pevnost</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Nastavení kláves</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Týmy</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Nastavení audio/video</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Síťová hra</translation>
     </message>
@@ -1522,26 +1595,6 @@
         <translation>Týmová nastavení</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Ostatní</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Schémata a zbraně</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1549,10 +1602,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1561,26 +1610,6 @@
         <translation>Verze</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Vývojáři:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafika:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Zvuky:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Překlady:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Speciální poděkování:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>ZbranÄ›</translation>
     </message>
@@ -1645,10 +1674,6 @@
         <translation>Shazování beden</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Herní schéma</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% falešných min</translation>
     </message>
@@ -1685,10 +1710,6 @@
         <translation>Tip: </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Tato vývojová verze je &apos;v průběhu práce&apos; a může být kompatibilní s jinými verzemi hry. Některé možnosti mohou být rozbité nebo nekompletní. Používej na vlastní riziko!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Kvalita</translation>
     </message>
@@ -1763,10 +1784,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1794,6 +1811,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Celá obrazovka</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1832,10 +1881,6 @@
         <translation>Asociace souborů selhala.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1882,18 +1927,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2042,16 +2075,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Přezdívka</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Prosím zadej svou přezdívku</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2089,10 +2143,6 @@
         <translation>Start</translation>
     </message>
     <message>
-        <source>Ready</source>
-        <translation>Připraven</translation>
-    </message>
-    <message>
         <source>Go!</source>
         <translation>Jedem!</translation>
     </message>
@@ -2113,22 +2163,10 @@
         <translation>Nahrát</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Nastavení</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Náhodný tým</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Asociovat přípony souborů</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>více</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2221,6 +2259,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušit</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2248,107 +2305,22 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampyrismus</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Dělostřelectvo</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Pevnosti</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Rozděl týmy</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Pevná zem</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Přidej hranice</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Nízká gravitace</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Laserové zaměřování</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Nesmrtelnost</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Náhodné pořadí</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Král</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Umísti ježky</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Klan sdílí munici</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Vypni traverzy</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Vypni teréní objekty</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished">Mód &apos;PoÄítaÄ pÅ™ežívá&apos;</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Obnova zdraví</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Neomezeně útoků</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Obnova zbraní</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Individuální munice</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Vypni vítr</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Více větru</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Add Bottom Border</source>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušit</translation>
+    </message>
 </context>
 <context>
     <name>binds</name>
@@ -2481,11 +2453,6 @@
         <translation>sejmout</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>info o ježkovi</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>ukonÄit</translation>
     </message>
@@ -2521,33 +2488,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Základní ovládání</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Ovládání zbraní</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Ovládání kamery a kurzoru</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Ostatní</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">ZbranÄ›</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Pohybuj ježkem a miř:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Překonej mezery a překážky skokem:</translation>
     </message>
@@ -2611,6 +2578,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_da.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_da.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,18 +20,76 @@
     </message>
 </context>
 <context>
-    <name>DrawMapWidget</name>
-    <message>
-        <source>File error</source>
-        <translation type="obsolete">Fejl i fil</translation>
-    </message>
-    <message>
-        <source>Cannot open file &apos;%1&apos; for writing</source>
-        <translation type="obsolete">Kan ikke åbne filen &apos;%1&apos; til skrivning</translation>
-    </message>
-    <message>
-        <source>Cannot read file &apos;%1&apos;</source>
-        <translation type="obsolete">Kan ikke læse filen &apos;%1&apos;</translation>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">Ip</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -55,25 +113,40 @@
         <translation>Rediger våben</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>Illegal ammo scheme</source>
-        <translation type="obsolete">Ugyldig ammunitionssystem</translation>
-    </message>
-    <message>
         <source>Edit schemes</source>
         <translation>Rediger spilsystemer</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Når denne indstilling er aktiveret vælges automatisk et våben når et spilsystem vælges</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation>Spilindstillinger</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -85,22 +158,6 @@
 <context>
     <name>HWChatWidget</name>
     <message>
-        <source>%1 *** %2 has been removed from your ignore list</source>
-        <translation type="obsolete">%1 *** %2 er blevet fjernet fra din ignoreringsliste</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been added to your ignore list</source>
-        <translation type="obsolete">%1 *** %2 er blevet tilføjet til din ignoreringsliste</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been removed from your friends list</source>
-        <translation type="obsolete">%1 *** %2 er blevet fjernet fra din venneliste</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been added to your friends list</source>
-        <translation type="obsolete">%1 *** %2 er blevet tilføjet til din venneliste</translation>
-    </message>
-    <message>
         <source>%1 has been removed from your ignore list</source>
         <translation>%1 er blevet fjernet fra din ignoreringsliste</translation>
     </message>
@@ -140,42 +197,14 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation>Mislykkedes at gemme typografiark til %1</translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation>%1 er ikke en gyldig kommando!</translation>
-    </message>
-    <message>
-        <source>Kicking %1 ...</source>
-        <translation type="obsolete">Smider %1 ud...</translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
     <message>
-        <source>new</source>
-        <translation type="obsolete">ny</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
-        <source>Unable to start the server</source>
-        <translation type="obsolete">Ude af stand til at starte serveren</translation>
-    </message>
-    <message>
         <source>Cannot save record to file %1</source>
         <translation>Kan ikke gemme optagelse til fil %1</translation>
     </message>
     <message>
-        <source>Please select record from the list above</source>
-        <translation type="obsolete">Vælg venligst en optagelse fra den ovenstående liste</translation>
-    </message>
-    <message>
         <source>DefaultTeam</source>
         <translation>StandardHold</translation>
     </message>
@@ -202,38 +231,10 @@
         <translation>Spil afbrudt</translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Kodeord</translation>
-    </message>
-    <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation>Dit brugernavn %1 er
-registreret på Hedgewars.org
-Indtast venligst dit kodeord nedenfor
-eller vælg et andet brugernavn under spilkonfigurationen:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation>Intet kodeord indtastet.</translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation>Brugernavn</translation>
     </message>
     <message>
-        <source>Some one already uses
- your nickname %1
-on the server.
-Please pick another nickname:</source>
-        <translation type="obsolete">En eller anden bruger allerede
-dit brugernavn %1
-på serveren.
-Vælg venligst et andet brugernavn:</translation>
-    </message>
-    <message>
         <source>No nickname supplied.</source>
         <translation>Intet brugernavn indtastet.</translation>
     </message>
@@ -242,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -257,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Bane</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Temaer</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Alle</translation>
     </message>
@@ -293,10 +335,6 @@
         <translation>Skør</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Type</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Små tunneler</translation>
     </message>
@@ -305,28 +343,96 @@
         <translation>Mellemstore tunneler</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Store tunneler</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Små svævende øer</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Mellemstore svævende øer</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Store svævende øer</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Spire</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Indstil</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Tilfældig</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Indlæs tegnet bane</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Tegnede Baner</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Alle filer</translation>
     </message>
 </context>
 <context>
@@ -367,20 +473,6 @@
         <translation>Du blev smidt ud</translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Kodeord</translation>
-    </message>
-    <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password
-or pick another nickname:</source>
-        <translation type="obsolete">Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password
-or pick another nickname:</translation>
-    </message>
-    <message>
         <source>%1 *** %2 has joined the room</source>
         <translation>%1 *** %2 har tilsluttet sig til rummet</translation>
     </message>
@@ -397,20 +489,6 @@
         <translation>%1 *** %2 har forladt</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="obsolete">Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</translation>
-    </message>
-    <message>
-        <source>Nickname</source>
-        <translation type="obsolete">Brugernavn</translation>
-    </message>
-    <message>
         <source>User quit</source>
         <translation>En bruger forlod</translation>
     </message>
@@ -426,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Kodeord</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -442,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -449,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -467,18 +578,21 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
     <message>
-        <source>Server message:</source>
-        <translation type="obsolete">Serverbesked:</translation>
-    </message>
-    <message>
-        <source>Set message</source>
-        <translation type="obsolete">Indstil besked</translation>
-    </message>
-    <message>
         <source>Clear Accounts Cache</source>
         <translation>Ryd Bruger-cache</translation>
     </message>
@@ -506,6 +620,38 @@
         <source>Set data</source>
         <translation>Indstil data</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Generelt</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished">Opdater</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -513,10 +659,6 @@
         <source>Connecting...</source>
         <translation>Opretter forbindelse...</translation>
     </message>
-    <message>
-        <source>Cancel</source>
-        <translation type="obsolete">Annuler</translation>
-    </message>
 </context>
 <context>
     <name>PageDrawMap</name>
@@ -564,31 +706,45 @@
         <translation>Generelt</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Advanceret</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Hat</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Navn</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Tilfældige Hold</translation>
     </message>
 </context>
 <context>
     <name>PageGameStats</name>
     <message>
-        <source>&lt;p&gt;The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Prisen for det bedste skud gik til &lt;b&gt;%1&lt;/b&gt; med &lt;b&gt;%2&lt;/b&gt; point.&lt;/p&gt;</translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kill in a turn.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog was killed during this round.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehogs were killed during this round.&lt;/p&gt;</numerusform>
-        </translation>
-    </message>
-    <message>
         <source>Details</source>
         <translation>Detaljer</translation>
     </message>
@@ -664,275 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Local Game (Play a game on a single computer)</source>
-        <translation type="obsolete">Lokalt spil (Spil et spil på én enkelt computer)</translation>
-    </message>
-    <message>
-        <source>Network Game (Play a game across a network)</source>
-        <translation type="obsolete">Netværksspil (Spil et spil over et netværk)</translation>
-    </message>
-    <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Bare vælg samme farve som en ven for at spille sammen som et hold. Hver af jer vil stadig kontrollere sine egne pindsvin, men vil vinde eller tabe sammen.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Nogle våben giver måske ikke særlig meget skade, men de kan være meget mere farlige i de rigtige situationer. Prøv at bruge Desert Eagle-pistolen til at skubbe flere pindsvin i vandet.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Hvis du er usikker på hvad du skal gøre og ikke vil spilde ammunition, kan du springe en runde over. Men lad der ikke gå alt for meget tid, for ellers indtræffer Pludselig Død!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Hvis du ikke vil have at andre anvender dit foretrukne brugernavn på den officielle server, kan du registrere en bruger på http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Er du træt af den almindelige måde at spille på? Prøv en af missionerne - de tilbyder forskellige måder at spille på afhængigt af hvilken en du vælger.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Som standard optager spillet altid det sidste spil du har spillet som en demo. Tryk på &apos;Lokalt spil&apos; og vælg &apos;Demoer&apos;-knappen i nederste højre hjørne for at afspille eller administrere dem.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars er Open Source og et gratis spil vi laver i vores fritid. Hvis du har problemer er du velkommen til at spørge på forummet, men forvent ikke at få hjælp 24 timer i døgnet!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars er Open Source og et gratis spil vi laver i vores fritid. Hvis du holder af det, kan du hjælpe os med en lille donation eller ved at indsende dine egne modifikationer!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars er Open Source og et gratis spil vi laver i vores fritid. Del det med dine venner og din familie som du ønsker!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Fra tid til anden er der officielle turneringer. Kommende begivenheder vil blive annonceret på http://www.hedgewars.org/ et par dage i forvejen.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars er tilgængeligt på mange sprog. Hvis oversættelsen på dit sprog mangler noget eller er uddateret, skal du være velkommen til at kontakte os!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars kan køre på mange forskellige operativsystemer, herunder Microsoft Windows, Mac OS X og Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Husk altid at du kan sætte dine egne spil op under lokale-, netværks- og online-spil. Du er ikke begrænset til kun at bruge &apos;Simpelt spil&apos;-muligheden.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Mens du spiller bør du tage en kort pause mindst en gang i timen.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Hvis dit grafikkort ikke understøtter hardware-accelereret OpenGL, kan du prøve at slå indstillingen &apos;Reduceret kvalitet&apos; til for at forbedre ydelsen.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Vi er åbne over for foreslag og konstruktive tilbagemeldinger. Fortæl os det hvis der er noget du ikke kan lide eller hvis du har en god idé!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Specielt når du spiller online bør du være venlig og altid huske at du måske også spiller med eller mod børn!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Specielle måder at spille på som f.eks. &apos;Varmpyr&apos; eller &apos;Karma&apos; tillader dig at udvikle helt nye taktikker. Prøv dem i et brugerdefineret spil!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Du bør aldrig installere Hedgewars på computere du ikke ejer (skole, universitet, arbejde,e.l.). Spørg venligst den ansvarlige person i stedet!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars er perfekt til korte spil under pauser. Bare par på du ikke tilføjer for mange pindsvin eller bruger en kæmpe bane. Det kan også hjælpe at reducere tid og liv.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Ingen pindsvin kom til skade under produktionen af dette spil.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars er Open Source og et gratis spil vi laver i vores fritid. Hvis nogen solgte dig spiller skal du bede om at få pengene tilbage!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Tilslut en eller flere gamepads før du starter spiller for at kunne tildele dem til dit hold.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Opret en bruger på %1 hvis du ikke vil have at andre anvender dit foretrukne brugernavn på den officielle server.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Hvis du ikke er i stand til at slå hardware-accelereret OpenGL til, bør du prøve at opdatere dine grafikkort-drivere.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Der er tre forskellige typer hop tilgængelige. Tryk hurtigt på [hight jump] to gange i træk for at lave et højt, baglæns hop.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Er du bange for at falde ned fra en skrænt? Hold [precise] nede for at vende dig mod [left] eller [right] uden at bevæge dig.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Nogle våben kræver specielle strategier eller bare masser af træning, så undlad ikke at bruge et bestemt våben bare fordi du rammer ved siden af én gang.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>De fleste våben virker ikke så snart de har rørt vandet. Den Målsøgende Bi og Kagen er de eneste undtagelser.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Gamle Ole laver kun en lille eksplosion. Til gengæld kan den stænkende sky den udsender føres rundt af vinden og ramme mange pindsvin på én gang.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Klaveranslaget er det luftvåben der giver allermest skade. Til gengæld mister du det pindsvin som bruger angrebet, så der er også en bagside af medaljen.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Klæbrige Miner er det perfekte værktøj til at lave små kædereaktioner og smide pindsvin ud i faretruende situationer... eller bare direkte i vandet.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Hammeren er mest effektiv når den bruges enten på broer eller bærebjælker. Sigter du mod pindsvin med den, laver du bare huller i jorden.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Hvis du sidder fast bag en af modstanderens pindsvin, kan du bruge Hammeren til at slå dig fri uden at tage skade under en eksplosion.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Kagen kan gå kortere eller længere, afhængig af hvad den skal over på vejen. Du kan brrug [attack] til at detonere den før den når sin destination.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Flammekasteren er et våben, men den kan også bruges til hurtigt at grave tunneler.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Vil du vide hvem der står bag spillet? Klik på Hedgewars-logoet i hovedmenuen for at se rulleteksterne.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Er du glad for Hedgewars? Bliv fan på %1 eller følge vores opdateringer på %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Du skal være velkommen til at tegne dine egne gravsten, hatte, flag eller endda baner og temaer! Men læg mærke til at du bliver nød til at dele dem med andre hvis du vil spille med dem online.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Vil du virkelig gerne have en specifik hat? Send os en donation, så kvitterer vi med en eksklusiv hat efter eget valg!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Hold dine grafikkortdrivere opdaterede for at undgå problemmer i spillet.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du kan finde konfigurationsfilerne til Hedgewars under mappen &quot;(Mine) Dokumenter\Hedgewars&quot;. Opret gerne en back-up eller tag filerne med dig, men lad være med selv at ændre i dem.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Du kan indstille Hedgewars-filer (gemte spil og demooptagelser) til automatisk at åbne når du trykker på dem eller åbner dem i din internet-browser.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Vil du gerne spare på dine reb? Slip rebet midt i luften og skyd straks igen. Så længe du ikke rører jorden bruger du ikke noget ammunition!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du kan finde konfigurationsfilerne til Hedgewars under mappen &quot;Bibliotek/Application Support/Hedgewars&quot; i din hjemmemappe. Opret gerne en back-up eller tag filerne med dig, men lad være med selv at ændre i dem.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du kan finde konfigurationsfilerne til Hedgewars under mappen &quot;.hedgewars&quot; i din hjemmemappe. Opret gerne en back-up eller tag filerne med dig, men lad være med selv at ændre i dem.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>Windows-versionen af Hedgewars understøtter integrering med Xfire. Husk at tilføje Hedgewars til din liste med spil så dine venner kan se hvornår du spiller.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Brug en Molotovcocktail eller Flammekasteren til midlertidigt at forhindre pindsvin i at passere et område, f.eks. en tunnel eller platform.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>Den Målsøgende Bi kan være svær at bruge. Den vender lettere hvis den ikke flyver alt for hurtigt, så prøv at spare på kraften når du affyrer den.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Indhold der kan Downloades</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -960,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -967,16 +870,9 @@
         <source>Start</source>
         <translation>Start</translation>
     </message>
-</context>
-<context>
-    <name>PageNet</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>Please select server from the list above</source>
-        <translation type="obsolete">Vælg venligst en server fra den ovenstående liste</translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -986,35 +882,12 @@
         <translation>Kontrol</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>Please enter room name</source>
-        <translation type="obsolete">Indtast venligst navnet på rummet</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Netværksspil</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Officiel server</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
     </message>
 </context>
 <context>
@@ -1032,18 +905,6 @@
         <translation>Slet hold</translation>
     </message>
     <message>
-        <source>New weapon scheme</source>
-        <translation type="obsolete">Nyt våbensystem</translation>
-    </message>
-    <message>
-        <source>Edit weapon scheme</source>
-        <translation type="obsolete">Rediger våbensystem</translation>
-    </message>
-    <message>
-        <source>Delete weapon scheme</source>
-        <translation type="obsolete">Slet våbensystem</translation>
-    </message>
-    <message>
         <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
         <translation>Du kan ikke ændre på holdene fra holdvalgsskærmen. Gå tilbage til hovedmenuen for at tilføje, redigere og slette hold.</translation>
     </message>
@@ -1072,10 +933,6 @@
         <translation>Slet våbensæt</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Generelt</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Advanceret</translation>
     </message>
@@ -1115,18 +972,98 @@
         <source>HTTP proxy</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">Netværk</translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Hold</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished">Spilsystemer</translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">VÃ¥ben</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
         <source>Rename dialog</source>
         <translation>Dialogboks til omdøbelse</translation>
     </message>
@@ -1134,18 +1071,6 @@
         <source>Enter new file name:</source>
         <translation>Indtast nyt filnavn:</translation>
     </message>
-    <message>
-        <source>Cannot rename to</source>
-        <translation type="obsolete">Kan ikke omdøbe til</translation>
-    </message>
-    <message>
-        <source>Cannot delete file</source>
-        <translation type="obsolete">Kan ikke slette fil</translation>
-    </message>
-    <message>
-        <source>Please select record from the list</source>
-        <translation type="obsolete">Vælg venligst en optagelse fra listen</translation>
-    </message>
 </context>
 <context>
     <name>PageRoomsList</name>
@@ -1158,18 +1083,6 @@
         <translation>Tilslut</translation>
     </message>
     <message>
-        <source>Refresh</source>
-        <translation type="obsolete">Opdater</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
         <source>Admin features</source>
         <translation>Administratorfunktioner</translation>
     </message>
@@ -1178,64 +1091,6 @@
         <translation>Navn på Rum:</translation>
     </message>
     <message>
-        <source>This game is in lobby.
-You may join and start playing once the game starts.</source>
-        <translation type="obsolete">Dette spil er i lobbyen.
-Du kan tilslutte dig og spille med når spillet starter.</translation>
-    </message>
-    <message>
-        <source>This game is in progress.
-You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</source>
-        <translation type="obsolete">Dette spil er i gang.
-Du kan tilslutte dig og kigge med med det samme, men du må vente på at spillet slutter med selv at kunne spille med.</translation>
-    </message>
-    <message>
-        <source>%1 is the host. He may adjust settings and start the game.</source>
-        <translation type="obsolete">%1 er værten. Han kan ændre indstillingerne og starte spillet.</translation>
-    </message>
-    <message>
-        <source>Random Map</source>
-        <translation type="obsolete">Tilfældig Bane</translation>
-    </message>
-    <message>
-        <source>Games may be played on precreated or randomized maps.</source>
-        <translation type="obsolete">Man kan spille enten på allerede lavede eller tilfældigt genererede baner.</translation>
-    </message>
-    <message>
-        <source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
-        <translation type="obsolete">Spilsystemet definerer generelle indstillinger og præferencer, så som rundelængden, Pludselig Død og Vampyr.</translation>
-    </message>
-    <message>
-        <source>The Weapon Scheme defines available weapons and their ammunition count.</source>
-        <translation type="obsolete">Våbensystemet definere hvilke våben der er tilgængelige og hvor meget ammunition de har.</translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 clients connected to this room.</source>
-        <translation type="obsolete">
-            <numerusform>Der er %1 klient forbundet til dette rum.</numerusform>
-            <numerusform>Der er %1 klienter forbundet til dette rum.</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 teams participating in this room.</source>
-        <translation type="obsolete">
-            <numerusform>Der deltager %1 hold i dette rum.</numerusform>
-            <numerusform>Der deltager %1 hold i dette rum.</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>Please enter room name</source>
-        <translation type="obsolete">Indtast venligst rummets navn</translation>
-    </message>
-    <message>
-        <source>Please select room from the list</source>
-        <translation type="obsolete">Vælg venligst et rum fra listen</translation>
-    </message>
-    <message>
-        <source>Random Maze</source>
-        <translation type="obsolete">Tilfældig Labyrint</translation>
-    </message>
-    <message>
         <source>Rules:</source>
         <translation>Regler:</translation>
     </message>
@@ -1251,16 +1106,6 @@
         <source>Clear</source>
         <translation>Ryd</translation>
     </message>
-    <message>
-        <source>Warning</source>
-        <translation type="obsolete">Advarsel</translation>
-    </message>
-    <message>
-        <source>The game you are trying to join has started.
-Do you still want to join the room?</source>
-        <translation type="obsolete">Det spil du forsøge at tilslutte dig er allerede startet.
-Har du stadig lyst til at tilslutte dig rummet?</translation>
-    </message>
     <message numerus="yes">
         <source>%1 players online</source>
         <translation>
@@ -1284,10 +1129,6 @@
         <translation>Landmassen kan ikke ødelægges!</translation>
     </message>
     <message>
-        <source>Add an indestructable border around the terrain</source>
-        <translation type="obsolete">Tilføj en kant rundt om banen som ikke kan destrueres</translation>
-    </message>
-    <message>
         <source>Lower gravity</source>
         <translation>Svagere tyngdekraft</translation>
     </message>
@@ -1300,10 +1141,6 @@
         <translation>Alle pindsvin har deres eget personlige kraftfelt</translation>
     </message>
     <message>
-        <source>Enable random mines</source>
-        <translation type="obsolete">Aktiver tilfældige miner</translation>
-    </message>
-    <message>
         <source>Gain 80% of the damage you do back in health</source>
         <translation>FÃ¥ 80% af den skade du giver tilbage som liv</translation>
     </message>
@@ -1422,42 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game (a quick game against the computer, settings are chosen for you)</source>
-        <translation type="obsolete">Simpelt spil (et hurtigt spil mod computeren, hvor indstillingerne er valgt på forhånd)</translation>
-    </message>
-    <message>
-        <source>Multiplayer (play a hotseat game against your friends, or AI teams)</source>
-        <translation type="obsolete">Multiplayer (spil mod flere venner eller AI hold ved samme computer)</translation>
-    </message>
-    <message>
-        <source>Training Mode (Practice your skills in a range of training missions)</source>
-        <translation type="obsolete">Træningsspil (Rafiner dine evner i en række forskellige træningsmissioner)</translation>
-    </message>
-    <message>
-        <source>Demos (Watch recorded demos)</source>
-        <translation type="obsolete">Demoer (Afspil optagede demoer)</translation>
-    </message>
-    <message>
-        <source>Load (Load a previously saved game)</source>
-        <translation type="obsolete">Indlæs (Indlæs et tidligere gemt spil)</translation>
-    </message>
-    <message>
-        <source>Campaign Mode (...)</source>
-        <translation type="obsolete">Kampagnespil (...)</translation>
-    </message>
-    <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1466,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Indlæs</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1531,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1546,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1558,10 +1353,6 @@
         <translation>Info</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Begræns tilslutninger</translation>
     </message>
@@ -1609,18 +1400,6 @@
         <translation>Fuldskærm</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Fullskærm (frontend)</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Aktiver lyd</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Aktiver musik</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Fremvis antal billeder vist per sekund</translation>
     </message>
@@ -1633,26 +1412,10 @@
         <translation>Tilføj dato og tidspunkt til filnavnet for optagelser</translation>
     </message>
     <message>
-        <source>Reduced quality</source>
-        <translation type="obsolete">Reduceret kvalitet</translation>
-    </message>
-    <message>
         <source>Show ammo menu tooltips</source>
         <translation>Vis værktøjstip i ammunitionsmenuer</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Aktiver lyd (frontend)</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Aktiver musik (frontend)</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Effekter (frontend)</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1672,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>genereret bane...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Menneske</translation>
     </message>
@@ -1692,14 +1479,6 @@
         <translation>(Systemstandard)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>Mission</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation>genereret labyrint...</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Fællesskab</translation>
     </message>
@@ -1716,14 +1495,6 @@
         <translation>I gang</translation>
     </message>
     <message>
-        <source>Default</source>
-        <translation type="obsolete">Standard</translation>
-    </message>
-    <message>
-        <source>hand drawn map...</source>
-        <translation>håndtegnet bane...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Deaktiveret</translation>
     </message>
@@ -1760,10 +1531,6 @@
         <translation>Top-Bund</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>Vrikke</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Rød/Cyan gråskala</translation>
     </message>
@@ -1799,22 +1566,6 @@
         <translation>Fort</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Tasteindstillinger</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Hold</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">VÃ¥ben</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Lyd-/Grafikindstillinger</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Netspil</translation>
     </message>
@@ -1835,30 +1586,6 @@
         <translation>Holdindstillinger</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Diverse</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Spilsystemer og VÃ¥ben</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1882,30 +1609,6 @@
         <translation>Version</translation>
     </message>
     <message>
-        <source>This program is distributed under the GNU General Public License</source>
-        <translation type="obsolete">Dette program distribueres under GNU General Public License</translation>
-    </message>
-    <message>
-        <source>Developers:</source>
-        <translation>Udviklere:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafik:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Lyde:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Oversættelser:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Særlig tak til:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>VÃ¥ben</translation>
     </message>
@@ -1918,10 +1621,6 @@
         <translation>Port:</translation>
     </message>
     <message>
-        <source>Net nick</source>
-        <translation type="obsolete">Brugernavn</translation>
-    </message>
-    <message>
         <source>Resolution</source>
         <translation>Opløsning</translation>
     </message>
@@ -1966,10 +1665,6 @@
         <translation>Antal Kasser</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Spilsystem</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Miner er Fusere</translation>
     </message>
@@ -1998,10 +1693,6 @@
         <translation>Lokalitet</translation>
     </message>
     <message>
-        <source>Restart game to apply</source>
-        <translation type="obsolete">Genstart spil for at anvende</translation>
-    </message>
-    <message>
         <source>Explosives</source>
         <translation>Eksplosiver</translation>
     </message>
@@ -2010,10 +1701,6 @@
         <translation>Tip:</translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Denne udviklerversion er under konstruktion og er ikke nødvendigvis kompatibel med andre versioner af spillet. Nogle funktioner er måske i stykker eller ukomplette. Brug er på eget ansvar!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Kvalitet</translation>
     </message>
@@ -2050,10 +1737,6 @@
         <translation>Spilsystem</translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Kodeord</translation>
-    </message>
-    <message>
         <source>% Get Away Time</source>
         <translation>% Tid til at Løbe Væk</translation>
     </message>
@@ -2092,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2123,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Fuldskærm</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -2149,10 +1860,6 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <source>Network</source>
-        <translation type="obsolete">Netværk</translation>
-    </message>
-    <message>
         <source>Connection to server is lost</source>
         <translation>Forbindelse til serveren er gået tabt</translation>
     </message>
@@ -2161,66 +1868,10 @@
         <translation>Fejl</translation>
     </message>
     <message>
-        <source>Failed to open data directory:
-%1
-Please check your installation</source>
-        <translation type="obsolete">Det mislykkedes at åbne data mappen:
-%1
-Tjek venligst om spillet er installeret korrekt</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">VÃ¥ben</translation>
-    </message>
-    <message>
-        <source>Can not edit default weapon set</source>
-        <translation type="obsolete">Kan ikke ændre standardvåbensæt</translation>
-    </message>
-    <message>
-        <source>Can not delete default weapon set</source>
-        <translation type="obsolete">Kan ikke slette standardvåbensæt</translation>
-    </message>
-    <message>
-        <source>Really delete this weapon set?</source>
-        <translation type="obsolete">Vil du virkelig slette dette våbensæt?</translation>
-    </message>
-    <message>
-        <source>Can not overwrite default weapon set &apos;%1&apos;!</source>
-        <translation type="obsolete">Kan ikke overskrive standardvåbensættet &apos;%1&apos;!</translation>
-    </message>
-    <message>
-        <source>All file associations have been set.</source>
-        <translation type="obsolete">Alle filtilknytninger er blevet indstillede.</translation>
-    </message>
-    <message>
         <source>File association failed.</source>
         <translation>Filtilknytninger mislykkedes.</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation type="obsolete">Hold</translation>
-    </message>
-    <message>
-        <source>Really delete this team?</source>
-        <translation type="obsolete">Vil du virkelig slette dette hold?</translation>
-    </message>
-    <message>
-        <source>Schemes</source>
-        <translation type="obsolete">Spilsystemer</translation>
-    </message>
-    <message>
-        <source>Can not delete default scheme &apos;%1&apos;!</source>
-        <translation type="obsolete">Kan ikke slette standardspilsystemet &apos;%1&apos;!</translation>
-    </message>
-    <message>
-        <source>Really delete this game scheme?</source>
-        <translation type="obsolete">Vil du virkelig slette dette spilsystem?</translation>
-    </message>
-    <message>
-        <source>Can not delete default weapon set &apos;%1&apos;!</source>
-        <translation type="obsolete">Kan ikke slette standardvåbensættet &apos;%1&apos;!</translation>
-    </message>
-    <message>
         <source>Teams - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2253,22 +1904,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2430,28 +2065,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>Cannot create directory %1</source>
-        <translation type="obsolete">Kan ikke oprette mappe %1</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
-        <source>Nickname</source>
-        <translation>Brugernavn</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Indtast venligst dit brugernavn</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2509,26 +2153,10 @@
         <translation>Indlæs</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Indstillinger</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Klar</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Tilfældige Hold</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Tilknyt filtyper</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>mere</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2574,37 +2202,6 @@
     </message>
 </context>
 <context>
-    <name>QTableWidget</name>
-    <message>
-        <source>Room Name</source>
-        <translation type="obsolete">Navn på Rum</translation>
-    </message>
-    <message>
-        <source>C</source>
-        <translation type="obsolete">C</translation>
-    </message>
-    <message>
-        <source>T</source>
-        <translation type="obsolete">T</translation>
-    </message>
-    <message>
-        <source>Owner</source>
-        <translation type="obsolete">Ejer</translation>
-    </message>
-    <message>
-        <source>Map</source>
-        <translation type="obsolete">Bane</translation>
-    </message>
-    <message>
-        <source>Rules</source>
-        <translation type="obsolete">Regler</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">VÃ¥ben</translation>
-    </message>
-</context>
-<context>
     <name>RoomsListModel</name>
     <message>
         <source>In progress</source>
@@ -2652,6 +2249,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2679,125 +2295,21 @@
     </message>
 </context>
 <context>
-    <name>TCPBase</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Fejl</translation>
-    </message>
-    <message>
-        <source>Unable to start the server: %1.</source>
-        <translation type="obsolete">Ude af stand til at starte serveren: %1.</translation>
-    </message>
-    <message>
-        <source>Unable to run engine: %1 (</source>
-        <translation type="obsolete">Ude af stand til at starte spilmotoren: %1 (</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampyr</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artilleri</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Brug Forter</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Opdel Hold</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Fastland</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Tilføj Kant</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Svag Tyngdekraft</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Lasersigte</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Udødelighed</translation>
-    </message>
-    <message>
-        <source>Add Mines</source>
-        <translation type="obsolete">Tilføj Miner</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Tilfældig Rækkefølge</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Konge</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Placer Pindsvin</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Klan Deler Ammunition</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Deaktiver Bærebjælker</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Deaktiver Overfladeobjekter</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>AI Overlevelse</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Nulstil Liv</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Uendelige Angreb</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Nulstil VÃ¥ben</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Indivuel Ammunition per Pindsvin</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Deaktiver Vind</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Mere Vind</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Tagteam</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Tilføj Kant i Bunden</translation>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
     </message>
 </context>
 <context>
@@ -2931,12 +2443,6 @@
         <translation>fang</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>pindsvin
-info</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>afslut</translation>
     </message>
@@ -2972,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Grundlæggende styring</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>VÃ¥benstyring</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Kamera og musestyring</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Andet</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">VÃ¥ben</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Bevæg dine pindsvin og sigt:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Hop over sprækker og forhinderinger:</translation>
     </message>
@@ -3062,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_de.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_de.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Abbrechen</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Abbrechen</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Spielprofile bearbeiten</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Wenn diese Option aktiviert ist, wird durch Auswählen eines Spielprofils auch automatisch Waffen ausgewählt</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation>Spieloptionen</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation>Style-Sheet konnte nich nach %1 gesichert werden</translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation>%1 ist kein gültiger Befehl!</translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,22 +231,6 @@
         <translation>Spiel abgebrochen</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation>Dein Spitzname &apos;%1&apos; wurde
-auf Hedgewars.org registriert.
-
-Bitte gib dein Passwort ein oder
-wähle einen anderen Spitznamen
-in den Spieloptionen:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation>Kein Passwort</translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation>Spitzname</translation>
     </message>
@@ -167,6 +243,59 @@
 Please pick another nickname:</source>
         <translation>Dein Spitzname &apos;%1&apos; ist bereits in Verwendung. Bitte wähle einen anderen Spitznamen:</translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -182,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Karte</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Motiv</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Alles</translation>
     </message>
@@ -218,10 +335,6 @@
         <translation>Verrückt</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Typ</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Kleine Tunnel</translation>
     </message>
@@ -230,28 +343,96 @@
         <translation>Mittlere Tunnel</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Große Tunnel</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Kleine schwebende Inseln</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Mittlere schwebende Inseln</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Große schwebende Inseln</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Seed</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Setzen</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished">Handgemalt</translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Zufall</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Gezeichnete Karte laden</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Gezeichnete Karten</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Alle Dateien</translation>
     </message>
 </context>
 <context>
@@ -323,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation>Passwort</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -339,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Abbrechen</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -346,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -364,25 +578,16 @@
         <source>Audio: </source>
         <translation type="unfinished">Audio: </translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
-    <name>LibavIteraction</name>
-    <message>
-        <source>Duration: %1m %2s
-</source>
-        <translation type="obsolete">Dauer: %1m %2s</translation>
-    </message>
-    <message>
-        <source>Video: %1x%2, </source>
-        <translation type="obsolete">Video: %1x%2, </translation>
-    </message>
-    <message>
-        <source>%1 fps, </source>
-        <translation type="obsolete">%1 fps, </translation>
-    </message>
-    <message>
-        <source>Audio: </source>
-        <translation type="obsolete">Audio: </translation>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -415,6 +620,38 @@
         <source>Set data</source>
         <translation>Speichere Daten</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Allgemein</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -469,8 +706,40 @@
         <translation>Allgemein</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Erweitert</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Cooliehat</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Name</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Zufallsteam</translation>
     </message>
 </context>
 <context>
@@ -551,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Wähle einfach die gleiche Farbe wie dein Freund um als ein Team zu spielen. Jeder von euch wird trotzdem seine eigenen Igel kontrollieren, aber sie gewinnen oder verlieren zusammen.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Manche Waffen richten nur einen geringen Schaden an, können aber in der richtigen Situation sehr nützlich sein. Benutze die Desert Eagle um mehrere Igel ins Wasser zu schießen.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Wenn du dir nicht sicher bist was du tun sollst und keine Munition verschwenden willst, überspringe eine Runde. Aber lass nicht zu viele Runden verstreichen, denn später kommt es zum Sudden Death!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Wenn du andere daran hindern willst deinen bevorzugten Nickname auf dem offiziellen Server zu nutzen, registriere dich auf http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Du bist von dem Standardspiel gelangweilt? Probiere die Missionen aus - sie ermöglichen dir verschiedene Spielarten je nachdem welche du wählst.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Das Spiel wird automatisch das letzte Spiel als Demo aufnehmen. Wähle &apos;Lokales Spiel&apos; und wähle den &apos;Demos&apos;-Knopf in der unteren rechten Ecke um sie zu spielen oder zu verwalten.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Wenn du Probleme hast, frag in unseren Foren, aber erwarte bitte keinen 24/7-Support!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Wenn du es magst, hilf uns mit einer kleinen Spende oder trage deine eigene Arbeit bei!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Teile es mit deiner Familie und deinen Freunden!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Von Zeit zu Zeit wird es offizielle Turniere geben. Anstehede Events werden frühzeitig auf http://www.hedgewars.org/ bekannt gegeben.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars ist in vielen Sprachen verfügbar. Wenn die Übersetzung in deiner Sprache fehlt oder veraltet ist scheue dich nicht uns zu kontaktieren!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars läuft auf vielen verschiedenen Betriebssystemen wie Microsoft Windows, Mac OS X und Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Bedenke immer, dass du auch eigene Spiele im lokalen und Netzwerk/Online-Spiel erstellen kannst. Du bist nicht an die &apos;Einfaches Spiel&apos;-Option gebunden.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Du solltest dir wenigstens einmal pro Stunde eine Pause gönnen.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Wenn deine Grafikkarte keine hardwarebeschleunigtes OpenGL unterstützt, versuche die Qualtität in den Einstellungen runterzuschrauben.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Wir sind offen für Vorschläge oder konstruktive Rückmeldungen. Wenn dir etwas nicht gefällt oder du eine gute Idee hat, lass es uns wissen!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Sei gerade beim Spielen in Internet höflich und vergiss nie, dass eventuell auch Kinder mit dir oder gegen dich spielen!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Spezielle Spielmodi wie &apos;Vampirismus&apos; oder &apos;Karma&apos; erlauben es dir völlig neue Taktiken zu entwickeln. Probier sie einem eigenen Spiel aus!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Du solltest nie Hedgewars auf einem Computer installieren, der dir nicht gehört (Schule, Universität, Arbeit, etc.). Frag bitte stattdessen die verantwortliche Person!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars ist perfekt für kurze Spielchen zwischendurch. Schaue nur, dass du nicht zu viele Igel oder eine zu große Karte nimmst. Das Verringern der Zeit oder Lebenspunkte kann auch helfen.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Bei der Erstellung des Spiels wurden keine Igel verletzt.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Wenn dir jemand das Spiel verkauft hat, solltest du versuchen es dir erstatten zu lassen!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Verbinde ein oder mehrere Gamepads bevor du das Spiel startest um damit deine Teams kontrollieren zu können.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Erstellen einen Account auf %1 um andere daran zu deinen favorisierten Benutzernamen zu benutzen, wenn du auf dem offiziellen Server spielst.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Wenn deine Grafikkarte kein hardwarebeschleunigtes OpenGL bietet, versuche die entsprechenden Treiber zu aktualisieren.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Es gibt drei Arten von Sprüngen: Drücke zweimal die Taste zum Hochspringen, um noch höher/rückwärts zu springen.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Angst eine Klippe herunterzufallen? Halte [Umschalt] um dich nach links oder rechts zu drehen, ohne dich wirklich zu bewegen.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Manche Waffen brauchen spezielle Strategieren oder einfach nur eine Menge Ãœbung, also gib eine Waffe nicht direkt auf wenn du deinen Gegner einmal verfehlst.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>Die meisten Waffen funktionieren nicht mehr, sobald sie das Wasser berühren. Die zielsuchende Biene oder die Torte sind Ausnahmen hierfür.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Der Alte Limburger versucht nur einen kleinen Schaden. Die durch den Wind beeinflussbare Stinkwolke jedoch kann viele Igel auf einmal vergiften.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Der Piano-Angriff ist der verheerenste Luftangriff. Du verlierst allerdings den Igel der ihn vollführt, er hat also auch seine Schattenseite.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Haftminen sind perfekte Werkzeuge um Kettenreaktionen auszulösen oder Igel in die gewünschte Richtung zu lenken ... oder ins Wasser.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Der Hammer ist die effektivste Waffe auf Brücken oder Klippen. Getroffene Igel fallen einfach durch den Boden.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Wenn du hinter einem Igel feststeckst, benutze den Hammer um dich zu befreien ohne durch eine Explosion verletzt zu werden.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Die maximale Laufdistanz der Torte hängt vom abzulaufenden Untergrund ab. Benutze [Angriff] um sie früher zu zünden.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Der Flammenwerfer ist zwar eine Waffe, kann aber auch zum Tunnelgraben genutzt werden.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Du willst wissen wer hinter Hedgewars steckt? Klicke auf das Hedgewars-Logo im Hauptmenü um die Credits zu sehen.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Du magst Hedgewars? Werde ein Fan auf %1 oder folge uns auf %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Du kannst gerne deine eigenen Grabsteine, Hüte, Flaggen oder sogar Karten und Themes erstellen! Aber vergiss nicht, dass du sie auch verteilen musst um sie online zu nutzen.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Du willst einen besonderen Hut tragen? Spende etwas an uns und du kriegst einen exklusiven Hut deiner Wahl!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Halte deine Grafiktreiber aktuell um Probleme beim Spielen zu vermeiden.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du findest deine Hedgewars Konfigurationsdateien unter &quot;Eigene Dateien\Hedgewars&quot;. Erstelle Backups oder kopiere deine Dateien, aber editiere sie besser nicht selbst.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Du kannst Dateien wie Speicherstände oder Demos mit Hedgewars verknüpfen um sie so direkt mit deinem Datei- oder Internetbrowser zu öffnen.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Du willst Seile sparen? Lass das Seil in der Luft los und schieß nochmal. Solange du nicht den Boden berührst kannst du es wiederverwenden ohne Munition zu verschwenden!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du findest die Hedgewars Konfigurationsdateien unter &quot;Library/Application Support/Hedgewars&quot; in deinem Home-Verzeichnis. Erstelle Backups oder kopiere deine Dateien, aber editiere sie besser nicht selbst.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du findest die Hedgewars Konfigurationsdateien unter &quot;.hedgewars&quot; in deinem Home-Verzeichnis. Erstelle Backups oder kopiere deine Dateien, aber editiere sie besser nicht selbst.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>Die Windows version von Hedgewars unterstützt Xfire. Füge Hedgewars zu deiner Spieleliste hinzu damit deine Freunde dich spielen sehen können.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Benutze den Molotov-Cocktail oder den Flammenwerfer um Igel vorübergehend am passieren von Gelände wie z.B. Tunnels oder Platformen zu hindern.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>Die Verwendung der Zielsuchende Biene ist ein bisschen knifflig. Ihr Wenderadius hängt von der Geschwindigkeit ab, versuche sie also nicht mit voller Stärke wegzuschießen.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Herunterladbare Inhalte</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation>Lokales Spiel</translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation>Spiele auf einem einzelnen PC</translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation>Netzwerkspiel</translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation>Spiele über ein Netwerk</translation>
     </message>
@@ -839,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation>Bearbeite Spieleinstellungen</translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -846,6 +870,10 @@
         <source>Start</source>
         <translation>Start</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Bearbeite Spieleinstellungen</translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -854,31 +882,12 @@
         <translation>Steuerung</translation>
     </message>
     <message>
-        <source>DLC</source>
-        <translation type="obsolete">DLC</translation>
-    </message>
-    <message>
-        <source>Downloadable Content</source>
-        <translation type="obsolete">Herunterladbare Inhalte</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Eigener Server (LAN oder Internet)</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Offizieller Server</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation>Treffe hunderte Spieler online!</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation>Erstelle einen eigenen Spiel-Server oder verbinde dich zu einem bestehenden Server im Netzwerk.</translation>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Bearbeite Spieleinstellungen</translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
     </message>
 </context>
 <context>
@@ -924,10 +933,6 @@
         <translation>Waffenprofil löschen</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation>Allgemein</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation>Erweitert</translation>
     </message>
@@ -967,6 +972,94 @@
         <source>System proxy settings</source>
         <translation>Betriebsystem Proxy-Einstellungen</translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Teams</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Waffen</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished">Benutzerdefinierte Farben</translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished">Proxy-Einstellungen</translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Verschiedenes</translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished">Videoaufnahmeoptionen</translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1166,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation>Einfaches Spiel</translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation>Spiele ein schnelles Spiel gegen den Computer - mit Zufallseinstellungen</translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation>Multiplayer</translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation>Spiele gegen deine Freunde oder Computer-Teams.</translation>
     </message>
@@ -1186,26 +1271,14 @@
         <translation>Kampagnenmodus</translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation>Trainingsmodus</translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation>Verbessere deine Fähigkeiten in verschiedenen Trainingsmissionen</translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation>Demos</translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation>Sehe aufgenommene Demos an</translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation>Laden</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation>Lade ein vormals gespeichtes Spiel</translation>
     </message>
@@ -1251,14 +1324,6 @@
         <translation>(in Bearbeitung...)</translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation>Datum: </translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation>Größe: </translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation>encoden</translation>
     </message>
@@ -1266,6 +1331,16 @@
         <source>uploading</source>
         <translation>hochladen</translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1274,10 +1349,6 @@
         <translation>Rauswerfen</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Zugang beschränken</translation>
     </message>
@@ -1325,10 +1396,6 @@
         <translation>Vollbild</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Klänge im Spiel</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>FPS anzeigen</translation>
     </message>
@@ -1337,14 +1404,6 @@
         <translation>Alternativen Schaden anzeigen</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Musik im Spiel</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Frontend im Vollbild</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Datum und Uhrzeit an Aufnahmedatei anhängen</translation>
     </message>
@@ -1357,18 +1416,6 @@
         <translation>Kurzinfos für Waffen anzeigen</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Klänge im Frontend</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Musik im Frontend</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Animationen im Frontend</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation>Passwort speichern</translation>
     </message>
@@ -1388,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation>Spielauflösung verwenden</translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>Zufallskarte...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Mensch</translation>
     </message>
@@ -1408,14 +1479,6 @@
         <translation>(Systemstandard)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>Mission</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation>Zufallslabyrinth...</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation></translation>
     </message>
@@ -1432,10 +1495,6 @@
         <translation>Im Spiel</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>Handgezeichnete Karte</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Deaktiviert</translation>
     </message>
@@ -1472,10 +1531,6 @@
         <translation>Ãœbereinander</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>Wackeln</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Rot/Türkis Graustufen</translation>
     </message>
@@ -1507,22 +1562,10 @@
         <translation>Teammitglieder</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Tastenkombinationen</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Festung</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation>Teams</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Audio-/Grafik-Einstellungen</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Netzwerkspiel</translation>
     </message>
@@ -1543,26 +1586,6 @@
         <translation>Teameinstellungen</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Verschiedenes</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Spielprofile und Waffen</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation>Benutzerdefinierte Farben</translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation>Verschiedenes</translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation>Videoaufnahmeoptionen</translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation>Videos</translation>
     </message>
@@ -1570,30 +1593,10 @@
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation>Proxy-Einstellungen</translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
     <message>
-        <source>Developers:</source>
-        <translation>Entwickler:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafiken:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Ãœbersetzer:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Besonderer Dank geht an:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Waffen</translation>
     </message>
@@ -1626,10 +1629,6 @@
         <translation>Version</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Sounds:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Ausgangslautstärke</translation>
     </message>
@@ -1666,10 +1665,6 @@
         <translation>Kistenabwurf</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Spielprofil</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Blindgänger</translation>
     </message>
@@ -1706,10 +1701,6 @@
         <translation>Tipp:</translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Dieser Entwicklungsbuild ist &apos;in Arbeit&apos; und kann inkompatibel zu anderen Versionen des Spiels sein. Manche Funktionen könnten unbrauchbar oder unvollständig sein. Benutzung auf eigene Gefahr!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Qualität</translation>
     </message>
@@ -1786,10 +1777,6 @@
         <translation>Tags (durch Beistriche getrennt)</translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation>Zusammenfassung   </translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
@@ -1817,6 +1804,38 @@
         <source>Bitrate (Kbps)</source>
         <translation>Bitrate (Kbps)</translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Vollbild</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1855,10 +1874,6 @@
         <translation>Dateizuordnung fehlgeschlagen.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation>Bitte fülle alle Felder aus</translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation>Fehler während Authentifizierung auf google.com:
@@ -1907,18 +1922,6 @@
         <translation>Alle Dateizuordnungen wurden gesetzt</translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation>Hedgewars - Fehler</translation>
     </message>
@@ -2069,16 +2072,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation>Willst du das Waffenprofil &apos;%1&apos; wirklich löschen?</translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Spitzname</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Bitte gib deinen Spitznamen ein</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2136,26 +2160,10 @@
         <translation>Laden</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Einstellungen</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Bereit</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Zufallsteam</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Ordne Dateitypen zu</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>mehr</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation>Mehr Info</translation>
     </message>
@@ -2248,6 +2256,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Abbrechen</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2275,106 +2302,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirismus</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artillerie</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Festungs-Modus</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Teams getrennt aufstellen</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Unzerstörbares Terrain</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Randbegrenzung einfügen</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Verringerte Schwerkraft</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Laservisier</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Unverwundbarkeit</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Zufällige Reihenfolge</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Schützt den König</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Igel platzieren</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Gemeinsames Arsenal</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Keine Bauträger</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Deaktivere Landschaftsobjekte</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>KI Ãœberlebensmodus</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Gesundheit zurücksetzen</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Unbegrenzte Angriffe</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Waffen zurücksetzen</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Waffen pro Igel</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Kein Wind</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Mehr Wind</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Tag Team</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Untere Randbegrenzung hinzufügen</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Abbrechen</translation>
     </message>
 </context>
 <context>
@@ -2492,12 +2434,6 @@
         <translation>Bildschirmfoto</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>Igel 
-Statistik</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>Beenden</translation>
     </message>
@@ -2549,33 +2485,33 @@
         <source>record</source>
         <translation>aufnehmen</translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Grundsteuerung</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Waffensteuerung</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Kamera- und Zeigersteuerung</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Andere</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Waffen</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Verschiedenes</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Bewege und ziele mit deinen Igeln:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Überwinde Abgründe und Hindernisse mit Sprüngen:</translation>
     </message>
@@ -2639,6 +2575,10 @@
         <source>Record video:</source>
         <translation>Video aufnehmen:</translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_el.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_el.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">ΆκυÏο</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">ΆκυÏο</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -40,27 +113,38 @@
         <translation type="unfinished">ΕπεξεÏγασία όπλων</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Σφάλμα</translation>
-    </message>
-    <message>
-        <source>Illegal ammo scheme</source>
-        <translation type="obsolete">ΑσÏμβατος σχεδιασμός όπλων</translation>
-    </message>
-    <message>
         <source>Edit schemes</source>
         <translation type="unfinished">ΕπεξεÏγασία σχεδιασμών</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)</source>
-        <translation type="obsolete">Όταν αυτή η επιλογη είναι ενεÏγοποιημένη, επιλέγοντας ένα σχεδιασμό Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Î¸Î± επιλέγεται αυτομάτως ένα όπλο (και αντιστÏόφως)</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -74,22 +158,6 @@
 <context>
     <name>HWChatWidget</name>
     <message>
-        <source>%1 *** %2 has been removed from your ignore list</source>
-        <translation type="obsolete">%1 *** %2 αφαιÏέθηκε από τη &quot;μαÏÏη&quot; λίστα</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been added to your ignore list</source>
-        <translation type="obsolete">%1 *** %2 Ï€Ïοστέθηκε στη &quot;μαÏÏη&quot; λίστα</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been removed from your friends list</source>
-        <translation type="obsolete">%1 *** %2 αφαιÏέθηκε από τη λίστα φίλων</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been added to your friends list</source>
-        <translation type="obsolete">%1 *** %2 Ï€Ïοστέθηκε στη λίστα φίλων</translation>
-    </message>
-    <message>
         <source>%1 has been removed from your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
@@ -129,38 +197,14 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
     <message>
-        <source>new</source>
-        <translation type="obsolete">Îέο</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Σφάλμα</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Εντάξει</translation>
-    </message>
-    <message>
-        <source>Unable to start the server</source>
-        <translation type="obsolete">Δεν είναι δυνατόν να ξεκινήσει ο εξυπηÏετητής</translation>
-    </message>
-    <message>
         <source>Cannot save record to file %1</source>
         <translation type="unfinished">Δεν μποÏεί να σωθεί η εγγÏαφή στο αÏχείο %1</translation>
     </message>
     <message>
-        <source>Please select record from the list above</source>
-        <translation type="obsolete">ΠαÏακαλώ επέλεξε εγγÏαφή από την παÏαπάνω λίστα</translation>
-    </message>
-    <message>
         <source>DefaultTeam</source>
         <translation type="unfinished">Ομάδα εξ&apos; οÏισμοÏ</translation>
     </message>
@@ -181,21 +225,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Το ψευδώνυμο %1 είναι ήδη
-καταχωÏημένο στο Hedgewars.org
-ΠαÏακαλώ εισάγετε τον κωδικό σας
-ή επιλέξτε άλλο ψευδώνυμο από τις
-Ïυθμίσεις του παιχνιδιοÏ:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Ψευδώνυμο</translation>
     </message>
@@ -216,14 +245,63 @@
         <source>Demo name:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
     <message>
-        <source>el.txt</source>
-        <translation type="obsolete">el.txt</translation>
-    </message>
-    <message>
         <source>Cannot open demofile %1</source>
         <translation type="unfinished">Δεν μποÏεί να φοÏτωθεί το αÏχείο επιδείξεων %1</translation>
     </message>
@@ -235,18 +313,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation type="unfinished">ΧάÏτης</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation type="unfinished">Θέματα</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation type="unfinished">ΦίλτÏο</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation type="unfinished">Όλα</translation>
     </message>
@@ -271,10 +337,6 @@
         <translation type="unfinished">ΕξωφÏενικό</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation type="unfinished">ΤÏπος</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished">ΜικÏές σήÏαγγες</translation>
     </message>
@@ -283,27 +345,95 @@
         <translation type="unfinished">ΜέτÏιες σήÏαγγες</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished">Μεγάλες σήÏαγγες</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished">ΜικÏά επιπλέοντα νησιά</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished">ΜέτÏια επιπλέοντα νησιά</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished">Μεγάλα επιπλέοντα νησιά</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Τυχαίο</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -345,20 +475,6 @@
         <translation type="unfinished">Σε πέταξαν έξω</translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Κωδικός</translation>
-    </message>
-    <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password
-or pick another nickname:</source>
-        <translation type="obsolete">Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password
-or pick another nickname:</translation>
-    </message>
-    <message>
         <source>%1 *** %2 has joined the room</source>
         <translation type="unfinished">%1 *** %2 εισήλθε στο δωμάτιο</translation>
     </message>
@@ -375,17 +491,6 @@
         <translation type="unfinished">%1 *** %2 εγκατέλειψε</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="obsolete">Το ψευδώνυμο %1 είναι ήδη
-καταχωÏημένο στο Hedgewars.org
-ΠαÏακαλώ εισάγετε τον κωδικό σας
-ή επιλέξτε άλλο ψευδώνυμο από τις
-Ïυθμίσεις του παιχνιδιοÏ:</translation>
-    </message>
-    <message>
         <source>User quit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -401,8 +506,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Κωδικός</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -417,6 +522,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">ΆκυÏο</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -424,6 +555,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -442,18 +580,21 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
     <message>
-        <source>Server message:</source>
-        <translation type="obsolete">Server message:</translation>
-    </message>
-    <message>
-        <source>Set message</source>
-        <translation type="obsolete">Set message</translation>
-    </message>
-    <message>
         <source>Clear Accounts Cache</source>
         <translation type="unfinished">ΚαθαÏισμός μνήμης λογαÏιασμών</translation>
     </message>
@@ -481,6 +622,38 @@
         <source>Set data</source>
         <translation type="unfinished">Τοποθέτηση δεδομένων</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Γενικά</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished">Ανανέωση</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -535,31 +708,45 @@
         <translation type="unfinished">Γενικά</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation type="unfinished">Για Ï€ÏοχωÏημένους</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Καπέλο</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Όνομα</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Τυχαία Ομάδα</translation>
     </message>
 </context>
 <context>
     <name>PageGameStats</name>
     <message>
-        <source>&lt;p&gt;The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.&lt;/p&gt;</translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kill in a turn.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog was killed during this round.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehogs were killed during this round.&lt;/p&gt;</numerusform>
-        </translation>
-    </message>
-    <message>
         <source>Details</source>
         <translation type="unfinished">ΛεπτομέÏειες</translation>
     </message>
@@ -635,271 +822,10 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Local Game (Play a game on a single computer)</source>
-        <translation type="obsolete">Τοπικό Παιχνίδι (Παίξιμο Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï ÏƒÎµ ένα υπολογιστή)</translation>
-    </message>
-    <message>
-        <source>Network Game (Play a game across a network)</source>
-        <translation type="obsolete">Δικτυακό Παιχνίδι (Παίξιμο Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï ÏƒÎµ δίκτυο)</translation>
-    </message>
-    <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Απλώς επιλέξτε το ίδιο χÏώμα με το φίλο σας για να παίξετε μαζί σαν ομάδα. Ο καθένας από σας θα μποÏεί ακόμα να ελέγχει τους δικοÏÏ‚ του ή τους δικοÏÏ‚ της σκατζόχοιÏους, αλλά χάνετε ή κεÏδίζετε μαζί.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΜεÏικά όπλα μποÏεί να κάνουν μόνο λίγη ζημιά αλλά μποÏεί να είναι Ï€Î¿Î»Ï Ï€Î¹Î¿ καταστÏεπτικά στην κατάλληλη πεÏίσταση. Δοκιμάστε να χÏησιμοποιήσετε το Desert Eagle για να Ïίξετε πολλαπλοÏÏ‚ σκατζόχοιÏους στο νεÏÏŒ.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Εαν δεν ξέÏετε τι να κάνετε και δεν θέλετε να σπαταλήσετε πυÏομαχικά, &quot;πηδήξτε&quot; ένα γÏÏο. Αλλά μην αφήσετε Ï€Î¿Î»Ï ÏŽÏα να πεÏάσει διότι θα επέλθει Ξαφνικός Θάνατος!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Εαν θα θέλατε να αποτÏέψετε Ï„Ïίτους από το να χÏησιμοποιοÏν το ψευδώνυμό σας στον επίσημο εξυπηÏετητή, φτιάξτε ένα λογαÏιασμό στην ιστοσελίδα : http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΒαÏιέστε το παÏαδοσιακό παίξιμο; Δοκιμάστε μια από τις αποστολές! Θα σας Ï€ÏοσφέÏουν ένα διαφοÏετικό Ï„Ïόπο παιχνιδιοÏ, αναλόγως την αποστολή.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Εξ&apos;οÏÎ¹ÏƒÎ¼Î¿Ï Ï„Î¿ παιχνίδι πάντα θα καταγÏάφει την πιο Ï€Ïόσφατη παÏτίδα σαν επίδειξη. Επιλέξτε &quot;Τοπικό Παιχνίδι&quot; και κατόπιν επιλέξτε &quot;Επιδείξεις&quot; στην κάτω δεξιά γωνία για να τις αναπαÏάγετε ή να τις διαχειÏιστείτε.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Hedgewars είναι λογισμικό Î‘Î½Î¿Î¹ÎºÏ„Î¿Ï ÎšÏŽÎ´Î¹ÎºÎ± (Open Source) και ΕλεÏθεÏο Λογισμικό (Free Software) το οποίο δημιουÏγοÏμε στον ελεÏθεÏο χÏόνο μας. Άν έχετε Ï€Ïοβλήματα Ïωτήστε στο forum αλλά παÏακαλώ μην πεÏιμένετε υποστήÏιξη 24/7!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Hedgewars είναι λογισμικό Î‘Î½Î¿Î¹ÎºÏ„Î¿Ï ÎšÏŽÎ´Î¹ÎºÎ± (Open Source) και ΕλεÏθεÏο Λογισμικό (Free Software) το οποίο δημιουÏγοÏμε στον ελεÏθεÏο χÏόνο μας. Άν σας αÏέσει βοηθήστε μας με μια μικÏή δωÏεά ή συνεισφέÏετε την δική σας δουλειά!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Hedgewars είναι λογισμικό Î‘Î½Î¿Î¹ÎºÏ„Î¿Ï ÎšÏŽÎ´Î¹ÎºÎ± (Open Source) και ΕλεÏθεÏο Λογισμικό (Free Software) το οποίο δημιουÏγοÏμε στον ελεÏθεÏο χÏόνο μας. ΜοιÏαστείτε το με την οικογένειά σας και τους φίλους σας όπως εσείς επιθυμείτε!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Συχνά-πυκνά θα υπάÏχουν επίσημα Ï€Ïωταθλήματα. Τα επικείμενα γεγονότα θα ανακοινώνονται στην ιστοσελίδα : http://www.hedgewars.org/ μεÏικές ημέÏες νωÏίτεÏα.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Hedgewars είναι διαθέσιμο σε πολλές γλώσσες. Εάν η μετάφÏαση για τη γλώσσα σας μοιάζει απαÏχαιωμένη ή λείπει, μην διστάσετε να επικοινωνίσετε μαζί μας!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Hedgewars μποÏεί να Ï„Ïέξει σε μια μεγάλη ποικιλία λειτουÏγικών συστημάτων εκ των οποίων συμπεÏιλαμβάνονται τα Microsoft Windows, Mac OS X και το GNU/Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Μην ξεχνάτε ότι έχετε τη δυνατότητα να &quot;στήσετε&quot; τα δικά σας σενάÏια Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï ÏƒÎµ τοπικό και δικτυακό/διαδικτυακό παιχνίδι. Δεν είστε πεÏιοÏισμένοι στην επιλογή &quot;Απλό Παιχνίδι&quot;.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Ενόσω παίζετε Ï€Ïέπει να κάνετε τακτικά διαλείμματα, τουλάχιστον κάθε μία ÏŽÏα.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Εαν η κάÏτα γÏαφικών σας δεν μποÏεί να παÏέχει επιτάχυνση Ï…Î»Î¹ÎºÎ¿Ï Î³Î¹Î± το OpenGL (hardware accelerated OpenGL) Ï€Ïοσπαθήστε να ενεÏγοποιήσετε την επιλογή χαμηλής ποιότητας έτσι ώστε να βελτιωθεί η απόδοση του παιχνιδιοÏ.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Είμαστε ανοικτοί σε συμβουλές και εποικοδομητικό διάλογο. Εαν δεν σας αÏέσει κάτι ή έχετε μια Ï„ÏομεÏή ιδέα, τότε ενημεÏώστε μας!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Ειδικώς όταν παίζετε στο διαδίκτυο, να είστε ευγενικοί και να θυμάστε πάντα οτι μποÏεί να παίζουν ανήλικοι, είτε μαζί σας ή εναντίον σας!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Ειδικοί Ï„Ïόποι Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï ÏŒÏ€Ï‰Ï‚ το &quot;ΒαμπιÏισμός&quot; ή το &quot;ΜοίÏα&quot; σας επιτÏέπουν να αναπτÏξετε εντελώς νέες τακτικές. Δοκιμάστε τους σε ένα Ï€ÏοσαÏμόσιμο παιχνίδι!</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="obsolete">Η έκδοση Hedgewars για Windows υποστηÏίζει Xfire. ΣιγουÏευτείτε οτι Ï€Ïοσθέσατε το Hedgewars στη λίστα παιχνιδιών του, ώστε οι φίλοι σας να μποÏοÏν να σας δουν όταν εσείς παίζετε.</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Δεν Ï€Ïέπει ποτέ να εγκαταστήσετε το Hedgewars σε υπολογιστές που δεν σας ανήκουν (σχολείο, πανεπιστήμιο, εÏγασία, κ.λπ.). Αντ &apos;αυτοÏ, ζητήστε το από τον υπεÏθυνο!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Hedgewars είναι ιδανικό για σÏντομα παιχνίδια κατά τη διάÏκεια του διαλείμματος. Απλά βεβαιωθείτε ότι δεν Ï€Ïοσθέσατε πολλοÏÏ‚ σκαντζόχοιÏους ή χÏησιμοποιείτε ένα τεÏάστιο χάÏτη. Μείωση του χÏόνου και της υγείας μποÏεί να βοηθήσει επίσης.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Κανένας σκατζόχοιÏος δεν βλάφτηκε στην δημιουÏγία Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… παιχνιδιοÏ.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Hedgewars είναι λογισμικό Î‘Î½Î¿Î¹ÎºÏ„Î¿Ï ÎšÏŽÎ´Î¹ÎºÎ± (Open Source) και ΕλεÏθεÏο Λογισμικό (Free Software) το οποίο δημιουÏγοÏμε στον ελεÏθεÏο χÏόνο μας. Εαν κάποιος σας ποÏλησε το παιχνίδι, Ï€Ïέπει να διεκδικήσετε αποζημίωση!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Συνδέστε ένα ή πεÏισσότεÏα gamepad Ï€Ïιν από την έναÏξη του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Î­Ï„ÏƒÎ¹ ώστε να είναι σε θέση να αναθέτει τους χειÏισμοÏÏ‚ του στις ομάδες σας.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΔημιουÏγήστε έναν λογαÏιασμό στο %1 για να αποτÏέψετε τους άλλους από το να χÏησιμοποιοÏν το ψευδώνυμό σας ενόσω παίζετε στον επίσημο εξυπηÏετητή.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Εαν η κάÏτα γÏαφικών σας δεν μποÏεί να παÏέχει επιτάχυνση Ï…Î»Î¹ÎºÎ¿Ï Î³Î¹Î± το OpenGL (hardware accelerated OpenGL) Ï€Ïοσπαθήστε να αναβαθμίσετε τους αντίστοιχους οδηγοÏÏ‚ υλικοÏ.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΥπάÏχουν Ï„Ïία διαφοÏετικά άλματα διαθέσιμα. Άλμα εις μήκος, άλμα εις Ïψος [με ένα πάτημα],Ï€Î¿Î»Ï Ï…ÏˆÎ·Î»ÏŒ / οπίσθιο άλμα [με δÏο πατήματα].</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Φοβάστε μήπως πέσετε στο γκÏεμό; ΚÏατήστε πατημένο το πλήκτÏο ακÏίβειας [Left Shift] και έπειτα αÏιστεÏά ή δεξιά χωÏίς να κινήστε στην Ï€Ïαγματικότητα.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΟÏισμένα όπλα απαιτοÏν ειδικές στÏατηγικές ή απλώς Ï€Î¿Î»Ï ÎµÎºÏ€Î±Î¯Î´ÎµÏ…ÏƒÎ·, γι &apos;αυτό μην εγκαταλείπετε ένα συγκεκÏιμένο εÏγαλείο, εάν αστοχήσετε μια φοÏά σε έναν εχθÏÏŒ.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Τα πεÏισσότεÏα όπλα δεν λειτουÏγοÏν μόλις αγγίζουν το νεÏÏŒ. Η ΑυτοκαθοδηγοÏμενη Μέλισσα καθώς και η ΤοÏÏτα αποτελοÏν εξαιÏέσεις σε αυτό.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Η Χαλασμένη Φέτα Ï€Ïοκαλεί μόνο μια μικÏή έκÏηξη. Ωστόσο, το δÏσοσμο σÏννεφο το οποίο επιÏÏεάζεται από τον άνεμο μποÏεί να δηλητηÏιάσει πολλοÏÏ‚ σκατζόχοιÏους με τη μία.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το Πιάνο είναι η πιο επιζήμια αεÏοποÏική επίθεση. Θα χάσετε το σκαντζόχοιÏο ο οποίος την εκτελεί, έτσι υπάÏχει ένα τεÏάστιο μειονέκτημα επίσης.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. It&apos;s turn radius depends on it&apos;s velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="obsolete">Η ΑυτοκαθοδηγοÏμενη Μέλισσα μποÏεί να είναι δÏσκολη στη χÏήση. Η ακτίνα καμπυλότητάς της εξαÏτάται από την ταχÏτητά της, επομένως Ï€Ïοσπαθήστε να μην χÏησιμοποιείτε την πλήÏη ισχÏ.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Οι Αυτοκόλλητες ÎάÏκες είναι ένα τέλειο εÏγαλείο για να δημιουÏγηθοÏν μικÏές αλυσιδωτές αντιδÏάσεις που βάζουν τους αντίπαλους σκαντζόχοιÏους σε έντονες καταστάσεις ... ή στο νεÏÏŒ.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το ΣφυÏί είναι πιο αποτελεσματικό όταν χÏησιμοποιείται σε γέφυÏες ή δοκοÏÏ‚. Οι σκατζόχοιÏοι απλώς θα &quot;φυτευθοÏν&quot; στο έδαφος.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Εάν είστε κολλημένοι πίσω από έναν εχθÏικό σκαντζόχοιÏο, χÏησιμοποιήστε το ΣφυÏί για να ελευθεÏώσετε τον εαυτό σας χωÏίς να πάθετε ζημιές από έκÏηξη.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Η μέγιστη απόσταση που διανÏει η ΤοÏÏτα εξαÏτάται από το έδαφος το οποίο Ï€Ïέπει να διαβεί. ΧÏησιμοποιήστε το κουμπί της επίθεσης για Ï€Ïοκαλέσετε την έκÏηξη νωÏίτεÏα.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Το φλογοβόλο είναι όπλο μεν, αλλά μποÏεί να χÏησιμοποιηθεί εξίσου καλά για σκάψιμο σήÏαγγας.</translation>
-    </message>
-    <message>
-        <source>Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="obsolete">ΧÏησιμοποιήστε την Καυστική ΧειÏοβομβίδα για να εμποδίσετε Ï€ÏοσωÏινώς τους σκατζόχοιÏους από το να διασχίσουν έδαφος, όπως σήÏαγγες ή εξέδÏες.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Θέλετε να μάθετε ποιός είναι πίσω από το παιχνίδι; Πατήστε το λογότυπο Hedgewars στο κυÏίως μενου για να δείτε τα credits.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Σας αÏέσει το Hedgewars; Γίνετε οπαδός στο %1  ή ακολουθήστε μας στο %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΔημιουÏγήστε ελεÏθεÏα τους δικοÏÏ‚ σας Ï„Ïμβους, τα καπέλα σας, σημαίες ή ακόμα χάÏτες και θέματα! Σημειώστε όμως ότι θα Ï€Ïέπει να τα μοιÏαστείτε κάπου για να τα χÏησιμοποιήσετε σε διαδικτυακό παιχνίδι.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Σας αÏέσει Ï€Ïαγματικά να φοÏάτε ένα συγκεκÏιμένο καπέλο; Κάντε μια δωÏεά σε μας και λάβετε ένα αποκλειστικό καπέλο της επιλογής σας!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Αναβαθμίστε τους οδηγοÏÏ‚ της κάÏτας γÏαφικών σας για να αποφÏγετε τυχόν Ï€Ïοβλήματα παίζοντας το παιχνίδι.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΜποÏείτε να βÏείτε τα αÏχεία Ïυθμίσεων του Hedgewars στο &quot;My Documents\Hedgewars&quot;. ΔημιουÏγήστε αντίγÏαφα ασφαλείας ή πάÏτε τα αÏχεία μαζί σας, αλλά μην τα επεξεÏγαστείτε χειÏοκίνητα.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΜποÏείτε να αντιστοιχίσετε τα αντίστοιχα αÏχεία του Hedgewars (σωσμένα παιχνίδια και εγγÏαφές επίδειξης) με το παιχνίδι, έτσι ώστε να τα Ï„Ïέχετε απευθείας από τον αγαπημένο σας πεÏιηγητή αÏχείων ή διαδικτÏου.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Θέλετε να κάνετε οικονομία στα σχοινιά; Αφήστε το σχοινί ενώσο βÏίσκεστε στον αέÏα και στη συνέχεια πυÏοβολήστε ξανά. Όσο δεν αγγίζετε το έδαφος θα επαναχÏησιμοποιείτε το σχοινί σας χωÏίς σπατάλη πυÏομαχικών!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΜποÏείτε να βÏείτε τα αÏχεία Ïυθμίσεων του Hedgewars στο &quot;Library/Application Support/Hedgewars&quot; στον Ï€Ïοσωπικό σας φάκελο. ΔημιουÏγήστε αντίγÏαφα ασφαλείας ή πάÏτε τα αÏχεία μαζί σας, αλλά μην τα επεξεÏγαστείτε χειÏοκίνητα.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">ΜποÏείτε να βÏείτε τα αÏχεία Ïυθμίσεων του Hedgewars στο &quot;.hedgewars&quot; στον Ï€Ïοσωπικό σας φάκελο. ΔημιουÏγήστε αντίγÏαφα ασφαλείας ή πάÏτε τα αÏχεία μαζί σας, αλλά μην τα επεξεÏγαστείτε χειÏοκίνητα.</translation>
-    </message>
-    <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -932,18 +858,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
+        <source>Play a game across a local area network</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
+        <source>Play a game on an official server</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -953,16 +872,9 @@
         <source>Start</source>
         <translation type="unfinished">Εκκίνηση</translation>
     </message>
-</context>
-<context>
-    <name>PageNet</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Σφάλμα</translation>
-    </message>
-    <message>
-        <source>Please select server from the list above</source>
-        <translation type="obsolete">ΠαÏακαλώ επιλέξτε εξυπηÏετητή από την παÏακάτω λίστα</translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -971,24 +883,13 @@
         <source>Control</source>
         <translation type="unfinished">Έλεγχος</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation type="unfinished">Παιχνίδι σε δίκτυο (LAN)</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation type="unfinished">Επίσημος εξυπηÏετητής</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
+    <message>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Εκκίνηση</translation>
     </message>
 </context>
 <context>
@@ -1006,26 +907,10 @@
         <translation type="unfinished">ΔιαγÏαφή ομάδας</translation>
     </message>
     <message>
-        <source>New weapon scheme</source>
-        <translation type="obsolete">Îέος σχεδιασμός όπλων</translation>
-    </message>
-    <message>
-        <source>Edit weapon scheme</source>
-        <translation type="obsolete">ΕπεξεÏγασία ÏƒÏ‡ÎµÎ´Î¹Î±ÏƒÎ¼Î¿Ï ÏŒÏ€Î»Ï‰Î½</translation>
-    </message>
-    <message>
-        <source>Delete weapon scheme</source>
-        <translation type="obsolete">ΔιαγÏαφή ÏƒÏ‡ÎµÎ´Î¹Î±ÏƒÎ¼Î¿Ï ÏŒÏ€Î»Ï‰Î½</translation>
-    </message>
-    <message>
         <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
         <translation type="unfinished">Δεν μποÏείτε να επεξεÏγαστείτε τις ομάδες από την επιλογή ομάδων. Πηγαίνετε πίσω στην κÏÏια σελίδα για να Ï€Ïοσθέσετε, να επεξεÏγαστείτε ή να διαγÏάψετε ομάδες.</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Γενικά</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Για Ï€ÏοχωÏημένους</translation>
     </message>
@@ -1089,18 +974,98 @@
         <source>HTTP proxy</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">Δίκτυο</translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Ομάδες</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Όπλα</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Σφάλμα</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Εντάξει</translation>
-    </message>
-    <message>
         <source>Rename dialog</source>
         <translation type="unfinished">Μετονομασία διαλόγου</translation>
     </message>
@@ -1108,18 +1073,6 @@
         <source>Enter new file name:</source>
         <translation type="unfinished">Εισάγετε το όνομα του νέου αÏχείου :</translation>
     </message>
-    <message>
-        <source>Cannot rename to</source>
-        <translation type="obsolete">Δεν μποÏεί να γίνει μετονομασία σε</translation>
-    </message>
-    <message>
-        <source>Cannot delete file</source>
-        <translation type="obsolete">Δεν μποÏεί να διαγÏαφεί το αÏχείο</translation>
-    </message>
-    <message>
-        <source>Please select record from the list</source>
-        <translation type="obsolete">ΠαÏακαλώ επιλέξτε εγγÏαφή από την λίστα</translation>
-    </message>
 </context>
 <context>
     <name>PageRoomsList</name>
@@ -1132,18 +1085,6 @@
         <translation type="unfinished">ΣÏνδεση</translation>
     </message>
     <message>
-        <source>Refresh</source>
-        <translation type="obsolete">Ανανέωση</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Σφάλμα</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Εντάξει</translation>
-    </message>
-    <message>
         <source>Admin features</source>
         <translation type="unfinished">ΧαÏακτηÏιστικά διαχειÏιστή</translation>
     </message>
@@ -1152,68 +1093,6 @@
         <translation type="unfinished">Όνομα δωματίου :</translation>
     </message>
     <message>
-        <source>This game is in lobby.
-You may join and start playing once the game starts.</source>
-        <translation type="obsolete">Αυτό το παιχνίδι είναι σε αναμονή.
-ΜποÏείτε να συνδεθείτε και να παίξετε μόλις το παιχνίδι ξεκινήσει.</translation>
-    </message>
-    <message>
-        <source>This game is in progress.
-You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</source>
-        <translation type="obsolete">Αυτό το παιχνίδι είναι σε εξέλιξη.
-ΜποÏείτε να συνδεθείτε και να παÏακολουθείτε την εξέλιξη αλλά θα Ï€Ïέπει να πεÏιμένετε να τελειώσει το παιχνίδι για να ξεκινήσετε να παίζετε.</translation>
-    </message>
-    <message>
-        <source>%1 is the host. He may adjust settings and start the game.</source>
-        <translation type="obsolete">%1 είναι ο οικοδεσπότης. ΜποÏεί να Ï€ÏοσαÏμόζει τις Ïυθμίσεις και να ξεκινά το παιχνίδι.</translation>
-    </message>
-    <message>
-        <source>Random Map</source>
-        <translation type="obsolete">Τυχαίος χάÏτης</translation>
-    </message>
-    <message>
-        <source>Games may be played on precreated or randomized maps.</source>
-        <translation type="obsolete">Τα παιχνίδια μποÏοÏν να παίζονται σε Ï€Ïοκατασκευασμένους ή τυχαιοποιημένους χάÏτες.</translation>
-    </message>
-    <message>
-        <source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
-        <translation type="obsolete">Ο σχεδιασμός του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï ÎºÎ±Î¸Î¿Ïίζει τις γενικές επιλογές και τις Ï€Ïοτιμήσεις όπως τον ΧÏόνο του ΓÏÏου, τον Ξαφνικό Θάνατο ή τον ΒαμπιÏισμό.</translation>
-    </message>
-    <message>
-        <source>The Weapon Scheme defines available weapons and their ammunition count.</source>
-        <translation type="obsolete">Ο Σχεδιασμός των Όπλων καθοÏίζει τα διαθέσιμα όπλα και το ποσό των πυÏομαχικών.</translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 clients connected to this room.</source>
-        <translation type="obsolete">
-            <numerusform>ΥπάÏχει %1 χÏήστης συνδεδεμένος σε αυτό το δωμάτιο.</numerusform>
-            <numerusform>ΥπάÏχουν %1 χÏήστες συνδεδεμένοι σε αυτό το δωμάτιο.</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 teams participating in this room.</source>
-        <translation type="obsolete">
-            <numerusform>%1 ομάδα συμμετέχει σε αυτό το δωμάτιο.</numerusform>
-            <numerusform>%1 ομάδες συμμετέχουν σε αυτό το δωμάτιο.</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>Please enter room name</source>
-        <translation type="obsolete">Εισάγετε το όνομα του δωματίου</translation>
-    </message>
-    <message>
-        <source>Please select room from the list</source>
-        <translation type="obsolete">ΠαÏακαλώ επιλέξτε δωμάτιο από τη λίστα</translation>
-    </message>
-    <message>
-        <source>Random Maze</source>
-        <translation type="obsolete">Τυχαίος ΛαβÏÏινθος</translation>
-    </message>
-    <message>
-        <source>State:</source>
-        <translation type="obsolete">Κατάσταση :</translation>
-    </message>
-    <message>
         <source>Rules:</source>
         <translation type="unfinished">Κανόνες :</translation>
     </message>
@@ -1229,16 +1108,6 @@
         <source>Clear</source>
         <translation type="unfinished">ΚαθαÏισμός</translation>
     </message>
-    <message>
-        <source>Warning</source>
-        <translation type="obsolete">ΠÏοσοχή</translation>
-    </message>
-    <message>
-        <source>The game you are trying to join has started.
-Do you still want to join the room?</source>
-        <translation type="obsolete">Το παιχνίδι στο οποίο Ï€Ïοσπαθείτε να συνδεθείτε έχει ήδη ξεκινήσει.
-Θέλετε ακόμα να συνδεθείτε με το δωμάτιο;</translation>
-    </message>
     <message numerus="yes">
         <source>%1 players online</source>
         <translation type="unfinished">
@@ -1262,10 +1131,6 @@
         <translation type="unfinished">Το έδαφος δεν μποÏεί να καταστÏαφεί!</translation>
     </message>
     <message>
-        <source>Add an indestructable border around the terrain</source>
-        <translation type="obsolete">ΠÏοσθήκη ενός άφθαÏτου συνόÏου γÏÏω από την πίστα</translation>
-    </message>
-    <message>
         <source>Lower gravity</source>
         <translation type="unfinished">ΜικÏοβαÏÏτητα</translation>
     </message>
@@ -1278,10 +1143,6 @@
         <translation type="unfinished">Όλοιοι σκατζόχοιÏοι έχουν ατομικό πεδίο δυνάμεων</translation>
     </message>
     <message>
-        <source>Enable random mines</source>
-        <translation type="obsolete">Enable random mines</translation>
-    </message>
-    <message>
         <source>Gain 80% of the damage you do back in health</source>
         <translation type="unfinished">ΚεÏδίστε το 80% της ζημιάς που Ï€Ïοκαλείτε σε υγεία</translation>
     </message>
@@ -1400,42 +1261,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game (a quick game against the computer, settings are chosen for you)</source>
-        <translation type="obsolete">Απλό Παιχνίδι (ένα γÏήγοÏο παιχνίδι εναντίον του υπολογιστή, οι Ïυθμίσεις είναι Ï€Ïοεπιλεγμένεs)</translation>
-    </message>
-    <message>
-        <source>Multiplayer (play a hotseat game against your friends, or AI teams)</source>
-        <translation type="obsolete">Πολλοί Παίχτες (ένα παιχνίδι εναντίον των φίλων σας ή του υπολογιστή)</translation>
-    </message>
-    <message>
-        <source>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</source>
-        <translation type="obsolete">Εξάσκηση (Εξασκήστε τις δεξιότητές σας σε ένα εÏÏος εκπαιδευτικών αποστολών). ΣΕ ΕΞΕΛΙΞΗ</translation>
-    </message>
-    <message>
-        <source>Demos (Watch recorded demos)</source>
-        <translation type="obsolete">Επιδείξεις (ΠαÏακολουθήστε καταγεγÏαμμένες επιδείξεις)</translation>
-    </message>
-    <message>
-        <source>Load (Load a previously saved game)</source>
-        <translation type="obsolete">ΦόÏτωση Σωσμένου Î Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (ΦοÏτώστε ένα σωσμένο παιχνίδι)</translation>
-    </message>
-    <message>
-        <source>Campaign Mode (...). IN DEVELOPMENT</source>
-        <translation type="obsolete">ΕκστÏατεία ΣΕ ΕΞΕΛΙΞΗ</translation>
-    </message>
-    <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1444,26 +1273,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">ΦόÏτωση</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1509,14 +1326,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1524,6 +1333,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1536,10 +1355,6 @@
         <translation type="unfinished">ΠληÏοφοÏίες</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation type="unfinished">ΈναÏξη</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation type="unfinished">ΠεÏιοÏισμός συνδέσεων</translation>
     </message>
@@ -1587,18 +1402,6 @@
         <translation type="unfinished">ΠλήÏης οθόνη</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation type="unfinished">Διεπαφή σε πλήÏη οθόνη</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation type="unfinished">ΕνεÏγοποίηση ήχου</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation type="unfinished">ΕνεÏγοποίηση μουσικής</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation type="unfinished">ΠÏοβολή FPS</translation>
     </message>
@@ -1611,26 +1414,10 @@
         <translation type="unfinished">ΠÏοσάÏτηση ημεÏομηνίας και ÏŽÏας στην εγγÏαφή του ονόματος αÏχείου</translation>
     </message>
     <message>
-        <source>Reduced quality</source>
-        <translation type="obsolete">Reduced quality</translation>
-    </message>
-    <message>
         <source>Show ammo menu tooltips</source>
         <translation type="unfinished">ΠÏοβολή συμβουλών στον κατάλογο των πυÏομαχικών</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished">ΕνεÏγοποίηση ήχων διεπαφής</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished">ΕνεÏγοποίηση μουσικής διεπαφής</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished">ΕνεÏγοποίηση εφε διεπαφής</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1650,14 +1437,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation type="unfinished">ΔημιουÏγημένος χάÏτης...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation type="unfinished">ΆνθÏωπος</translation>
     </message>
@@ -1670,14 +1481,6 @@
         <translation type="unfinished">(Εξ&apos;οÏÎ¹ÏƒÎ¼Î¿Ï ÏƒÏ…ÏƒÏ„Î®Î¼Î±Ï„Î¿Ï‚)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation type="unfinished">Αποστολή</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation type="unfinished">ΔημιουÏγημένος λαβÏÏινθος...</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished">Κοινότητα</translation>
     </message>
@@ -1694,14 +1497,6 @@
         <translation type="unfinished">Σε εξέλιξη</translation>
     </message>
     <message>
-        <source>Default</source>
-        <translation type="obsolete">Default</translation>
-    </message>
-    <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1738,10 +1533,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1777,22 +1568,6 @@
         <translation type="unfinished">ΦÏοÏÏιο</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation type="unfinished">ΔεσμεÏσεις κουμπιών</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation type="unfinished">Ομάδες</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Όπλα</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation type="unfinished">Επιλογές Ήχου/ΓÏαφικών</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation type="unfinished">Δικτυακό παιχνίδι</translation>
     </message>
@@ -1813,30 +1588,6 @@
         <translation type="unfinished">Ρυθμίσεις ομάδας</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation type="unfinished">ΔιάφοÏα</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1860,30 +1611,6 @@
         <translation type="unfinished">Έκδοση</translation>
     </message>
     <message>
-        <source>This program is distributed under the GNU General Public License</source>
-        <translation type="obsolete">Το Ï€ÏόγÏαμμα αυτό διανέμεται κάτω από την GNU General Public License</translation>
-    </message>
-    <message>
-        <source>Developers:</source>
-        <translation type="unfinished">ΠÏογÏαμματιστές :</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation type="unfinished">ΓÏαφικά:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation type="unfinished">Ήχοι:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation type="unfinished">Μεταγλωττίσεις:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation type="unfinished">Ειδικές ευχαÏιστίες:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation type="unfinished">Όπλα</translation>
     </message>
@@ -1896,10 +1623,6 @@
         <translation type="unfinished">ΘÏÏα :</translation>
     </message>
     <message>
-        <source>Net nick</source>
-        <translation type="obsolete">Ψευδώνυμο</translation>
-    </message>
-    <message>
         <source>Resolution</source>
         <translation type="unfinished">Ανάλυση</translation>
     </message>
@@ -1944,10 +1667,6 @@
         <translation type="unfinished">Ρίψεις κιβωτίων</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation type="unfinished">Σχεδιασμός ΠαιχνιδιοÏ</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation type="unfinished">% ΤζοÏφιες ÎάÏκες</translation>
     </message>
@@ -1976,10 +1695,6 @@
         <translation type="unfinished">Γλώσσα</translation>
     </message>
     <message>
-        <source>Restart game to apply</source>
-        <translation type="obsolete">Επανεκκινήστε το παιχνίδι για εφαÏμογή των αλλαγών</translation>
-    </message>
-    <message>
         <source>Explosives</source>
         <translation type="unfinished">ΕκÏηκτικά</translation>
     </message>
@@ -1988,10 +1703,6 @@
         <translation type="unfinished">Συμβουλή : </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished">Αυτή η διανομή είναι «έÏγο σε εξέλιξη» και μποÏεί να μην είναι συμβατή με άλλες εκδόσεις του παιχνιδιοÏ. ΟÏισμένες λειτουÏγίες μποÏεί να μη δουλεÏουν ή να είναι ελλιπείς. ΧÏησιμοποιήστε την με δική σας ευθÏνη!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished">Ποιότητα</translation>
     </message>
@@ -2012,10 +1723,6 @@
         <translation type="unfinished">Μείωση Υγείας στον Ξαφνικό Θάνατο</translation>
     </message>
     <message>
-        <source>Bind schemes and weapons</source>
-        <translation type="obsolete">ΣÏζευξη σχεδιασμών και όπλων</translation>
-    </message>
-    <message>
         <source>There are videos that are currently being processed.
 Exiting now will abort them.
 Do you really want to quit?</source>
@@ -2046,10 +1753,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2101,6 +1804,38 @@
         <source>Scheme</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">ΠλήÏης οθόνη</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -2127,10 +1862,6 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <source>Network</source>
-        <translation type="obsolete">Δίκτυο</translation>
-    </message>
-    <message>
         <source>Connection to server is lost</source>
         <translation type="unfinished">Η σÏνδεση με τον εξυπηÏετητή διακόπηκε</translation>
     </message>
@@ -2139,38 +1870,6 @@
         <translation type="unfinished">Σφάλμα</translation>
     </message>
     <message>
-        <source>Failed to open data directory:
-%1
-Please check your installation</source>
-        <translation type="obsolete">Αποτυχία ανοίγματος φακέλου δεδομένων :
- %1
-ΠαÏακαλώ ελέγξτε την εγκατάστασή σας</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Όπλα</translation>
-    </message>
-    <message>
-        <source>Can not edit default weapon set</source>
-        <translation type="obsolete">Can not edit default weapon set</translation>
-    </message>
-    <message>
-        <source>Can not delete default weapon set</source>
-        <translation type="obsolete">Δεν μποÏεί να διαγÏαφεί η βασική σειÏά όπλων</translation>
-    </message>
-    <message>
-        <source>Really delete this weapon set?</source>
-        <translation type="obsolete">ΣίγουÏα να διαγÏαφεί αυτή η σειÏά όπλων ;</translation>
-    </message>
-    <message>
-        <source>Can not overwrite default weapon set &apos;%1&apos;!</source>
-        <translation type="obsolete">Δεν μποÏεί να αντικατασταθεί η βασική σειÏά όπλων &apos;%1&apos;!</translation>
-    </message>
-    <message>
-        <source>All file associations have been set.</source>
-        <translation type="obsolete">Όλες οι αντιστοιχίσεις αÏχείων έχουν τεθεί.</translation>
-    </message>
-    <message>
         <source>File association failed.</source>
         <translation type="unfinished">Η αντιστοίχιση του αÏχείου απέτυχε.</translation>
     </message>
@@ -2207,22 +1906,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2384,28 +2067,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Σφάλμα</translation>
-    </message>
-    <message>
-        <source>Cannot create directory %1</source>
-        <translation type="obsolete">Δεν μποÏεί να δημιουÏγηθεί ο κατάλογος %1</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Εντάξει</translation>
-    </message>
-    <message>
-        <source>Nickname</source>
-        <translation type="unfinished">Ψευδώνυμο</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation type="unfinished">ΠαÏακαλώ εισάγετε το ψευδώνυμό σας</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2463,18 +2155,6 @@
         <translation type="unfinished">ΦόÏτωση</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation type="unfinished">ΡÏθμιση</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation type="unfinished">Έτοιμο</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation type="unfinished">Τυχαία Ομάδα</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished">Αντιστοίχηση επεκτάσεων αÏχείων</translation>
     </message>
@@ -2522,41 +2202,6 @@
         <source>Cancel uploading</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QTableWidget</name>
-    <message>
-        <source>Room Name</source>
-        <translation type="obsolete">Όνομα Δωματίου</translation>
-    </message>
-    <message>
-        <source>C</source>
-        <translation type="obsolete">C</translation>
-    </message>
-    <message>
-        <source>T</source>
-        <translation type="obsolete">T</translation>
-    </message>
-    <message>
-        <source>Owner</source>
-        <translation type="obsolete">Ιδιοκτήτης</translation>
-    </message>
-    <message>
-        <source>Map</source>
-        <translation type="obsolete">ΧάÏτης</translation>
-    </message>
-    <message>
-        <source>Rules</source>
-        <translation type="obsolete">Κανόνες</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Όπλα</translation>
-    </message>
 </context>
 <context>
     <name>RoomsListModel</name>
@@ -2606,6 +2251,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">ΆκυÏο</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2633,125 +2297,21 @@
     </message>
 </context>
 <context>
-    <name>TCPBase</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Σφάλμα</translation>
-    </message>
-    <message>
-        <source>Unable to start the server: %1.</source>
-        <translation type="obsolete">Δεν είναι δυνατόν να ξεκινήσει ο εξυπηÏετητής : %1.</translation>
-    </message>
-    <message>
-        <source>Unable to run engine: %1 (</source>
-        <translation type="obsolete">Δεν είναι δυνατόν να Ï„Ïέξει η μηχανή : %1 (</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation type="unfinished">ΒαμπιÏισμός</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation type="unfinished">ΜοίÏα</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation type="unfinished">ΠυÏοβολικό</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation type="unfinished">ΛειτουÏγία ΦÏοÏÏιου</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation type="unfinished">ΔιαίÏεση Ομάδων</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation type="unfinished">ΣτεÏεό Έδαφος</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation type="unfinished">ΠÏοσθήκη ΣυνόÏου</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation type="unfinished">ΜικÏοβαÏÏτητα</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation type="unfinished">ΔιόπτÏα Laser</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation type="unfinished">ΆτÏωτος</translation>
-    </message>
-    <message>
-        <source>Add Mines</source>
-        <translation type="obsolete">Add Mines</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation type="unfinished">Τυχαία ΣειÏά</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation type="unfinished">Βασιλέας</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished">Τοποθέτηση σκατζόχοιÏων</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished">Η συμμοÏία μοιÏάζεται τα πυÏομαχικά</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation type="unfinished">ΑπενεÏγοποίηση δοκών</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished">ΑπενεÏγοποίηση Αντικειμένων Εδάφους</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished">ΛειτουÏγία Επιβίωσης για τον υπολογιστή</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished">ΕπαναφοÏά Υγείας</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished">ΑπεÏιόÏιστες Επιθέσεις</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished">ΕπαναφοÏά Όπλων</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished">ΠυÏομαχικά ανά σκατζόχοιÏο</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+        <source>Cancel</source>
+        <translation type="unfinished">ΆκυÏο</translation>
     </message>
 </context>
 <context>
@@ -2885,12 +2445,6 @@
         <translation type="unfinished">αιχμαλώτιση</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation type="unfinished">πληÏοφοÏίες
-σκατζόχοιÏου</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation type="unfinished">έξοδος</translation>
     </message>
@@ -2926,33 +2480,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation type="unfinished">Βασικές Ρυθμίσεις</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation type="unfinished">Ρυθμίσεις Όπλων</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation type="unfinished">Ρυθμίσεις κάμεÏας και δείκτη ποντικιοÏ</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation type="unfinished">ΔιάφοÏα</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Όπλα</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished">Μετακινήστε τους σκατζόχοιÏοÏÏ‚ σας και σημαδέψτε :</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished">Διασχίστε κενά και εμπόδια πηδώντας :</translation>
     </message>
@@ -3016,6 +2570,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Edit schemes</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Nickname</translation>
     </message>
@@ -165,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Map</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Themes</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>All</translation>
     </message>
@@ -216,10 +335,6 @@
         <translation>Wacky</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Type</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -228,27 +343,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Random</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -321,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Password</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -337,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -344,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -362,6 +578,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -393,6 +620,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">General</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -447,8 +706,40 @@
         <translation>General</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Advanced</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Name</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Random Team</translation>
     </message>
 </context>
 <context>
@@ -529,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -817,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -824,6 +870,10 @@
         <source>Start</source>
         <translation>Start</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -831,24 +881,13 @@
         <source>Control</source>
         <translation>Control</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>LAN game</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Official server</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
     </message>
 </context>
 <context>
@@ -894,10 +933,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">General</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Advanced</translation>
     </message>
@@ -937,6 +972,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Teams</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Weapons</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1136,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1156,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Load</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1221,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1236,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1248,10 +1353,6 @@
         <translation>Info</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Restrict Joins</translation>
     </message>
@@ -1299,18 +1400,6 @@
         <translation>Fullscreen</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Frontend fullscreen</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Enable sound</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Enable music</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Show FPS</translation>
     </message>
@@ -1327,18 +1416,6 @@
         <translation>Show ammo menu tooltips</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Enable frontend sounds</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Enable frontend music</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Frontend effects</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1358,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>generated map...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Human</translation>
     </message>
@@ -1378,14 +1479,6 @@
         <translation>(System default)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>Mission</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1402,10 +1495,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1442,10 +1531,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1481,18 +1566,6 @@
         <translation>Fort</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Key binds</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Teams</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Audio/Graphic options</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Net game</translation>
     </message>
@@ -1513,26 +1586,6 @@
         <translation>Team Settings</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Misc</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,10 +1593,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1560,26 +1609,6 @@
         <translation>Version</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Developers:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Art:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Sounds:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Translations:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Special thanks:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Weapons</translation>
     </message>
@@ -1636,10 +1665,6 @@
         <translation>Crate Drops</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Game scheme</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Dud Mines</translation>
     </message>
@@ -1676,10 +1701,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1754,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1785,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Fullscreen</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1823,10 +1872,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1873,18 +1918,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2032,16 +2065,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Nickname</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Please enter your nickname</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2099,26 +2153,10 @@
         <translation>Load</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Setup</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Ready</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Random Team</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Associate file extensions</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2211,6 +2249,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2238,106 +2295,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirism</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artillery</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Fort Mode</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Divide Teams</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Solid Land</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Add Border</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Low Gravity</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Laser Sight</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnerable</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Random Order</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>King</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Place Hedgehogs</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Clan Shares Ammo</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Disable Girders</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
     </message>
 </context>
 <context>
@@ -2471,12 +2443,6 @@
         <translation>capture</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>hedgehogs
-info</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>quit</translation>
     </message>
@@ -2512,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Basic controls</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Weapon controls</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Camera and cursor controls</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Other</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Weapons</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Move your hogs and aim:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Traverse gaps and obstacles by jumping:</translation>
     </message>
@@ -2602,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_es.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_es.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Editar modos de juego</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Cuando esta opción esté activada escoger un modo de juego escogerá el set de armas correspondiente</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished">Opciones de juego</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">El nick %1 ya está registrado 
-en Hedgewars.org. Por favor,
-introduce ahora tu clave de acceso
-o elige otro nick en las preferencias del juego:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Nick</translation>
     </message>
@@ -165,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mapa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Temas</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtro</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Todos</translation>
     </message>
@@ -216,10 +335,6 @@
         <translation>Lunático</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Tipo</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Túneles estrechos</translation>
     </message>
@@ -228,28 +343,96 @@
         <translation>Túneles normales</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Túneles anchos</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Islas pequeñas</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Islas medianas</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Islas grandes</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Semilla</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Cambiar</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Aleatorio</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Cargar mapa</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Mapas dibujados a mano</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Todos los ficheros</translation>
     </message>
 </context>
 <context>
@@ -321,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Contraseña</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -337,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -344,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -362,6 +578,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -393,6 +620,38 @@
         <source>Set data</source>
         <translation>Enviar datos</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">General</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -447,8 +706,40 @@
         <translation>General</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Avanzado</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Sombrero</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Nombre</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Equipo aleatorio</translation>
     </message>
 </context>
 <context>
@@ -529,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Elige el mismo color que tus amigos para hacer una alianza con ellos. Cada uno de vosotros controlará sus propios erizos, pero la victoria o derrota será compartida por vuestra facción.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Puede que algunas armas hagan poco daño, pero pueden ser realmente devastadoras si son usadas en el momento correcto. Prueba a usar la Desert eagle para empujar erizos enemigos al agua, por ejemplo.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Si no tienes claro qué vas a hacer y prefieres no desperdiciar munición puedes pasar un turno. ¡Pero ten cuidado, si dejas pasar muchos turnos puede que empiece la muerte súbita!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Si prefieres que nadie más use tu nick en el servidor oficial puedes registrarlo en http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>¿Estás cansado del modo de juego de siempre? Prueba alguna de las misiones, encontrarás en ellas nuevos tipos de juego dependiendo de la que elijas.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>El juego intentará guardar la última partida como una demo de forma predeterminada. Más tarde puedes ir a &quot;Juego local&quot; y visitar la sección de &quot;Demos&quot; en la esquina inferior derecha para reproducirlas o gestionarlas.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. Si tienes algún problema estaremos encantados de ayudarte en nuestros foros o canal de IRC, pero ¡no esperes que estemos allí las 24 horas del día!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. ¡Si te gusta podrías considerar el ayudarnos con una pequeña donación o contribuyendo con tu propio trabajo!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. ¡Compártelo con tu família y amigos tanto como quieras!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>De cuando en cuando celebramos torneos oficiales. Puedes mantenerte al día sobre los próximos eventos en http://www.hedgewars.org.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars está disponible en varios idiomas. Si no encuentras traducción a tu idioma o piensas que la actual es de baja calidad o está desactualizada estaremos encantados de aceptar tu colaboración para mejorarla.</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars es un juego multiplataforma que puede ser ejecutado en diversos sistemas operativos, incluyendo Windows, Mac OS X y Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Recuerda: puedes crear tus propias partidas multijugador tanto en local como por red, no estás limitado a jugar contra la máquina.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Tu salud es lo primero. Recuerda descansar unos minutos al menos una vez por cada hora de juego.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Si tu tarjeta gráfica no soporta aceleración gráfica mediante OpenGL prueba a habilitar el modo de baja calidad gráfica en la pantalla de opciones, puede que mejore el rendimiento del juego.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Siempre estamos abiertos a sugerencias y opiniones constructivas. Si hay algo que no te guste o tienes grandes ideas que te gustaría ver en el juego, ¡háznoslo saber!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Si juegas a través de internet recuerda mantener tus buenos modales y siempre ten en cuenta que puede que estés jugando con o contra menores de edad.</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Los modos de juego especiales como &quot;vampirismo&quot; o &quot;karma&quot; te permiten desarrollar tácticas de juego completamente nuevas. ¡Pruébalos en tu próxima partida!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>¡Nunca instales Hedgewars en ordenadores que no te pertenezcan tales como los de tu escuela, universidad o trabajo sin perdir permiso primero a las personas responsables de los mismos!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars es realmente genial para jugar partidas rápidas durante pausas o descansos; sólo recuerda no añadir muchos erizos y no usar mapas excesivamente grandes para que la partida no se alargue demasiado. Reducir la duración de los turnos o la vida inicial también puede ayudar.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Ningún erizo fue lastimado durante la creación de este juego.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. Si alguien te ha vendido el juego deberías pedirle que te devuelva tu dinero.</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Conecta tus mandos al ordenador antes de iniciar el juego para poder asignar correctamente los controles de a equipo.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Crea una cuenta con tu nick en %1 para evitar que otras personas puedan usarlo en el servidor oficial.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Si tu tarjeta gráfica no es capaz de usar aceleración gráfica mediante OpenGL prueba a instalar drivers más actualizados.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Hay tres tipos de salto en el juego. Presiona [salto alto] dos veces para realizar un salto muy alto, vertical y ligeramente hacia atrás.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>¿Te da miedo caerte por una cornisa? Mantén presionado [aumentar precisión] para voltearte a [izquierda] o [derecha] sin moverte del sitio.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Algunas armas pueden requerir estrategias especiales o mucho entrenamiento antes de ser usadas correctamente. No tires la a toalla con alguna de ellas sólo porque has fallado el tiro la primera vez.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>La mayoría de armas se desactivarán al tocar el agua. El abejorro y la tarta son algunas de las excepciones a la regla.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>La explosión del limbuger añejo es relativamente pequeña, pero produce una nube de gas venenoso que será arrastrada por el viento, siendo capaz de intoxicar a varios erizos a la vez.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>El piano es el ataque aéreo más destructivo del juego, aunque perderás el erizo que lo lance, así que úsalo con cuidado.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Las bombas lapa son perfectas para crear reacciones en cadena y mandar a tus enemigos al agua... o la Luna.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>El mazo es mucho más efectivo si lo usas sobre vigas o puentes. Los erizos golpeados simplemente caerán por el agujero como Alicia por la madriguera.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Si estás atrapado tras un erizo enemigo puedes usar el mazo para abrirte paso sin resultar dañado por una explosión.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>El alcance de la tarta depende de lo escarpado del terreno que tenga que atravesar, aunque puedes pulsar [atacar] para detonarla antes de que el contador llegue a cero.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>El lanzallamas es un arma, pero puede usarse para excavar túneles en caso de necesidad.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>¿Quieres saber quiénes son los desarrolladores del juego? Pulsa el logo del juego en la pantalla principal para ver los créditos.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>¿Te gusta Hedgewars? ¡Hazte fan en %1 o síguenos en %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>¡Puedes dibujar tus propias tumbas, sombreros, banderas o incluso mapas y temas! Sólo ten en cuenta que el juego no es capaz de enviar archivos todavía, así que tendrás que enviar tú mismo los archivos a tus amigos para poder jugar en red con ellos.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>¿Te gustaría poder usar un sombrero especial, sólo para ti? Haz una donación y dinos qué sombrero quieres, lo dibujaremos para ti.</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Mantén los drivers de tu tarjeta gráfica actualizados para evitar posibles problemas con este y otros juegos.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Puedes encontrar los archivos de configuración del juego en la carpeta &quot;Mis Documentos\Hedgewars&quot;. Haz copias de seguridad de los mismos o cópialos a otro ordenador si lo deseas, pero no intentes editarlos a mano para evitar posibles pérdidas de datos.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Puedes asociar los tipos de archivo relacionados, partidas guardadas y demos, con Hedgewars para lanzarlos directamente desde tu gestor de archivos o navegador favoritos.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>¿Necesitas conservar cuerdas? Cuando estés usando una cuerda puedes desengancharla y volver a lanzarla de nuevo. ¡Mientras no toques el suelo seguirás usando la misma cuerda continuamente sin desperdiciar munición adicional!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Puedes encontrar los archivos de configuración del juego en la carpeta &quot;Library/Application Support/Hedgewars&quot; dentro de tu directorio personal. Puedes hacer copias de seguridad de los mismos o copiarlos a otro ordenador si lo deseas, pero no intentes editarlos a mano para evitar posibles pérdidas de datos.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Puedes encontrar los archivos de configuración del juego en la carpeta &quot;.hedgewars&quot; dentro de tu directorio personal. Puedes hacer copias de seguridad de los mismos o copiarlos a otro ordenador si lo deseas, pero no intentes editarlos a mano para evitar posibles pérdidas de datos.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>La versión de Hedgewars para Windows soporta Xfire. Recuerda agregar Hedgewars a tu lista de juegos para que tus amigos puedan saber cuándo estás jugando.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Puedes usar el cóctel molotov o el lanzallamas para evitar que erizos enemigos crucen túneles angostos o puentes.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>El abejorro puede ser complicado de usar. Su maniobrabilidad depende de su velocidad, así que intenta no lanzarlo a máxima potencia.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Contenido adicional</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -817,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -824,6 +870,10 @@
         <source>Start</source>
         <translation>Empezar</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -832,27 +882,12 @@
         <translation>Opciones</translation>
     </message>
     <message>
-        <source>Downloadable Content</source>
-        <translation type="obsolete">Contenido adicional</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Red local</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Servidor oficial</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Empezar</translation>
     </message>
 </context>
 <context>
@@ -898,10 +933,6 @@
         <translation>Eliminar set de armas</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">General</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Avanzado</translation>
     </message>
@@ -941,6 +972,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Equipos</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Set de armas</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1140,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1160,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Cargar</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1225,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1240,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1248,10 +1349,6 @@
         <translation>Expulsar</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Empezar</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Impedir que entren más jugadores</translation>
     </message>
@@ -1299,10 +1396,6 @@
         <translation>Pantalla completa</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Habilitar sonidos del juego</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Mostrar FPS</translation>
     </message>
@@ -1311,14 +1404,6 @@
         <translation>Mostrar el daño según ocurre</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Habilitar música del juego</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Interfaz a pantalla completa</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Agregar fecha y hora al nombre de los ficheros</translation>
     </message>
@@ -1331,18 +1416,6 @@
         <translation>Mostrar globos de ayuda sobre el armamento</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Habilitar sonidos del interfaz</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Habilitar música del interfaz</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Habilitar efectos del interfaz</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1362,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>Terreno aleatorio...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Humano</translation>
     </message>
@@ -1382,14 +1479,6 @@
         <translation>(Predeterminado del sistema)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>Laberinto aleatorio...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Misión</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Comunidad</translation>
     </message>
@@ -1406,10 +1495,6 @@
         <translation>En progreso</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>Mapa dibujado a mano...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Deshabilitado</translation>
     </message>
@@ -1446,10 +1531,6 @@
         <translation>Arriba-Abajo</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>Temblor</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Rojo/Cian en escala de grises</translation>
     </message>
@@ -1481,22 +1562,10 @@
         <translation>Miembros del equipo</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Asociaciones de teclas</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Fuerte</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation>Equipos</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Opciones de Audio y Gráficos</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Juego en red</translation>
     </message>
@@ -1517,26 +1586,6 @@
         <translation>Opciones del equipo</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Otras opciones</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Modos de juego y sets de armas</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1544,30 +1593,10 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
     <message>
-        <source>Developers:</source>
-        <translation>Desarrolladores:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Gráficos:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Traducciones:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Agradecimientos:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Set de armas</translation>
     </message>
@@ -1600,10 +1629,6 @@
         <translation>Versión</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Sonidos:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Volumen de sonido por defecto</translation>
     </message>
@@ -1640,10 +1665,6 @@
         <translation>Aparición de cajas</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Modo de juego</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% minas defectuosas</translation>
     </message>
@@ -1680,12 +1701,6 @@
         <translation>Consejo: </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Esta es una versión experimental del juego y puede no ser compatible con otras versiones del mismo,
-así como carecer de algunas funcionalidades o simplemente funcionar mal. 
-¡Úsalo bajo tu propia responsabilidad!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Calidad</translation>
     </message>
@@ -1760,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1791,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Pantalla completa</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1829,10 +1872,6 @@
         <translation>No se pudieron asociar los tipos de fichero.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1879,18 +1918,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2038,16 +2065,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Nick</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Por favor introduce tu nick</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2105,26 +2153,10 @@
         <translation>Cargar</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Configuración</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Listo</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Equipo aleatorio</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Asociar tipos de archivo</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>más</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2217,6 +2249,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2244,106 +2295,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirismo</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artillería</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Fuertes</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Separar equipos</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Terreno indestructible</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Añadir borde</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Baja gravedad</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Mira láser</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnerabilidad</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Orden aleatorio</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Rey</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Posicionar erizos</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Compartir munición</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Deshabilitar vigas</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Deshabilitar decoraciones</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Supervivencia contra la computadora</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Ataques ilimitados</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Reiniciar munición</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Munición individualizada</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Restaurar salud</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Deshabilitar viento</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Más viento</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Tag team</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Añadir borde inferior</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
     </message>
 </context>
 <context>
@@ -2461,12 +2427,6 @@
         <translation>capturar</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>información de
-los erizos</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>salir</translation>
     </message>
@@ -2518,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Controles básicos</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Armas</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Cámara y cursor</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Otros</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Set de armas</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Mueve tus erizos y apunta:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Sortea huecos y obstáculos saltando:</translation>
     </message>
@@ -2608,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_fi.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Peruuta</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Peruuta</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,11 +117,34 @@
         <translation>Muokkaa kaavaa</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
+        <source>Game Options</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Game Options</source>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Nimimerkkisi %1 on
-rekisteröity Hedgewars.org-sivustolla
-Ole hyvä ja syötä salasanasi
-tai aseta eri nimimerkki asetuksissa:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Nimimerkki</translation>
     </message>
@@ -165,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,14 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Kartta</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Suodatin</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Kaikki</translation>
     </message>
@@ -212,14 +335,6 @@
         <translation>Sekopäinen</translation>
     </message>
     <message>
-        <source>Themes</source>
-        <translation>Teemat</translation>
-    </message>
-    <message>
-        <source>Type</source>
-        <translation>Tyyppi</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Pieniä tunneleita</translation>
     </message>
@@ -228,27 +343,95 @@
         <translation>Keskikokoisia tunneleita</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Laajoja tunneleita</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Pieniä kelluvia saaria</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Keskikokoisia kelluvia saaria</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Suuria kelluvia saaria</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Satunnainen</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -321,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Salasana</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -337,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Peruuta</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -344,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -362,6 +578,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -393,6 +620,38 @@
         <source>Set data</source>
         <translation>Aseta tiedot</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Yleiset</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -447,8 +706,40 @@
         <translation>Yleiset</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Lisäasetukset</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Hattu</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Nimi</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Satunnainen joukkue</translation>
     </message>
 </context>
 <context>
@@ -529,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Valitse sama väri kaverisi kanssa pelataksesi samassa joukkueessa. Kumpikin ohjaa omia siilejään, mutta voitatte ja häviätte yhdessä.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Jotkut aseet tekevät vain vähän vahinkoa, mutta voivat olla tuhoisampia oikeassa tilanteessa. Kokeile ampua useampi siili veteen Desert Eaglella.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Jos et tiedä mitä tehdä etkä halua tuhlata ammuksia, jätä vuoro väliin. Mutta älä anna ajan kulua liikaa koska Äkkikuolema koittaa ennemmin tai myöhemmin!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Jos haluat estää muita käyttämästä nimimerkkiäsi virallisella palvelimella, rekisteröi tunnus osoitteessa http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Kyllästyttääkö normaali peli? Kokeila tehtäviä - Ne tarjoaa erilaisia pelitapoja riippuen valinnasta.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Oletuksena viimeisin peli nauhoitetaan demoksi. Valitse &apos;Demot&apos; vasemmasta alakulmasta katsoaksesi ja hallitaksesi niitä.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jos sinulla on ongelmia, kysy keskustelualueilta apua, mutta älä odota 24/7-tukea!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jos pidät siitä, voit auttaa meitä pienellä lahjoituksella tai omaa työllä!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jaa sitä perheesi ja ystäviesi kesken miten haluat!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Toisinaan järjestetään virallisia turnauksia. Tulevista tapahtumista tiedotetaan osoitteessa http://www.hedgewars.org/ muutama päivä etukäteen.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars on saatavilla monilla kielillä. Jos oman kielinen käännös puuttuu tai on vanhentunut, ota yhteyttä!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars toimii useilla eri käyttöjärjestelmillä, kuten Microsoft Windowsissa, Mac OS X:ssä ja Linuxissa.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Muista että voit aina luoda oman pelisi paikallisesti ja verkkopelissä. Et ole rajoitettu yksinkertaiseen peliin.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Pelatessa sinun pitäisi pitää lyhyt tauko vähintään kerran tunnissa.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Jos näytönohjaimesi ei tarjoa laitteistokiihdytettä OpenGL:ää, kokeile heikennetyn laadun tilaa parantaaksesi suorituskykyä.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Me olemme avoimia ehdotuksille ja rakentavalle palautteelle. Jos et pidä jostain tai sinulla on loistava idea, kerro meille!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Erityisesti verkossa pelattaessa ole kohtelias ja muista että alaikäisiä saattaa myös olla pelaamassa.</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Erityispelimoodit kuten &apos;Vampyrismi&apos; ja &apos;Karma&apos; mahdollistavat kokonaan uusien taktiikoiden kehittämisen. Kokeile niitä muokatussa pelissä!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Sinun ei ikinä tulisi asentaa Hedgewarsia tietokoneille joita et omista (koulu, yliopisto, työpaikka jne.). Ole hvä ja pyydä vastuuhenkilöä tekemään se!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars voi olla täydellinen peli tauoille. Mutta varmista ettet lisää liian montaa siiltä ta käytä liian suurta karttaa. Ajan ja terveyden vähentäminen voi myös auttaa.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Yhtään siiliä ei vahingoitettu tämän pelin tekemisen aikana.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jos joku myi sinulle tämän pelin, koita saada rahasi takaisin!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Yhdistä yksi tai useampi peliohjain ennen pelin käynnistämistä liittääksesi niiden kontrollit omaan joukkueeseesi.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Luo käyttäjätili osoitteessa %1 estääksesi muita käyttämästä suosikkinimimerkkiäsi pelatessasi virallisella palvelimella.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Jos näytönohjaimesi ei tue laitteistokiihdytettyä OpenGL:ää, kokeile päivittää ajurit.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Hyppyjä on saatavilla kolmea erilaista. Napauta [korkea hyppy]-nappai kahdesti tehdäksesi todella korkean/taaksepäin hypyn.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Pelkäätkö että putoat kielekkeeltä? Pidä [tarkkuus]-näppäintä pohjassa kääntyäksesi [vasemmalle] ja [oikealle] liikkumatta.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Jotkut aseet vaativat erityisstrategiaa tai todella paljon harjoittelua, joten älä anna periksi vaikka et kerran osuisikaan.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Vanha Limburger-juusto aiheuttaa vain pienen räjähdyksen, mutta tuulen vaikuttama hajupilvi voi myrkyttää suuren määrän siiliä kerralla.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Pianoisku on vahingollisin ilmaisku. Menetät siilen joka sen esittää, joten sillä on myös suuri huono puoli.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Tarttuvat miinat ovat täydellinen työkalu luomaan pieniä ketjureaktioita jotka vie vihollissiilit kauheisiin tilanteisiin...tai veteen.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Vasara on tehokkaimmillaan silloilla ja palkeilla. Lyödyt siilit iskeytyvät maan läpi.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Jos olet jumissa vihollissiilin takana, käytä vasaraa vapauttaaksesi itsesi ilman että vahingoidut räjädyksen voimasta.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Kakun pisin mahdollinen kulkumatka riippuu maastosta. Käytä [hyökkäystä] räjäyttääksesi sen aikaisemmin.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Liekinheitin on ase mutta sitä voi käyttää myös tunneleiden kaivamiseen.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Haluatko tietää ketkä ovat pelin takana? Klikkaa Hedgewars-logoa päävalikossa nähdäksesi tekijäluettelon.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Piirrä vapaasti omia hautoja, hattuja, lippuja ja jopa karttoja ja teemoja! Mutta huomaa että sinun pitää jakaa ne jossain käyttääksesi niitä verkossa.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Haluatko todella pitää tiettyä hattua? Lahjoita meille niin saat yksinoikeudella vapaavalintaisen hatun!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Pidä näytönohjaimesi ajurit ajantasall välttääksesi ongelmat pelin pelaamisessa.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Löydät Hedgewars-asetustiedostot hakemistosta &quot;Omat tiedostot\Hedgewars&quot;. Ota varmuuskopio tai ota ne mukaasi, mutta älä muokkaa niitä käsin.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -817,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -824,6 +870,10 @@
         <source>Start</source>
         <translation>Aloita</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -831,23 +881,12 @@
         <source>Control</source>
         <translation>Säädöt</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Lähiverkkopeli</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Virallinen palvelin</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
+        <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -894,10 +933,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Yleiset</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Lisäasetukset</translation>
     </message>
@@ -937,6 +972,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Joukkueet</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Aseet</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1136,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1156,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Lataa</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1221,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1236,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1248,10 +1353,6 @@
         <translation>Tietoja</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Aloita</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Rajoita liittymisiä</translation>
     </message>
@@ -1299,18 +1400,6 @@
         <translation>Koko ruutu</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Koko ruutu käyttöliittymälle</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Äänet päälle</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Musiikki päälle</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Näytä FPS</translation>
     </message>
@@ -1327,18 +1416,6 @@
         <translation>Näytä asevalikon vihjeet</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Kytke käyttöliittymän äänet päälle</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Kytke käyttöliittymän musiikki päälle</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Käyttöliittymän tehosteet</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1358,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>generoitu kartta...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Ihminen</translation>
     </message>
@@ -1378,14 +1479,6 @@
         <translation>(Järjestelmän oletus)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>Generoitu sokkelo...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Tehtävä</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Yhteisö</translation>
     </message>
@@ -1402,10 +1495,6 @@
         <translation>Kesken</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1442,10 +1531,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1481,14 +1566,6 @@
         <translation>Linnake</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Näppäinasettelut</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Joukkueet</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Verkkopeli</translation>
     </message>
@@ -1497,10 +1574,6 @@
         <translation>Pelaavat joukkueet</translation>
     </message>
     <message>
-        <source>Audio/Graphic options</source>
-        <translation>Ääni/grafiikka-asetukset</translation>
-    </message>
-    <message>
         <source>Game Modifiers</source>
         <translation>Pelimuuttujat</translation>
     </message>
@@ -1513,26 +1586,6 @@
         <translation>Joukkueasetukset</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Muut</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,10 +1593,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1560,26 +1609,6 @@
         <translation>Versio</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Kehittäjät:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Taide:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Äänet:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Käännökset:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Erikoiskiitokset:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Aseet</translation>
     </message>
@@ -1636,10 +1665,6 @@
         <translation>Laatikkojen pudotukset</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Pelikaava</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% suutarimiinoja</translation>
     </message>
@@ -1676,10 +1701,6 @@
         <translation>Vinkki: </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Tämä kehitysversio on keskeneräinen ja ei välttämättä ole yhteensopiva muiden versioiden kanssa. Jotkut ominaisuudet voivat olla rikki tai kesken. Käytä omalla vastuulla!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Laatu</translation>
     </message>
@@ -1754,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1785,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Koko ruutu</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1823,10 +1872,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1873,18 +1918,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2032,16 +2065,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Nimimerkki</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Ole hyvä ja syötä nimimerkkisi</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2099,26 +2153,10 @@
         <translation>Lataa</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Asetukset</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Valmis</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Satunnainen joukkue</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2211,6 +2249,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Peruuta</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2238,106 +2295,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampyrismi</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Tykistö</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Linnoitustila</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Jaa joukkueet</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Tuhoutumaton maa</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Lisää reunat</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Matala painovoima</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Lasertähtäin</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Vahingoittumaton</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Satunnainen Järjestys</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Kuningas</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Sijoita siilet</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Saman väriset jakavat ammukset</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Ei palkkeja</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Ei maaobjekteja</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Tekoäly selviytymistila</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+        <source>Cancel</source>
+        <translation type="unfinished">Peruuta</translation>
     </message>
 </context>
 <context>
@@ -2471,12 +2443,6 @@
         <translation>kaappaa</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>siilien
-tiedot</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>poistu</translation>
     </message>
@@ -2512,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Peruskontrollit</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Asekontrollit</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Kameran ja kursorin kontrollit</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Muu</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Aseet</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Liikuta siiliäsi ja tähtää:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Ylitä aukot ja esteet hyyppäämällä:</translation>
     </message>
@@ -2602,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Éditer les paramètres</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Une fois cette option activée, choisir les paramètres de jeu sélectionne automatiquement les armes correspondantes</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Votre pseudo %1 est
-enregistré sur Hedgewars.org
-Veuillez fournir votre mot de passe
-ou choisir un nouveau pseudo :</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Pseudo</translation>
     </message>
@@ -165,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Carte</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Thèmes</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtre</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Toutes</translation>
     </message>
@@ -216,10 +335,6 @@
         <translation>Farfelu</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Type</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Petits tunnels</translation>
     </message>
@@ -228,28 +343,96 @@
         <translation>Tunnels moyens</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Grand tunnels</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Petites ÃŽles flottantes</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>ÃŽles flottantes moyennes</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Grandes îles flottantes</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Graine</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Valider</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Aléatoire</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Charger une carte dessinée</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -321,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Mot de passe</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -337,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -344,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -362,6 +578,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -393,6 +620,38 @@
         <source>Set data</source>
         <translation>Enregistrer les données</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Général</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -447,8 +706,40 @@
         <translation>Général</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Avancé</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Chapeau</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Nom</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Équipes aléatoires</translation>
     </message>
 </context>
 <context>
@@ -529,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Choisissez la même couleur qu&apos;un ami pour jouer dans la même équipe. Chacun de vous continuera à contrôler son ou ses hérissons mais ils gagneront ou perdront ensembles.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Certaines armes peuvent occasionner seulement de faibles dommages mais être beaucoup plus dévastatrices dans la situation adéquate. Essayez le Révolver pour envoyer plusieurs hérissons à l&apos;eau.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Si vous ne savez pas quoi faire et ne voulez pas gaspiller de munitions, passez un tour. Mais ne laissez pas trop filer le temps ou ce sera la Mort Subite !</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Si vous voulez empêcher les autres d&apos;utiliser votre pseudo sur le serveur officiel, créez un compte sur http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Assez du mode par défaut ? Essayez une des missions - elles offrent différents types de jeu suivant votre choix.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Par défaut le jeu enregistre la dernière partie jouée comme une démonstration. Sélectionnez « Jeu en local » puis « Démonstrations » en bas à droite pour les visionner ou les gérer.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Si vous avez des problèmes, demandez sur nos forums mais n&apos;attendez pas de support 24h/24.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Si vous l&apos;aimez, aidez-nous avec un petit don ou contribuez par votre travail !</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Partagez-le avec votre famille et vos amis comme vous le voulez !</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>De temps en temps il y aura des tournois officiels. Les évènements à venir seront annoncés sur http://www.hedgewars.org/ quelques jours à l&apos;avance.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars est disponible dans de nombreuses langues. Si la traduction dans votre langue est partielle ou obsolète, contactez-nous !</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars peux être exécuté sur de nombreux systèmes d&apos;exploitation différents, incluant Microsoft Windows, Mac OS X et Linux. </translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Souvenez-vous que vous pouvez créer votre propres parties en local et en ligne. Vous n&apos;est pas limités aux options de jeu par défaut.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Vous devriez faire une petite pause au moins une fois par heure.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Si votre carte graphique ne peut pas fournir d&apos;accélération matérielle pour OpenGL, essayez le mode de faible qualité pour améliorer les performances.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Nous sommes ouverts aux suggestions et au critiques constructives. Si vous n&apos;aimez pas quelque chose ou avez une grande idée, contactez-nous !</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Particulièrement quand vous jouez en ligne soyez polis et n&apos;oubliez pas que certains joueurs peuvent être mineurs.</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Les modes de jeu spéciaux comme « Vampirisme » ou « Karma » vous permettent de développer de nouvelles tactiques. Essayez-les en parties personnalisées !</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Vous ne devriez jamais installer Hedgewars sur des ordinateurs ne vous appartenant pas (école, université, travail, etc...). Demandez au responsable !</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars peut être parfait pour des parties courtes pendant une pause. Assurez-vous juste de ne pas avoir mis trop de hérissons ou de ne pas utiliser une carte énorme. Réduire le temps ou la santé peuvent aider également.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Aucun hérisson n&apos;a été blessé durant la conception de ce jeu.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Si quelqu&apos;un vous l&apos;a vendu, vous devriez vous faire rembourser !</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Branchez une ou plusieurs manettes avant de lancer le jeu pour pouvoir contrôler vos équipes avec.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Créer un compte sur %1 vous permet d&apos;empêcher les autres d&apos;utiliser votre pseudo favori sur le serveur officiel.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Si votre carte graphique ne peut pas fournir d&apos;accélération matérielle pour OpenGL, essayez d&apos;installer les drivers associés.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Il y a différents types de saut disponibles. Pressez [high jump] deux fois pour faire un très haut saut un peu en arrière.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Peur de tomber d&apos;une falaise ? Maintenez [precise] pour tourner [left] ou [right] sans bouger.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Certaines armes demandent de la stratégie ou juste beaucoup d&apos;entrainement, alors ne laissez pas tomber une arme si vous avez raté une fois un ennemi.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>La plupart des armes ne fonctionnent pas une fois qu&apos;elles ont touché l&apos;eau. L&apos;Abeille Missile ou le Gâteau sont des exceptions.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Le vieux Limburger cause seulement une petite explosion. En revanche le vent affecte le petit nuage empoisonné qui peut contaminer de nombreux hérissons à la fois.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">L&apos;attaque du Piano est la plus dévastatrice des attaques aériennes. Mais la contrepartie est grande puisque vous perdrez le hérisson qui la lance.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Les Mines adhésives sont l&apos;outil parfait pour créer de petites réactions en chaines envoyant les ennemis dans des situations délicates ... ou dans l&apos;eau.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Le Marteau est plus efficace utilisé sur des ponts ou des poutrelles. Les hérissons touchés vont passer à travers le sol.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Si vous êtes coincés derrière un hérisson ennemi, utilisez le Marteau pour vous libérer sans subir les dégâts d&apos;une explosion.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>La distance maximale que le Gâteau peux parcourir dépend du terrain qu&apos;il doit franchir. Utiliser [attack] pour le faire exploser avant.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Le Lance-flammes est une arme mais peut aussi être utilisé pour creuser un tunnel.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Vous voulez savoir qui est derrière le jeu ? Cliquez sur le logo Hedgewars dans le menu principal pour voir les crédits.</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Soyez libre de dessiner vos propres tombes, chapeaux, drapeaux ou même cartes et thèmes ! Mais pour les utiliser en ligne vous devrez les partager quelque part.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Vous voulez vraiment un chapeau spécifique ? Faites un don et recevez un chapeau exclusif de votre choix.</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Conservez les pilotes de votre carte graphique à jour pour éviter les problèmes en jouant.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Vous pouvez trouver vos fichiers de configuration Hedgewars sous « Mes Documents\Hedgewars ». Créez des sauvegardes ou prenez les fichiers avec vous, mais ne les modifiez pas à la main !</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Vous pouvez associer les fichiers relatifs à Hedgewars (parties enregistrées ou démonstrations) au jeu pour les lancer depuis votre navigateur de fichiers ou internet.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Vous aimez Hedgewars ? Devenez un fan sur %1 ou suivez-nous sur %2 !</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Envie d&apos;économiser des Cordes Ninja ? Relâchez la Corde Ninja en l&apos;air et tirez à nouveau. Du moment que vous ne touchez pas le sol, vous réutiliserez votre Corde Ninja sans gaspiller de munitions.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Vous pouvez trouver vos fichiers de configuration Hedgewars sous « Library/Application Support/Hedgewars » dans votre répertoire personnel. Créez des sauvegardes ou prenez les fichiers avec vous, mais ne les modifiez pas à la main !</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Vous pouvez trouver vos fichiers de configuration Hedgewars sous « .hedgewars » dans votre répertoire personnel. Créez des sauvegardes ou prenez les fichiers avec vous, mais ne les modifiez pas à la main !</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">La version Windows de Hedgewars supporte Xfire. Ajoutez Hedgewars à la liste des jeux pour que vos amis puissent vous voir jouer</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"> Utilisez le Lance-Flammes ou le Cocktail Molotov pour empêcher temporairement les hérissons de circuler dans les tunnels ou sur les plateformes.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -817,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -824,6 +870,10 @@
         <source>Start</source>
         <translation>Démarrer</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -831,24 +881,13 @@
         <source>Control</source>
         <translation>Contrôles</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Jeu en réseau local (LAN)</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Serveur officiel</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Démarrer</translation>
     </message>
 </context>
 <context>
@@ -894,10 +933,6 @@
         <translation>Supprimer un ensemble d&apos;armes</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Général</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Avancé</translation>
     </message>
@@ -937,6 +972,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Équipes</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armes</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1136,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1156,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Charger</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1221,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1236,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1244,10 +1349,6 @@
         <translation>Exclure</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Démarrer</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Restreindre les accès</translation>
     </message>
@@ -1291,10 +1392,6 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <source>Enable sound</source>
-        <translation>Activer le son</translation>
-    </message>
-    <message>
         <source>Fullscreen</source>
         <translation>Plein écran</translation>
     </message>
@@ -1307,14 +1404,6 @@
         <translation>Affichage de dommages alternatif</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Activer la musique</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Affichage en plein écran de l&apos;interface</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Ajouter la date et l&apos;heure au nom du fichier</translation>
     </message>
@@ -1327,18 +1416,6 @@
         <translation type="unfinished">Montrer les astuces du menu des armes.</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished">Activer les sons du menu principal</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished">Activer la musique du menu principal</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished">Effets du menu principal</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1358,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>carte générée...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Humain</translation>
     </message>
@@ -1378,14 +1479,6 @@
         <translation type="unfinished">Réglage du système</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation type="unfinished">Labyrinthe généré</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Mission</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished">Communauté</translation>
     </message>
@@ -1402,10 +1495,6 @@
         <translation type="unfinished">En cours</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished">Carte dessinée</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1442,10 +1531,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1481,18 +1566,6 @@
         <translation>Fort</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Raccourcis clavier</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Équipes</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Options audio/vidéo</translation>
-    </message>
-    <message>
         <source>Playing teams</source>
         <translation>Équipes participantes</translation>
     </message>
@@ -1513,26 +1586,6 @@
         <translation>Réglages de l&apos;équipe</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Divers</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Paramètres et Armes</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,10 +1593,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1556,22 +1605,6 @@
         <translation>Limite de FPS</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Développeurs:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Graphismes:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Traductions:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Remerciements spéciaux:</translation>
-    </message>
-    <message>
         <source>Server name:</source>
         <translation>Nom du serveur:</translation>
     </message>
@@ -1596,10 +1629,6 @@
         <translation>Version</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Sons:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Volume du son initial</translation>
     </message>
@@ -1636,10 +1665,6 @@
         <translation>Lachers de caisse</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Paramètres de jeu</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% de Mines défectueuses</translation>
     </message>
@@ -1676,10 +1701,6 @@
         <translation>Conseil : </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Cette version de développement est un travail en cours, il peut ne pas être compatible avec les autres versions du jeu. Certaines fonctionnalités peuvent être cassées ou incomplètes.</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Qualité</translation>
     </message>
@@ -1754,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1785,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Plein écran</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1823,10 +1872,6 @@
         <translation>Les associations d&apos;extensions de fichiers ont échoué.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1873,18 +1918,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2031,25 +2064,42 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Pseudo</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Veuillez entrer votre pseudo</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>QPushButton</name>
     <message>
-        <source>Setup</source>
-        <translation>Configuration</translation>
-    </message>
-    <message>
         <source>Play demo</source>
         <translation>Jouer la démo</translation>
     </message>
@@ -2102,22 +2152,10 @@
         <translation>Supprimer</translation>
     </message>
     <message>
-        <source>Ready</source>
-        <translation>Prêt</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Équipes aléatoires</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Associer les extensions de fichiers</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>plus</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2210,6 +2248,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2237,107 +2294,22 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirisme</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artillerie</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Mode Forteresse</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Diviser les Équipes</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Terrain Solide</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Ajouter des Bordures</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Gravité Fable</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Visée Laser</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnérable</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Ordre aléatoire</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Roi</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Placer les hérissons</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Les Clans partagent les munitions</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Désactiver les poutres</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Désactiver les objets de terrain</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished">Mode de survie de l&apos;IA</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Réinitialiser la Santé</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Attaques illimitées</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Réinitialiser les Armes</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Munitions par hérisson</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Désactiver le vent</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Davantage de vent</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Add Bottom Border</source>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
 </context>
 <context>
     <name>binds</name>
@@ -2458,12 +2430,6 @@
         <translation>slot 9</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>infos
-hérissons</translation>
-    </message>
-    <message>
         <source>chat</source>
         <translation>chat</translation>
     </message>
@@ -2512,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Contrôles de base</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Contrôles des armes</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Contrôles de la caméra et du curseur</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Autres</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armes</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Déplacez votre hérisson et visez:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Traversez des trous et des obstacles en sautant:</translation>
     </message>
@@ -2602,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_gl.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_gl.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -40,14 +113,6 @@
         <translation>Editar os armamentos</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Erro</translation>
-    </message>
-    <message>
-        <source>Illegal ammo scheme</source>
-        <translation type="obsolete">Non se permite ese armamento</translation>
-    </message>
-    <message>
         <source>Edit schemes</source>
         <translation>Editar os modos de xogo</translation>
     </message>
@@ -56,7 +121,30 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -109,38 +197,14 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
     <message>
-        <source>new</source>
-        <translation type="obsolete">novo</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Erro</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Aceptar</translation>
-    </message>
-    <message>
-        <source>Unable to start the server</source>
-        <translation type="obsolete">Non se puido iniciar o servidor</translation>
-    </message>
-    <message>
         <source>Cannot save record to file %1</source>
         <translation>Non se pode gardar a gravación no ficheiro %1</translation>
     </message>
     <message>
-        <source>Please select record from the list above</source>
-        <translation type="obsolete">Selecciona unha gravación da seguinte lista</translation>
-    </message>
-    <message>
         <source>DefaultTeam</source>
         <translation type="unfinished"></translation>
     </message>
@@ -149,17 +213,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Alcume</translation>
     </message>
@@ -190,14 +243,63 @@
         <source>Demo name:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
     <message>
-        <source>Error reading training config file</source>
-        <translation type="obsolete">Houbo un erro ao ler o ficheiro de configuración do adestramento</translation>
-    </message>
-    <message>
         <source>en.txt</source>
         <translation>gl.txt</translation>
     </message>
@@ -209,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mapa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Temas visuais</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtro</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Todos</translation>
     </message>
@@ -245,10 +335,6 @@
         <translation>Absurdo</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,27 +343,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Ao chou</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -319,20 +473,6 @@
         <translation>Botáronte</translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Contrasinal</translation>
-    </message>
-    <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password
-or pick another nickname:</source>
-        <translation type="obsolete">O teu alcume, «%1»
-está rexistrado en Hedgewars.org
-Introduce o contrasinal ou
-escolle outro alcume:</translation>
-    </message>
-    <message>
         <source>%1 *** %2 has joined the room</source>
         <translation>%1 *** %2 entrou na sala</translation>
     </message>
@@ -364,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Contrasinal</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -380,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -387,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -405,18 +578,21 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
     <message>
-        <source>Server message:</source>
-        <translation type="obsolete">Mensaxe do servidor:</translation>
-    </message>
-    <message>
-        <source>Set message</source>
-        <translation type="obsolete">Establecer a mensaxe</translation>
-    </message>
-    <message>
         <source>Clear Accounts Cache</source>
         <translation>Borrar a caché das contas</translation>
     </message>
@@ -444,6 +620,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Xeral</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished">Actualizar</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -498,31 +706,45 @@
         <translation>Xeral</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Avanzado</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Sombreiro</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>PageGameStats</name>
     <message>
-        <source>&lt;p&gt;The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;O mellor tirador foi &lt;b&gt;%1&lt;/b&gt;, con &lt;b&gt;%2&lt;/b&gt; puntos.&lt;/p&gt;</translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;O mellor asasino é &lt;b&gt;%1&lt;/b&gt;, con &lt;b&gt;%2&lt;/b&gt; vítima nunha rolda.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;O mellor asasino é &lt;b&gt;%1&lt;/b&gt;, con &lt;b&gt;%2&lt;/b&gt; vítimas nunha rolda.&lt;/p&gt;</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;Nesta rolda morrereu &lt;b&gt;un&lt;/b&gt; ourizo.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;Nesta rolda morreron &lt;b&gt;%1&lt;/b&gt; ourizos.&lt;/p&gt;</numerusform>
-        </translation>
-    </message>
-    <message>
         <source>Details</source>
         <translation type="unfinished"></translation>
     </message>
@@ -598,26 +820,10 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Local Game (Play a game on a single computer)</source>
-        <translation type="obsolete">Partida local (xoga unha partida nun só computador)</translation>
-    </message>
-    <message>
-        <source>Network Game (Play a game across a network)</source>
-        <translation type="obsolete">Partida na rede (xoga unha partida na rede)</translation>
-    </message>
-    <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -650,248 +856,11 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -901,16 +870,9 @@
         <source>Start</source>
         <translation>Iniciar</translation>
     </message>
-</context>
-<context>
-    <name>PageNet</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Erro</translation>
-    </message>
-    <message>
-        <source>Please select server from the list above</source>
-        <translation type="obsolete">Selecciona un servidor da seguinte lista</translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -919,24 +881,13 @@
         <source>Control</source>
         <translation>Control</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Partida na rede local</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Servidor oficial</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Iniciar</translation>
     </message>
 </context>
 <context>
@@ -950,18 +901,6 @@
         <translation>Editar o equipo</translation>
     </message>
     <message>
-        <source>Weapons set</source>
-        <translation type="obsolete">Armamento</translation>
-    </message>
-    <message>
-        <source>Edit</source>
-        <translation type="obsolete">Editar</translation>
-    </message>
-    <message>
-        <source>General</source>
-        <translation type="unfinished">Xeral</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Avanzado</translation>
     </message>
@@ -1033,18 +972,98 @@
         <source>HTTP proxy</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">Rede</translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Equipos</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armamento</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Erro</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Aceptar</translation>
-    </message>
-    <message>
         <source>Rename dialog</source>
         <translation>Diálogo de cambio de nome</translation>
     </message>
@@ -1052,18 +1071,6 @@
         <source>Enter new file name:</source>
         <translation>Introduce un novo nome para o ficheiro:</translation>
     </message>
-    <message>
-        <source>Cannot rename to</source>
-        <translation type="obsolete">Non se pode cambiar o nome a</translation>
-    </message>
-    <message>
-        <source>Cannot delete file</source>
-        <translation type="obsolete">Non se pode borrar o ficheiro</translation>
-    </message>
-    <message>
-        <source>Please select record from the list</source>
-        <translation type="obsolete">Selecciona unha gravación da lista</translation>
-    </message>
 </context>
 <context>
     <name>PageRoomsList</name>
@@ -1076,18 +1083,6 @@
         <translation>Entrar</translation>
     </message>
     <message>
-        <source>Refresh</source>
-        <translation type="obsolete">Actualizar</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Erro</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Aceptar</translation>
-    </message>
-    <message>
         <source>Admin features</source>
         <translation>Administración</translation>
     </message>
@@ -1096,60 +1091,6 @@
         <translation>Nome da sala:</translation>
     </message>
     <message>
-        <source>This game is in lobby.
-You may join and start playing once the game starts.</source>
-        <translation type="obsolete">Aínda non comezou a partida.
-Podes entrar e empezar a xogar cando comece.</translation>
-    </message>
-    <message>
-        <source>This game is in progress.
-You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</source>
-        <translation type="obsolete">A partida estase xogando.
-Poder entrar a ver, pero terás que agardar a que remate para xogar ti.</translation>
-    </message>
-    <message>
-        <source>%1 is the host. He may adjust settings and start the game.</source>
-        <translation type="obsolete">%1 é o anfitrión. Pode configurar e iniciar a partida.</translation>
-    </message>
-    <message>
-        <source>Random Map</source>
-        <translation type="obsolete">Mapa ao chou</translation>
-    </message>
-    <message>
-        <source>Games may be played on precreated or randomized maps.</source>
-        <translation type="obsolete">Pódese xogar en mapas elaborados ou mapas xerados ao chou.</translation>
-    </message>
-    <message>
-        <source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
-        <translation type="obsolete">O modo de xogo establece as opcións xerais tales coma &quot;tempo por rolda&quot;, &quot;morte súbita&quot; ou &quot;vampirismo&quot;.</translation>
-    </message>
-    <message>
-        <source>The Weapon Scheme defines available weapons and their ammunition count.</source>
-        <translation type="obsolete">O armamento establece as armas dispoñibles e a cantidade de munición para cada unha.</translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 clients connected to this room.</source>
-        <translation type="obsolete">
-            <numerusform>Hai un cliente conectado a esta sala.</numerusform>
-            <numerusform>Hai %1 clientes conectados a esta sala.</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 teams participating in this room.</source>
-        <translation type="obsolete">
-            <numerusform>Hai un equipo participando nesta sala.</numerusform>
-            <numerusform>Hai %1 equipos participando nesta sala.</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>Please enter room name</source>
-        <translation type="obsolete">Introduce o nome da sala</translation>
-    </message>
-    <message>
-        <source>Please select room from the list</source>
-        <translation type="obsolete">Selecciona unha sala da lista</translation>
-    </message>
-    <message>
         <source>Rules:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1188,10 +1129,6 @@
         <translation>Non se pode destruír o terreo!</translation>
     </message>
     <message>
-        <source>Add an indestructable border around the terrain</source>
-        <translation type="obsolete">Engade un bordo indestructible arredor do terreo</translation>
-    </message>
-    <message>
         <source>Lower gravity</source>
         <translation>Baixa gravidade</translation>
     </message>
@@ -1204,10 +1141,6 @@
         <translation>Todos os ourizos teñen un escudo protector</translation>
     </message>
     <message>
-        <source>Enable random mines</source>
-        <translation type="obsolete">Activar as minas esparexidas</translation>
-    </message>
-    <message>
         <source>Gain 80% of the damage you do back in health</source>
         <translation>Gañar o 80% do daño inflixido en vida</translation>
     </message>
@@ -1326,38 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game (a quick game against the computer, settings are chosen for you)</source>
-        <translation type="obsolete">Partida simple (unha partida rápida xa configurada contra a intelixencia artificial)</translation>
-    </message>
-    <message>
-        <source>Multiplayer (play a hotseat game against your friends, or AI teams)</source>
-        <translation type="obsolete">Partida colectiva (xoga no teu computador contra os teus amigos ou contra a intelixencia artificial)</translation>
-    </message>
-    <message>
-        <source>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</source>
-        <translation type="obsolete">Adestramento (practica as túas habilidades nunha serie de misións de adestramento). EN DESENVOLVEMENTO</translation>
-    </message>
-    <message>
-        <source>Demos (Watch recorded demos)</source>
-        <translation type="obsolete">Demostracións (reproduce demostracións gravadas)</translation>
-    </message>
-    <message>
-        <source>Load (Load a previously saved game)</source>
-        <translation type="obsolete">Cargar (carga unha partida gardada)</translation>
-    </message>
-    <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1366,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Cargar</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1431,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1446,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1458,10 +1353,6 @@
         <translation>Información</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Iniciar</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Restrinxir a entrada</translation>
     </message>
@@ -1509,18 +1400,6 @@
         <translation>Partidas a pantalla completa</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Interface a pantalla completa</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Activar os sons</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Activar a música</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Amosar as FPS</translation>
     </message>
@@ -1533,14 +1412,6 @@
         <translation>Engadir a data e maila hora ao nome dos ficheiros de gravación</translation>
     </message>
     <message>
-        <source>Frontend effects (requires restart)</source>
-        <translation type="obsolete">Efectos na interface (hai que reiniciar)</translation>
-    </message>
-    <message>
-        <source>Reduced quality</source>
-        <translation type="obsolete">Baixa calidade</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1553,18 +1424,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Show ammo menu tooltips</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1576,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>Mapa xerado...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Xogador</translation>
     </message>
@@ -1592,18 +1475,6 @@
         <translation>Nivel</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1648,10 +1519,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1695,30 +1562,10 @@
         <translation>Membros do equipo</translation>
     </message>
     <message>
-        <source>Team</source>
-        <translation type="obsolete">Equipo</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Forte</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Controis</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Equipos</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Armamento</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Configuración audiovisual</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Partida na rede</translation>
     </message>
@@ -1739,30 +1586,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1786,30 +1609,6 @@
         <translation>Versión</translation>
     </message>
     <message>
-        <source>This program is distributed under the GNU General Public License</source>
-        <translation type="obsolete">Esta aplicación distribúese baixo a GNU General Public License</translation>
-    </message>
-    <message>
-        <source>Developers:</source>
-        <translation>Desenvolvedores:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Gráficos:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Sons:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Traducións:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Un especial agradecemento a:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Armamento</translation>
     </message>
@@ -1822,10 +1621,6 @@
         <translation>Porto:</translation>
     </message>
     <message>
-        <source>Net nick</source>
-        <translation type="obsolete">Alcume</translation>
-    </message>
-    <message>
         <source>Resolution</source>
         <translation>Resolución</translation>
     </message>
@@ -1870,10 +1665,6 @@
         <translation>Caída de caixas</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Modo de xogo</translation>
-    </message>
-    <message>
         <source>There are videos that are currently being processed.
 Exiting now will abort them.
 Do you really want to quit?</source>
@@ -1924,10 +1715,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1936,10 +1723,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Locale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2019,6 +1802,38 @@
         <source>Scheme</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Partidas a pantalla completa</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -2045,10 +1860,6 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <source>Network</source>
-        <translation type="obsolete">Rede</translation>
-    </message>
-    <message>
         <source>Connection to server is lost</source>
         <translation>Perdeuse a conexión co servidor</translation>
     </message>
@@ -2057,30 +1868,6 @@
         <translation>Erro</translation>
     </message>
     <message>
-        <source>Failed to open data directory:
-%1
-Please check your installation</source>
-        <translation type="obsolete">Non se puido abrir o directorio dos datos:
- %1
-Verifica a instalación</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Armamento</translation>
-    </message>
-    <message>
-        <source>Can not edit default weapon set</source>
-        <translation type="obsolete">Non se pode editar o armamento por defecto</translation>
-    </message>
-    <message>
-        <source>Can not delete default weapon set</source>
-        <translation type="obsolete">Non se pode borrar o armamento por defecto</translation>
-    </message>
-    <message>
-        <source>Really delete this weapon set?</source>
-        <translation type="obsolete">Seguro que queres borrar este armamento?</translation>
-    </message>
-    <message>
         <source>Teams - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2117,22 +1904,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2293,28 +2064,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Erro</translation>
-    </message>
-    <message>
-        <source>Cannot create directory %1</source>
-        <translation type="obsolete">Non se puido crear o directorio %1</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Aceptar</translation>
-    </message>
-    <message>
-        <source>Nickname</source>
-        <translation>Alcume</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Introduce o teu alcume</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2372,22 +2152,10 @@
         <translation>Cargar</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Configuración</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Preparado</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2431,41 +2199,6 @@
         <source>Cancel uploading</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QTableWidget</name>
-    <message>
-        <source>Room Name</source>
-        <translation type="obsolete">Nome da sala</translation>
-    </message>
-    <message>
-        <source>C</source>
-        <translation type="obsolete">C</translation>
-    </message>
-    <message>
-        <source>T</source>
-        <translation type="obsolete">T</translation>
-    </message>
-    <message>
-        <source>Owner</source>
-        <translation type="obsolete">Dono</translation>
-    </message>
-    <message>
-        <source>Map</source>
-        <translation type="obsolete">Mapa</translation>
-    </message>
-    <message>
-        <source>Rules</source>
-        <translation type="obsolete">Regras</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Armamento</translation>
-    </message>
 </context>
 <context>
     <name>RoomsListModel</name>
@@ -2515,6 +2248,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2542,125 +2294,21 @@
     </message>
 </context>
 <context>
-    <name>TCPBase</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Erro</translation>
-    </message>
-    <message>
-        <source>Unable to start the server: %1.</source>
-        <translation type="obsolete">Non se puido iniciar o servidor: %1.</translation>
-    </message>
-    <message>
-        <source>Unable to run engine: %1 (</source>
-        <translation type="obsolete">Non se puido executar o motor: %1 (</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirismo</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artillería</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Modo fortaleza</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Equipos divididos</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Terreo indestructible</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Con bordos</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Baixa gravidade</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Mira láser</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnerable</translation>
-    </message>
-    <message>
-        <source>Add Mines</source>
-        <translation type="obsolete">Engadir minas</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
     </message>
 </context>
 <context>
@@ -2794,12 +2442,6 @@
         <translation>capturar</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>información
-dos ourizos</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>saír</translation>
     </message>
@@ -2835,33 +2477,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Controis básicos</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Controis das armas</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Controis da cámara e mailo cursor</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Outros</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armamento</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Move os teus ourizos e apunta:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Supera os obstáculos saltando:</translation>
     </message>
@@ -2925,6 +2567,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_hu.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Mégse</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Mégse</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -43,11 +116,34 @@
         <translation>Sémák szerkesztése</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
+        <source>Game Options</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Game Options</source>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -100,10 +196,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -138,17 +230,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Becenév</translation>
     </message>
@@ -161,6 +242,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -176,18 +310,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Pálya</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Témák</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Szűrő</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Minden</translation>
     </message>
@@ -212,10 +334,6 @@
         <translation>Årült</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Típus</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Szűk alagutak</translation>
     </message>
@@ -224,27 +342,95 @@
         <translation>Ãtlagos alagutak</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Tágas alagutak</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Apró lebegő szigetek</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Közepes lebegő szigetek</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Nagy lebegő szigetek</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Véletlen</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -317,8 +503,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">JElszó</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -333,6 +519,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Mégse</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -340,6 +552,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -358,6 +577,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -389,6 +619,38 @@
         <source>Set data</source>
         <translation>Adat beállítása</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Ãltalános</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -443,8 +705,40 @@
         <translation>Ãltalános</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Haladó</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Kalap</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Név</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Véletlen csapat</translation>
     </message>
 </context>
 <context>
@@ -519,267 +813,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -807,6 +848,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -814,6 +863,10 @@
         <source>Start</source>
         <translation>Start</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -821,24 +874,13 @@
         <source>Control</source>
         <translation>Irányítás</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>LAN játék</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Hivatalos szerver</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
     </message>
 </context>
 <context>
@@ -884,10 +926,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Ãltalános</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Haladó</translation>
     </message>
@@ -927,6 +965,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Csapatok</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Fegyverek</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1125,18 +1251,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1145,26 +1263,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Betöltés</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1209,14 +1315,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1224,6 +1322,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1236,10 +1344,6 @@
         <translation>Info</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Csatlakozások korlátozása</translation>
     </message>
@@ -1287,18 +1391,6 @@
         <translation>Teljes képernyő</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Frontend teljesképernyő</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Hangok engedélyezése</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Zene engedélyezése</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>FPS megjelenítése</translation>
     </message>
@@ -1315,18 +1407,6 @@
         <translation>Lőszer menü tippjeinek mutatása</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Frontend hangok engedélyezése</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Frontend zenéjének engedélyezése</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Frontend effektusok</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1346,14 +1426,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>a létrehozott pálya...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Ember</translation>
     </message>
@@ -1366,14 +1470,6 @@
         <translation>(rendszer default)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>Küldetés</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation>a létrehozott labirintus...</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1390,10 +1486,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1430,10 +1522,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1469,18 +1557,6 @@
         <translation>Erőd</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Billentyűzet testreszabása</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Csapatok</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Hang- és képi beállítások</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Netes játék</translation>
     </message>
@@ -1501,26 +1577,6 @@
         <translation>Csapat beállítások</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Egyéb</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1528,10 +1584,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1548,26 +1600,6 @@
         <translation>Verzió</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Fejlesztők:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafika:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Hangok:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Fordítások:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Külön köszönet:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Fegyverek</translation>
     </message>
@@ -1624,10 +1656,6 @@
         <translation>Csomagok érkezése</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Játék sémája</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% hamis aknák</translation>
     </message>
@@ -1664,10 +1692,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1742,10 +1766,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1773,6 +1793,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Teljes képernyő</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1811,10 +1863,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1861,18 +1909,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2018,16 +2054,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Becenév</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Add meg a beceneved</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2085,26 +2142,10 @@
         <translation>Betöltés</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Beállítás</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Kész</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Véletlen csapat</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2197,6 +2238,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Mégse</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2224,106 +2284,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vámpírizmus</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Tüzérség</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Erődítmény</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Csapatok felosztása</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Szilárd talaj</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Határok felállítása</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Alacsony gravitáció</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Lézeres mutató</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Sérthetetlenség</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Véletlen sorrend</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Király</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Sünik elhelyezése</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Közös lőszerek</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Hidak tiltása</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Tereptárgyak tiltása</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+        <source>Cancel</source>
+        <translation type="unfinished">Mégse</translation>
     </message>
 </context>
 <context>
@@ -2457,12 +2432,6 @@
         <translation>elfogás</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>süni
-info</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>kilépés</translation>
     </message>
@@ -2498,33 +2467,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Alap irányítás</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Fegyverek kezelése</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Kamera és kurzor irányítása</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Egyéb</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Fegyverek</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Süni mozgatása és célzás:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Gödrök és akadályok leküzdése ugrással:</translation>
     </message>
@@ -2588,6 +2557,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_it.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_it.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annulla</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annulla</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Modifica schemi</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Quando questa opzione è attiva, la scelta di uno schema di gioco selezionerà automaticamente le armi appropriate</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation>Opzioni di Gioco</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation>Impossibile salvare la StyleSheet in %1! Errore interno!</translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation>%1 non è un comando valido!</translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation>Gioco concluso per volere del giocatore</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation>Il nickname %1 è
-registrato su Hedgewars.org
-Per favore inserisci la tua password
-o scegli un altro nickname:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation>Nessuna password valida inserita.</translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation>Nickname</translation>
     </message>
@@ -166,6 +244,59 @@
         <translation>Qualcun altro sta già usando il tuo nickname %1 sul server.
 Per favore scegli un altro nickname:</translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -181,18 +312,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mappa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Temi</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtro</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Tutte</translation>
     </message>
@@ -217,10 +336,6 @@
         <translation>Stramba</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Tipo</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Gallerie piccole</translation>
     </message>
@@ -229,28 +344,96 @@
         <translation>Gallerie medie</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Gallerie grandi</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Isole piccole</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Isole medie</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Isole grandi</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Seed</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Imposta</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished">Disegnata a mano</translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Casuale</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Carica mappa disegnata</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Mappe disegnate</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Tutti i file</translation>
     </message>
 </context>
 <context>
@@ -322,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation>Password</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -338,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annulla</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -345,6 +554,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -363,25 +579,16 @@
         <source>Audio: </source>
         <translation>Audio:</translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
-    <name>LibavIteraction</name>
-    <message>
-        <source>Duration: %1m %2s
-</source>
-        <translation type="obsolete">Durata: %1m %2s</translation>
-    </message>
-    <message>
-        <source>Video: %1x%2, </source>
-        <translation type="obsolete">Video: %1x%2, </translation>
-    </message>
-    <message>
-        <source>%1 fps, </source>
-        <translation type="obsolete">%1 fps, </translation>
-    </message>
-    <message>
-        <source>Audio: </source>
-        <translation type="obsolete">Audio:</translation>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -414,6 +621,38 @@
         <source>Set data</source>
         <translation>Imposta dati</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Generale</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -468,8 +707,40 @@
         <translation>Generale</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Avanzato</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Cappello</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Nome</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Squadra Casuale</translation>
     </message>
 </context>
 <context>
@@ -550,267 +821,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Scegli lo stesso colore di un amico per giocare in squadra. Ciascuno controllerà i propri ricci ma la vittoria o la sconfitta saranno comuni.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Alcune armi potrebbero fare pochi danni ma possono essere devastanti se usate al momento giusto. Prova ad esempio ad utilizzare la Desert Eagle per spingere più ricci in acqua.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Se non sai cosa fare e non vuoi sprecare munizioni, salta il turno. Ma non farlo troppe volte perché c&apos;è il Sudden Death!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Se vuoi evitare che altri possano impersonarti, utilizzando il tuo nickname, sul server ufficiale, registrati su http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Sei stanco delle partite preimpostate? Prova una missione - le missioni offrono interessanti modalità differenti di partite in base alle tue scelte.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Il gioco salverà sempre l&apos;ultima partita giocata come demo. Seleziona &apos;Gioco locale&apos; e clicca il bottone &apos;Demos&apos; nell&apos;angolo in basso a destra per gestirle.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars è un programma Open Source e gratuito che noi creiamo nel nostro tempo libero. Se hai problemi, chiedi nei nostri forum ma, per favore, non aspettarti un supporto 24/7!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Se ti piace, aiutaci con una piccola donazione o contribuisci con il tuo lavoro!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Condividilo con tutta la famiglia e e con gli amici come più ti piace!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Di tanto in tanto ci saranno tornei ufficiali. Gli eventi saranno annunciati su http://www.hedgewars.org/ con qualche giorno di anticipo.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars è disponibile in molte lingue. Se la traduzione nella tua lingua sembra mancante o non aggiornata, sentiti libero di contattaci!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars può essere usato su molti sistemi operativi differenti come Microsoft Windows - XP, Vista, 7 -, Mac OS X e Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Ricordati che sei sempre in grado di configurare partire personalizzate in locale e online. Non devi sentirti limitato alle opzioni predefinite!</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Durante il gioco dovresti fare una breve pausa almeno ogni ora. In caso di partite più lunghe, sospendi l&apos;attività per almeno 30 minuti al termine del gioco!</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Se la tua scheda grafica non è in grado di fornire OpenGL con accelerazione hardware, prova ad abilitare la modalità a bassa qualità per migliorare le prestazioni.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Siamo aperti a suggerimenti e consigli costruttivi. Se non ti piace qualcosa o hai una buona idea, comunicacelo!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>In particolare quando giochi online sii educato e ricorda che potrebbero esserci dei minorenni che stanno giocando con te o contro di te!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Le modalità di gioco speciali, come &apos;Vampirismo&apos; o &apos;Karma&apos; ti permettono di sviluppare nuove tattiche. Provale in una partita personalizzata!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Non dovresti mai installare Hedgewars su computer che non possiedi (scuola, università, lavoro, ecc.). Per favore, chiedi ai responsabili!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars può essere perfetto per brevi partite durante le pause. Assicurati solamente di non aver aggiunto troppi ricci o di usare una mappa troppo grande. Ridurre tempo e vita può aiutare allo stesso modo.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Nessun riccio è stato maltrattato durante lo sviluppo di questo gioco.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars è un programma Open Source e gratuito che creiamo nel nostro tempo libero. Se qualcuno ti ha venduto il gioco, dovresti chiedere un rimborso!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Collega uno o più gamepad prima di iniziare il gioco per poterli assegnare alle tue squadra.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Crea un account su %1 per evitare che altri possano usare il tuo nickname preferito mentre giochi sul server ufficiale.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Se la tua scheda grafica non è in grado di fornire OpenGL con accelerazione hardware, prova ad aggiornarne i driver.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Ci sono tre salti disponibili. Premi [salto in alto] due volte per eseguire un salto in alto all&apos;indietro.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Paura di cadere da un dirupo? Premi [mirino di precisione] per girare a [sinistra] o a [destra] senza muoverti.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Alcune armi richiedono strategie particolari o semplicemente molto allenamento, quindi non arrenderti nell&apos;utilizzo di un&apos;arma specifica se manchi il nemico una volta.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>Molte armi non funzionano quando toccano l&apos;acqua. L&apos;Ape a Ricerca così come la Torta sono delle eccezioni.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Il vecchio Limburger causa solo una piccola esplosione. Tuttavia il vento influisce sulla nuvola puzzolente e può avvelenare più ricci contemporaneamente.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>L&apos;Ultima Sonata è l&apos;attacco aereo più dannoso. Perderai il tuo riccio, eseguendolo, quindi ci sono anche delle grosse controindicazioni.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Le Mine Adesive sono lo strumento perfetto per creare piccole reazioni a catena e spingere i ricci nemici in situazioni difficili... o in acqua.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Il Martello è più efficate se usato su ponti o travi. Colpire i ricci li farà sprofondare attraverso il terreno.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Se sei bloccato dietro un riccio nemico, usa il Martello per liberarti senza essere danneggiato da un&apos;esplosione.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>La distanza massima di cammino della Torta dipende dal terreno che deve attraversare. Usa [attacca] per farla esplodere prima.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Il Lanciafiamme è un&apos;arma che può essere usata anche per scavare gallerie.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Vuoi sapere chi c&apos;è dietro il gioco? Clicca sul logo Hedgewars nel menu principale per vederne gli autori e sviluppatori.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Ti piace Hedgewars? Diventa fan su %1 o seguici su %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Sentiti libero di disegnare tombe, cappelli, bandiere o anche mappe e temi personalizzati - lo puoi fare con TheGIMP! Ma nota che dovrai condividerli in qualche modo per usarli online.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Vuoi proprio un cappello specifico? Facci una piccola donazione e riceverai un cappello esclusivo a tua scelta!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Mantieni aggiornati i driver della tua scheda video, per evitare problemi durante il gioco.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Puoi trovare i file di configurazione del gioco in &quot;Documenti\Hedgewars&quot;. Crea delle copie di sicurezza o prendi i file con te, ma non modificarli manualmente!</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Puoi associare i file relativi a Hedgewars (partite salvate e registrazioni demo) al gioco, in modo da lanciarli direttamente dal tuo gestore file o browser Internet.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Vuoi utilizzare più a lungo la corda? Rilascia la corda a mezz&apos;aria e spara di nuovo. Finché non tocchi il terreno potrai riusare la corda senza sprecare munizioni!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Puoi trovare i file di configurazione del gioco in &quot;Library/Application Support/Hedgewars&quot; nella tua cartella utente. Crea una copia di sicurezza o porta i file con te, ma non modificarli mai manualmente.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Puoi trovare i file di configurazione del gioco in &quot;.hedgewars&quot; nella tua cartella home. Crea una copia di sicurezza o porta i file con te, ma non modificarli mai manualmente.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>La versione Windows di Hedgewars supporta Xfire. Assicurati di aggiungere Hedgewars alla sua lista giochi, così i tuoi amici potranno vederti giocare.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Usa la Bomba Molotov o il Lanciafiamme per impedire temporaneamente ai ricci di attraversari terreni pianeggianti, tunnel o collinette.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>L&apos;Ape a Ricerca può essere difficile da usare. Il suo raggio di curvatura dipende dalla sua velocità, quindi cerca di non usarla a piena potenza.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Contenuti Scaricabili</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation>Gioco in locale</translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation>Gioca una partita offline</translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation>Gioco in rete</translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation>Gioca una partita attraverso una rete</translation>
     </message>
@@ -838,6 +856,14 @@
         <source>Edit game preferences</source>
         <translation>Modifica preferenze</translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -845,6 +871,10 @@
         <source>Start</source>
         <translation>Gioca</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Modifica preferenze</translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -853,31 +883,12 @@
         <translation>Controllo</translation>
     </message>
     <message>
-        <source>DLC</source>
-        <translation type="obsolete">DLC</translation>
-    </message>
-    <message>
-        <source>Downloadable Content</source>
-        <translation type="obsolete">Contenuti Scaricabili</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Gioco in LAN</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Server ufficiale</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation>Incontra centinaia di giocatori online!</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation>Unisciti ad un server o creane uno nuovo per il gioco online in una rete LAN.</translation>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Modifica preferenze</translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Gioca</translation>
     </message>
 </context>
 <context>
@@ -923,10 +934,6 @@
         <translation>Elimina set delle armi</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation>Generale</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation>Avanzate</translation>
     </message>
@@ -966,6 +973,94 @@
         <source>System proxy settings</source>
         <translation>Impostazioni proxy di sistema</translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Squadre</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armi</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished">Colori personalizzati</translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Varie</translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished">Opzioni di registrazione video</translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1165,18 +1260,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation>Partita Semplice</translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation>Gioca una partita rapida contro il computer con impostazioni casuali</translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation>Multiplayer</translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation>Gioca una partira controlo un amico oppure contro il computer</translation>
     </message>
@@ -1185,26 +1272,14 @@
         <translation>Modalità Campagna</translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation>Modalità allenamento</translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation>Metti alla prova le tue capacità in una vasta gamma di missioni di addestramento</translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation>Demo</translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation>Visualizza demo registrate</translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation>Carica</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation>Carica un gioco salvato in precedenza</translation>
     </message>
@@ -1250,14 +1325,6 @@
         <translation>(in corso...)</translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation>Data: </translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation>Dimensione: </translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation>encoding</translation>
     </message>
@@ -1265,6 +1332,16 @@
         <source>uploading</source>
         <translation>caricamento</translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1273,10 +1350,6 @@
         <translation>Caccia via</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Gioca</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Limita le entrate</translation>
     </message>
@@ -1324,10 +1397,6 @@
         <translation>Schermo intero</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Abilita il suono</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Mostra FPS</translation>
     </message>
@@ -1340,14 +1409,6 @@
         <translation>Controlla aggiornamenti all&apos;avvio</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Abilita musica</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Frontend schermo intero</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Concatena data e ora di registrazione al nome file</translation>
     </message>
@@ -1356,18 +1417,6 @@
         <translation>Mostra suggerimenti nel menu armi</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Abilita suoni nel frontend</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Abilita la musica nel frontend</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Effetti speciali nel frontend</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation>Salva password</translation>
     </message>
@@ -1387,14 +1436,38 @@
         <source>Use game resolution</source>
         <translation>Usa la risoluzione del gioco</translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>Mappa generata...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Umano</translation>
     </message>
@@ -1407,14 +1480,6 @@
         <translation>(Predefinito)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>Labirinto generato...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Missione</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Comunità</translation>
     </message>
@@ -1431,10 +1496,6 @@
         <translation>In corso</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>Mappa disegnata...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Disabilitato</translation>
     </message>
@@ -1471,10 +1532,6 @@
         <translation>Dall&apos;alto in basso</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>Movimento continuo</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Scala di grigi rosso/azzurro</translation>
     </message>
@@ -1506,22 +1563,10 @@
         <translation>Membri della squadra</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Associazione tasti</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Fortino</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation>Squadre</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Opzioni Audio/Grafica</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Gioco in rete</translation>
     </message>
@@ -1542,26 +1587,6 @@
         <translation>Impostazioni delle Squadre</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Varie</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Schemi di Gioco e Armi</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation>Colori personalizzati</translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation>Varie</translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation>Opzioni di registrazione video</translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation>Video</translation>
     </message>
@@ -1569,10 +1594,6 @@
         <source>Description</source>
         <translation>Descrizione</translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1585,22 +1606,6 @@
         <translation>Mine</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Sviluppatori:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafica:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Traduttori:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Ringraziamenti speciali:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Armi</translation>
     </message>
@@ -1633,10 +1638,6 @@
         <translation>Versione</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Suoni:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Volume sonoro iniziale</translation>
     </message>
@@ -1665,10 +1666,6 @@
         <translation>Caduta Casse</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Schema di gioco</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Mine Difettose</translation>
     </message>
@@ -1705,10 +1702,6 @@
         <translation>Suggerimento: </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Questa versione di sviluppo è in corso d&apos;opera e può non essere compatibile con le altre versioni del gioco. Alcune funzionalità potrebbero essere incomplete o non funzionanti. Usatela a vostro rischio!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Qualità</translation>
     </message>
@@ -1785,10 +1778,6 @@
         <translation>Tag (separate da una virgola): </translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation>Riassunto   </translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation>Descrizione</translation>
     </message>
@@ -1816,6 +1805,38 @@
         <source>Bitrate (Kbps)</source>
         <translation>Bitrate (Kbps)</translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Schermo intero</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1854,10 +1875,6 @@
         <translation>Associazione delle estensioni a Hedgewars fallita.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation>E&apos; necessario compilare tutti i campi</translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation>Errore durante l&apos;autenticazione su google.com:</translation>
@@ -1904,18 +1921,6 @@
         <translation>Tutte le associazioni di file sono state impostate</translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation>Problema inviato correttamente a hedgewars.googlecode.com</translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation>Errore durante l'autenticazione a google.com</translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation>Errore nell'invio del problema, si prega di provare più tardi (o visitare hedgewars.googlecode.com direttamente)</translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation>Main - Errore</translation>
     </message>
@@ -1931,7 +1936,7 @@
         <translation>Impossibile creare la directory dati:
 %1
 
-Per favore controlla l'installazione!</translation>
+Per favore controlla l&apos;installazione!</translation>
     </message>
     <message>
         <source>TCP - Error</source>
@@ -2052,11 +2057,11 @@
     </message>
     <message>
         <source>Cannot overwrite default weapon set &apos;%1&apos;!</source>
-        <translation>Non posso sovrascrivere l'insieme base di armi &apos;%1&apos;!</translation>
+        <translation>Non posso sovrascrivere l&apos;insieme base di armi &apos;%1&apos;!</translation>
     </message>
     <message>
         <source>Cannot delete default weapon set &apos;%1&apos;!</source>
-        <translation>Non posso cancellare l'insieme base di armi &apos;%1&apos;!</translation>
+        <translation>Non posso cancellare l&apos;insieme base di armi &apos;%1&apos;!</translation>
     </message>
     <message>
         <source>Weapons - Are you sure?</source>
@@ -2064,18 +2069,39 @@
     </message>
     <message>
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
-        <translation>Vuoi davvero cancellare l'insieme di armi &apos;%1&apos;?</translation>
-    </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Nickname</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Per favore inserisci il tuo nickname</translation>
+        <translation>Vuoi davvero cancellare l&apos;insieme di armi &apos;%1&apos;?</translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2133,26 +2159,10 @@
         <translation>Carica</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Impostazioni</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Pronto</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Squadra Casuale</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Associa estensioni a Hedgewars</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>altro</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation>Più informazioni</translation>
     </message>
@@ -2245,6 +2255,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annulla</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2272,106 +2301,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirismo</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artiglieria</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Modalità Fortino</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Dividi le Squadre</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Terreno Solido</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Aggiunta Bordo</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Gravità Zero</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Vista Laser</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnerabilità</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Ordine Casuale</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Re</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Posiziona Ricci</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Munizioni Condivise</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Disabilita Travi</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Disabilita Oggetti Terreno</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Modalità Sopravvivenza AI</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Resetta la vita allo stato di partenza</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Attacchi Illimitati</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Resetta le armi allo stato di partenza</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Munzioni non condivise con gli altri ricci</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Disabilita Vento</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Più Vento</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Tag Team</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Aggiungi Bordo Inferiore</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Annulla</translation>
     </message>
 </context>
 <context>
@@ -2489,12 +2433,6 @@
         <translation>cattura</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>informazioni
-ricci</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>esci</translation>
     </message>
@@ -2546,33 +2484,33 @@
         <source>record</source>
         <translation>registra</translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Controlli di base</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Controlli per le armi</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Controlli camera e cursore</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Altro</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armi</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Varie</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Muovi i tuoi ricci e punta:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Scavalca buchi e ostacoli saltando:</translation>
     </message>
@@ -2636,6 +2574,10 @@
         <source>Record video:</source>
         <translation>Registra video:</translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_ja.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">ホストåï¼ï¼©ï¼°</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">キャンセル</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">キャンセル</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -43,13 +116,36 @@
         <translation>ã—ãã¿ã‚’編集</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>ã“ã®ã‚ªãƒ—ションを有効ã«ã—ã¦ã€ã—ãã¿ã‚’é¸ã¶ã¨æ­¦å™¨ã‚’自動é¸æŠž</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -100,10 +196,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -138,21 +230,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">ã‚ãªãŸã®ã€Œ%1ã€ã¨ã„ã†ãƒ‹ãƒƒã‚¯åã¯
-Hedgewars.orgã«ç™»éŒ²ã•ã‚Œã¾ã—ãŸã€‚
-下ã«ãƒ‘スワードを入力ã—ã¦ã€ã¾ãŸã¯
-ゲーム構æˆã«åˆ¥ã®åã‚’é¸æŠžã—ã¦ãã ã•ã„:
-</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
@@ -165,6 +242,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,18 +310,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>地図</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>テーマ</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>濾éŽ</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>全部</translation>
     </message>
@@ -216,10 +334,6 @@
         <translation>ã‚€ã¡ã‚ƒãã¡ã‚ƒ</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>å°ãƒˆãƒ³ãƒãƒ«</translation>
     </message>
@@ -228,27 +342,95 @@
         <translation>中トンãƒãƒ«</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>大トンãƒãƒ«</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>å­æµ®ã島</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>中浮ã島</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>大浮ã島</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>乱数シード</translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -321,8 +503,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">パスワード</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -337,6 +519,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">キャンセル</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -344,6 +552,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -362,6 +577,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -393,6 +619,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">一般</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -447,8 +705,40 @@
         <translation>一般</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>高級</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -523,267 +813,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -811,6 +848,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -818,6 +863,10 @@
         <source>Start</source>
         <translation>スタート</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -825,24 +874,13 @@
         <source>Control</source>
         <translation>コントロール</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">スタート</translation>
     </message>
 </context>
 <context>
@@ -888,10 +926,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">一般</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">高級</translation>
     </message>
@@ -931,6 +965,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">ãƒãƒ¼ãƒ </translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">武器</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1129,18 +1251,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1149,26 +1263,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">ロード</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1213,14 +1315,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1228,6 +1322,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1240,10 +1344,6 @@
         <translation>情報</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>スタート</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Restrict Joins</translation>
     </message>
@@ -1291,18 +1391,6 @@
         <translation>フルスクリーン</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>フルスクリーン メニュー</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>サウンド</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>音楽</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>FPSを示ã™</translation>
     </message>
@@ -1319,18 +1407,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1350,14 +1426,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>生æˆåœ°å›³...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>人間</translation>
     </message>
@@ -1370,14 +1470,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1394,10 +1486,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1434,10 +1522,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1473,18 +1557,6 @@
         <translation>å°å ´</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>キー binds</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>ãƒãƒ¼ãƒ </translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>オディオ/ç”»é¢ è¨­å®š</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>ãƒãƒƒãƒˆã‚²ãƒ¼ãƒ </translation>
     </message>
@@ -1505,26 +1577,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1532,10 +1584,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1552,26 +1600,6 @@
         <translation>ãƒãƒ¼ã‚·ãƒ§ãƒ³</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>開発者:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>アート:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>音楽・音:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>通訳者:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>特別感è¬:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>武器</translation>
     </message>
@@ -1628,10 +1656,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1668,10 +1692,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,10 +1766,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1777,6 +1793,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">フルスクリーン</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1815,10 +1863,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1865,18 +1909,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2022,15 +2054,36 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2089,26 +2142,10 @@
         <translation>ロード</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>設定</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2201,6 +2238,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">キャンセル</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2228,106 +2284,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">キャンセル</translation>
     </message>
 </context>
 <context>
@@ -2461,12 +2432,6 @@
         <translation>録画</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>é‡é¼ 
-情報</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>退出</translation>
     </message>
@@ -2502,33 +2467,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation type="unfinished">基本コントロール</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation type="unfinished">武器コントロール</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation type="unfinished">カメラã¨ã‚«ãƒ¼ã‚½ãƒ«ã®ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation type="unfinished">ãã®ä»–</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">武器</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>‘ズミをã†ã”ã‹ã™ã¨ã­ã‚‰ã†ï¼š</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>ç©´ã¨éšœå®³ã‚’跳んã§è¶…ãˆã‚‹ï¼š</translation>
     </message>
@@ -2592,6 +2557,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_ko.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ko.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -43,13 +116,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -100,10 +196,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -138,17 +230,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
@@ -161,6 +242,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -176,18 +310,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>All</source>
         <translation type="unfinished"></translation>
     </message>
@@ -212,10 +334,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -224,27 +342,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -317,7 +503,7 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
+        <source>Login</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -333,6 +519,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -340,6 +552,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -358,6 +577,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -389,6 +619,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -443,7 +705,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Advanced</source>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -519,267 +813,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -807,6 +848,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -814,6 +863,10 @@
         <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -821,23 +874,12 @@
         <source>Control</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -884,10 +926,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished"></translation>
     </message>
@@ -927,6 +965,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1125,18 +1251,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1145,26 +1263,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1209,14 +1315,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1224,6 +1322,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1236,10 +1344,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1287,18 +1391,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1315,18 +1407,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1346,14 +1426,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1366,14 +1470,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1390,10 +1486,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1430,10 +1522,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1469,18 +1557,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1501,26 +1577,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1528,10 +1584,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1548,26 +1600,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1624,10 +1656,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1664,10 +1692,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1742,10 +1766,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1773,6 +1793,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1811,10 +1863,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1861,18 +1909,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2018,15 +2054,36 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2085,26 +2142,10 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2197,6 +2238,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2224,105 +2284,20 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2457,11 +2432,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2497,33 +2467,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Other</source>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2587,6 +2557,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_lt.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_lt.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 <context>
     <name>AbstractPage</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/AbstractPage.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/ui/page/AbstractPage.cpp" line="55"/>
         <source>Go back</source>
         <translation type="unfinished"></translation>
     </message>
@@ -23,6 +23,96 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="35"/>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="38"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>IP</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="39"/>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="40"/>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="41"/>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="42"/>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="48"/>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="49"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="77"/>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="149"/>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="114"/>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="140"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="168"/>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/FreqSpinBox.cpp" line="36"/>
@@ -42,23 +132,56 @@
 <context>
     <name>GameCFGWidget</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="54"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="60"/>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="79"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="85"/>
         <source>Edit schemes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="94"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="100"/>
         <source>Edit weapons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="102"/>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="108"/>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="25"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="26"/>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="27"/>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="28"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="29"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="30"/>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="31"/>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="32"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="33"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="34"/>
+        <source>%1 days</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -73,128 +196,175 @@
 <context>
     <name>HWChatWidget</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="627"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="625"/>
         <source>%1 has been removed from your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="637"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="635"/>
         <source>%1 has been added to your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="667"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="665"/>
         <source>%1 has been removed from your friends list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="676"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="674"/>
         <source>%1 has been added to your friends list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="742"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="740"/>
         <source>Stylesheet imported from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="743"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="741"/>
         <source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="751"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="749"/>
         <source>Couldn&apos;t read %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="759"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="757"/>
         <source>StyleSheet discarded</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="781"/>
+        <source>StyleSheet saved to %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="784"/>
-        <source>StyleSheet saved to %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="787"/>
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="807"/>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="460"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="462"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="475"/>
         <source>DefaultTeam</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="566"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="629"/>
         <source>Game aborted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="978"/>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="982"/>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1008"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1093"/>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1012"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1098"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1369"/>
         <source>No nickname supplied.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1008"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1093"/>
         <source>Someone already uses your nickname %1 on the server.
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1432"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1719"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="479"/>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1047"/>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1048"/>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1076"/>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1081"/>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1098"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1369"/>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1120"/>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1120"/>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1141"/>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1486"/>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1486"/>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1642"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1947"/>
         <source>Cannot save record to file %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1662"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1885"/>
         <source>Hedgewars Demo File</source>
         <comment>File Types</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1663"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1886"/>
         <source>Hedgewars Save File</source>
         <comment>File Types</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1939"/>
         <source>Demo name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1939"/>
         <source>Demo name:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -202,13 +372,13 @@
 <context>
     <name>HWGame</name>
     <message>
-        <location filename="../../../../QTfrontend/game.cpp" line="333"/>
-        <location filename="../../../../QTfrontend/net/recorder.cpp" line="118"/>
+        <location filename="../../../../QTfrontend/game.cpp" line="363"/>
+        <location filename="../../../../QTfrontend/net/recorder.cpp" line="112"/>
         <source>en.txt</source>
         <translation>lt.txt</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/game.cpp" line="344"/>
+        <location filename="../../../../QTfrontend/game.cpp" line="404"/>
         <source>Cannot open demofile %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -216,95 +386,161 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="82"/>
-        <source>Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="85"/>
-        <source>Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="89"/>
-        <source>All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="90"/>
-        <source>Small</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="91"/>
-        <source>Medium</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="92"/>
-        <source>Large</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="93"/>
-        <source>Cavern</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="94"/>
-        <source>Wacky</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="96"/>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="97"/>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="98"/>
+        <source>Hand-drawn</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="99"/>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/>
+        <source>Random</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="183"/>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="189"/>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="202"/>
+        <source>All</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="203"/>
+        <source>Small</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/>
+        <source>Medium</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/>
+        <source>Large</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/>
+        <source>Cavern</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/>
+        <source>Wacky</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="682"/>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="690"/>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="704"/>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="715"/>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="775"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="906"/>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>All files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="215"/>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="104"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/>
         <source>Medium tunnels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="105"/>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="106"/>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="107"/>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="108"/>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="118"/>
-        <source>Themes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="162"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="124"/>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="555"/>
-        <source>Set</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWNetServersModel</name>
@@ -327,65 +563,65 @@
 <context>
     <name>HWNewNet</name>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="73"/>
         <source>User quit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="212"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="214"/>
         <source>Remote host has closed connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="215"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="217"/>
         <source>The host was not found. Please check the host name and port settings.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="218"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="220"/>
         <source>Connection refused</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="276"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="279"/>
         <source>The server is too old. Disconnecting now.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="648"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="678"/>
         <source>Room destroyed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="447"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="466"/>
         <source>You got kicked</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="597"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="724"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="621"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="754"/>
         <source>%1 *** %2 has joined the room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="471"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="490"/>
         <source>%1 *** %2 has joined</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="518"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="739"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="537"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="769"/>
         <source>%1 *** %2 has left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="520"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="741"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="539"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="771"/>
         <source>%1 *** %2 has left (%3)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1282"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1503"/>
         <source>Quit reason: </source>
         <translation type="unfinished"></translation>
     </message>
@@ -394,7 +630,7 @@
     <name>HWPasswordDialog</name>
     <message>
         <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="30"/>
-        <source>Password</source>
+        <source>Login</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -412,6 +648,37 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatbutton.cpp" line="40"/>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="63"/>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="87"/>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="103"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="107"/>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <location filename="../../../../QTfrontend/KB.h" line="28"/>
@@ -420,6 +687,14 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/keybinder.cpp" line="100"/>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="281"/>
@@ -442,44 +717,97 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="305"/>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="185"/>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="34"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="40"/>
+        <source>General</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="41"/>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="48"/>
         <source>Fetch data</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="38"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="52"/>
         <source>Server message for latest version:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="46"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="60"/>
         <source>Server message for previous versions:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="54"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="68"/>
         <source>Latest version protocol number:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="62"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="76"/>
         <source>MOTD preview:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="85"/>
         <source>Clear Accounts Cache</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="74"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="88"/>
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="97"/>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="98"/>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="99"/>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="108"/>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="109"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="110"/>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -543,12 +871,52 @@
     <name>PageEditTeam</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="47"/>
         <source>General</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="46"/>
-        <source>Advanced</source>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="48"/>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="66"/>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="67"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="78"/>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="84"/>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="88"/>
+        <source>Random Team</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -570,12 +938,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="173"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="174"/>
         <source>The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="181"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="182"/>
         <source>The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -584,7 +952,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="188"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="189"/>
         <source>A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -593,7 +961,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="252"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="253"/>
         <source>(%1 kill)</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -602,7 +970,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="263"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="264"/>
         <source>&lt;b&gt;%1&lt;/b&gt; thought it&apos;s good to shoot his own hedgehogs with &lt;b&gt;%2&lt;/b&gt; pts.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -611,7 +979,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="271"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
         <source>&lt;b&gt;%1&lt;/b&gt; killed &lt;b&gt;%2&lt;/b&gt; of his own hedgehogs.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -620,7 +988,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="279"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="280"/>
         <source>&lt;b&gt;%1&lt;/b&gt; was scared and skipped turn &lt;b&gt;%2&lt;/b&gt; times.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -649,358 +1017,69 @@
     <name>PageMain</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="45"/>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="46"/>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="50"/>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="51"/>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="58"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="66"/>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="71"/>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="78"/>
         <source>Read about who is behind the Hedgewars Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="63"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="83"/>
         <source>Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="67"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="86"/>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="69"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="88"/>
         <source>Access the user created content downloadable from our website</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="89"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="108"/>
         <source>Exit game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="112"/>
         <source>Manage videos recorded from game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="116"/>
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="128"/>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="129"/>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="130"/>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="131"/>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="132"/>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="133"/>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="134"/>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="135"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="136"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="137"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="138"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="139"/>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="140"/>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="141"/>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="142"/>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="143"/>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="144"/>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="145"/>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="146"/>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="147"/>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="148"/>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="149"/>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="150"/>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="151"/>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="152"/>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="153"/>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="154"/>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="155"/>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="156"/>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="157"/>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="158"/>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="159"/>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="160"/>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="161"/>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="162"/>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="163"/>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="164"/>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="165"/>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="166"/>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="167"/>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="168"/>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="169"/>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="170"/>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="171"/>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="175"/>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="176"/>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="178"/>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="180"/>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="182"/>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="52"/>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="64"/>
         <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1008,141 +1087,234 @@
 <context>
     <name>PageNetGame</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="84"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="63"/>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="90"/>
         <source>Control</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="35"/>
-        <source>LAN game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="36"/>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="37"/>
-        <source>Official server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="38"/>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="96"/>
+        <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>PageOptions</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="50"/>
-        <source>General</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="96"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="239"/>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="99"/>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="102"/>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="104"/>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="108"/>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="112"/>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="115"/>
         <source>Advanced</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="77"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="128"/>
+        <source>Teams</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="138"/>
         <source>New team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="85"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="146"/>
         <source>Edit team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="154"/>
         <source>Delete team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="101"/>
-        <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="127"/>
-        <source>New scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="134"/>
-        <source>Edit scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="141"/>
-        <source>Delete scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="155"/>
-        <source>New weapon set</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="162"/>
-        <source>Edit weapon set</source>
+        <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="169"/>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="178"/>
+        <source>New scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="185"/>
+        <source>Edit scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="192"/>
+        <source>Delete scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="200"/>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="209"/>
+        <source>New weapon set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="216"/>
+        <source>Edit weapon set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="223"/>
         <source>Delete weapon set</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="405"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="369"/>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="386"/>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="416"/>
         <source>Reset to default colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="429"/>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="467"/>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="490"/>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="516"/>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="522"/>
         <source>Proxy host</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="523"/>
         <source>Proxy port</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="456"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="524"/>
         <source>Proxy login</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="457"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="525"/>
         <source>Proxy password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="468"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="538"/>
         <source>No proxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="469"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="539"/>
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="470"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="540"/>
         <source>Socks5 proxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="541"/>
         <source>HTTP proxy</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="576"/>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="629"/>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="643"/>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1200,7 +1372,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="492"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="490"/>
         <source>%1 players online</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -1212,152 +1384,152 @@
 <context>
     <name>PageScheme</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="72"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="71"/>
         <source>Defend your fort and destroy the opponents, two team colours max!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="77"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="75"/>
         <source>Teams will start on opposite sides of the terrain, two team colours max!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="82"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="79"/>
         <source>Land can not be destroyed!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="83"/>
+        <source>Add an indestructible border around the terrain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="87"/>
-        <source>Add an indestructible border around the terrain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="92"/>
         <source>Lower gravity</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="91"/>
         <source>Assisted aiming with laser sight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="102"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="95"/>
         <source>All hogs have a personal forcefield</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="99"/>
+        <source>All (living) hedgehogs are fully restored at the end of turn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="103"/>
+        <source>Gain 80% of the damage you do back in health</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="107"/>
-        <source>All (living) hedgehogs are fully restored at the end of turn</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="112"/>
-        <source>Gain 80% of the damage you do back in health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="117"/>
         <source>Share your opponents pain, share their damage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="111"/>
         <source>Your hogs are unable to move, put your artillery skills to the test</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="115"/>
+        <source>Order of play is random instead of in room order.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="119"/>
+        <source>Play with a King. If he dies, your side dies.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="123"/>
+        <source>Take turns placing your hedgehogs before the start of play.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="127"/>
-        <source>Order of play is random instead of in room order.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="132"/>
-        <source>Play with a King. If he dies, your side dies.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="137"/>
-        <source>Take turns placing your hedgehogs before the start of play.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="142"/>
         <source>Ammo is shared between all teams that share a colour.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="131"/>
+        <source>Disable girders when generating random maps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="135"/>
+        <source>Disable land objects when generating random maps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="139"/>
+        <source>AI respawns on death.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="143"/>
+        <source>Attacking does not end your turn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="147"/>
-        <source>Disable girders when generating random maps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="152"/>
-        <source>Disable land objects when generating random maps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="157"/>
-        <source>AI respawns on death.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="162"/>
-        <source>Attacking does not end your turn.</source>
+        <source>Weapons are reset to starting values each turn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="151"/>
+        <source>Each hedgehog has its own ammo. It does not share with the team.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="155"/>
+        <source>You will not have to worry about wind anymore.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="159"/>
+        <source>Wind will affect almost everything.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="163"/>
+        <source>Teams in each clan take successive turns sharing their turn time.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="167"/>
-        <source>Weapons are reset to starting values each turn.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="172"/>
-        <source>Each hedgehog has its own ammo. It does not share with the team.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="177"/>
-        <source>You will not have to worry about wind anymore.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="182"/>
-        <source>Wind will affect almost everything.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="187"/>
-        <source>Teams in each clan take successive turns sharing their turn time.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="192"/>
         <source>Add an indestructible border along the bottom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="350"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="325"/>
         <source>Random</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="351"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="326"/>
         <source>Seconds</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="427"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="402"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="428"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="403"/>
         <source>New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="429"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="404"/>
         <source>Delete</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1389,57 +1561,31 @@
     <name>PageSinglePlayer</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="39"/>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="40"/>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="43"/>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="42"/>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="49"/>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="50"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="47"/>
         <source>Campaign Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="54"/>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="51"/>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="66"/>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="67"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="62"/>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="70"/>
-        <source>Load</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="65"/>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1457,12 +1603,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="211"/>
+        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="206"/>
         <source>No description available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="219"/>
+        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="214"/>
         <source>Select a mission!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1470,17 +1616,17 @@
 <context>
     <name>PageVideos</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="234"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="121"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="235"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="122"/>
         <source>Size</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="498"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="263"/>
         <source>%1 bytes</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -1489,27 +1635,29 @@
         </translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="742"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="507"/>
         <source>(in progress...)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="746"/>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="747"/>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="966"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="511"/>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="512"/>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="731"/>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="968"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="733"/>
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1517,133 +1665,135 @@
 <context>
     <name>QAction</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="248"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="242"/>
         <source>Info</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="252"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="246"/>
         <source>Kick</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="256"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="250"/>
         <source>Ban</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="260"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="254"/>
         <source>Follow</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="264"/>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="865"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="258"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="858"/>
         <source>Ignore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="268"/>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="877"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="262"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="870"/>
         <source>Add friend</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="860"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="853"/>
         <source>Unignore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="872"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="865"/>
         <source>Remove friend</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="79"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="85"/>
         <source>Update</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="107"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="121"/>
         <source>Restrict Joins</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="109"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="123"/>
         <source>Restrict Team Additions</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="87"/>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="431"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="364"/>
         <source>Show ammo menu tooltips</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="365"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="358"/>
         <source>Alternative damage show</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="436"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="461"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="476"/>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="462"/>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="472"/>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="477"/>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="602"/>
         <source>Append date and time to record file name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="241"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="622"/>
         <source>Check for updates at startup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="261"/>
-        <source>Frontend fullscreen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="265"/>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="269"/>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="273"/>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="291"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="375"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="349"/>
-        <source>Enable sound</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="353"/>
-        <source>Enable music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="424"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="347"/>
         <source>Show FPS</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="43"/>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="231"/>
+        <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="59"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="507"/>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1658,12 +1808,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="151"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="683"/>
         <source>Record audio</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="192"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="732"/>
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1671,129 +1821,104 @@
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="116"/>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="50"/>
-        <source>generated map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="52"/>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="54"/>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="115"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="122"/>
         <source>Human</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="119"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="126"/>
         <source>Level</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="323"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="284"/>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="199"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="588"/>
         <source>(System default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="311"/>
+        <source>Disabled</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="312"/>
-        <source>Disabled</source>
+        <source>Red/Cyan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="313"/>
-        <source>Red/Cyan</source>
+        <source>Cyan/Red</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="314"/>
-        <source>Cyan/Red</source>
+        <source>Red/Blue</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="315"/>
-        <source>Red/Blue</source>
+        <source>Blue/Red</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="316"/>
-        <source>Blue/Red</source>
+        <source>Red/Green</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="317"/>
-        <source>Red/Green</source>
+        <source>Green/Red</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
+        <source>Side-by-side</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
+        <source>Top-Bottom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
-        <source>Green/Red</source>
+        <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
-        <source>Side-by-side</source>
+        <source>Cyan/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
-        <source>Top-Bottom</source>
+        <source>Red/Blue grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
-        <source>Wiggle</source>
+        <source>Blue/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
-        <source>Red/Cyan grayscale</source>
+        <source>Red/Green grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
-        <source>Cyan/Red grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
-        <source>Red/Blue grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
-        <source>Blue/Red grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="326"/>
-        <source>Red/Green grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="327"/>
         <source>Green/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="111"/>
         <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="112"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="176"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="174"/>
         <source>Any</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1811,66 +1936,26 @@
 <context>
     <name>QGroupBox</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="60"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="61"/>
         <source>Team Members</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="89"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="96"/>
         <source>Team Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="143"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="150"/>
         <source>Fort</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="162"/>
-        <source>Key binds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagenet.cpp" line="40"/>
         <source>Net game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="69"/>
-        <source>Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="116"/>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="184"/>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="253"/>
-        <source>Audio/Graphic options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="412"/>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="448"/>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="48"/>
         <source>Game Modifiers</source>
         <translation type="unfinished"></translation>
@@ -1881,22 +1966,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="253"/>
+        <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="266"/>
         <source>Playing teams</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="120"/>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="231"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="118"/>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="267"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="154"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1904,53 +1984,27 @@
 <context>
     <name>QLabel</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="53"/>
+        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="71"/>
         <source>Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="73"/>
         <source>This program is distributed under the GNU General Public License v2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="70"/>
-        <source>Developers:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="94"/>
-        <source>Art:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="112"/>
-        <source>Sounds:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="122"/>
-        <source>Translations:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="146"/>
-        <source>Special thanks:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="61"/>
         <source>Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="74"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="80"/>
         <source>Scheme</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="148"/>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="86"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="92"/>
         <source>Weapons</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1965,38 +2019,38 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="100"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="96"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="103"/>
         <source>Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="99"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="106"/>
         <source>Grave</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="102"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="109"/>
         <source>Flag</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="105"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="112"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="116"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="135"/>
         <source>Tip: </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="120"/>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="139"/>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2010,123 +2064,132 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="120"/>
-        <source>Game scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="189"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="582"/>
         <source>Locale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="221"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="496"/>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="283"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="172"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="708"/>
         <source>Resolution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="295"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="293"/>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="308"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="250"/>
+        <source>Fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="255"/>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="265"/>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="307"/>
         <source>Stereo rendering</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="340"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="437"/>
         <source>Initial sound volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="418"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="338"/>
         <source>FPS limit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="200"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="175"/>
         <source>Damage Modifier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="214"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="189"/>
         <source>Turn Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="228"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="203"/>
         <source>Initial Health</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="242"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="217"/>
         <source>Sudden Death Timeout</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="256"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="231"/>
         <source>Sudden Death Water Rise</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="270"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="245"/>
         <source>Sudden Death Health Decrease</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="284"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="259"/>
         <source>% Rope Length</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="298"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="273"/>
         <source>Crate Drops</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="311"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="286"/>
         <source>% Health Crates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="325"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="300"/>
         <source>Health in Crates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="339"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="314"/>
         <source>Mines Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="355"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="330"/>
         <source>Mines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="369"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="344"/>
         <source>% Dud Mines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="383"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="358"/>
         <source>Explosives</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="397"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="372"/>
         <source>% Get Away Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="411"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="386"/>
         <source>Scheme Name:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2168,37 +2231,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagefeedback.cpp" line="45"/>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagefeedback.cpp" line="52"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="101"/>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="126"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="125"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="154"/>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="652"/>
         <source>Format</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="142"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="672"/>
         <source>Audio codec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="163"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="697"/>
         <source>Video codec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="197"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="738"/>
         <source>Framerate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="208"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="752"/>
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2206,18 +2284,18 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="879"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="930"/>
         <source>unnamed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/team.cpp" line="42"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="335"/>
+        <location filename="../../../../QTfrontend/team.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="296"/>
         <source>hedgehog %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="226"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="501"/>
         <source>anonymous</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2225,7 +2303,7 @@
 <context>
     <name>QMainWindow</name>
     <message>
-        <location filename="../../../../QTfrontend/ui_hwform.cpp" line="59"/>
+        <location filename="../../../../QTfrontend/ui_hwform.cpp" line="57"/>
         <source>Hedgewars %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2233,87 +2311,90 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="901"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="388"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="346"/>
         <source>Teams - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="902"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="389"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="347"/>
         <source>Do you really want to delete the team &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="918"/>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="525"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="959"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="500"/>
         <source>Cannot delete default scheme &apos;%1&apos;!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="944"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="985"/>
         <source>Please select a record from the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1238"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1074"/>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1445"/>
         <source>Unable to start server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1282"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1503"/>
         <source>Connection to server is lost</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1394"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="334"/>
         <source>Hedgewars - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1694"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1785"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="344"/>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="359"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="370"/>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="387"/>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="450"/>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1917"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="421"/>
         <source>Hedgewars - Success</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1695"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1918"/>
         <source>All file associations have been set</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1786"/>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1798"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1811"/>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1814"/>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1700"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1923"/>
         <source>File association failed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1736"/>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="276"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="284"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="277"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="285"/>
         <source>Cannot use the ammo &apos;%1&apos;!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2341,18 +2422,18 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="96"/>
-        <location filename="../../../../QTfrontend/main.cpp" line="212"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="114"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="283"/>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="115"/>
         <source>Cannot create directory %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="213"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="284"/>
         <source>Failed to open data directory:
 %1
 
@@ -2360,29 +2441,29 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="50"/>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="94"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="176"/>
         <source>TCP - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="95"/>
         <source>Unable to start the server: %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="123"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="177"/>
         <source>Unable to run engine at </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="124"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="178"/>
         <source>Error code: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagenet.cpp" line="113"/>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="157"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="170"/>
         <source>Netgame - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2392,8 +2473,8 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="158"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="431"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="171"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="429"/>
         <source>Please enter room name</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2422,56 +2503,56 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="430"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="445"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="428"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="443"/>
         <source>Room Name - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="446"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="444"/>
         <source>Please select room from the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="479"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="477"/>
         <source>Room Name - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="480"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="478"/>
         <source>The game you are trying to join has started.
 Do you still want to join the room?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="524"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="499"/>
         <source>Schemes - Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="533"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="508"/>
         <source>Schemes - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="534"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="509"/>
         <source>Do you really want to delete the game scheme &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="850"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="879"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="1104"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="615"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="644"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="869"/>
         <source>Videos - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="851"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="616"/>
         <source>Do you really want to delete the video &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="880"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="645"/>
         <source>Do you really want to remove %1 file(s)?</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -2480,13 +2561,14 @@
         </translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="1105"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="870"/>
         <source>Do you really want to cancel uploading %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="101"/>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="121"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="867"/>
         <source>File error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2497,6 +2579,7 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="868"/>
         <source>Cannot open &apos;%1&apos; for reading</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2526,17 +2609,19 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1200"/>
-        <source>Nickname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1201"/>
-        <source>Please enter your nickname</source>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="23"/>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="28"/>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="35"/>
+        <source>Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2555,33 +2640,17 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/dialog/input_ip.cpp" line="57"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="735"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="500"/>
         <source>Cancel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="170"/>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagecampaign.cpp" line="44"/>
         <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="92"/>
         <source>Go!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="84"/>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="40"/>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="51"/>
-        <source>Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagenet.cpp" line="73"/>
         <source>Start server</source>
         <translation type="unfinished"></translation>
@@ -2602,17 +2671,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="72"/>
-        <source>Ready</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="77"/>
         <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="440"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="608"/>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2629,8 +2693,8 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageplayrecord.cpp" line="53"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="303"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="735"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="190"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="500"/>
         <source>Delete</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2645,53 +2709,54 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="219"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="765"/>
         <source>Set default options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="220"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="766"/>
         <source>Restore default coding parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="253"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="140"/>
         <source>Open videos directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="254"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="141"/>
         <source>Open the video directory in your system</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="299"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="186"/>
         <source>Play</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="301"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="188"/>
         <source>Play this video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="305"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="192"/>
         <source>Delete this video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="307"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="736"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="194"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="501"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="877"/>
         <source>Upload to YouTube</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="309"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="196"/>
         <source>Upload this video to your Youtube account</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="736"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="501"/>
         <source>Cancel uploading</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2739,22 +2804,45 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="131"/>
+        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="132"/>
         <source>Random Map</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="132"/>
-        <source>Random Maze</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="133"/>
+        <source>Random Maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="134"/>
         <source>Hand-drawn</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="42"/>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="61"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="62"/>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="71"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/selectWeapon.cpp" line="119"/>
@@ -2790,130 +2878,23 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="71"/>
-        <source>Fort Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="76"/>
-        <source>Divide Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="81"/>
-        <source>Solid Land</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="86"/>
-        <source>Add Border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="91"/>
-        <source>Low Gravity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="96"/>
-        <source>Laser Sight</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="101"/>
-        <source>Invulnerable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="106"/>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="111"/>
-        <source>Vampirism</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="116"/>
-        <source>Karma</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="121"/>
-        <source>Artillery</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="126"/>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="131"/>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="136"/>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="141"/>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="146"/>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="151"/>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="156"/>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="161"/>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="166"/>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="171"/>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="176"/>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="181"/>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="186"/>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="191"/>
-        <source>Add Bottom Border</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/teamselhelper.cpp" line="58"/>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="47"/>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="66"/>
+        <source>Cancel</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2959,97 +2940,97 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
+        <source>attack</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
+        <source>put</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="30"/>
-        <source>attack</source>
+        <source>switch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
-        <source>put</source>
+        <source>ammo menu</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="32"/>
-        <source>switch</source>
+        <source>slot 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
-        <source>ammo menu</source>
+        <source>slot 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="34"/>
-        <source>slot 1</source>
+        <source>slot 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="35"/>
-        <source>slot 2</source>
+        <source>slot 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="36"/>
-        <source>slot 3</source>
+        <source>slot 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="37"/>
-        <source>slot 4</source>
+        <source>slot 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="38"/>
-        <source>slot 5</source>
+        <source>slot 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="39"/>
-        <source>slot 6</source>
+        <source>slot 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="40"/>
-        <source>slot 7</source>
+        <source>slot 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="41"/>
-        <source>slot 8</source>
+        <source>slot 10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="42"/>
-        <source>slot 9</source>
+        <source>timer 1 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="43"/>
-        <source>slot 10</source>
+        <source>timer 2 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="44"/>
-        <source>timer 1 sec</source>
+        <source>timer 3 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="45"/>
-        <source>timer 2 sec</source>
+        <source>timer 4 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="46"/>
-        <source>timer 3 sec</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
-        <source>timer 4 sec</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
         <source>timer 5 sec</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3125,12 +3106,11 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="68"/>
-        <source>hedgehogs
-info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="69"/>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="70"/>
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3139,59 +3119,59 @@
     <name>binds (categories)</name>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
-        <source>Basic controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
-        <source>Weapon controls</source>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
+        <source>Weapons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="49"/>
-        <source>Camera and cursor controls</source>
+        <source>Camera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="58"/>
-        <source>Other</source>
+        <source>Miscellaneous</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="28"/>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
+        <source>Fire your selected weapon or trigger an utility item:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
+        <source>Pick a weapon or a target location under the cursor:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="30"/>
-        <source>Fire your selected weapon or trigger an utility item:</source>
+        <source>Switch your currently active hog (if possible):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
+        <source>Hedgehog movement</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
-        <source>Pick a weapon or a target location under the cursor:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="32"/>
-        <source>Switch your currently active hog (if possible):</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
         <source>Pick a weapon or utility item:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="42"/>
         <source>Set the timer on bombs and timed weapons:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3241,7 +3221,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="69"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="70"/>
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3249,44 +3229,44 @@
 <context>
     <name>binds (keys)</name>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="129"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/>
         <source>Axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/>
-        <source>(Up)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="137"/>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="152"/>
+        <source>(Up)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="141"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/>
         <source>(Down)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="144"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/>
         <source>Hat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/>
-        <source>(Left)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="160"/>
+        <source>(Left)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="164"/>
         <source>(Right)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="168"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="172"/>
         <source>Button</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="193"/>
+        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="156"/>
         <source>Keyboard</source>
         <translation type="unfinished"></translation>
     </message>
--- a/share/hedgewars/Data/Locale/hedgewars_ms.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ms.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 <context>
     <name>AbstractPage</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/AbstractPage.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/ui/page/AbstractPage.cpp" line="55"/>
         <source>Go back</source>
         <translation type="unfinished"></translation>
     </message>
@@ -23,6 +23,96 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="35"/>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="38"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>IP</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="39"/>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="40"/>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="41"/>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="42"/>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="48"/>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="49"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="77"/>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="149"/>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="114"/>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="140"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="168"/>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/FreqSpinBox.cpp" line="36"/>
@@ -40,23 +130,56 @@
 <context>
     <name>GameCFGWidget</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="54"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="60"/>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="79"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="85"/>
         <source>Edit schemes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="94"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="100"/>
         <source>Edit weapons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="102"/>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="108"/>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="25"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="26"/>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="27"/>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="28"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="29"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="30"/>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="31"/>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="32"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="33"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="34"/>
+        <source>%1 days</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -71,128 +194,175 @@
 <context>
     <name>HWChatWidget</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="627"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="625"/>
         <source>%1 has been removed from your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="637"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="635"/>
         <source>%1 has been added to your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="667"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="665"/>
         <source>%1 has been removed from your friends list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="676"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="674"/>
         <source>%1 has been added to your friends list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="742"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="740"/>
         <source>Stylesheet imported from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="743"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="741"/>
         <source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="751"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="749"/>
         <source>Couldn&apos;t read %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="759"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="757"/>
         <source>StyleSheet discarded</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="781"/>
+        <source>StyleSheet saved to %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="784"/>
-        <source>StyleSheet saved to %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="787"/>
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="807"/>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="460"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="462"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="475"/>
         <source>DefaultTeam</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="566"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="479"/>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="629"/>
         <source>Game aborted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="978"/>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="982"/>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1008"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1047"/>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1048"/>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1076"/>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1081"/>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1093"/>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1008"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1093"/>
         <source>Someone already uses your nickname %1 on the server.
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1012"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1098"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1369"/>
         <source>No nickname supplied.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1432"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1719"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1098"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1369"/>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1120"/>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1120"/>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1141"/>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1486"/>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1486"/>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1642"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1947"/>
         <source>Cannot save record to file %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1662"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1885"/>
         <source>Hedgewars Demo File</source>
         <comment>File Types</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1663"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1886"/>
         <source>Hedgewars Save File</source>
         <comment>File Types</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1939"/>
         <source>Demo name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1939"/>
         <source>Demo name:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -200,13 +370,13 @@
 <context>
     <name>HWGame</name>
     <message>
-        <location filename="../../../../QTfrontend/game.cpp" line="333"/>
-        <location filename="../../../../QTfrontend/net/recorder.cpp" line="118"/>
+        <location filename="../../../../QTfrontend/game.cpp" line="363"/>
+        <location filename="../../../../QTfrontend/net/recorder.cpp" line="112"/>
         <source>en.txt</source>
         <translation>ms.txt</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/game.cpp" line="344"/>
+        <location filename="../../../../QTfrontend/game.cpp" line="404"/>
         <source>Cannot open demofile %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -214,95 +384,161 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="82"/>
-        <source>Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="85"/>
-        <source>Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="89"/>
-        <source>All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="90"/>
-        <source>Small</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="91"/>
-        <source>Medium</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="92"/>
-        <source>Large</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="93"/>
-        <source>Cavern</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="94"/>
-        <source>Wacky</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="96"/>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="97"/>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="98"/>
+        <source>Hand-drawn</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="99"/>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/>
+        <source>Random</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="183"/>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="189"/>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="202"/>
+        <source>All</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="203"/>
+        <source>Small</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/>
+        <source>Medium</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/>
+        <source>Large</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/>
+        <source>Cavern</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/>
+        <source>Wacky</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="682"/>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="690"/>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="704"/>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="715"/>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="775"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="906"/>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>All files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="215"/>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="104"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/>
         <source>Medium tunnels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="105"/>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="106"/>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="107"/>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="108"/>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="118"/>
-        <source>Themes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="162"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="124"/>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="555"/>
-        <source>Set</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWNetServersModel</name>
@@ -325,65 +561,65 @@
 <context>
     <name>HWNewNet</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1282"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1503"/>
         <source>Quit reason: </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="73"/>
         <source>User quit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="212"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="214"/>
         <source>Remote host has closed connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="215"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="217"/>
         <source>The host was not found. Please check the host name and port settings.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="218"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="220"/>
         <source>Connection refused</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="276"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="279"/>
         <source>The server is too old. Disconnecting now.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="447"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="466"/>
         <source>You got kicked</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="471"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="490"/>
         <source>%1 *** %2 has joined</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="518"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="739"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="537"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="769"/>
         <source>%1 *** %2 has left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="520"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="741"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="539"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="771"/>
         <source>%1 *** %2 has left (%3)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="597"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="724"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="621"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="754"/>
         <source>%1 *** %2 has joined the room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="648"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="678"/>
         <source>Room destroyed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -392,7 +628,7 @@
     <name>HWPasswordDialog</name>
     <message>
         <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="30"/>
-        <source>Password</source>
+        <source>Login</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -410,6 +646,37 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatbutton.cpp" line="40"/>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="63"/>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="87"/>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="103"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="107"/>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <location filename="../../../../QTfrontend/KB.h" line="28"/>
@@ -418,6 +685,14 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/keybinder.cpp" line="100"/>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="281"/>
@@ -440,44 +715,97 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="305"/>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="185"/>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="34"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="40"/>
+        <source>General</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="41"/>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="48"/>
         <source>Fetch data</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="38"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="52"/>
         <source>Server message for latest version:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="46"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="60"/>
         <source>Server message for previous versions:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="54"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="68"/>
         <source>Latest version protocol number:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="62"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="76"/>
         <source>MOTD preview:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="85"/>
         <source>Clear Accounts Cache</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="74"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="88"/>
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="97"/>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="98"/>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="99"/>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="108"/>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="109"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="110"/>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -541,12 +869,52 @@
     <name>PageEditTeam</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="47"/>
         <source>General</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="46"/>
-        <source>Advanced</source>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="48"/>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="66"/>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="67"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="78"/>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="84"/>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="88"/>
+        <source>Random Team</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -568,47 +936,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="173"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="174"/>
         <source>The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="181"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="182"/>
         <source>The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="188"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="189"/>
         <source>A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="252"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="253"/>
         <source>(%1 kill)</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="263"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="264"/>
         <source>&lt;b&gt;%1&lt;/b&gt; thought it&apos;s good to shoot his own hedgehogs with &lt;b&gt;%2&lt;/b&gt; pts.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="271"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
         <source>&lt;b&gt;%1&lt;/b&gt; killed &lt;b&gt;%2&lt;/b&gt; of his own hedgehogs.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="279"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="280"/>
         <source>&lt;b&gt;%1&lt;/b&gt; was scared and skipped turn &lt;b&gt;%2&lt;/b&gt; times.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -635,358 +1003,69 @@
     <name>PageMain</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="45"/>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="46"/>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="50"/>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="51"/>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="58"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="66"/>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="71"/>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="78"/>
         <source>Read about who is behind the Hedgewars Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="63"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="83"/>
         <source>Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="67"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="86"/>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="69"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="88"/>
         <source>Access the user created content downloadable from our website</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="89"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="108"/>
         <source>Exit game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="112"/>
         <source>Manage videos recorded from game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="116"/>
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="128"/>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="129"/>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="130"/>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="131"/>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="132"/>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="133"/>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="134"/>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="135"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="136"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="137"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="138"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="139"/>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="140"/>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="141"/>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="142"/>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="143"/>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="144"/>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="145"/>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="146"/>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="147"/>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="148"/>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="149"/>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="150"/>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="151"/>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="152"/>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="153"/>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="154"/>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="155"/>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="156"/>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="157"/>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="158"/>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="159"/>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="160"/>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="161"/>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="162"/>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="163"/>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="164"/>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="165"/>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="166"/>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="167"/>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="168"/>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="169"/>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="170"/>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="171"/>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="175"/>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="176"/>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="178"/>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="180"/>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="182"/>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="52"/>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="64"/>
         <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
@@ -994,141 +1073,234 @@
 <context>
     <name>PageNetGame</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="84"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="63"/>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="90"/>
         <source>Control</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="35"/>
-        <source>LAN game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="36"/>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="37"/>
-        <source>Official server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="38"/>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="96"/>
+        <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>PageOptions</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="50"/>
-        <source>General</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="96"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="239"/>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="99"/>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="102"/>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="104"/>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="108"/>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="112"/>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="115"/>
         <source>Advanced</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="77"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="128"/>
+        <source>Teams</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="138"/>
         <source>New team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="85"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="146"/>
         <source>Edit team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="154"/>
         <source>Delete team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="101"/>
-        <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="127"/>
-        <source>New scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="134"/>
-        <source>Edit scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="141"/>
-        <source>Delete scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="155"/>
-        <source>New weapon set</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="162"/>
-        <source>Edit weapon set</source>
+        <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="169"/>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="178"/>
+        <source>New scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="185"/>
+        <source>Edit scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="192"/>
+        <source>Delete scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="200"/>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="209"/>
+        <source>New weapon set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="216"/>
+        <source>Edit weapon set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="223"/>
         <source>Delete weapon set</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="405"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="369"/>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="386"/>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="416"/>
         <source>Reset to default colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="429"/>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="467"/>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="490"/>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="516"/>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="522"/>
         <source>Proxy host</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="523"/>
         <source>Proxy port</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="456"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="524"/>
         <source>Proxy login</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="457"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="525"/>
         <source>Proxy password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="468"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="538"/>
         <source>No proxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="469"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="539"/>
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="470"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="540"/>
         <source>Socks5 proxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="541"/>
         <source>HTTP proxy</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="576"/>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="629"/>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="643"/>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1186,7 +1358,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="492"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="490"/>
         <source>%1 players online</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -1196,152 +1368,152 @@
 <context>
     <name>PageScheme</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="72"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="71"/>
         <source>Defend your fort and destroy the opponents, two team colours max!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="77"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="75"/>
         <source>Teams will start on opposite sides of the terrain, two team colours max!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="82"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="79"/>
         <source>Land can not be destroyed!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="83"/>
+        <source>Add an indestructible border around the terrain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="87"/>
-        <source>Add an indestructible border around the terrain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="92"/>
         <source>Lower gravity</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="91"/>
         <source>Assisted aiming with laser sight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="102"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="95"/>
         <source>All hogs have a personal forcefield</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="99"/>
+        <source>All (living) hedgehogs are fully restored at the end of turn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="103"/>
+        <source>Gain 80% of the damage you do back in health</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="107"/>
-        <source>All (living) hedgehogs are fully restored at the end of turn</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="112"/>
-        <source>Gain 80% of the damage you do back in health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="117"/>
         <source>Share your opponents pain, share their damage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="111"/>
         <source>Your hogs are unable to move, put your artillery skills to the test</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="115"/>
+        <source>Order of play is random instead of in room order.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="119"/>
+        <source>Play with a King. If he dies, your side dies.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="123"/>
+        <source>Take turns placing your hedgehogs before the start of play.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="127"/>
-        <source>Order of play is random instead of in room order.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="132"/>
-        <source>Play with a King. If he dies, your side dies.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="137"/>
-        <source>Take turns placing your hedgehogs before the start of play.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="142"/>
         <source>Ammo is shared between all teams that share a colour.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="131"/>
+        <source>Disable girders when generating random maps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="135"/>
+        <source>Disable land objects when generating random maps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="139"/>
+        <source>AI respawns on death.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="143"/>
+        <source>Attacking does not end your turn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="147"/>
-        <source>Disable girders when generating random maps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="152"/>
-        <source>Disable land objects when generating random maps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="157"/>
-        <source>AI respawns on death.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="162"/>
-        <source>Attacking does not end your turn.</source>
+        <source>Weapons are reset to starting values each turn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="151"/>
+        <source>Each hedgehog has its own ammo. It does not share with the team.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="155"/>
+        <source>You will not have to worry about wind anymore.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="159"/>
+        <source>Wind will affect almost everything.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="163"/>
+        <source>Teams in each clan take successive turns sharing their turn time.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="167"/>
-        <source>Weapons are reset to starting values each turn.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="172"/>
-        <source>Each hedgehog has its own ammo. It does not share with the team.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="177"/>
-        <source>You will not have to worry about wind anymore.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="182"/>
-        <source>Wind will affect almost everything.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="187"/>
-        <source>Teams in each clan take successive turns sharing their turn time.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="192"/>
         <source>Add an indestructible border along the bottom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="350"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="325"/>
         <source>Random</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="351"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="326"/>
         <source>Seconds</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="427"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="402"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="428"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="403"/>
         <source>New</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="429"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="404"/>
         <source>Delete</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1373,57 +1545,31 @@
     <name>PageSinglePlayer</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="39"/>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="40"/>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="43"/>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="42"/>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="49"/>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="50"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="47"/>
         <source>Campaign Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="54"/>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="51"/>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="66"/>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="67"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="62"/>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="70"/>
-        <source>Load</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="65"/>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1441,12 +1587,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="211"/>
+        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="206"/>
         <source>No description available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="219"/>
+        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="214"/>
         <source>Select a mission!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1454,44 +1600,46 @@
 <context>
     <name>PageVideos</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="234"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="121"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="235"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="122"/>
         <source>Size</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="498"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="263"/>
         <source>%1 bytes</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="742"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="507"/>
         <source>(in progress...)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="746"/>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="747"/>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="966"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="511"/>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="512"/>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="731"/>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="968"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="733"/>
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1499,64 +1647,59 @@
 <context>
     <name>QAction</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="79"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="85"/>
         <source>Update</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="87"/>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="107"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="121"/>
         <source>Restrict Joins</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="109"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="123"/>
         <source>Restrict Team Additions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="248"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="242"/>
         <source>Info</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="252"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="246"/>
         <source>Kick</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="256"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="250"/>
         <source>Ban</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="260"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="254"/>
         <source>Follow</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="264"/>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="865"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="258"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="858"/>
         <source>Ignore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="268"/>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="877"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="262"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="870"/>
         <source>Add friend</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="860"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="853"/>
         <source>Unignore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="872"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="865"/>
         <source>Remove friend</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1564,8 +1707,8 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="43"/>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="231"/>
+        <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="59"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="507"/>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1580,72 +1723,79 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="241"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="622"/>
         <source>Check for updates at startup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="261"/>
-        <source>Frontend fullscreen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="265"/>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="269"/>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="273"/>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="291"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="375"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="349"/>
-        <source>Enable sound</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="353"/>
-        <source>Enable music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="365"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="358"/>
         <source>Alternative damage show</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="424"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="347"/>
         <source>Show FPS</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="431"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="364"/>
         <source>Show ammo menu tooltips</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="436"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="461"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="476"/>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="462"/>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="472"/>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="477"/>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="602"/>
         <source>Append date and time to record file name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="151"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="683"/>
         <source>Record audio</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="192"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="732"/>
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1653,129 +1803,104 @@
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="50"/>
-        <source>generated map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="52"/>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="54"/>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="116"/>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="115"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="122"/>
         <source>Human</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="119"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="126"/>
         <source>Level</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="323"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="284"/>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="199"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="588"/>
         <source>(System default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="311"/>
+        <source>Disabled</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="312"/>
-        <source>Disabled</source>
+        <source>Red/Cyan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="313"/>
-        <source>Red/Cyan</source>
+        <source>Cyan/Red</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="314"/>
-        <source>Cyan/Red</source>
+        <source>Red/Blue</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="315"/>
-        <source>Red/Blue</source>
+        <source>Blue/Red</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="316"/>
-        <source>Blue/Red</source>
+        <source>Red/Green</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="317"/>
-        <source>Red/Green</source>
+        <source>Green/Red</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
+        <source>Side-by-side</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
+        <source>Top-Bottom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
-        <source>Green/Red</source>
+        <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
-        <source>Side-by-side</source>
+        <source>Cyan/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
-        <source>Top-Bottom</source>
+        <source>Red/Blue grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
-        <source>Wiggle</source>
+        <source>Blue/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
-        <source>Red/Cyan grayscale</source>
+        <source>Red/Green grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
-        <source>Cyan/Red grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
-        <source>Red/Blue grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
-        <source>Blue/Red grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="326"/>
-        <source>Red/Green grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="327"/>
         <source>Green/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="111"/>
         <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="112"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="176"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="174"/>
         <source>Any</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1793,66 +1918,26 @@
 <context>
     <name>QGroupBox</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="60"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="61"/>
         <source>Team Members</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="89"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="96"/>
         <source>Team Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="143"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="150"/>
         <source>Fort</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="162"/>
-        <source>Key binds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagenet.cpp" line="40"/>
         <source>Net game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="69"/>
-        <source>Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="116"/>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="184"/>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="253"/>
-        <source>Audio/Graphic options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="412"/>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="448"/>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="48"/>
         <source>Game Modifiers</source>
         <translation type="unfinished"></translation>
@@ -1863,22 +1948,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="120"/>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="231"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="118"/>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="267"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="154"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="253"/>
+        <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="266"/>
         <source>Playing teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1933,48 +2013,63 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="100"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="96"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="103"/>
         <source>Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="99"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="106"/>
         <source>Grave</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="102"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="109"/>
         <source>Flag</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="105"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="112"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagefeedback.cpp" line="45"/>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagefeedback.cpp" line="52"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="101"/>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="126"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="116"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="154"/>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="135"/>
         <source>Tip: </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="120"/>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="139"/>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -1988,199 +2083,182 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="120"/>
-        <source>Game scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="148"/>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="86"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="92"/>
         <source>Weapons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="189"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="582"/>
         <source>Locale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="221"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="496"/>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="283"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="172"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="708"/>
         <source>Resolution</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="295"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="293"/>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="308"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="250"/>
+        <source>Fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="255"/>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="265"/>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="307"/>
         <source>Stereo rendering</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="340"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="437"/>
         <source>Initial sound volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="418"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="338"/>
         <source>FPS limit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="200"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="175"/>
         <source>Damage Modifier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="214"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="189"/>
         <source>Turn Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="228"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="203"/>
         <source>Initial Health</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="242"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="217"/>
         <source>Sudden Death Timeout</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="256"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="231"/>
         <source>Sudden Death Water Rise</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="270"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="245"/>
         <source>Sudden Death Health Decrease</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="284"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="259"/>
         <source>% Rope Length</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="298"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="273"/>
         <source>Crate Drops</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="311"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="286"/>
         <source>% Health Crates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="325"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="300"/>
         <source>Health in Crates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="339"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="314"/>
         <source>Mines Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="355"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="330"/>
         <source>Mines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="369"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="344"/>
         <source>% Dud Mines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="383"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="358"/>
         <source>Explosives</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="397"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="372"/>
         <source>% Get Away Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="411"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="386"/>
         <source>Scheme Name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="125"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="652"/>
         <source>Format</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="142"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="672"/>
         <source>Audio codec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="163"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="697"/>
         <source>Video codec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="197"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="738"/>
         <source>Framerate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="208"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="752"/>
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="53"/>
+        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="71"/>
         <source>Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="73"/>
         <source>This program is distributed under the GNU General Public License v2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="70"/>
-        <source>Developers:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="94"/>
-        <source>Art:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="112"/>
-        <source>Sounds:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="122"/>
-        <source>Translations:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="146"/>
-        <source>Special thanks:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="61"/>
         <source>Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="74"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="80"/>
         <source>Scheme</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2188,18 +2266,18 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="879"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="930"/>
         <source>unnamed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/team.cpp" line="42"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="335"/>
+        <location filename="../../../../QTfrontend/team.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="296"/>
         <source>hedgehog %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="226"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="501"/>
         <source>anonymous</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2207,7 +2285,7 @@
 <context>
     <name>QMainWindow</name>
     <message>
-        <location filename="../../../../QTfrontend/ui_hwform.cpp" line="59"/>
+        <location filename="../../../../QTfrontend/ui_hwform.cpp" line="57"/>
         <source>Hedgewars %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2215,93 +2293,96 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="901"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="388"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="346"/>
         <source>Teams - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="902"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="389"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="347"/>
         <source>Do you really want to delete the team &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="918"/>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="525"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="959"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="500"/>
         <source>Cannot delete default scheme &apos;%1&apos;!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="944"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="985"/>
         <source>Please select a record from the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1238"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1074"/>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1445"/>
         <source>Unable to start server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1282"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1503"/>
         <source>Connection to server is lost</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1394"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="334"/>
         <source>Hedgewars - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1694"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1785"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="344"/>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="359"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="370"/>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="387"/>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="450"/>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1917"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="421"/>
         <source>Hedgewars - Success</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1695"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1918"/>
         <source>All file associations have been set</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1700"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1923"/>
         <source>File association failed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1736"/>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1786"/>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1798"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1811"/>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1814"/>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="96"/>
-        <location filename="../../../../QTfrontend/main.cpp" line="212"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="114"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="283"/>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="115"/>
         <source>Cannot create directory %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="213"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="284"/>
         <source>Failed to open data directory:
 %1
 
@@ -2309,23 +2390,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="50"/>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="94"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="176"/>
         <source>TCP - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="95"/>
         <source>Unable to start the server: %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="123"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="177"/>
         <source>Unable to run engine at </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="124"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="178"/>
         <source>Error code: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2354,7 +2435,7 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagenet.cpp" line="113"/>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="157"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="170"/>
         <source>Netgame - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2364,8 +2445,8 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="158"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="431"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="171"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="429"/>
         <source>Please enter room name</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2394,69 +2475,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="430"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="445"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="428"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="443"/>
         <source>Room Name - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="446"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="444"/>
         <source>Please select room from the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="479"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="477"/>
         <source>Room Name - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="480"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="478"/>
         <source>The game you are trying to join has started.
 Do you still want to join the room?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="524"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="499"/>
         <source>Schemes - Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="533"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="508"/>
         <source>Schemes - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="534"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="509"/>
         <source>Do you really want to delete the game scheme &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="850"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="879"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="1104"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="615"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="644"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="869"/>
         <source>Videos - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="851"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="616"/>
         <source>Do you really want to delete the video &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="880"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="645"/>
         <source>Do you really want to remove %1 file(s)?</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="1105"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="870"/>
         <source>Do you really want to cancel uploading %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="101"/>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="121"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="867"/>
         <source>File error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2467,16 +2549,17 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="868"/>
         <source>Cannot open &apos;%1&apos; for reading</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="276"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="284"/>
         <source>Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="277"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="285"/>
         <source>Cannot use the ammo &apos;%1&apos;!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2506,17 +2589,19 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1200"/>
-        <source>Nickname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1201"/>
-        <source>Please enter your nickname</source>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="23"/>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="28"/>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="35"/>
+        <source>Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2540,7 +2625,7 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/dialog/input_ip.cpp" line="57"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="735"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="500"/>
         <source>Cancel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2551,17 +2636,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="84"/>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="40"/>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="51"/>
-        <source>Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagenet.cpp" line="49"/>
         <source>Connect</source>
         <translation type="unfinished"></translation>
@@ -2582,17 +2656,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="72"/>
-        <source>Ready</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="77"/>
         <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="440"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="608"/>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2609,8 +2678,8 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageplayrecord.cpp" line="53"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="303"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="735"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="190"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="500"/>
         <source>Delete</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2620,61 +2689,57 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="219"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="765"/>
         <source>Set default options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="220"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="766"/>
         <source>Restore default coding parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="253"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="140"/>
         <source>Open videos directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="254"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="141"/>
         <source>Open the video directory in your system</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="299"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="186"/>
         <source>Play</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="301"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="188"/>
         <source>Play this video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="305"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="192"/>
         <source>Delete this video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="307"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="736"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="194"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="501"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="877"/>
         <source>Upload to YouTube</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="309"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="196"/>
         <source>Upload this video to your Youtube account</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="736"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="501"/>
         <source>Cancel uploading</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="170"/>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>RoomsListModel</name>
@@ -2719,22 +2784,45 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="131"/>
+        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="132"/>
         <source>Random Map</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="132"/>
-        <source>Random Maze</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="133"/>
+        <source>Random Maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="134"/>
         <source>Hand-drawn</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="42"/>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="61"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="62"/>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="71"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/selectWeapon.cpp" line="119"/>
@@ -2770,130 +2858,23 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="71"/>
-        <source>Fort Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="76"/>
-        <source>Divide Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="81"/>
-        <source>Solid Land</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="86"/>
-        <source>Add Border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="91"/>
-        <source>Low Gravity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="96"/>
-        <source>Laser Sight</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="101"/>
-        <source>Invulnerable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="106"/>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="111"/>
-        <source>Vampirism</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="116"/>
-        <source>Karma</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="121"/>
-        <source>Artillery</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="126"/>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="131"/>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="136"/>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="141"/>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="146"/>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="151"/>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="156"/>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="161"/>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="166"/>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="171"/>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="176"/>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="181"/>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="186"/>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="191"/>
-        <source>Add Bottom Border</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/teamselhelper.cpp" line="58"/>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="47"/>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="66"/>
+        <source>Cancel</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2939,97 +2920,97 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
+        <source>attack</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
+        <source>put</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="30"/>
-        <source>attack</source>
+        <source>switch</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
-        <source>put</source>
+        <source>ammo menu</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="32"/>
-        <source>switch</source>
+        <source>slot 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
-        <source>ammo menu</source>
+        <source>slot 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="34"/>
-        <source>slot 1</source>
+        <source>slot 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="35"/>
-        <source>slot 2</source>
+        <source>slot 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="36"/>
-        <source>slot 3</source>
+        <source>slot 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="37"/>
-        <source>slot 4</source>
+        <source>slot 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="38"/>
-        <source>slot 5</source>
+        <source>slot 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="39"/>
-        <source>slot 6</source>
+        <source>slot 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="40"/>
-        <source>slot 7</source>
+        <source>slot 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="41"/>
-        <source>slot 8</source>
+        <source>slot 10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="42"/>
-        <source>slot 9</source>
+        <source>timer 1 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="43"/>
-        <source>slot 10</source>
+        <source>timer 2 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="44"/>
-        <source>timer 1 sec</source>
+        <source>timer 3 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="45"/>
-        <source>timer 2 sec</source>
+        <source>timer 4 sec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="46"/>
-        <source>timer 3 sec</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
-        <source>timer 4 sec</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
         <source>timer 5 sec</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3105,12 +3086,11 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="68"/>
-        <source>hedgehogs
-info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="69"/>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="70"/>
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3119,59 +3099,59 @@
     <name>binds (categories)</name>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
-        <source>Basic controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
-        <source>Weapon controls</source>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
+        <source>Weapons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="49"/>
-        <source>Camera and cursor controls</source>
+        <source>Camera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="58"/>
-        <source>Other</source>
+        <source>Miscellaneous</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="28"/>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
+        <source>Fire your selected weapon or trigger an utility item:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
+        <source>Pick a weapon or a target location under the cursor:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="30"/>
-        <source>Fire your selected weapon or trigger an utility item:</source>
+        <source>Switch your currently active hog (if possible):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
+        <source>Hedgehog movement</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
-        <source>Pick a weapon or a target location under the cursor:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="32"/>
-        <source>Switch your currently active hog (if possible):</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
         <source>Pick a weapon or utility item:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="42"/>
         <source>Set the timer on bombs and timed weapons:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3221,7 +3201,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="69"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="70"/>
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3584,44 +3564,44 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="193"/>
+        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="156"/>
         <source>Keyboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="129"/>
-        <source>Axis</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/>
-        <source>(Up)</source>
+        <source>Axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="137"/>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="152"/>
+        <source>(Up)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="141"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/>
         <source>(Down)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="144"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/>
         <source>Hat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/>
-        <source>(Left)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="160"/>
+        <source>(Left)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="164"/>
         <source>(Right)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="168"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="172"/>
         <source>Button</source>
         <translation type="unfinished"></translation>
     </message>
--- a/share/hedgewars/Data/Locale/hedgewars_nl.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_nl.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,17 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
@@ -162,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -177,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>All</source>
         <translation type="unfinished"></translation>
     </message>
@@ -213,10 +335,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -225,27 +343,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -318,7 +504,7 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
+        <source>Login</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -334,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -341,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -359,6 +578,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -390,6 +620,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -444,7 +706,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Advanced</source>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -526,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -814,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -821,6 +870,10 @@
         <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -828,23 +881,12 @@
         <source>Control</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -891,10 +933,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished"></translation>
     </message>
@@ -934,6 +972,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1133,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1153,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1218,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1233,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1245,10 +1353,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1296,18 +1400,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1324,18 +1416,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1355,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1375,14 +1479,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1399,10 +1495,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1439,10 +1531,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1478,18 +1566,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1510,26 +1586,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1537,10 +1593,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1557,26 +1609,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1633,10 +1665,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1673,10 +1701,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1751,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1782,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1820,10 +1872,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1870,18 +1918,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2028,15 +2064,36 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2095,26 +2152,10 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2207,6 +2248,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2234,105 +2294,20 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2467,11 +2442,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2507,33 +2477,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Other</source>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2597,6 +2567,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_pl.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Anuluj</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Anuluj</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -45,13 +118,36 @@
         <translation>Edytuj uzbrojenie</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Kiedy ta opcja jest włączona, wybór ustawień gry zmienia uzbrojenie na odpowiednie</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation>Opcje</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -102,10 +198,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation>Nie można było zapisać arkusza stylów jako %1</translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation>%1 nie jest poprawnym poleceniem!</translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -140,20 +232,6 @@
         <translation>Gra przerwana</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation>Twój nick %1 jest zarejestrowany
-na Hedgewars.org
-Proszę podać hasło bądź zmienić nick
-w ustawieniach gry:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation>Nie podano hasła.</translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation>Nick</translation>
     </message>
@@ -167,6 +245,59 @@
         <translation>Ktoś używa tego nicku %1 na serwerze.
 Wybierz inny nick:</translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -182,18 +313,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mapa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Motywy</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtr</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Wszystkie</translation>
     </message>
@@ -218,10 +337,6 @@
         <translation>Odjechane</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Typ</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Małe tunele</translation>
     </message>
@@ -230,28 +345,96 @@
         <translation>Åšrednie tunele</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Duże tunele</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Małe wyspy</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Åšrednie wyspy</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Duże wyspy</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Ziarno</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Ustaw</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished">Rys. ręcznie</translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Losowo</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Załaduj mapę</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Narysowane mapy</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Wszystkie pliki</translation>
     </message>
 </context>
 <context>
@@ -323,8 +506,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation>Hasło</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -339,6 +522,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Anuluj</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -346,6 +555,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -364,25 +580,16 @@
         <source>Audio: </source>
         <translation type="unfinished">Audio: </translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
-    <name>LibavIteraction</name>
-    <message>
-        <source>Duration: %1m %2s
-</source>
-        <translation type="obsolete">Długość: %1m %2s </translation>
-    </message>
-    <message>
-        <source>Video: %1x%2, </source>
-        <translation type="obsolete">Wideo: %1x%2, </translation>
-    </message>
-    <message>
-        <source>%1 fps, </source>
-        <translation type="obsolete">%1 kl/s, </translation>
-    </message>
-    <message>
-        <source>Audio: </source>
-        <translation type="obsolete">Audio: </translation>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -415,6 +622,38 @@
         <source>Set data</source>
         <translation>Zapisz</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Ogólne</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -469,8 +708,40 @@
         <translation>Ogólne</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Zaawansowane</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Grzybek</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Nazwa</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Losowa Drużyna</translation>
     </message>
 </context>
 <context>
@@ -557,267 +828,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>By grać ze swoim przyjacielem w tej samej drużynie po prostu wybierzcie taki sam kolor obydwu zespołów. Każdy z was będzie sterować swoimi własnymi jeżami ale wygracie bądź przegracie jako jedna drużyna.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Niektóre z broni zadają mało punktów obrażeń jednak użyte w odpowiednim momencie mogą pokazać pazur. Na przykład spróbuj użyć pistoletu by strącić swoich przeciwników do wody.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Jeśli nie jesteś pewien co zrobić w danej turze i nie chcesz tracić amunicji możesz pominąć turę. Nie rób tak jednak zbyt często gdyż nagła śmierć jest nieuchronna!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Jeśli chciałbyś zapobiec używania własnego nicka przez kogoś innego, zarejestruj go na http://www.hedgewars.org .</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Znudzony domyślnymi ustawieniami gry? Spróbuj zagrać w którąś z misji. - oferują one zmienione zasady gry w zależności od tej którą wybrałeś.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Gra zawsze będzie zapisywała ostatnią rozgrywkę jako Demo. Wybierz &quot;Grę Lokalną&quot; i kliknij w przycisk &quot;Dema&quot; który znajduje się w prawym dolnym rogu ekranu by je odtworzyć i zarządzać nimi.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli masz jakiś problem, zapytaj na forum ale nie spodziewaj się wsparcia 24 godziny na dobę!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli ją lubisz, wspomóż nas małą wpłatą lub stwórz własną czapkę bądź mapę!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli tylko chcesz, rozdaj ją swojej rodzinie i kolegom!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Od czasu do czasu będą organizowane mistrzostwa. Będą one ogłaszane z wyprzedzeniem na http://www.hedgewars.org/ .</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars jest dostępne w wielu językach. Jeśli brakuje tłumaczenia w twoim języku bądź jest ono niekompletne, nie bój się z nami skontaktować!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars może być uruchomione na różnych systemach operacyjnych takich jak Microsoft Windows, MacOS X, FreeBSD oraz Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Zawsze możesz zmieniać ustawienia gry w opcjach gry lokalnej lub sieciowej. Nie musisz ciągle używać tzw. &quot;Szybkiej gry&quot;.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Zawsze pamiętaj o robieniu krótkich przerw co godzinę kiedy grasz na komputerze.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Jeśli twoja karta graficzna nie ma sprzętowego przyspieszania OpenGL, spróbuj włączyć tryb obniżonej jakości by zwiększyć płynność gry.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Jesteśmy otwarci na sugestie oraz konstruktywną krytykę. Jeśli coś Ci się nie podoba bądź masz jakiś pomysł, daj nam znać!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Bądź kulturalny grając przez internet. Pamiętaj o tym, że w Hedgewars mogą grać także młodsze osoby!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Specjalne tryby gry takie jak &quot;Karma&quot; bądź &quot;Wampiryzm&quot; pozwalają na stworzenie nowej taktyki!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Nie powinieneś instalować Hedgewars na komputerach których nie posiadasz (w szkole, na studiach, w pracy itp.). Zapytaj osoby odpowiedzialnej za te komputery!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars jest idealny do gry w czasie przerw.Upewnij się, że nie dałeś zbyt dużej ilości jeży, bądź zbyt dużej mapy. Pomóc może także zmniejszenie długości tury lub obniżenie ilości życia.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Żaden jeż nie został ranny w czasie tworzenia tej gry.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars jest darmową grą o otwartym kodzie źródłowym którą tworzymy w naszym wolnym czasie. Jeśli ktokolwiek sprzedał Tobie tę grę powinieneś upomnieć się o swoje pieniądze!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Jeśli podłączysz jeden lub więcej gamepadów przed włączeniem gry będziesz miał możliwość przypisania klawiszy by sterować swoimi jeżami.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Stwórz konto na %1 by zapobiec używania twojego ulubionego nicku przez innych na oficjalnym serwerze.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Jeśli twoja karta nie wspiera sprzętowego przyspieszania OpenGL spróbuj uaktualnić swoje sterowniki.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Są trzy różne rodzaje skoku możliwe do wykonania. Naciśnij [wysoki skok] dwa razy by zrobić bardzo wysoki skok w tył.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Boisz się upadku z krawędzi terenu? Przytrzymaj klawisz [precyzyjnego celowania] by obrócić się w [lewo] lub [prawo] bez ruszenia się z miejsca.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Niektóre z broni wymagają specjalnej strategii lub dużo treningu by je popranie używać. Nie poddawaj się gdy nie wychodzi ci za pierwszym razem.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>Większość uzbrojenia nie działa pod wodą. Pszczoła i Ciasto są wyjątkami od tej reguły.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Cuchnący ser nie powoduje wielkiego wybuchu. Jednakże pod wpływem wiatru chmura śmierdzącego gazu może bardzo daleko zawędrować i otruć wiele jeży naraz.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Zrzut pianina jest najbardziej morderczym atakiem powietrznym. Pamiętaj, że tracisz jeża którym wykonujesz ten atak więc dobrze zaplanuj swój ruch.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Miny samoprzylepne są idealnym narzędziem by tworzyć małe reakcje łańcuchowe bądź do zmuszenia przeciwnika by popadł w tarapaty lub wpadł do wody.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Młotek jest najbardziej skuteczny na mostach bądź kładkach. Uderzone jeże przelecą przez nie na sam dół.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Jeśli utknąłeś za jeżem przeciwnika, użyj młotka by wbić go w ziemię. Unikniesz wtedy eksplozji która z pewnością zabrałaby Tobie punkty życia.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Dystans który Ciasto może przebyć zależy od terenu który ma do przebycia. Użyj [ataku] by zdetonować je wcześniej.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Miotacz ognia jest śmiercionośną bronią ale może być użyty również jako narzędzie do kopania tuneli.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Chcesz wiedzieć kto tworzy tę grę? Kliknij logo w głównym menu by zobaczyć autorów.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Lubisz Hedgewars? Zostań fanem na %1 lub dołącz do grupy na %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Możesz rysować własne nagrobki, czapki, flagi lub nawet mapy albo tematy! Miej na uwadze to by udostępnić je każdemu który będzie grał z Tobą przez sieć.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Chcesz nosić wymarzoną czapkę? Wspomóż nas pieniężnie a my zrobimy specjalną czapkę tylko dla Ciebie!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Pamiętaj o aktualizowaniu sterowników by zapobiec problemom z grami.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Swoje zespoły i konfigurację gry znajdziesz w folderze &quot;Moje Dokumenty\Hedgewars&quot;. Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Możesz powiązać typy plików związane z Hedgewars (zapisy gier i dema) by móc je uruchamiać bezpośrednio z ulubionego menedżera plików bądź przeglądarki internetowej.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Chcesz zaoszczędzić liny? Odłącz ją będąc w powietrzu, a potem wypuść ją ponownie. Dopóki nie dotkniesz ziemi, będziesz używał pojedynczego naboju!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Swoje zespoły i konfigurację gry znajdziesz w folderze &quot;Library/Application Support/Hedgewars&quot; w twoim katalogu domowym. Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Swoje zespoły i konfigurację gry znajdziesz w folderze &quot;.hedgewars&quot; w twoim katalogu domowym. Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>Wersja Hedgewars dla systemu Windows wspiera XFire. Upewnij się, że dodałeś Hedgewars do listy gier by Twoi znajomi mogli zobaczyć Ciebie w czasie gry.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Użyj koktajlu Mołotowa lub Miotacza ognia by powstrzymać przeciwnika przed przedostaniem się przez tunele lub platformy.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>Pszczoła potrafi być ciężka w użyciu. Jej promień skrętu zależy od prędkości lotu, więc nie staraj się nie używać pełnej mocy podczas strzału.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Dodatki</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation>Gra lokalna</translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation>Graj na swoim komputerze</translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation>Gra sieciowa</translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation>Graj poprzez sieć</translation>
     </message>
@@ -845,6 +863,14 @@
         <source>Edit game preferences</source>
         <translation>Zmień ustawienia gry</translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -852,6 +878,10 @@
         <source>Start</source>
         <translation>Start</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Zmień ustawienia gry</translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -860,31 +890,12 @@
         <translation>Kontrola</translation>
     </message>
     <message>
-        <source>DLC</source>
-        <translation type="obsolete">DLC</translation>
-    </message>
-    <message>
-        <source>Downloadable Content</source>
-        <translation type="obsolete">Dodatki</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Sieć lokalna</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Oficjalny serwer</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation>Dołącz do setek graczy w sieci!</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation>Dołącz lub stwórz nową grę w sieci lokalnej.</translation>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Zmień ustawienia gry</translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
     </message>
 </context>
 <context>
@@ -930,10 +941,6 @@
         <translation>Usuń zestaw uzbrojenia</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation>Ogólne</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation>Zaawansowane</translation>
     </message>
@@ -973,6 +980,94 @@
         <source>System proxy settings</source>
         <translation>Systemowe ustawienia proxy</translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Drużyny</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Uzbrojenie</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished">WÅ‚asne kolory</translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished">Ustawienia proxy</translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Różne</translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished">Ustawienia nagrywania</translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1173,18 +1268,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation>Szybka gra</translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation>Zagraj szybkÄ… grÄ™ z losowymi ustawieniami przeciwko komputerowi</translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation>Gra wieloosobowa</translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation>Graj na zmianę ze swoimi przyjaciółmi lub przeciwko komputerowi</translation>
     </message>
@@ -1193,26 +1280,14 @@
         <translation>Kampania</translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation>Trening</translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation>Sprawdź swoje umiejętności przwechodząc kilka misji</translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation>Dema</translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation>Obejrzyj nagrane dema</translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation>Wczytaj</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation>Wczytaj zapisanÄ… grÄ™</translation>
     </message>
@@ -1259,14 +1334,6 @@
         <translation>(w trakcie...)</translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation>Data: </translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation>Rozmiar: </translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation>enkodowanie</translation>
     </message>
@@ -1274,6 +1341,16 @@
         <source>uploading</source>
         <translation>wysyłanie</translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1282,10 +1359,6 @@
         <translation>Wyrzuć</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Zabroń dołączania</translation>
     </message>
@@ -1337,10 +1410,6 @@
         <translation>Pełny ekran</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Włącz dźwięk</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Pokazuj FPS</translation>
     </message>
@@ -1349,14 +1418,6 @@
         <translation>Inny sposób wyświetlania obrażeń</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>WÅ‚Ä…cz muzykÄ™</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Pełnoekranowe menu</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Dodaj czas i datÄ™ do nazwy pliku</translation>
     </message>
@@ -1365,18 +1426,6 @@
         <translation>Pokaż opisy broni</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Włącz dźwięki w menu</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>WÅ‚Ä…cz muzykÄ™ w menu</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Efekty w menu</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation>Zapisz hasło</translation>
     </message>
@@ -1396,14 +1445,38 @@
         <source>Use game resolution</source>
         <translation>Użyj rozdzielczości z gry</translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>wygenerowana mapa...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Człowiek</translation>
     </message>
@@ -1416,14 +1489,6 @@
         <translation>(Domyślny)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>wygenerowany labirynt...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Misja</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Społeczność</translation>
     </message>
@@ -1440,10 +1505,6 @@
         <translation>W toku</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>Mapa rysowana ręcznie...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Wyłączone</translation>
     </message>
@@ -1480,10 +1541,6 @@
         <translation>Góra-dół</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>Trzęsący się obraz</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Czer/Błęk w odc. szar</translation>
     </message>
@@ -1515,22 +1572,10 @@
         <translation>Członkowie drużyny</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Ustawienia klawiszy</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Fort</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation>Drużyny</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Ustawienia dźwięku/grafiki</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Gra sieciowa</translation>
     </message>
@@ -1551,26 +1596,6 @@
         <translation>Ustawienia drużyn</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Różne</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Schematy i uzbrojenie</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation>WÅ‚asne kolory</translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation>Różne</translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation>Ustawienia nagrywania</translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation>Filmy</translation>
     </message>
@@ -1578,30 +1603,10 @@
         <source>Description</source>
         <translation>Opis</translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation>Ustawienia proxy</translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
     <message>
-        <source>Developers:</source>
-        <translation>Twórcy:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafika:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>TÅ‚umaczenia:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Szczególne podziękowania:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Uzbrojenie</translation>
     </message>
@@ -1634,10 +1639,6 @@
         <translation>Wersja</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Dźwięki:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Początkowa głośność</translation>
     </message>
@@ -1666,10 +1667,6 @@
         <translation>Zrzuty skrzyń</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Ustawienia gry</translation>
-    </message>
-    <message>
         <source>Mines Time</source>
         <translation>Czas detonacji min</translation>
     </message>
@@ -1714,11 +1711,6 @@
         <translation>Rada:</translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Ta wersja testowa jest w fazie produkcji i może nie być kompatybilna z innymi wersjami gry.
-Niektóre funkcje mogą nie działać lub być niekompletne. Używaj na własne ryzyko!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Jakość</translation>
     </message>
@@ -1795,10 +1787,6 @@
         <translation>Tagi (oddzielone przecinkami): </translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation>Podsumowanie </translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation>Opis</translation>
     </message>
@@ -1826,6 +1814,38 @@
         <source>Bitrate (Kbps)</source>
         <translation>Bitrate (Kbps)</translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Pełny ekran</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1864,10 +1884,6 @@
         <translation>Powiązanie plików nie powiodło się.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation>Wypełnij wszystkie pola</translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation>BÅ‚Ä…d logowania na google.com:</translation>
@@ -1914,18 +1930,6 @@
         <translation>Wszystkie powiązania plików zostały ustawione</translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation>Pomyślnie utworzono wpis na hedgewars.googlecode.com </translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation>BÅ‚Ä…d podczas logowania do google.com</translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation>Bład podczas wysyłania informacji. Spróbuj ponownie później lub odwiedź hedgewars.googlecode.com)</translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation>BÅ‚Ä…d</translation>
     </message>
@@ -2077,16 +2081,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation>Na pewno chcesz usunÄ…c zestaw broni &apos;%1&apos;?</translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Nick</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Podaj swój nick</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2144,26 +2169,10 @@
         <translation>Wczytaj</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Ustawienia</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Gotowe</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Losowa Drużyna</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Powiąż typy plików z Hedgewars</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>Więcej</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation>Więcej informacji</translation>
     </message>
@@ -2256,6 +2265,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Anuluj</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2283,106 +2311,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Wampiryzm</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artyleria</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Tryb fortów</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Rozdziel drużyny</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Niezniszczalny teren</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Dodaj ramkÄ™</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Niska grawitacja</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Celownik laserowy</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Nieśmiertelność</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Losowa kolejność</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Król</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Rozmieść jeże</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Wspólna amunicja</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Wyłącz mosty</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Wyłącz dodatki terenu</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Tryb przetrwania</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Niekończący się atak</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Resetuj Uzbrojenie</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Oddzielna amunicja</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Odnów życie</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Wyłącz wiatr</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Więcej wiatru</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Zespół</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Dodaj ramkÄ™ na dole</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Anuluj</translation>
     </message>
 </context>
 <context>
@@ -2500,11 +2443,6 @@
         <translation>zrzut ekranu</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>opisy jeży</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>wyjście</translation>
     </message>
@@ -2556,33 +2494,33 @@
         <source>record</source>
         <translation>nagrywaj</translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Podstawowe sterowanie</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Broń</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Kamera i kursor</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Inne</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Uzbrojenie</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Różne</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Poruszanie się jeżem i strzelanie:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Omiń dziury i przeszkody, skacząc:</translation>
     </message>
@@ -2646,6 +2584,10 @@
         <source>Record video:</source>
         <translation>Nagraj wideo:</translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">Endereço IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Editar esquemas</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Quando esta opção está habilitada a seleção de um esquema de jogo implicará em auto seleção do esquema de armas</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Seu apelido %1 é
-registrado no Hedgewars.org
-Por favor, forneça sua senha
-ou escolha outro apelido:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Apelido</translation>
     </message>
@@ -165,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mapa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Temas</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtro</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Todos</translation>
     </message>
@@ -216,10 +335,6 @@
         <translation>Excêntrico</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Tipo</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Túneis estreitos</translation>
     </message>
@@ -228,29 +343,97 @@
         <translation>Túneis médios</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Túneis grandes</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Ilhas pequenas</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Ilhas médias</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Ilhas grandes</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translatorcomment>checar</translatorcomment>
         <translation type="unfinished">Semeie</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation type="unfinished">Esquema</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Aleatório</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Carregar mapa</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -322,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Senha</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -338,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -345,6 +554,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -363,6 +579,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -394,6 +621,38 @@
         <source>Set data</source>
         <translation>Atribuir Dados</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Geral</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -448,8 +707,40 @@
         <translation>Geral</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Avançado</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Chapéu</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Nome</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Equipe Aleatória</translation>
     </message>
 </context>
 <context>
@@ -530,268 +821,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Use a mesma cor que um amigo para jogar como uma equipe única. Cada um controlará seus próprios ouriços, mas vencerão em equipe (ou perderão).</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Algumas armas que fazem pouco dano podem ser mais que devastadoras na situação certa. Tente usar a Desert Eagle para derrubar vários ouriços na água.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Se você não tem certeza se quer desperdiçar munição ou ítens, passe a vez. Mas não deixe muitos turnos passarem ou chegará a Morte Súbita!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Se você quiser evitar que outros usem seu apelido no servidor oficial, registre-o em http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Cansado do jogo padrão? Tente uma das missões - elas oferecem diferentes modos de jogo dependendo da sua escolha.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>O jogo irá, por padrão, sempre gravar o último jogo como demo. Selecione &quot;Jogo Local&quot; e use o botão &quot;Demos&quot; no canto inferior direito para assitir ou gerenciá-los.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars possui código aberto e é grátis, nós o desenvolvemos em nosso tempo livre. Se você encontrou problemas peça ajuda em nossos fóruns, mas não espere ser atendido 24 horas por dia!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars possui código aberto e é grátis, nós o desenvolvemos em nosso tempo livre. Se você deseja ajudar, pode doar ou contribuir com seu trabalho!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars possui código aberto e é grátis, nós o desenvolvemos em nosso tempo livre. Compartilhe com sua família e amigos!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>De tempos em tempos ocorrem torneios. Esses eventos podem ser acompanhados através do endereço http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars está disponível em diversas linguages! Se você acha que a tradução não te satisfaz ou não é compatível, contacte-nos!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars pode ser jogado em muitos sistemas operacionais, incluindo Windows, Mac OS X e Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Lembre-se que você pode selecionar suas próprias regras em jogos locais ou em rede. Você não está limitado ao &quot;Jogo Simples&quot;.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Não jogue por diversas horas sem descansar! De uma pausa a cada hora.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Se sua placa de vídeo não é capaz de suportar aceleração OpenGL, tente ativar a opção de &quot;Qualidade Reduzida&quot; para melhorar a performance.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Somos abertos para sugestões e críticas construtivas. Se você não gosta de alguma coisa ou teve uma grande idéia, nos avise!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Seja sempre educado, especialmente quando jogar on line, pois pode haver menores jogando com ou contra você!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Modos especiais de jogo, como Vampirismo ou Karma permitem desenvolver novas táticas. Tente-os em um jogo personalisado!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Não instale este jogo em computadores que não seja permitido (escola, trabalho, universidade). Solicite isso ao responsável!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars pode ser um jogo perfeito nos intervalos! Apenas certifique-se de não adicionar muitos ouriços ou usar um mapa muito grande! Reduzir o tempo de turno e a vida também pode ajudar.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Nenhum ouriço foi ferido para fazer este jogo.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars é um jogo de Código Aberto e grátis que criamos em nosso tempo livre. Se alguém te vendeu este jogo, você deveria pedir reembolso!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Conecte um ou mais joysticks antes de começar o jogo para poder usá-los para controlar a sua equipe.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Crie uma conta em %1 para evitar que outros usem seu apelido quando jogar no servidor oficial.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Se sua placa gráfica não tem aceleração gráfica OpenGl, tente atualizar os drivers relacionados.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Há 3 diferentes pulos. Aperte [pulo alto] 2 vezes para fazer um pulo alto para trás.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translatorcomment>O que é o colchetes?</translatorcomment>
-        <translation>Medo de cair de um desfiladeiro? Mantenha pressionado [mira precisa] para virar à [esquerda] or [direita] sem se mover.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Algumas armas necessitam estratégias especiais ou muito treino, então não desista de uma arma ou utilidade se você errou em seu uso.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>Muitas armas não funcionarão após tocar na água. A Abelha e o bolo são excessões a regra.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>O Velho Limburger causa uma pequena explosão. Porém, o vento carregará uma nuvem fedorenta que poderá envenenar muitos ouriços.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>O Ataque com Piano é o mais violento ataque aéreo. Você perderá seu ouriço ao executá-lo, logo, há uma grande contra-partida.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Minas Adesivas são a arma perfeita para criar pequenas reações em cadeias, colocando ouriços inimigos em situações complicadas.... ou na água</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>O Martelo é mais efetivo quando usado em pontes ou vigas. Ouriços atingidos atravessarão o chão.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Se você está preso atrás de um ouriço inimigo, use o Martelo para se libertar sem sofrer danos.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>A distância máxima que o Bolo anda depende do terreno por onde ele passa. Use [ataque] para detoná-lo antes.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>O Lança-Chamas é uma arma porém pode ser usado para cavar túneis também.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Quer saber quem está por trás desse jogo? Clique no logo do Hedgewars no menu principal para ver os créditos.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Gostou de Hedgewars? Se torne um fã no %1 ou nos siga pelo %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Desenhe suas próprias tumbas, chapéus, bandeiras ou até mapas e temas! Mas observe que você terá que compartilhá-los para jogar online.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Realmente quer usar um chapéu específico? Doe para o Hedgewars e receba um chapéu exclusivo!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Mantenha a sua placa de vídeo atualizada para evitar problemas ao jogar este jogo.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Você pode encontrar os arquivos de configuração em &quot;Meus Documentos\Hedgewars&quot;. Crie cópias ou leve os arquivos com você, mas não edite eles manualmente.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Você pode associar os arquivos relacionados ao Hedgewars (jogos salvos e gravações demo), podendo abrí-los diretamente do gerenciador de arquivos ou do navegador</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Quer economizar corda? Solte-a quando estiver no meio do ar e então atire de novo. Se você não tocar o solo, você reutilizará a corda e não desperdiçará-la do seu arsenal!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Você pode encontrar os arquivos de configuração do Hedgewars em &quot;Library/Application Support/Hedgewars&quot; no seu diretório base. Crie backups ou leve os arquivos com você, mas não os edite manualmente.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished">Você pode encontrar os arquivos de configuração do Hedgewars em &quot;.hedgewars/&quot; no seu diretório base. Crie backups ou leve os arquivos com você, mas não os edite manualmente.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -819,6 +856,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -826,6 +871,10 @@
         <source>Start</source>
         <translation>Começar</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -833,23 +882,12 @@
         <source>Control</source>
         <translation>Controle</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Jogo na rede local</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Servidor Oficial</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
+        <source>Start</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -896,10 +934,6 @@
         <translation>Apagar esquema de armas</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Geral</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Avançado</translation>
     </message>
@@ -939,6 +973,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Equipes</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armas</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1138,18 +1260,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1158,26 +1272,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Carregar</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1223,14 +1325,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1238,6 +1332,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1246,10 +1350,6 @@
         <translation>Chutar</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Iniciar</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Restringir Participação</translation>
     </message>
@@ -1297,10 +1397,6 @@
         <translation>Tela cheia</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Habilitar sons</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Mostrar FPS (Performance)</translation>
     </message>
@@ -1309,14 +1405,6 @@
         <translation>Mostrar dano de maneira alternativa</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Habilitar música</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Interface em tela cheia</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Adicionar data e hora no nome do arquivo</translation>
     </message>
@@ -1329,18 +1417,6 @@
         <translation>Mostrar instruções no menu de armas</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Habilitar sons da interface</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Habilitar música da interface</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Efeitos da interface</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1360,14 +1436,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>mapa gerado...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Humano</translation>
     </message>
@@ -1380,14 +1480,6 @@
         <translation>(Padrão do sistema)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>labirinto gerado...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Missão</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Comunidade</translation>
     </message>
@@ -1404,10 +1496,6 @@
         <translation>Em progresso</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished">mapa desenhado a mão...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1444,10 +1532,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1479,22 +1563,10 @@
         <translation>Membros da equipe</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Associação de teclas</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Forte</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation>Equipes</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Opções de áudio e gráficos</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Jogo em rede</translation>
     </message>
@@ -1515,26 +1587,6 @@
         <translation>Opções de Equipe</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Misc</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Esquemas e Armas</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1542,30 +1594,10 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
     <message>
-        <source>Developers:</source>
-        <translation>Desenvolvedores:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Arte:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Traduções:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Agradecimentos especiais:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Armas</translation>
     </message>
@@ -1598,10 +1630,6 @@
         <translation>Versão</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Sons:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Volume inicial</translation>
     </message>
@@ -1638,10 +1666,6 @@
         <translation>Caixas caem</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Esquema de jogo</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Minas falhas</translation>
     </message>
@@ -1678,10 +1702,6 @@
         <translation>Dica:</translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Esta versão do Hedgewars é um trabalho em progresso e pode não ser compatível com outras versões do jogo. Algumas coisas podem não funcionar ou podem estar incompletas. Use a sua conta e risco!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Qualidade</translation>
     </message>
@@ -1756,10 +1776,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1787,6 +1803,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Tela cheia</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1825,10 +1873,6 @@
         <translation>Associação de arquivos falhou.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1875,18 +1919,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2034,16 +2066,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Apelido</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Entre com seu apelido</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2101,26 +2154,10 @@
         <translation>Carregar</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Configuração</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Pronto</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Equipe Aleatória</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Associar extensão de arquivos.</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2213,6 +2250,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2241,107 +2297,22 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirismo</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artilharia</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Modo de Forte</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Dividir Equipes</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Terreno Sólido</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Adicionar Bordas</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Baixa Gravidade</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Mira Laser</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnerabilidade</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Ordem Aleatória</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Rei</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Posicionar Ouriços</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Clan Compartilha Armas</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Desabilitar Vigas</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Desabilitar objetos do terreno</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>AI Modo de Sobrevivência</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Ataques Ilimitados</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Reiniciar Armas</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Munição por Ouriço</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Restaurar Vida</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished">Desativar Vento</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished">Mais Vento</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Add Bottom Border</source>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
 </context>
 <context>
     <name>binds</name>
@@ -2458,12 +2429,6 @@
         <translation>capturar</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>informação dos
-ouriços</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>sair</translation>
     </message>
@@ -2515,33 +2480,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Controles Básicos</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Controles das armas</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Controle de câmera e cursor</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Outros</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Armas</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Mova seu ouriço e mire:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Atravesse buracos e obstáculos pulando:</translation>
     </message>
@@ -2605,6 +2570,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Editar esquemas</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Com esta opção activada o esquema de jogo irá automaticamente seleccionar uma arma</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation>Opções de Jogo</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation>Não foi possível gravar o StyleSheet em %1</translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation>%1 não é um comando valido!</translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation>Jogo abortado</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation>O nome de utilizador %1 está
-registado em Hedgewars.org
-Por favor digita a tua palavra passe ou escolhe
-outro nome de utilizador no menu de configuração:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation>Não foi fornecida uma palavra passe.</translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation>Nome de utilizador</translation>
     </message>
@@ -166,6 +244,59 @@
         <translation>Alguem já está a utilizar o teu nome de utilizador %1 no servidor.
 Por favor escolhe outro nome de utilizador:</translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -181,18 +312,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mapa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Temas</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtro</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Todos</translation>
     </message>
@@ -217,10 +336,6 @@
         <translation>Invulgar</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Tipo</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Túneis pequenos</translation>
     </message>
@@ -229,28 +344,96 @@
         <translation>Túneis medios</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Túneis grandes</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Ilhas flutuantes pequenas</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Ilhas flutuantes médias</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Ilhas flutuantes grandes</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Semente</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Definir</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished">Desenhado à mão</translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Aleatório</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Carregar mapa desenhado</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Mapas Desenhados</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Todos os ficheiros</translation>
     </message>
 </context>
 <context>
@@ -276,7 +459,7 @@
     </message>
     <message>
         <source>Connection refused</source>
-        <translation>Conexão rejeitada</translation>
+        <translation>Ligação rejeitada</translation>
     </message>
     <message>
         <source>Room destroyed</source>
@@ -284,7 +467,7 @@
     </message>
     <message>
         <source>Quit reason: </source>
-        <translation>Motivo de saída: </translation>
+        <translation>Motivo: </translation>
     </message>
     <message>
         <source>You got kicked</source>
@@ -322,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation>Palavra-passe</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -338,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -345,42 +554,42 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Duração: %1m %2s
+</translation>
     </message>
     <message>
         <source>Video: %1x%2, </source>
-        <translation type="unfinished">Vídeo:  %1x%2, </translation>
+        <translation>Vídeo: %1x%2, </translation>
     </message>
     <message>
         <source>%1 fps, </source>
-        <translation type="unfinished">%1 fps, </translation>
+        <translation>%1 fps, </translation>
     </message>
     <message>
         <source>Audio: </source>
-        <translation type="unfinished">Audio: </translation>
+        <translation>Audio: </translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>LibavIteraction</name>
-    <message>
-        <source>Duration: %1m %2s</source>
-        <translation type="obsolete">Duração: %1m %2s</translation>
-    </message>
-    <message>
-        <source>Video: %1x%2, </source>
-        <translation type="obsolete">Vídeo:  %1x%2, </translation>
-    </message>
-    <message>
-        <source>%1 fps, </source>
-        <translation type="obsolete">%1 fps, </translation>
-    </message>
-    <message>
-        <source>Audio: </source>
-        <translation type="obsolete">Audio: </translation>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -413,6 +622,38 @@
         <source>Set data</source>
         <translation>Gravar modificações</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Geral</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -467,8 +708,40 @@
         <translation>Geral</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Avançado</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Chapéu</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Nome</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Equipa aleatória</translation>
     </message>
 </context>
 <context>
@@ -492,8 +765,8 @@
     <message numerus="yes">
         <source>The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.</source>
         <translation>
-            <numerusform>O extreminador da ronda foi &lt;b&gt;%1&lt;/b&gt; com &lt;b&gt;%2&lt;/b&gt; morto num unico turno.</numerusform>
-            <numerusform>O extreminador da ronda foi &lt;b&gt;%1&lt;/b&gt; com &lt;b&gt;%2&lt;/b&gt; mortes num unico turno.</numerusform>
+            <numerusform>O exterminador da ronda foi &lt;b&gt;%1&lt;/b&gt; com &lt;b&gt;%2&lt;/b&gt; morto num unico turno.</numerusform>
+            <numerusform>O exterminador da ronda foi &lt;b&gt;%1&lt;/b&gt; com &lt;b&gt;%2&lt;/b&gt; mortes num unico turno.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
@@ -543,273 +816,20 @@
     <name>PageInfo</name>
     <message>
         <source>Open the snapshot folder</source>
-        <translation>Abrir a pasta com as capturas de ecrã</translation>
+        <translation>Abrir a pasta de capturas de ecrã</translation>
     </message>
 </context>
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Simplesmente selecciona a mesma cor de outro jogador para jogarem em equipa. Continuas a ter total controlo dos teus ouriços, mas ganham ou perdem juntos.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Algumas armas podem não fazer muito dano, mas em ocasiões especificas podem-se demonstrar bastante mais letais. Experimenta usar a Desert Eagle para empurrar varios ouriços para a água.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Se não tens a certeza do que fazer a seguir não desperdiçes munições, passa o turno. Mas não desperdices muito tempo, a Morte Súbita aproxima-se.</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Se não queres que outros usem o teu nome de utilizador preferido no servidor oficial, regista-o em http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Estás cansado do modo de jogo habitual? Experimenta uma das missões - existem várias por onde escolher, e todas com objectivos um pouco diferentes.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Por defeito, o ultimo jogo em que participaste é sempre gravado como &apos;demo&apos;. Selecciona &apos;Jogo Local&apos; e aí a opção &apos;Demos&apos; no canto inferior direito para os gerir ou reproduzir.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>O Hedgewars é Open Source e Freeware, desenvolvido nos tempos livres. Se tiveres algum problema pergunta nos fóruns, mas por favor não esperes suporte 24/7!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>O Hedgewars é Open Source e Freeware, desenvolvido nos tempos livres. Se gostares do jogo podes contribuir com uma pequena doação ou o teu próprio trabalho!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>O Hedgewars é Open Source e Freeware, desenvolvido nos tempos livres. Partilha-o com a família e amigos como quiseres!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>De tempos a tempos realizam-se torneios oficiais. Todos estes eventos são anunciados em http://www.hedgewars.org/ com alguns dias de antecedência.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>O Hedgewars está disponível em vários idiomas. Se a tradução do teu idioma está desactualizada ou em falta, não hesites em contactar-nos!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>O Hedgewars está disponível para vários sistemas operativos incluindo Microsoft Windows, Mac OS X e Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Lembra-te que tens sempre a opção de poder jogar na tua rede local ou online. Não estás restrito ao modo de Jogo Local.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Lembra-te de fazer pequenos intervalos durante sessões de jogo prolongadas.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Se a tua placa gráfica não é capaz de fornecer aceleração por hardware para OpenGL experimenta activar o modo de baixa qualidade para melhorar a performance.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Estamos abertos a sugestões e críticas construtivas. Se há algo que não gostas em particular ou tiveste uma boa ideia, deixa-nos saber!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Especialmente durante partidas online é importante ser educado. Lembra-te que podem haver menores a jogar com ou contra ti!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Modos de jogo especiais como &apos;Vampirismo&apos; ou &apos;Karma&apos; permitem-te desenvolver tácticas completamente novas! Experimenta-os num jogo personalizado!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Não deves instalar o Hedgewars em computadores que não te pertençam (escola, universidade, trabalho, etc.). Por favor contacta o responsável caso o pretendas fazer.</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>O Hedgewars é perfeito para pequenos jogos durante intervalos. Tem apenas a certeza que não adicionas muitos ouriços ou usas um mapa muito grande. Reduzir o tempo e pontos de vida pode ajudar também.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Nenhum ouriço foi mal tratado durante a produção deste jogo.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>O Hedgewars é Open Source e Freeware desenvolvido durante o tempo livre. Se alguem te vendeu o jogo, tente obter o reembolso!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Conecta um ou mais comandos antes de lançar o jogo para que seja possível configura-los com as tuas equipas.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Cria uma conta em http://www.hedgewars.org/ para prevenir que outros usem o teu nome de utilizador favorito no servidor oficial.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Se a tua placa gráfica se está a demonstrar incapaz de fornecer aceleração gráfica em OpenGL, experimenta actualizar os drivers da mesma.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Existem três diferentes tipos de salto. Pressiona [salto alto] duas vezes para fazer um salto muito alto para trás.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Com medo de cair de um penhasco? Deixa o [botão de precisão] pressionado e vira-te para a [direita] ou [esquerda] sem sair do sitio.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Algumas armas requerem estratégias especiais ou imensa prática, por isso não desistas imediatamente dessa ferramenta em particular se falhares o alvo.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>A maiora das armas deixa de funcionar se tocarem na água. A Abelha Teleguiada e o Bolo são excepções a esta regra.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>O Limburger Venho causa apenas uma pequena explosão. No entanto a pequena nuvem malcheirosa, afectada pelo vento, pode envenenar vários ouriços de uma vez.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>O Piano é o ataque aéreo que mais potencial dano causa. No entanto uma enorme desvantagem, é necessario sacrificar um ouriço para o utilizar.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>As Minas Pegajosas são a arma ideal para com pequenas explosões em cadeia empurrar ouriços para situações terríveis... ou para a água.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>O melhor local para usar o Martelo é em pontes ou vigas. Os ouriços atingidos nestes locais vão simplesmente furar pelo chão.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Se ficares preso atrás de um ouriço inimigo utiliza o Martelo para te libertares sem ser necessário levar dano de uma explosão.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>A distancia máxima que o Bolo é capaz de alcançar depende do terreno que tenha de ultrapassar. Podes também utilizar [ataque] para o detonar a qualquer altura.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Embora o Lança-chamas seja uma arma, pode também ser usado para escavar túneis.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Gostavas de saber quem está por traz deste jogo? Clica no logótipo do Hedgewars no menu inicial para aceder aos créditos.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Gostas do Hedgewars? Torna-te fã no %1 ou segue-nos pelo %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Está à vontade para desenhar as tuas próprias sepulturas, chapéus, bandeiras ou mesmo mapas e temas! Tem em nota que vai ser necessário partilha-los algures para que os consigas usar online.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Gostavas poder usar um chapéu em particular que ainda não existe? Faz uma pequena doação para este projecto e recebe um chapéu exclusivo à tua escolha!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Mantém os drivers da placa gráfica actualizados de forma a evitar problemas com o jogo.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Podes encontrar os ficheiros de configuração do Hedgewars em &quot;Documentos\Hedgewars&quot;. Cria cópias de segurança ou leva os ficheiros contigo, apenas não os edites.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>É possivel associar os ficheiros relacionados com o Hedgewars (partidas e demonstrações) directamente com o jogo para que seja possivel lançalos directamente do teu explorador de ficheiros ou internet favorito.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Gostavas de poupar algumas cordas? Solta a corda enquanto no ar e dispara-a novamente. Desde que não toques no solo podes reutilizar a usar a mesma corda quantas vezes quiseres!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Podes encontrar os ficheiros de configuração do Hedgewars em &quot;Library/Application Support/Hedgewars&quot; dentro da tua &quot;Pasta Pessoal&quot;. Cria cópias de segurança ou leva os ficheiros contigo, mas não os edites manualmente.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Podes encontrar os ficheiros de configuração do Hedgewars em &quot;.hedgewars&quot; dentro da tua &quot;Pasta Pessoal&quot;. Cria cópias de segurança ou leva os ficheiros contigo, mas não os edites manualmente.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>A versão do Hedgewars para Windows suporta Xfire. Não te esqueças de adicionar o Hedgewars à tua lista de jogos para que os teus amigos te possam ver a jogar.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Utiliza um Molotov ou o Lança-chamas para temporariamente impedir outros ouriços de passar por áreas no terreno como túneis ou plataformas.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>A Abelha Teleguiada pode-se demonstrar complicada de utilizar. O grau a que consegue virar depende da sua velocidade, por isso experimenta lança-la com diferentes níveis de força.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Conteúdo Transferível (DLC)</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation>Jogo Local</translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation>Joga num único computador</translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation>Jogo em Rede</translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation>Joga Hedgewars através da rede</translation>
     </message>
@@ -837,6 +857,14 @@
         <source>Edit game preferences</source>
         <translation>Editar as preferencias de jogo</translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -844,6 +872,10 @@
         <source>Start</source>
         <translation>Iniciar</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Editar as preferencias de jogo</translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -852,31 +884,12 @@
         <translation>Controlo</translation>
     </message>
     <message>
-        <source>DLC</source>
-        <translation type="obsolete">DLC</translation>
-    </message>
-    <message>
-        <source>Downloadable Content</source>
-        <translation type="obsolete">Conteúdo Transferível</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Jogo em LAN</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Servidor oficial</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation>Junta-te a centenas de jogadores online!</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation>Cria ou junta-te a jogo numa Rede Local</translation>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Editar as preferencias de jogo</translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Iniciar</translation>
     </message>
 </context>
 <context>
@@ -922,10 +935,6 @@
         <translation>Apagar esquema de armas</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation>Geral</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation>Avançado</translation>
     </message>
@@ -965,6 +974,94 @@
         <source>System proxy settings</source>
         <translation>Configuração proxy do sistema</translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Equipas</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished">Cores personalizadas</translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished">Definições do Proxy</translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Outras opções</translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished">Opções de criação de vídeo</translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -997,11 +1094,11 @@
     </message>
     <message>
         <source>Rules:</source>
-        <translation>Regras</translation>
+        <translation>Regras:</translation>
     </message>
     <message>
         <source>Weapons:</source>
-        <translation>Armas:</translation>
+        <translation>Armamento:</translation>
     </message>
     <message>
         <source>Search:</source>
@@ -1164,18 +1261,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation>Jogo Simples</translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation>Joga um jogo rápido contra o computador com configurações aleatórias</translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation>Multi-jogador</translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation>Joga alternadamente contra os teus amigos, ou o computador</translation>
     </message>
@@ -1184,26 +1273,14 @@
         <translation>Modo Campanha</translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation>Modo Treino</translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation>Pratica as tuas habilidades numa variedade de missões de treino</translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation>Demos</translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation>Assistir aos demos guardados</translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation>Carregar</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation>Carrega um jogo gravado anteriormente</translation>
     </message>
@@ -1249,14 +1326,6 @@
         <translation>(em progresso...)</translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation>Data: </translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation>Tamanho: </translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation>a converter</translation>
     </message>
@@ -1264,6 +1333,16 @@
         <source>uploading</source>
         <translation>a enviar</translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1276,10 +1355,6 @@
         <translation>Informação</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Iniciar</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Restringir entradas</translation>
     </message>
@@ -1327,18 +1402,6 @@
         <translation>Ecrã completo</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Menu em ecrã completo</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Activar som</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Activar música</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Mostrar FPS</translation>
     </message>
@@ -1355,18 +1418,6 @@
         <translation>Mostrar a ajuda no menu das armas</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Activar os sons no frontend</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Activar a musica no frontend</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Efeitos no frontend</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation>Guardar Palavra-passe</translation>
     </message>
@@ -1386,14 +1437,38 @@
         <source>Use game resolution</source>
         <translation>Utilizar a resolução do jogo</translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>mapa gerado...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Humano</translation>
     </message>
@@ -1406,14 +1481,6 @@
         <translation>(Definições por omissão)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>Missão</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation>labirinto gerado...</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Comunidade</translation>
     </message>
@@ -1430,10 +1497,6 @@
         <translation>Em progresso</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>mapa desenhado à mão...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Desactivado</translation>
     </message>
@@ -1470,10 +1533,6 @@
         <translation>Cima-baixo</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>&quot;Wiggle&quot;</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Vermelho/Ciano (tons de cinza)</translation>
     </message>
@@ -1509,18 +1568,6 @@
         <translation>Forte</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Associação de teclas</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Equipas</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Opções de Ãudio/Gráficos</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Jogo em rede</translation>
     </message>
@@ -1541,26 +1588,6 @@
         <translation>Configurações de Equipa</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Diversos</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Esquemas e Armamento</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation>Cores personalizadas</translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation>Outras opções</translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation>Opções de criação de vídeo</translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation>Vídeos</translation>
     </message>
@@ -1568,10 +1595,6 @@
         <source>Description</source>
         <translation>Descrição</translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation>Definições do Proxy</translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1588,26 +1611,6 @@
         <translation>Versão</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Programadores:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Arte:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Som:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Tradutores:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Agradecimentos especiais:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Armas</translation>
     </message>
@@ -1664,10 +1667,6 @@
         <translation>Queda de Caixas</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Esquema de jogo</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Minas Falsas</translation>
     </message>
@@ -1704,10 +1703,6 @@
         <translation>Dica: </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Qualidade</translation>
     </message>
@@ -1777,15 +1772,11 @@
     </message>
     <message>
         <source>Video description: </source>
-        <translation>Descrição do vídeo</translation>
+        <translation>Descrição do vídeo: </translation>
     </message>
     <message>
         <source>Tags (comma separated): </source>
-        <translation>Tags\Etiquetas (separados por virgula)</translation>
-    </message>
-    <message>
-        <source>Summary   </source>
-        <translation>Sumário   </translation>
+        <translation>Tags\Etiquetas (separados por virgula): </translation>
     </message>
     <message>
         <source>Description</source>
@@ -1815,6 +1806,38 @@
         <source>Bitrate (Kbps)</source>
         <translation>Bitrate (Kbps)</translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Ecrã completo</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1842,7 +1865,7 @@
     <name>QMessageBox</name>
     <message>
         <source>Connection to server is lost</source>
-        <translation>Conexão com o servidor perdida</translation>
+        <translation>Ligação com o servidor perdida</translation>
     </message>
     <message>
         <source>Error</source>
@@ -1853,10 +1876,6 @@
         <translation>Não foi possivel associar os ficheiros.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation>Por favor preencha todos os campos</translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation>Erro ao autenticar em google.com:
@@ -1905,24 +1924,12 @@
         <translation>Todos os ficheiros foram corretamente associados</translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation>Problema publicado com sucesso em hedgewars.googlecode.com</translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation>Ocorreu um erro durante a autenticação em google.com</translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation>Erro ao reportar o problema, por favor tenta novamente mais tarde (ou visita hedgewars.googlecode.com diretamente)</translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation>Main - Erro</translation>
     </message>
     <message>
         <source>Cannot create directory %1</source>
-        <translation>Não foi possível criar o directório %1</translation>
+        <translation>Não foi possível criar o diretório %1</translation>
     </message>
     <message>
         <source>Failed to open data directory:
@@ -2067,16 +2074,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation>Desejas mesmo apagar o esquema de armas &apos;%1&apos;?</translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Nome de utilizador</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Por favor insira o seu nome de utilizador</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2134,26 +2162,10 @@
         <translation>Carregar</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Configurar</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Preparado</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Equipa aleatória</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Associar com as extensões dos ficheiros</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>mais</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation>Mais informação</translation>
     </message>
@@ -2163,7 +2175,7 @@
     </message>
     <message>
         <source>Open videos directory</source>
-        <translation>Abrir o directório dos vídeos</translation>
+        <translation>Abrir o diretório de vídeos</translation>
     </message>
     <message>
         <source>Play</source>
@@ -2179,23 +2191,23 @@
     </message>
     <message>
         <source>Restore default coding parameters</source>
-        <translation type="unfinished"></translation>
+        <translation>Restaurar os parametros de conversão por omisão</translation>
     </message>
     <message>
         <source>Open the video directory in your system</source>
-        <translation type="unfinished"></translation>
+        <translation>Abrir o diretório de vídeos do teu sistema</translation>
     </message>
     <message>
         <source>Play this video</source>
-        <translation type="unfinished"></translation>
+        <translation>Reproduzir este vídeo</translation>
     </message>
     <message>
         <source>Delete this video</source>
-        <translation type="unfinished"></translation>
+        <translation>Apagar este vídeo</translation>
     </message>
     <message>
         <source>Upload this video to your Youtube account</source>
-        <translation type="unfinished"></translation>
+        <translation>Enviar este vídeo para a tua conta do Youtube</translation>
     </message>
 </context>
 <context>
@@ -2246,6 +2258,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2273,106 +2304,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirismo</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artilharia</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Modo Forte</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Separar Equipas</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Terreno Sólido</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Adicionar Limites</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Baixa Gravidade</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Mira Laser</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnerabilidade</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Ordem Aleatória</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Rei</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Posicionar Ouriços</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Clãs Partilham Armamento</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Desactivar Vigas</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Desactivar Objectos no Terreno</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Modo de Sobrevivência</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Restaurar Vida</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Ataques Ilimitados</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Restaurar o Armamento</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Armamento Por Ouriço</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Desactivar Vento</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Mais Vento</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Tag Team</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Adicionar limite inferior</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancelar</translation>
     </message>
 </context>
 <context>
@@ -2506,12 +2452,6 @@
         <translation>capturar</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>informação dos
-ouriços</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>sair</translation>
     </message>
@@ -2547,33 +2487,33 @@
         <source>record</source>
         <translation>gravar</translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Controlos basicos</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Controlos de armas</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Controlos de camara e cursor</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Outros</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Outras opções</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Movimentar os teus ouriços e apontar:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Ultrapassar fendas e obstaculos saltando:</translation>
     </message>
@@ -2637,6 +2577,10 @@
         <source>Record video:</source>
         <translation>Gravar vídeo:</translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_ro.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ro.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -41,25 +114,40 @@
         <translation>Edit weapons</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>Illegal ammo scheme</source>
-        <translation type="obsolete">Illegal ammo scheme</translation>
-    </message>
-    <message>
         <source>Edit schemes</source>
         <translation>Edit schemes</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -71,22 +159,6 @@
 <context>
     <name>HWChatWidget</name>
     <message>
-        <source>%1 *** %2 has been removed from your ignore list</source>
-        <translation type="obsolete">%1 *** %2 has been removed from your ignore list</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been added to your ignore list</source>
-        <translation type="obsolete">%1 *** %2 has been added to your ignore list</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been removed from your friends list</source>
-        <translation type="obsolete">%1 *** %2 has been removed from your friends list</translation>
-    </message>
-    <message>
-        <source>%1 *** %2 has been added to your friends list</source>
-        <translation type="obsolete">%1 *** %2 has been added to your friends list</translation>
-    </message>
-    <message>
         <source>%1 has been removed from your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
@@ -126,38 +198,14 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
     <message>
-        <source>new</source>
-        <translation type="obsolete">new</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
-        <source>Unable to start the server</source>
-        <translation type="obsolete">Unable to start the server</translation>
-    </message>
-    <message>
         <source>Cannot save record to file %1</source>
         <translation>Cannot save record to file %1</translation>
     </message>
     <message>
-        <source>Please select record from the list above</source>
-        <translation type="obsolete">Please select record from the list above</translation>
-    </message>
-    <message>
         <source>DefaultTeam</source>
         <translation>Default Team</translation>
     </message>
@@ -184,24 +232,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Password</translation>
-    </message>
-    <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Nickname</translation>
     </message>
@@ -214,6 +244,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -229,18 +312,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Map</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Themes</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>All</translation>
     </message>
@@ -265,10 +336,6 @@
         <translation>Wacky</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Type</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -277,27 +344,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Random</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -339,20 +474,6 @@
         <translation>You got kicked</translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Password</translation>
-    </message>
-    <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password
-or pick another nickname:</source>
-        <translation type="obsolete">Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password
-or pick another nickname:</translation>
-    </message>
-    <message>
         <source>%1 *** %2 has joined the room</source>
         <translation>%1 *** %2 has joined the room</translation>
     </message>
@@ -369,20 +490,6 @@
         <translation>%1 *** %2 has left</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="obsolete">Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</translation>
-    </message>
-    <message>
-        <source>Nickname</source>
-        <translation type="obsolete">Nickname</translation>
-    </message>
-    <message>
         <source>User quit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -398,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Password</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -414,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -421,6 +554,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -439,18 +579,21 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
     <message>
-        <source>Server message:</source>
-        <translation type="obsolete">Server message:</translation>
-    </message>
-    <message>
-        <source>Set message</source>
-        <translation type="obsolete">Set message</translation>
-    </message>
-    <message>
         <source>Clear Accounts Cache</source>
         <translation>Clear Accounts Cache</translation>
     </message>
@@ -478,6 +621,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">General</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished">Refresh</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -485,10 +660,6 @@
         <source>Connecting...</source>
         <translation>Connecting...</translation>
     </message>
-    <message>
-        <source>Cancel</source>
-        <translation type="obsolete">Cancel</translation>
-    </message>
 </context>
 <context>
     <name>PageDrawMap</name>
@@ -536,33 +707,45 @@
         <translation>General</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Advanced</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Name</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Random Team</translation>
     </message>
 </context>
 <context>
     <name>PageGameStats</name>
     <message>
-        <source>&lt;p&gt;The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.&lt;/p&gt;</translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kill in a turn.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.&lt;/p&gt;</numerusform>
-            <numerusform></numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.&lt;/p&gt;</source>
-        <translation type="obsolete">
-            <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehog was killed during this round.&lt;/p&gt;</numerusform>
-            <numerusform>&lt;p&gt;A total of &lt;b&gt;%1&lt;/b&gt; hedgehogs were killed during this round.&lt;/p&gt;</numerusform>
-            <numerusform></numerusform>
-        </translation>
-    </message>
-    <message>
         <source>Details</source>
         <translation>Details</translation>
     </message>
@@ -644,275 +827,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Local Game (Play a game on a single computer)</source>
-        <translation type="obsolete">Local Game (Play a game on a single computer)</translation>
-    </message>
-    <message>
-        <source>Network Game (Play a game across a network)</source>
-        <translation type="obsolete">Network Game (Play a game across a network)</translation>
-    </message>
-    <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -940,6 +862,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -947,16 +877,9 @@
         <source>Start</source>
         <translation>Start</translation>
     </message>
-</context>
-<context>
-    <name>PageNet</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>Please select server from the list above</source>
-        <translation type="obsolete">Please select server from the list above</translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -966,35 +889,12 @@
         <translation>Control</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>Please enter room name</source>
-        <translation type="obsolete">Please enter room name</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>LAN game</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Official server</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
     </message>
 </context>
 <context>
@@ -1012,18 +912,6 @@
         <translation>Delete team</translation>
     </message>
     <message>
-        <source>New weapon scheme</source>
-        <translation type="obsolete">New weapon scheme</translation>
-    </message>
-    <message>
-        <source>Edit weapon scheme</source>
-        <translation type="obsolete">Edit weapon scheme</translation>
-    </message>
-    <message>
-        <source>Delete weapon scheme</source>
-        <translation type="obsolete">Delete weapon scheme</translation>
-    </message>
-    <message>
         <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
         <translation>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</translation>
     </message>
@@ -1052,10 +940,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">General</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Advanced</translation>
     </message>
@@ -1095,18 +979,98 @@
         <source>HTTP proxy</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished">Network</translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Teams</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Weapons</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
     <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
         <source>Rename dialog</source>
         <translation>Rename dialog</translation>
     </message>
@@ -1114,18 +1078,6 @@
         <source>Enter new file name:</source>
         <translation>Enter new file name:</translation>
     </message>
-    <message>
-        <source>Cannot rename to</source>
-        <translation type="obsolete">Cannot rename to</translation>
-    </message>
-    <message>
-        <source>Cannot delete file</source>
-        <translation type="obsolete">Cannot delete file</translation>
-    </message>
-    <message>
-        <source>Please select record from the list</source>
-        <translation type="obsolete">Please select record from the list</translation>
-    </message>
 </context>
 <context>
     <name>PageRoomsList</name>
@@ -1138,18 +1090,6 @@
         <translation>Join</translation>
     </message>
     <message>
-        <source>Refresh</source>
-        <translation type="obsolete">Refresh</translation>
-    </message>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
         <source>Admin features</source>
         <translation>Administration</translation>
     </message>
@@ -1158,62 +1098,6 @@
         <translation>Room Name:</translation>
     </message>
     <message>
-        <source>This game is in lobby.
-You may join and start playing once the game starts.</source>
-        <translation type="obsolete">This game is in lobby.
-You may join and start playing once the game starts.</translation>
-    </message>
-    <message>
-        <source>This game is in progress.
-You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</source>
-        <translation type="obsolete">This game is in progress.
-You may join and spectate now but you&apos;ll have to wait for the game to end to start playing.</translation>
-    </message>
-    <message>
-        <source>%1 is the host. He may adjust settings and start the game.</source>
-        <translation type="obsolete">%1 is the host. He may adjust settings and start the game.</translation>
-    </message>
-    <message>
-        <source>Random Map</source>
-        <translation type="obsolete">Random Map</translation>
-    </message>
-    <message>
-        <source>Games may be played on precreated or randomized maps.</source>
-        <translation type="obsolete">Games may be played on precreated or randomized maps.</translation>
-    </message>
-    <message>
-        <source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
-        <translation type="obsolete">The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</translation>
-    </message>
-    <message>
-        <source>The Weapon Scheme defines available weapons and their ammunition count.</source>
-        <translation type="obsolete">The Weapon Scheme defines available weapons and their ammunition count.</translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 clients connected to this room.</source>
-        <translation type="obsolete">
-            <numerusform>There is %1 client connected to this room.</numerusform>
-            <numerusform>There are %1 clients connected to this room.</numerusform>
-            <numerusform></numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>There are %1 teams participating in this room.</source>
-        <translation type="obsolete">
-            <numerusform>There is %1 team participating in this room.</numerusform>
-            <numerusform>There are %1 teams participating in this room.</numerusform>
-            <numerusform></numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>Please enter room name</source>
-        <translation type="obsolete">Please enter room name</translation>
-    </message>
-    <message>
-        <source>Please select room from the list</source>
-        <translation type="obsolete">Please select room from the list</translation>
-    </message>
-    <message>
         <source>Rules:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1229,12 +1113,6 @@
         <source>Clear</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>The game you are trying to join has started.
-Do you still want to join the room?</source>
-        <translation type="obsolete">The game you are trying to join has started.
-Do you still want to join the room?</translation>
-    </message>
     <message numerus="yes">
         <source>%1 players online</source>
         <translation type="unfinished">
@@ -1259,10 +1137,6 @@
         <translation>Land can not be destroyed!</translation>
     </message>
     <message>
-        <source>Add an indestructable border around the terrain</source>
-        <translation type="obsolete">Add an indestructable border around the terrain</translation>
-    </message>
-    <message>
         <source>Lower gravity</source>
         <translation>Lower gravity</translation>
     </message>
@@ -1275,10 +1149,6 @@
         <translation>All hogs have a personal forcefield</translation>
     </message>
     <message>
-        <source>Enable random mines</source>
-        <translation type="obsolete">Enable random mines</translation>
-    </message>
-    <message>
         <source>Gain 80% of the damage you do back in health</source>
         <translation>Gain 80% of the damage you do back in health</translation>
     </message>
@@ -1397,38 +1267,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game (a quick game against the computer, settings are chosen for you)</source>
-        <translation type="obsolete">Simple Game (a quick game against the computer, settings are chosen for you)</translation>
-    </message>
-    <message>
-        <source>Multiplayer (play a hotseat game against your friends, or AI teams)</source>
-        <translation type="obsolete">Multiplayer (play a hotseat game against your friends, or AI teams)</translation>
-    </message>
-    <message>
-        <source>Training Mode (Practice your skills in a range of training missions)</source>
-        <translation type="obsolete">Training Mode (Practice your skills in a range of training missions)</translation>
-    </message>
-    <message>
-        <source>Demos (Watch recorded demos)</source>
-        <translation type="obsolete">Demos (Watch recorded demos)</translation>
-    </message>
-    <message>
-        <source>Load (Load a previously saved game)</source>
-        <translation type="obsolete">Load (Load a previously saved game)</translation>
-    </message>
-    <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1437,26 +1279,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Load</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1503,14 +1333,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1518,6 +1340,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1530,10 +1362,6 @@
         <translation>Info</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Restrict Joins</translation>
     </message>
@@ -1581,18 +1409,6 @@
         <translation>Fullscreen</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Frontend fullscreen</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Enable sound</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Enable music</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Show FPS</translation>
     </message>
@@ -1605,26 +1421,10 @@
         <translation>Append date and time to record file name</translation>
     </message>
     <message>
-        <source>Reduced quality</source>
-        <translation type="obsolete">Reduced quality</translation>
-    </message>
-    <message>
         <source>Show ammo menu tooltips</source>
         <translation>Show ammo menu tooltips</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Enable frontend sounds</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Enable frontend music</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Frontend effects</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1644,14 +1444,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>generated map...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Human</translation>
     </message>
@@ -1664,14 +1488,6 @@
         <translation>(System default)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>Mission</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1688,14 +1504,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Default</source>
-        <translation type="obsolete">Default</translation>
-    </message>
-    <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1732,10 +1540,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1771,22 +1575,6 @@
         <translation>Fort</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Key binds</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Teams</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Weapons</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Audio/Graphic options</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Net game</translation>
     </message>
@@ -1807,30 +1595,6 @@
         <translation>Team Settings</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Misc</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1854,30 +1618,6 @@
         <translation>Version</translation>
     </message>
     <message>
-        <source>This program is distributed under the GNU General Public License</source>
-        <translation type="obsolete">This program is distributed under the GNU General Public License</translation>
-    </message>
-    <message>
-        <source>Developers:</source>
-        <translation>Developers:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Art:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Sounds:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Translations:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Special thanks:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Weapons</translation>
     </message>
@@ -1890,10 +1630,6 @@
         <translation>Port:</translation>
     </message>
     <message>
-        <source>Net nick</source>
-        <translation type="obsolete">Net nick</translation>
-    </message>
-    <message>
         <source>Resolution</source>
         <translation>Resolution</translation>
     </message>
@@ -1938,10 +1674,6 @@
         <translation>Crate Drops</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Game scheme</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Dud Mines</translation>
     </message>
@@ -1970,10 +1702,6 @@
         <translation>Locale</translation>
     </message>
     <message>
-        <source>Restart game to apply</source>
-        <translation type="obsolete">Restart game to apply</translation>
-    </message>
-    <message>
         <source>Explosives</source>
         <translation>Explosives</translation>
     </message>
@@ -1982,10 +1710,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2022,10 +1746,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Password</source>
-        <translation type="obsolete">Password</translation>
-    </message>
-    <message>
         <source>% Get Away Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2064,10 +1784,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2095,6 +1811,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Fullscreen</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -2121,10 +1869,6 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <source>Network</source>
-        <translation type="obsolete">Network</translation>
-    </message>
-    <message>
         <source>Connection to server is lost</source>
         <translation>Connection to server is lost</translation>
     </message>
@@ -2133,38 +1877,10 @@
         <translation>Error</translation>
     </message>
     <message>
-        <source>Failed to open data directory:
-%1
-Please check your installation</source>
-        <translation type="obsolete">Failed to open data directory:
- %1
-Please check your installation</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Weapons</translation>
-    </message>
-    <message>
-        <source>Can not edit default weapon set</source>
-        <translation type="obsolete">Can not edit default weapon set</translation>
-    </message>
-    <message>
-        <source>Can not delete default weapon set</source>
-        <translation type="obsolete">Can not delete default weapon set</translation>
-    </message>
-    <message>
-        <source>Really delete this weapon set?</source>
-        <translation type="obsolete">Really delete this weapon set?</translation>
-    </message>
-    <message>
         <source>File association failed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation type="obsolete">Teams</translation>
-    </message>
-    <message>
         <source>Teams - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2197,22 +1913,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2375,28 +2075,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>Cannot create directory %1</source>
-        <translation type="obsolete">Cannot create directory %1</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
-        <source>Nickname</source>
-        <translation>Nickname</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Please enter your nickname</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2454,26 +2163,10 @@
         <translation>Load</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Setup</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Ready</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Random Team</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Associate file extensions</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2519,37 +2212,6 @@
     </message>
 </context>
 <context>
-    <name>QTableWidget</name>
-    <message>
-        <source>Room Name</source>
-        <translation type="obsolete">Room Name</translation>
-    </message>
-    <message>
-        <source>C</source>
-        <translation type="obsolete">C</translation>
-    </message>
-    <message>
-        <source>T</source>
-        <translation type="obsolete">T</translation>
-    </message>
-    <message>
-        <source>Owner</source>
-        <translation type="obsolete">Owner</translation>
-    </message>
-    <message>
-        <source>Map</source>
-        <translation type="obsolete">Map</translation>
-    </message>
-    <message>
-        <source>Rules</source>
-        <translation type="obsolete">Rules</translation>
-    </message>
-    <message>
-        <source>Weapons</source>
-        <translation type="obsolete">Weapons</translation>
-    </message>
-</context>
-<context>
     <name>RoomsListModel</name>
     <message>
         <source>In progress</source>
@@ -2597,6 +2259,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2624,125 +2305,21 @@
     </message>
 </context>
 <context>
-    <name>TCPBase</name>
-    <message>
-        <source>Error</source>
-        <translation type="obsolete">Error</translation>
-    </message>
-    <message>
-        <source>Unable to start the server: %1.</source>
-        <translation type="obsolete">Unable to start the server: %1.</translation>
-    </message>
-    <message>
-        <source>Unable to run engine: %1 (</source>
-        <translation type="obsolete">Unable to run engine: %1 (</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampirism</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artillery</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Fort Mode</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Divide Teams</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Solid Land</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Add Border</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Low Gravity</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Laser Sight</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Invulnerable</translation>
-    </message>
-    <message>
-        <source>Add Mines</source>
-        <translation type="obsolete">Add Mines</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Random Order</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>King</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Place Hedgehogs</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Clan Shares Ammo</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Disable Girders</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Cancel</translation>
     </message>
 </context>
 <context>
@@ -2876,12 +2453,6 @@
         <translation>capture</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>hedgehogs
-info</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>quit</translation>
     </message>
@@ -2917,33 +2488,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Basic controls</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Weapon controls</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Camera and cursor controls</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Other</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Weapons</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Move your hogs and aim:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Traverse gaps and obstacles by jumping:</translation>
     </message>
@@ -3007,6 +2578,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_ru.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -45,13 +118,36 @@
         <translation>Редактировать Ñхемы</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>При включении Ñтой опции выбор наÑтроек игры автоматичеÑки выберет Ñхему оружиÑ</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation>ÐаÑтройки игры</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -102,10 +198,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation>Ошибка при Ñохранении ÑÑ‚Ð¸Ð»Ñ Ð² %1</translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation>%1 не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ командой</translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -140,20 +232,6 @@
         <translation>Игра прекращена</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation>Ваше Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 
-зарегиÑтрировано на Ñайте hedgewars.org
-ПожалуйÑта, укажите ваш пароль в поле ввода внизу
-или выберите иное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² наÑтройках игры:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation>Пароль не указан.</translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation>ПÑевдоним</translation>
     </message>
@@ -167,6 +245,59 @@
         <translation>Кто-то уже иÑпользует ваш пÑевдоним %1 на Ñервере.
 ПожалуйÑта, выберите другой пÑевдоним:</translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -182,18 +313,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Карта</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Темы</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Фильтр</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Ð’Ñе</translation>
     </message>
@@ -218,10 +337,6 @@
         <translation>Ðеобычные</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Тип</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Маленькие туннели</translation>
     </message>
@@ -230,28 +345,96 @@
         <translation>Средние туннели</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Большие туннели</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Маленькие оÑтровки</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Средние оÑтровки</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Большие оÑтровки</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Зерно</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>УÑтановить</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished">РиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°</translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Случайно</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Загрузить риÑованную карту</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">РиÑованные карты</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Ð’Ñе файлы</translation>
     </message>
 </context>
 <context>
@@ -323,8 +506,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation>Пароль</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -339,6 +522,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -346,6 +555,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -364,25 +580,16 @@
         <source>Audio: </source>
         <translation type="unfinished">Ðудио: </translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
-    <name>LibavIteraction</name>
-    <message>
-        <source>Duration: %1m %2s
-</source>
-        <translation type="obsolete">ДлительноÑÑ‚ÑŒ: %1мин %2Ñек</translation>
-    </message>
-    <message>
-        <source>Video: %1x%2, </source>
-        <translation type="obsolete">Видео: %1x%2, </translation>
-    </message>
-    <message>
-        <source>%1 fps, </source>
-        <translation type="obsolete">%1 кадров/Ñек,</translation>
-    </message>
-    <message>
-        <source>Audio: </source>
-        <translation type="obsolete">Ðудио: </translation>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -415,6 +622,38 @@
         <source>Set data</source>
         <translation>УÑтановить данные</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">ОÑновные наÑтройки</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -469,8 +708,40 @@
         <translation>ОÑновные наÑтройки</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Дополнительно</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">ШлÑпа</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Ðазвание</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Ð¡Ð»ÑƒÑ‡Ð°Ð¹Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°</translation>
     </message>
 </context>
 <context>
@@ -557,267 +828,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Выберите тот же цвет команда, что у друга, чтобы играть в Ñоюзе. Ð’Ñ‹ будете управлÑÑ‚ÑŒ Ñвоими ежами, но выиграете или проиграете вмеÑте.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Ðекоторые виды Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð½Ð°Ð½Ð¾ÑÑÑ‚ небольшой урон, но могут наноÑить больший урон в правильной Ñитуации. Попробуйте иÑпользовать пиÑтолет Дезерт Игл, чтобы Ñтолкнуть неÑколько ежей в воду.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>ЕÑли вы не уверены в том, что хотите Ñделать и не хотите тратить ÑнарÑды, пропуÑтите ход. Ðо не терÑйте много времени, так как Ñмерть неизбежна!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>ЕÑли вы хотите предотвратить иÑпользование вашего пÑевдонима другими игроками на официальном игровом Ñервере, зарегиÑтрируйтеÑÑŒ на http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>ÐаÑкучила Ð¾Ð±Ñ‹Ñ‡Ð½Ð°Ñ Ð¸Ð³Ñ€Ð°? Попробуйте миÑÑии, имеющие различные виды Ñценариев.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>По умолчанию игры вÑегда запиÑывает поÑледнюю игру в виде демки. Выберите &quot;Локальную игру&quot; и нажмите кнопку &quot;Демки&quot; в правом нижнем углу, чтобы проиграть запиÑÑŒ.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars - Ñто открытое и Ñвободное программное обеÑпечение, которое мы Ñоздаём в наше Ñвободное времÑ. ЕÑли у Ð²Ð°Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑŽÑ‚ вопроÑÑ‹, задавайте их на нашем форуме, но пожалуйÑта, не ожидайте круглоÑуточной поддержки!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars - Ñто открытое и Ñвободное программное обеÑпечение, которое мы Ñоздаём в наше Ñвободное времÑ. ЕÑли вам понравилаÑÑŒ игра, помогите нам денежным вознаграждением или вкладом в виде вашей работы!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars - Ñто открытое и Ñвободное программное обеÑпечение, которое мы Ñоздаём в наше Ñвободное времÑ. РаÑпроÑтранÑйте его Ñреди друзей и членов Ñемьи!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Ð’Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ времени проводÑÑ‚ÑÑ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ðµ турниры. ПредÑтоÑщие ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð°Ð½Ð¾Ð½ÑируютÑÑ Ð½Ð° http://www.hedgewars.org/ за неÑколько дней.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars доÑтупен на многих Ñзыках. ЕÑли перевод на ваш Ñзык отÑутÑтвует или уÑтарел, Ñообщите нам!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars запуÑкаетÑÑ Ð½Ð° множеÑтве различных операционных ÑиÑтем, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Microsoft Windows, Mac OS X и Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Помните, что у Ð²Ð°Ñ ÐµÑÑ‚ÑŒ возможноÑÑ‚ÑŒ Ñоздать ÑобÑтвенную игру локально или по Ñети. Ð’Ñ‹ не ограничены кнопкой &quot;ПроÑÑ‚Ð°Ñ Ð¸Ð³Ñ€Ð°&quot;.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>ИграÑ, не забывайте делать небольшой перерыв Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ раз в чаÑ.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>ЕÑли ваша видеокарта не поддерживает уÑкорение OpenGL, попробуйте включить опцию &quot;низкое качеÑтво&quot;, чтобы улучшить производительноÑÑ‚ÑŒ.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Мы открыты Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ и конÑтруктивной критики. ЕÑли вам что-то не понравилоÑÑŒ или у Ð²Ð°Ñ Ð¿Ð¾ÑвилаÑÑŒ Ð¾Ñ‚Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð¸Ð´ÐµÑ, Ñообщите нам!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Ð˜Ð³Ñ€Ð°Ñ Ð¿Ð¾ Ñети, будьте оÑобенно вежливы и вÑегда помните, что Ñ Ð²Ð°Ð¼Ð¸ или против Ð²Ð°Ñ Ð¼Ð¾Ð³ÑƒÑ‚ играть дети!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>ОÑобые наÑтройки игры &quot;Вампиризм&quot; и &quot;Карма&quot; дают возможноÑÑ‚ÑŒ выработать Ñовершенно новую тактику. Попробуйте их!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Ðе Ñледует уÑтанавливать Hedgewars на компьютеры, не принадлежащие вам (в школе, на работе, в универÑитете и Ñ‚.п.). Ðе забудь ÑпроÑить Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñƒ ответÑтвенного лица!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars может отлично подойти Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ñ… матчей на перерывах. ПроÑто не добавлÑйте Ñлишком много ежей и не играйти на больших картах. Также можно уменьшить Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð»Ð¸ количеÑтво начального здоровьÑ.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>При подготовке игры не поÑтрадал ни один ёж.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars - Ñто открытое и Ñвободное программное обеÑпечение, которое мы Ñоздаём в наше Ñвободное времÑ. ЕÑли кто-то продал вам игру, потребуйте возврат денег!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>ПодÑоедините один или неÑколько геймпадов перед запуÑком игры, и вы Ñможете наÑтроить их Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>ЕÑли вы хотите предотвратить иÑпользование вашего пÑевдонима другими игроками на официальном игровом Ñервере, зарегиÑтрируйтеÑÑŒ на http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>ЕÑли ваша видеокарта не поддерживает уÑкорение OpenGL, попробуйте обновить видеодрайвер.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>ЕÑÑ‚ÑŒ три вида прыжков. Ðажмите [прыжок вверх] дважды, чтобы Ñделать очень выÑокий прыжок назад.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>БоитеÑÑŒ упаÑÑ‚ÑŒ Ñ Ð¾Ð±Ñ€Ñ‹Ð²Ð°? Ðажмите левый shift, чтобы повернутьÑÑ Ð²Ð»ÐµÐ²Ð¾ или вправо, не передвигаÑÑÑŒ.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Ðекоторые виды Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‚ оÑобых Ñтратегий или проÑто много тренировок, поÑтому не разочаровывайтеÑÑŒ в инÑтрументе, еÑли разок промахнётеÑÑŒ.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>БольшинÑтво видов Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð½Ðµ Ñработают при попадании в воду. Пчела и Торт - Ñто иÑключениÑ.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Старый Лимбургер взрываетÑÑ Ð½ÐµÑильно. Однако ветер, неÑущий зловонное облако, может отравить неÑколько ежей за раз.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>ФортепьÑновый удар - Ñто наиболее мощный из ударов Ñ Ð²Ð¾Ð·Ð´ÑƒÑ…Ð°. При иÑпользовании вы потерÑете ежа, в Ñтом его недоÑтаток.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Мины-липучки - отличный инÑтрумент Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¸Ñ… цепных реакций, от которых ёж попадет в неприÑтную Ñитуацию... или в воду.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Молот наиболее Ñффективен, когда иÑпользуетÑÑ Ð½Ð° моÑту или балке. Ударенный ёж пролетит Ñквозь землю.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>ЕÑли вы заÑÑ‚Ñ€Ñли позади ежа противника, иÑпользуйте Молот. чтобы оÑвободить ÑÐµÐ±Ñ Ð±ÐµÐ· риÑка потери Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¾Ñ‚ взрыва.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>ДиÑтанциÑ, которую проходит Торт, завиÑит от поверхноÑти. ИÑпользуйте клавишу атаки, чтобы Ñдетонировать его раньше.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Огнемёт - Ñто оружие, но он также может быть иÑпользован как инÑтрумент Ð´Ð»Ñ Ñ€Ñ‹Ñ‚ÑŒÑ Ñ‚ÑƒÐ½Ð½ÐµÐ»ÐµÐ¹.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Хотите узнать, кто Ñтоит за разработкой игры? Ðажмите на логотип Hedgewars в главном меню, чтобы увидеть ÑоÑтав разработчиков.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>ÐравитÑÑ Hedgewars? Станьте фанатом на %1 или Ñледите за нами на %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>РиÑуйте Ñвои варианты надгробий, шлÑп, флагов или даже карт и тем! Ðо не забудьте передать их Ñоперникам каким-либо образом Ð´Ð»Ñ Ð¸Ð³Ñ€Ñ‹ по Ñети.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Очень хочетÑÑ Ð¾Ñобенную шлÑпу? Сделайте пожертвование и получите ÑкÑклюзивную шлÑпу на выбор!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>ОбновлÑйте видеодрайвера, чтобы не было проблем во Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð³Ñ€Ñ‹.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Файлы конфигурации Hedgewars находÑÑ‚ÑÑ Ð² папке &quot;Мои документы\Hedgewars&quot;. Создавайте бÑкапы или переноÑите файлы, но не редактируйте их вручную.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Можно аÑÑоциировать файлы Hedgewars (ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸ демки игр) Ñ Ð¸Ð³Ñ€Ð¾Ð¹, чтобы запуÑкать их прÑмо из вашего любимого файлового менеджера или браузера.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Хотите ÑÑкономить верёвки? ОтпуÑтите верёвку в воздухе и ÑтрелÑйте Ñнова. Пока вы не затронете землю, вы можете иÑпользовать верёвку Ñколько угодно, не Ñ‚Ñ€Ð°Ñ‚Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ…!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Файлы конфигурации Hedgewars находÑÑ‚ÑÑ Ð² папке &quot;&quot;Library/Application Support/Hedgewars&quot;. Создавайте бÑкапы или переноÑите файлы, но не редактируйте их вручную.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Файлы конфигурации Hedgewars находÑÑ‚ÑÑ Ð² папке &quot;.hedgewars&quot;. Создавайте бÑкапы или переноÑите файлы, но не редактируйте их вручную.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>ВерÑÐ¸Ñ Hedgewars под операционную ÑиÑтему Windows поддерживает Xfire. Ðе забудьте добавить Hedgewars в ÑпиÑок игр, чтобы ваши Ð´Ñ€ÑƒÐ·ÑŒÑ Ð²Ð¸Ð´ÐµÐ»Ð¸, когда вы в игре.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>ИÑпользуйте Коктейль Молотова или Огнемёт, чтобы временно не дать ежам пройти через туннель или по платформе.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>Пчёлку можеть быть Ñложно иÑпользовать. Её Ñ€Ð°Ð´Ð¸ÑƒÑ Ð¿Ð¾Ð²Ð¾Ñ€Ð¾Ñ‚Ð° завиÑит от ÑкороÑти, поÑтому попробуйте не иÑпользовать полную Ñилу броÑка.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation>Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¸Ð³Ñ€Ð°</translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation>Играть на одном компьютере</translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation>Ð¡ÐµÑ‚ÐµÐ²Ð°Ñ Ð¸Ð³Ñ€Ð°</translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation>Играть по Ñети</translation>
     </message>
@@ -845,6 +863,14 @@
         <source>Edit game preferences</source>
         <translation>Редактировать наÑтройки игры</translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -852,6 +878,10 @@
         <source>Start</source>
         <translation>Старт</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Редактировать наÑтройки игры</translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -859,24 +889,13 @@
         <source>Control</source>
         <translation>Управление</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Игра в локальной Ñети</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Официальный Ñервер</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation>ПриÑоединитьÑÑ Ðº ÑотнÑм игроков!</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation>ПриÑоединитьÑÑ Ð¸Ð»Ð¸ Ñоздать ÑобÑтвенный Ñервер в локальной Ñети.</translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Редактировать наÑтройки игры</translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">Старт</translation>
     </message>
 </context>
 <context>
@@ -922,10 +941,6 @@
         <translation>Удалить набор оружиÑ</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation>ОÑновные наÑтройки</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation>Дополнительно</translation>
     </message>
@@ -965,6 +980,94 @@
         <source>System proxy settings</source>
         <translation>СиÑтемные наÑтройки</translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Команды</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Оружие</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished">Свои цвета</translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished">ÐаÑтройки прокÑи</translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Разное</translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished">ÐаÑтройки видео</translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1165,18 +1268,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation>ПроÑÑ‚Ð°Ñ Ð¸Ð³Ñ€Ð°</translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation>Играть против компьютера</translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation>Схватка</translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation>Играть Ñ Ð´Ñ€ÑƒÐ·ÑŒÑми за одним компьютером или против ботов</translation>
     </message>
@@ -1185,26 +1280,14 @@
         <translation>КампаниÑ</translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation>Тренировка</translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation>Тренировка маÑтерÑтва в тренировочных миÑÑиÑÑ…</translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation>Демки</translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation>Смотреть запиÑанные демки</translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation>Загрузить</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation>Загрузить Ñохранённую игру</translation>
     </message>
@@ -1251,14 +1334,6 @@
         <translation>(в игре...)</translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation>Дата: </translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation>Размер: </translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation>кодирование</translation>
     </message>
@@ -1266,6 +1341,16 @@
         <source>uploading</source>
         <translation>отправка</translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1274,10 +1359,6 @@
         <translation>Выпнуть</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Старт</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Запретить вход</translation>
     </message>
@@ -1325,10 +1406,6 @@
         <translation>ПроверÑÑ‚ÑŒ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ запуÑке</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Включить звук</translation>
-    </message>
-    <message>
         <source>Fullscreen</source>
         <translation>Полный Ñкран</translation>
     </message>
@@ -1341,14 +1418,6 @@
         <translation>Ðльтернативный показ урона</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Включить музыку</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>ПолноÑкранный фронтенд</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Указывать дату и Ð²Ñ€ÐµÐ¼Ñ Ð² названиÑÑ… демок и Ñейвов</translation>
     </message>
@@ -1357,18 +1426,6 @@
         <translation>Показывать подÑказки к оружию</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Включить звуки в меню</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Включить музыку в меню</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Эффекты в меню</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation>Сохранить пароль</translation>
     </message>
@@ -1388,14 +1445,38 @@
         <source>Use game resolution</source>
         <translation>ИÑпользовать разрешение игры</translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>ÑÐ»ÑƒÑ‡Ð°Ð¹Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Человек</translation>
     </message>
@@ -1408,14 +1489,6 @@
         <translation>(СиÑтемный по умолчанию)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>Ñлучайный лабиринт...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>МиÑÑиÑ</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>СообщеÑтво</translation>
     </message>
@@ -1432,10 +1505,6 @@
         <translation>В игре</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>риÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Отключен</translation>
     </message>
@@ -1472,10 +1541,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1511,18 +1576,6 @@
         <translation>Форт</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>ПривÑзки клавиш</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Команды</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>ÐаÑтройки звука и графики</translation>
-    </message>
-    <message>
         <source>Playing teams</source>
         <translation>Команды в игре</translation>
     </message>
@@ -1543,26 +1596,6 @@
         <translation>ÐаÑтройки команды</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Разное</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Схемы игры и наборы оружиÑ</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation>Свои цвета</translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation>Разное</translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation>ÐаÑтройки видео</translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation>Видео</translation>
     </message>
@@ -1570,10 +1603,6 @@
         <source>Description</source>
         <translation>ОпиÑание</translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation>ÐаÑтройки прокÑи</translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1594,22 +1623,6 @@
         <translation>Ограничение FPS</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Разработчики:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Графика:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Переводы:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>ОÑÐ¾Ð±Ð°Ñ Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ð½Ð¾ÑÑ‚ÑŒ:</translation>
-    </message>
-    <message>
         <source>Server name:</source>
         <translation>Ðазвание Ñервера:</translation>
     </message>
@@ -1634,10 +1647,6 @@
         <translation>ВерÑиÑ</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Звуки:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾ÑÑ‚ÑŒ</translation>
     </message>
@@ -1666,10 +1675,6 @@
         <translation>Ð‘Ð¾Ð½ÑƒÑ Ð²Ñ‹Ð¿Ð°Ð´Ð°ÐµÑ‚</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>ÐаÑтройки игры</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% невзрывающихÑÑ Ð¼Ð¸Ð½</translation>
     </message>
@@ -1706,10 +1711,6 @@
         <translation>ПодÑказка:</translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Эта Ñборка ÑвлÑетÑÑ Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ñ‡Ð½Ñ‹Ð¼ Ñтапом работы, и может быть неÑовмеÑтима Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ верÑиÑми игры. Ðекоторые возможноÑти могут быть Ñломаны или недоработаны. ИÑпользуйте на Ñвой риÑк!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>КачеÑтво</translation>
     </message>
@@ -1786,10 +1787,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation>Краткое опиÑание</translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation>ОпиÑание</translation>
     </message>
@@ -1817,6 +1814,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Полный Ñкран</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1855,10 +1884,6 @@
         <translation>СопоÑтавление не удалоÑÑŒ.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation>Заполните вÑе полÑ</translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1905,18 +1930,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2065,25 +2078,42 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>ПÑевдоним</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>ПожалуйÑта введите ваш пÑевдоним</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>QPushButton</name>
     <message>
-        <source>Setup</source>
-        <translation>ÐаÑтройка</translation>
-    </message>
-    <message>
         <source>Play demo</source>
         <translation>Играть демку</translation>
     </message>
@@ -2136,22 +2166,10 @@
         <translation>Удалить</translation>
     </message>
     <message>
-        <source>Ready</source>
-        <translation>Готов</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Ð¡Ð»ÑƒÑ‡Ð°Ð¹Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>СопоÑтавить раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>ещё</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation>Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ</translation>
     </message>
@@ -2244,6 +2262,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2271,106 +2308,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Вампиризм</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Карма</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>ÐртиллериÑ</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Режим фортов</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Разделить команды</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>ÐÐµÑ€Ð°Ð·Ñ€ÑƒÑˆÐ°ÐµÐ¼Ð°Ñ Ð·ÐµÐ¼Ð»Ñ</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Добавить границу</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>ÐÐ¸Ð·ÐºÐ°Ñ Ð³Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ†Ð¸Ñ</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Лазерный прицел</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>ÐеуÑзвимоÑÑ‚ÑŒ</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Случайный порÑдок</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Король</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>РаÑÑтавить ежей</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Общее оружие в клане</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Убрать балки</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Отключить дополнительные объекты</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Режим беÑÑÐ¼ÐµÑ€Ñ‚Ð¸Ñ Ð±Ð¾Ñ‚Ð¾Ð²</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Ð¡Ð±Ñ€Ð¾Ñ ÑƒÑ€Ð¾Ð²Ð½Ñ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>БеÑконечные атаки</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Ð¡Ð±Ñ€Ð¾Ñ Ð¾Ñ€ÑƒÐ¶Ð¸Ñ</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Индивидуальный набор оружиÑ</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Отключить ветер</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Больше ветра</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>ЭÑтафета команд</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Добавить нижнюю границу</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
     </message>
 </context>
 <context>
@@ -2492,12 +2444,6 @@
         <translation>Ñлот 9</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>информациÑ
-о ежах</translation>
-    </message>
-    <message>
         <source>chat</source>
         <translation>чат</translation>
     </message>
@@ -2545,33 +2491,33 @@
         <source>record</source>
         <translation>запиÑать</translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>ОÑновное управление</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Управление оружием</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Управление камерой и курÑором</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Разное</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Оружие</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">Разное</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Передвижение ежа и прицеливание:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Прохождение оврагов и препÑÑ‚Ñтвий прыжками:</translation>
     </message>
@@ -2635,6 +2581,10 @@
         <source>Record video:</source>
         <translation>ЗапиÑÑŒ видео:</translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušiť</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušiť</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -45,13 +118,36 @@
         <translation>Upraviť schémy</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>KeÄ je vybraná táto voľba výberom hernej schémy vyberiete automaticky aj zbraň</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation>Voľby hry</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -102,10 +198,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation>Nepodarilo sa uložiť súbor so štýlom do %1</translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation>%1 nie je platným príkazom!</translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -140,22 +232,6 @@
         <translation>Hra zrušená</translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation>Prezývka %1, ktorú ste
-si vybrali je registrovaná na
-Hedgewars.org.
-Prosím, napíšte heslo do poľa
-nižšie alebo si zvoľte inú prezývku
-v nastaveniach hry:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation>Nebolo zadané žiadne heslo.</translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation>Prezývka</translation>
     </message>
@@ -168,6 +244,59 @@
 Please pick another nickname:</source>
         <translation>Prezývku %1 už niekto na serveri používa. Prosím, zvoľte si inú prezývku:</translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -183,18 +312,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Mapa</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Témy</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>VÅ¡etky</translation>
     </message>
@@ -219,10 +336,6 @@
         <translation>Pojašená</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Typ</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Malé tunely</translation>
     </message>
@@ -231,28 +344,96 @@
         <translation>Stredné tunely</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Veľké tunely</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Malé plávajúce ostrovÄeky</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Stredné plávajúce ostrovÄeky</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Veľké plávajúce ostrovÄeky</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Zrno</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Nastaviť</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished">RuÄne kreslená</translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Náhodné</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">NaÄítaÅ¥ nakreslenú mapu</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Kreslené mapy</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Všetky súbory</translation>
     </message>
 </context>
 <context>
@@ -324,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation>Heslo</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -340,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušiť</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -347,6 +554,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -365,6 +579,17 @@
         <source>Audio: </source>
         <translation>Zvuk: </translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -396,6 +621,38 @@
         <source>Set data</source>
         <translation>Nastaviť dáta</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Všeobecné</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -450,8 +707,40 @@
         <translation>Všeobecné</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>PokroÄilé</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Klobúk</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Meno</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Náhodný tím</translation>
     </message>
 </context>
 <context>
@@ -538,267 +827,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Ak chcete hraÅ¥ s priateľom ako tím, jednoducho si zvoľte tú istú farbu. I naÄalej budete ovládaÅ¥ svojich vlastných ježkov, ale víťazstvá Äi prehry budú spoloÄné.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Niektoré zbrane môžu spôsobovaÅ¥ málo Å¡kody, ale dokážu byÅ¥ oveľa úÄinnejÅ¡ie v tej správnej situácii. Skúste použiÅ¥ Desert Eagle na zostrelenie viacerých ježkov do vody.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Ak neviete, Äo robiÅ¥ a nechcete mrhaÅ¥ muníciou, preskoÄte Å¥ah. Ale nerobte tak príliÅ¡ Äasto, pretože príde Náhla smrÅ¥!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Ak nechcete, aby niekto iný používal vaÅ¡u prezývku na oficiálnom serveri, registrujte si úÄet na http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Nudí vás štandardná hra? Vyskúšajte si jednu z misii - ponúkajú iný herný zážitok v závislosti na tom, akú si vyberiete.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Vo východzom nastavení sa posledná hra automaticky ukladá ako demo. Vyberte &apos;Miestna hra&apos; a kliknite na tlaÄidlo &apos;Demá&apos; v pravom dolnom rohu, ak si chcete demo uložiÅ¥ alebo prehraÅ¥.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom Äase. Ak máte problém, spýtajte sa na fóre, ale neÄakajte podporu 24 hodín v týždni!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom Äase. Ak chcete pomôcÅ¥, môžete nám zaslaÅ¥ malú finanÄnú výpomoc alebo prispieÅ¥ vlastnou prácou!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom Äase. Podeľte sa oň so svojou rodinou a priateľmi!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Z Äasu na Äas bývajú usporiadavané oficiálne turnaje. Najbližšie akcie sú vždy uverejnené na http://www.hedgewars.org/ pár dní dopredu.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je dostupný v mnohých jazykoch. Ak preklad do vaÅ¡ej reÄi chýba alebo nie je aktuálny, prosím, kontaktujte nás!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars beží na množstve rozliÄných operaÄných systémov vrátane Microsoft Windows, Mac OS X a Linuxu.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Nezabudnite, že si vždy môžete vytvoriť vlastnú lokálnu alebo sieťovú/online hru. Nie ste obmedzený len na voľbu &apos;Jednoduchá hra&apos;.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Mali by ste si dopriaÅ¥ krátky odpoÄinok po každej hodine hry.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Ak vaša grafická karta nie je schopná poskytnúť hardvérovo akcelerované OpenGL, skúste povoliť režim nízkej kvality, aby ste dosiahli požadovaný výkon.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Sme otvorení novým nápadom a konÅ¡truktívnej kritike. Ak sa vám nieÄo nepáÄi alebo máte skvelý nápad, dajte nám vedieÅ¥!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Obzvlášť pri hre online buÄte sluÅ¡ný a pamätajte, že s vami alebo proti vám môžu hraÅ¥ tiež neplnoletí!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Špeciálne herné režimy ako &apos;Vampírizmus&apos; alebo &apos;Karma&apos; vám umožnia vyvinúť úplne novú taktiku. Vyskúšajte ich vo vlastnej hre!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Nikdy by ste nemali inÅ¡talovaÅ¥ Hedgewars na cudzí poÄítaÄ (v Å¡kole, na univerzite, v práci, atÄ). Prosím, radÅ¡ej požiadajte zodpovednú osobu!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars môže byÅ¥ výborná hra, ak máte krátku chvíľku poÄas prestávky. Iba sa uistite, že nepoužijete príliÅ¡ veľa ježkov alebo príliÅ¡ veľkú mapu. Rovnako môže pomocÅ¥ zníženie Äasu a zdravia.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>PoÄas tvorby tejto hry nebolo ublížené žiadnemu ježkovi.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom Äase. Ak vám niekto túto hru predal, skúste žiadaÅ¥ o refundáciu!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Ak chcete pre hru použiť jeden alebo viacero gamepadov, pripojte ich pred spustením hry.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Vytvorte si úÄet na %1, aby ste tak zabránili ostatným používaÅ¥ vaÅ¡u obľúbenú prezývku poÄas hrania na oficiálnom serveri.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Ak vaÅ¡a grafická karta nie je schopná poskytnúť hardvérovo akcelerované OpenGL, skúste aktualizovaÅ¥ prísluÅ¡né ovládaÄe.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Dostupné sú tri rôzne výskoky. Dvakrát stlaÄte [vysoký skok] pre veľmi vysoký skok vzad.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Bojíte sa pádu z útesu? Podržte [presné mierenie] a stlaÄte [doľava] alebo [doprava] pre otoÄenie na mieste.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Niektoré zbrane vyžaduju osobitnú stratégiu alebo len veľa tréningu, takže to s vybranou zbraňou nevzdávajte, ak sa vám nepodarí trafiť nepriateľa.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>VäÄÅ¡ina zbraní prestane fungovaÅ¥ pri kontakte s vodou. Navádzané vÄela a Torta sú výnimkami z tohto pravidla.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Starý cheeseburger spôsobí len malú explóziu. ObláÄik smradu, ktorý je ovplyvňovaný vetrom, vÅ¡ak dokáže otráviÅ¥ množstvo ježkov.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Klavírový útok je najniÄivejší vzduÅ¡ný útok. Pri jeho použití prídete o ježka, Äo je jeho veľké mínus.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Lepkavé míny sú perfektným nástrojom na vytvorenie malých reÅ¥azových reakcii, vÄaka ktorým postavíte ježkov do krajných situácii ... alebo vody.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Kladivo je najefektívnejšie pri použití na mostoch alebo trámoch. Zasiahnutí ježkovia prerazia zem.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Ak ste zaseknutý za nepriateľským ježkom, použite kladivo, aby ste sa oslobodili bez toho, aby vám ublížila explózia.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Maximálna prejdená vzdialenosť torty zavisí na zemi, ktorou musí prejsť. Použitie [útok], ak chcete spustiť detonáciu skôr.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Plameňomet je zbraň, no rovnako môže byť použitý na kopanie tunelov.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Chcete vedieť, kto stojí za hrou? Kliknite na logo Hedgewars v hlavnom menu pre zobrazenie zásluh.</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Ak máte chuÅ¥, môžte si nakresliÅ¥ vlastné hrobÄeky, klobúky, vlajky alebo dokonca mapy a témy! Pamätajte vÅ¡ak, že ak ich budete chcieÅ¥ použiÅ¥ v hre online, budete ich musieÅ¥ zdieľaÅ¥ s ostatnými.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Chcete nosiť špecifický klobúk? Prispejte nám a ako odmenu získate exkluzívny klobúk podľa vášho výberu!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Aby ste sa vyhli problémom pri hre, udržujte ovládaÄe vaÅ¡ej grafickej karty vždy aktuálne.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>KonfiguraÄné súbory Hedgewars nájdete v &quot;Moje Dokumenty\Hedgewars&quot;. Vytvárajte si zálohy alebo prenášajte si tieto súbory medzi poÄítaÄmi, ale needitujte ich ruÄne.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Chcete ušetriť lano? Kým ste vo vzduchu, uvoľnite ho a opäť vystreľte. Kým sa nedotknete zeme, môžete to isté lano znovu použiť bez toho, aby sa vám míňali jeho zásoby!</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>PáÄia sa vám Hedgewars? Staňte sa fanúšikom na %1 alebo sa pripojte k naÅ¡ej skupine na %2. Môžte nás tiež nasledovaÅ¥ na %3!</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Môžte priradiÅ¥ súbory patriace Hedgewars (uložené hry a nahrávky záznamov) ku hre, Äím sa vám budú otváraÅ¥ priamo z vášho obľubeného prehliadaÄa súborov alebo internetu.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>KonfiguraÄné súbory Hedgewars nájdete v &quot;Library/Application Support/Hedgewars&quot; vo vaÅ¡om domovskom adresári. Vytvárajte si zálohy alebo prenášajte si tieto súbory medzi poÄítaÄmi, ale needitujte ich ruÄne.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>KonfiguraÄné súbory Hedgewars nájdete v &quot;.hedgewars&quot; vo vaÅ¡om domovskom adresári. Vytvárajte si zálohy alebo prenášajte si tieto súbory medzi poÄítaÄmi, ale needitujte ich ruÄne.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars vo verzii pre Windows podporujú Xfire. Pridajte si Hedgewars do vášho zoznamu hier tak, aby vás vaši priatelia videli hrať.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Použite Molotovov koktejl alebo plameňomet na doÄasné zabránenie ježkom prejsÅ¥ terénom ako sú tunely alebo ploÅ¡iny.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>Navádzaná vÄela je troÅ¡ku zložitejÅ¡ia na použitie. Jej polomer otoÄenia závisí na jej rýchlosti, takže ju radÅ¡ej nepoužívajte pri plnej sile.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Stiahnuteľný obsah</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation>Miestna hra</translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation>HraÅ¥ hru na tomto poÄítaÄi</translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation>Hra na sieti</translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation>Hra cez sieť</translation>
     </message>
@@ -826,6 +862,14 @@
         <source>Edit game preferences</source>
         <translation>Upraviť nastavenia hry</translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -833,6 +877,10 @@
         <source>Start</source>
         <translation>Å tart</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Upraviť nastavenia hry</translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -841,27 +889,12 @@
         <translation>Ovládanie</translation>
     </message>
     <message>
-        <source>Downloadable Content</source>
-        <translation type="obsolete">Stiahnuteľný obsah</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>LAN hra</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Oficiálny server</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation>Pripojte sa ku stovkám hráÄov online!</translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation>Pripojiť sa k existujúcej hre alebo vytvoriť vlastnú hru na miestnej sieti.</translation>
+        <source>Edit game preferences</source>
+        <translation type="unfinished">Upraviť nastavenia hry</translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -907,10 +940,6 @@
         <translation>Vymazať sadu zbraní</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation>Všeobecné</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation>PokroÄilé</translation>
     </message>
@@ -950,6 +979,94 @@
         <source>System proxy settings</source>
         <translation>Systémové nastavenia proxy</translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Tímy</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Výzbroj</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished">Vlastné farby</translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished">Nastavenia proxy</translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">RozliÄné</translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished">Voľby nahrávania videa</translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1150,18 +1267,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation>Jednoduchá hra</translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation>Zahrajte si rýchlu hru proti poÄítaÄu s náhodnými nastaveniami</translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation>Hra viacerých hráÄov</translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation>Zahrajte si hru za týmto poÄítaÄom proti kamarátom alebo poÄítaÄovým protivníkom</translation>
     </message>
@@ -1170,26 +1279,14 @@
         <translation>Režim kampane</translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation>Tréningový režim</translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation>Cibrite si svoje schopnosti v rade tréningových misií</translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation>Demá</translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation>Prezerať nahrané demá</translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation>NaÄítaÅ¥</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation>NaÄítaÅ¥ uloženú hru</translation>
     </message>
@@ -1236,14 +1333,6 @@
         <translation>(prebieha...)</translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation>Dátum: </translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation>Veľkosť: </translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation>kódovanie</translation>
     </message>
@@ -1251,6 +1340,16 @@
         <source>uploading</source>
         <translation>uploadujem</translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1259,10 +1358,6 @@
         <translation>Vykopnúť</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Spustiť</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Obmedziť pripojenia</translation>
     </message>
@@ -1314,10 +1409,6 @@
         <translation>Celá obrazovka</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Povoliť zvuky</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Zobrazovať FPS</translation>
     </message>
@@ -1326,14 +1417,6 @@
         <translation>Iný spôsob zobrazovania škody</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Frontend na celú obrazovku</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Povoliť hudbu</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>PripojiÅ¥ dátum a Äas k súboru so záznamom</translation>
     </message>
@@ -1342,18 +1425,6 @@
         <translation>Zobrazovať nápovedu pre zbrane</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Povoliť zvuky vo frontende</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Povoliť hudbu vo frontende</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Efekty vo frontende</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation>Uložiť heslo</translation>
     </message>
@@ -1373,14 +1444,38 @@
         <source>Use game resolution</source>
         <translation>Použiť rozlíšenie hry</translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>vygenerovaná mapa...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>ÄŒlovek</translation>
     </message>
@@ -1393,14 +1488,6 @@
         <translation>(Východzie nastavenie)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>vygenerované bludisko..</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Misia</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Komunita</translation>
     </message>
@@ -1417,10 +1504,6 @@
         <translation>Prebieha</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>ruÄne kreslená mapa...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Vypnuté</translation>
     </message>
@@ -1457,10 +1540,6 @@
         <translation>Nad sebou</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>Triasť</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Červené/Azúrové (odtiene šedej)</translation>
     </message>
@@ -1492,22 +1571,10 @@
         <translation>Členovia tímu</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Nastavenia kláves</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Pevnosť</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation>Tímy</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Nastavenia zvuku/grafiky</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Sieťová hra</translation>
     </message>
@@ -1528,26 +1595,6 @@
         <translation>Nastavenia tímu</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>RozliÄné</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Schémy a zbrane</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation>Vlastné farby</translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation>RozliÄné</translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation>Voľby nahrávania videa</translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation>Videá</translation>
     </message>
@@ -1555,10 +1602,6 @@
         <source>Description</source>
         <translation>Popis</translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation>Nastavenia proxy</translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1571,22 +1614,6 @@
         <translation>Míny</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Vývojári:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafika:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Preklady:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Osobitné poÄakovanie:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Výzbroj</translation>
     </message>
@@ -1619,18 +1646,10 @@
         <translation>Verzia</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Zvuky:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Úvodná hlasitosť zvuku</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Schéma hry</translation>
-    </message>
-    <message>
         <source>Damage Modifier</source>
         <translation>Modifikátor poškodenia</translation>
     </message>
@@ -1691,11 +1710,6 @@
         <translation>Tip: </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Toto zostavenie je &apos;stále-vo-vývoji&apos; a nemusí byť kompatibilné s inými verziami hry.
-Niektoré vlastnosti nemusia fungovaÅ¥ alebo nemusia byÅ¥ dokonÄené. Používajte na vlastné riziko!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Kvalita</translation>
     </message>
@@ -1770,10 +1784,6 @@
         <translation>ZnaÄky (oddelené Äiarkou): </translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation>Sumár </translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation>Popis</translation>
     </message>
@@ -1801,6 +1811,38 @@
         <source>Bitrate (Kbps)</source>
         <translation>Bitový tok (Kbps)</translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Celá obrazovka</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1839,10 +1881,6 @@
         <translation>Nastavenie súborových asociácii zlyhalo.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation>Prosím, vyplňte všetky polia</translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation>Chyba pri autentizácii voÄi google.com:</translation>
@@ -1889,18 +1927,6 @@
         <translation>Všeky súborové asociácie boli nastavené</translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation>Popis problému bol úspešne odoslaný na hedgewars.google.com</translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation>Chyba poÄas autentizácie voÄi google.com</translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation>Chyba pri hlásení problému, skúste to prosím neskôr (alebo navštívte priamo hedgewars.googlecode.com)</translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation>Hlavné okno - Chyba</translation>
     </message>
@@ -2052,16 +2078,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation>Naozaj chcete vymazať sadu zbraní &apos;%1&apos;?</translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Prezývka</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Prosím, zadajte vašu prezývku</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2119,26 +2166,10 @@
         <translation>NaÄítaÅ¥</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Nastavenie</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Pripravený</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Náhodný tím</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Asociovať prípony súborov.</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>viac</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation>Viac informácii</translation>
     </message>
@@ -2231,6 +2262,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušiť</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2258,106 +2308,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Režím vampíra</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Delostrelectvo</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Režim pevností</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Rozdeliť tímy</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>NezniÄiteľná zem</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Pridať okraj</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Nízka gravitácia</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Laserové zameriavanie</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Nesmrteľnosť</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Náhodné poradie</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Kráľ</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Umiestňovať ježkov</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Klan zdieľa výzbroj</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Vypnúť trámy</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Vypnúť objekty v krajine</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Režim prežitia umelej inteligencie</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Resetovať zdravie</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Neobmedzené útoky</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Resetovať zbrane</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Individuálne zbrane</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Vypnúť vietor</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Viac vetra</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Tag Team</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Pridať spodný okraj</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Zrušiť</translation>
     </message>
 </context>
 <context>
@@ -2475,12 +2440,6 @@
         <translation>snímať</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>Å¡tatistiky
-ježkov</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>ukonÄiÅ¥</translation>
     </message>
@@ -2532,33 +2491,33 @@
         <source>record</source>
         <translation>nahrať</translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Základné ovládanie</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Ovládanie zbraní</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Ovládanie kurzora a kamery</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Iné</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Výzbroj</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished">RozliÄné</translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Presun ježka a mierenie:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Prekoná priepasti a prekážky skokom:</translation>
     </message>
@@ -2622,6 +2581,10 @@
         <source>Record video:</source>
         <translation>Nahrať video:</translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_sv.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Avbryt</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Avbryt</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -44,13 +117,36 @@
         <translation>Redigera spelscheman</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>När det här valet är aktivt kommer vapnen att ändras när du ändrar spelschema</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished">Spelinställningar</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -101,10 +197,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -139,20 +231,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Ditt smeknamn (%1) är
-registrerat på Hedgewars.org
-Var god ange ditt lösenord eller välj
-ett annat smeknamn i spelinställningarna:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Smeknamn</translation>
     </message>
@@ -165,6 +243,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -180,18 +311,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Karta</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Teman</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Alla</translation>
     </message>
@@ -216,10 +335,6 @@
         <translation>Galen</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Typ</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Små tunnlar</translation>
     </message>
@@ -228,28 +343,96 @@
         <translation>Medelstora tunnlar</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Stora tunnlar</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Små flytande öar</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Medelstora flytande öar</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Stora flytande öar</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Frö</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Ange</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Slumpad</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Läs in ritad karta</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished">Ritade kartor</translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished">Alla filer</translation>
     </message>
 </context>
 <context>
@@ -321,8 +504,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Lösenord</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -337,6 +520,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Avbryt</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -344,6 +553,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -362,6 +578,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -393,6 +620,38 @@
         <source>Set data</source>
         <translation>Ange data</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Allmänt</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -447,8 +706,40 @@
         <translation>Allmänt</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Avancerat</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Hatt</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Namn</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Slumpat lag</translation>
     </message>
 </context>
 <context>
@@ -529,267 +820,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Välj bara samma färg som en vän för att spela i som ett lag. Varje spelare kontrollerar fortfarande själva sina igelkottar men de vinner eller förlorar tillsammans.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>Några vapen kanske bara gör liten skada men de kan vara mycket mer förödande i rätt situation. Försök att använda Desert Eagle för att putta ner flera igelkottar ner i vattnet.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Om du inte är säker på vad du ska göra och inte vill slösa på ammunition, hoppa över en tur. Men låt inte för lång tid passera eftersom sudden death kommer!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Om du vill förhindra andra från att använda ditt favoritnamn på den officiella servern kan du registrera ett konto på http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Är du trött på att spela vanligt? Pröva ett av uppdragen - de erbjuder annorlunda spel beroende på vilken du väljer.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>Som standard spelar spelet alltid in den senaste matchen som en demo. Välj &apos;Lokalt Spel&apos; och tryck på &apos;Demo&apos;-knappen nere till höger för att spela eller hantera dem.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Om du har problem, fråga på vårat forum men snälla förvänta dig inte dygnet runt-support!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Om du gillar det, hjälp oss med en liten donation eller bidra med något eget!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Dela med dig av det till familj och vänner som du vill!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Då och då kommer det hållas officiella turneringer. Kommande händelser kommer att annonseras på http://www.hedgewars.org/ några dagar i förväg.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars finns på många språk. Om översättningen på ditt språk verkar saknas eller är gammal får du gärna kontakta oss!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars kan köras på många operativsystem som Microsoft Windows, Mac OS X och Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Kom alltid ihåg att du kan starta en egen match i lokalt och netverk/online-spel. Du är inte begränsad till &apos;Enkelt spel&apos;-valet.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>När du spelar borde du ta en pause åt minståne en gång i timman.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Om ditt grafikkort inte klarar av att ge hårdvaruaccellererad OpenGL, pröva att sänka kvaliteten för att öka prestandan.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Vi är öppna för förslag och konstruktiv kritik. Om du inte gillar något eller har en bra idé, hör av dig!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>Speciellt när du spelar över netet, var artig och kom alltid ihåg att det kan vara minderåriga som du spelar mot också!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Speciella spellägen som &apos;Vampyrism&apos; eller &apos;Karma&apos; låter dig utveckla helt nya taktiker. Pröva dem i ett eget spel!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Du ska aldrig installera Hedgewars på en dator som du inte äger (skola, universitet, arbete, etc.). Fråga den ansvarige personen istället!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars kan vara perfekt för korta matcher under raster. Se bara till att du inte lägger till för många igelkottar eller använder en stor bana. Att minska tiden och hälsa kan också hjälpa.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Inga igelkottar skadades under produktionen av spelet.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Om någon sålde spelet till dig ska du försöka att få pengarna tillbaka!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Koppla ihop en eller flera spelplattor innan du startar spelet för att kunna välja att kontrollera era lag med dem.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Skapa ett konto på %1 för att förhindra andra från att använda ditt favoritnamn när du spelar på den officiella servern.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Om ditt grafikkort inte klarar av att ge hårdvaruaccellererad OpenGL, pröva att uppdatera dina drivrutiner.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Det finns tre olika hopp tillgängliga. Tryck på [högt hopp] två gånger för att göra ett ett högt bakåt-hopp.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>Är du rädd att falla ner för an kant? Håll ner [exakt] för att vrida [vänster] eller [höger] utan att egentligen röra dig.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>Några vapen kräver speciella strategier eller bara mycket träning, så ge inte upp ett vapen bara för att du missade en fiende någon gång.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>De flesta vapen fungerar inte när de har rört vattenet. Målsökande bi och även Tårta är två undantag.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Den gamla Limburgaren skapar bara en liten explosition. Men det vindpåverkade stinkmålnet kan förgifta många igelkottar samtidigt.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Pianoanfall är det farligaste luftanfallet. Du blir av med en igelkott när du använder det, så det finns en stor nackdel också.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Fästande minor är ett perfekt verktyg för att skapa små kedjereaktioner som slår ner fiender i farliga situationer ... eller vatten.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Hammaren är mest effektiv när den används på broar eller balkar. När du slår till igelkottarna kommer de att falla nergenom hålet.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Om du är fast bakom en fiende, använd hammaren för att göra dig fri utan att skadas av en explosition.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Tårtans längsta gångsträcka beror på vägen den måste ta. Använd [attack] för att spränga den tidigt.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Eldkastaren är ett vapen, men den kan användas för att gräva tunnlar också.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Vill du veta vilka som ligger bakom spelet? Tryck på Hedgewars-loggan i huvudmenyn för att se medverkande.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>Gillar du Hedgewars? Bli ett fan på %1 eller följ oss på %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Du är välkommen att rita dina egna gravar, hattar, flaggor eller till och med banor eller teman! Men notera att du måste lägga ut dem någonstans för att använda dem online.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Vill du verkligen ha en specifik hatt? Ge os en donation och få en exklusiv hatt som du väljer!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>Se till att hålla dina grafikdrivrutiner uppdaterade för att undvika problem när du spalar.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du kan hitta dina konfigurationsfiler under &quot;Mina Dokument\Hedgewars&quot;. Gör en säkerhetskopia eller ta med dig filerna, men redigera dem inte för hand.</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Du kan associera Hedgewars-relaterade filer (sparfiler och demo-inspelningar) med spelet för att köra dem direkt från den filhanterare eller webbläsare du tycker bäst om.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Vill du spara rep? Släpp repet i luften och sedan sjut igen. Så länge du inte nuddar marken använder du samma rep utan att slösa på ammunition!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du kan hitta dina konfigurationsfiler under &quot;Library/Application Support/Hedgewars&quot; i din hem-mapp. Gör en säkerhetskopia eller ta med dig filerna, men redigera dem inte för hand.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Du kan hitta dina konfigurationsfiler under &quot;.hedgewars&quot; i din hem-mapp. Gör en säkerhetskopia eller ta med dig filerna, men redigera dem inte för hand.</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>Windows-versionen av Hedgewars har stöd för Xfire. Se till att lägga till Hedgewars till spellistan så att dina vänner kan se dig spela.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>Använd molotov eller eldkastaren för att temporärt förhindra att igelkottar passerar terräng så som tunnlar eller platformar.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>Målsökande bin kan vara kluriga att använda. Svängradien beror på hastigheten, så försök att inte använda full kraft.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation>Nedladdningsbart innehåll</translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -817,6 +855,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -824,6 +870,10 @@
         <source>Start</source>
         <translation>Starta</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -832,27 +882,12 @@
         <translation>Kontroll</translation>
     </message>
     <message>
-        <source>Downloadable Content</source>
-        <translation type="obsolete">Nedladdningsbart innehåll</translation>
-    </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>LAN-spel</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Officiell server</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Starta</translation>
     </message>
 </context>
 <context>
@@ -898,10 +933,6 @@
         <translation>Ta bort vapenset</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Allmänt</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Avancerat</translation>
     </message>
@@ -941,6 +972,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Lag</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Vapen</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1140,18 +1259,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1160,26 +1271,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Läs in</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1225,14 +1324,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1240,6 +1331,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1248,10 +1349,6 @@
         <translation>Släng ut</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Starta</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Begränsa tillkommande</translation>
     </message>
@@ -1299,10 +1396,6 @@
         <translation>Helskärm</translation>
     </message>
     <message>
-        <source>Enable sound</source>
-        <translation>Aktivera ljud</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Visa FPS (rutor per sekund)</translation>
     </message>
@@ -1311,14 +1404,6 @@
         <translation>Visa alternativ skada</translation>
     </message>
     <message>
-        <source>Enable music</source>
-        <translation>Aktivera musik</translation>
-    </message>
-    <message>
-        <source>Frontend fullscreen</source>
-        <translation>Spelmenyn i helskärm</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>Bifoga datum och tid till namnet på inspelningsfiler</translation>
     </message>
@@ -1331,18 +1416,6 @@
         <translation>Visa hjälp i ammunitionsmenyn</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Aktivera ljud i spelmenyn</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Aktivera musik i spelmenyn</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Effekter i spelmenyn</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1362,14 +1435,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>genererad karta...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Människa</translation>
     </message>
@@ -1382,14 +1479,6 @@
         <translation>(Systemstandard)</translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation>genererad labyrint...</translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation>Uppdrag</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Gemenskap</translation>
     </message>
@@ -1406,10 +1495,6 @@
         <translation>Pågår</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>handritad karta...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Avaktiverad</translation>
     </message>
@@ -1446,10 +1531,6 @@
         <translation>Uppe och nere</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>Vicka</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Röd/Cyan gråskala</translation>
     </message>
@@ -1481,22 +1562,10 @@
         <translation>Lagmedlemmar</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Tangentbindningar</translation>
-    </message>
-    <message>
         <source>Fort</source>
         <translation>Fort</translation>
     </message>
     <message>
-        <source>Teams</source>
-        <translation>Lag</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Ljud/grafikinställningar</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Internetspel</translation>
     </message>
@@ -1517,26 +1586,6 @@
         <translation>Laginställningar</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Diverse</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Scheman och vapen</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1544,30 +1593,10 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
     <message>
-        <source>Developers:</source>
-        <translation>Utvecklare:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Grafik:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Översättningar:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Särskilt tack till:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Vapen</translation>
     </message>
@@ -1600,10 +1629,6 @@
         <translation>Version</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>Ljud:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>Ursprunglig ljudvolym</translation>
     </message>
@@ -1640,10 +1665,6 @@
         <translation>LÃ¥dor</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Spelschema</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% falska minor</translation>
     </message>
@@ -1680,10 +1701,6 @@
         <translation>Tips:</translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Denna utvecklingsversion är inte färdig och kanske inte är kompatibel med andra versioner av spelet. Några delar kan vara trasiga eller ofullständiga. Använd på egen risk!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>Kvalitet</translation>
     </message>
@@ -1758,10 +1775,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1789,6 +1802,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Helskärm</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1827,10 +1872,6 @@
         <translation>Filassociationer har misslyckats.</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1877,18 +1918,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2036,16 +2065,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Smeknamn</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Var god ange ditt smeknamn</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2103,26 +2153,10 @@
         <translation>Läs in</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Inställningar</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Redo</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Slumpat lag</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>Associera filextentioner</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>mer</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2215,6 +2249,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Avbryt</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2242,106 +2295,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampyrism</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Artilleri</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Fortläge</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Dela upp lag</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Solitt land</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Lägg till kant</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>LÃ¥g gravitation</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Lasersikte</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Osårbar</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Slumpad ordning</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Kung</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>Placera igelkottar</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Klan delar ammunition</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Avaktivera balkar</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Avaktivera landföremål</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>AI-överlevnad</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Återställ hälsa</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Obegränsade attacker</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Återställ vapen</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>Ammunition per igelkott</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Avaktivera vind</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Mer vind</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Maraton</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation>Lägg till undre barriär</translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Avbryt</translation>
     </message>
 </context>
 <context>
@@ -2459,11 +2427,6 @@
         <translation>ta bild</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>information om igelkottar</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>avsluta</translation>
     </message>
@@ -2515,33 +2478,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>Allmäna kontroller</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>Vanenkontroller</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>Kamera och pilkontroller</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Annat</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Vapen</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>Flytta dina igelkottar och sikta:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>Undvik hål och hinder genom att hoppa:</translation>
     </message>
@@ -2605,6 +2568,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Ä°ptal</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Ä°ptal</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -43,13 +116,36 @@
         <translation>Düzeni değiştir</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -100,10 +196,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -138,17 +230,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
@@ -161,6 +242,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -176,18 +310,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Harita</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Temalar</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Filtre</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Tümü</translation>
     </message>
@@ -212,10 +334,6 @@
         <translation>Uçuk Kaçık</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -224,27 +342,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Rastgele</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -317,8 +503,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Parola</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -333,6 +519,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Ä°ptal</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -340,6 +552,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -358,6 +577,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -389,6 +619,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">Genel</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -443,8 +705,40 @@
         <translation>Genel</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>GeliÅŸmiÅŸ</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -519,267 +813,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -807,6 +848,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -814,6 +863,10 @@
         <source>Start</source>
         <translation>BaÅŸla</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -821,24 +874,13 @@
         <source>Control</source>
         <translation>Kontrol</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>LAN oyunu</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Resmi sunucu</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">BaÅŸla</translation>
     </message>
 </context>
 <context>
@@ -884,10 +926,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">Genel</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">GeliÅŸmiÅŸ</translation>
     </message>
@@ -927,6 +965,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Takımlar</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Silahlar</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1125,18 +1251,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1145,26 +1263,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Yükle</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1209,14 +1315,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1224,6 +1322,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1236,10 +1344,6 @@
         <translation>Bilgi</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>BaÅŸla</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Katılmaları Kısıtla</translation>
     </message>
@@ -1283,18 +1387,6 @@
         <translation>Tam ekran</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Oyun giriÅŸi tam ekran</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Sesleri etkinleÅŸtir</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Müziği etkinleştir</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>FPS&apos;yi göster</translation>
     </message>
@@ -1315,18 +1407,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1346,14 +1426,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>rastgele harita...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Ä°nsan</translation>
     </message>
@@ -1366,14 +1470,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1390,10 +1486,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1430,10 +1522,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1469,18 +1557,6 @@
         <translation>Kale</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>TuÅŸlar</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Takımlar</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>Ses/Görüntü seçenekleri</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>AÄŸ oyunu</translation>
     </message>
@@ -1501,26 +1577,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1528,10 +1584,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1548,26 +1600,6 @@
         <translation>Sürüm</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>GeliÅŸtiriciler:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Sanat:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Sesler:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Çeviriler:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>Özel teşekkür:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>Silahlar</translation>
     </message>
@@ -1600,10 +1632,6 @@
         <translation>Başlangıçtaki ses seviyesi</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Oyun teması</translation>
-    </message>
-    <message>
         <source>Damage Modifier</source>
         <translation>Hasar Çarpanı</translation>
     </message>
@@ -1664,10 +1692,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1742,10 +1766,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1773,6 +1793,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Tam ekran</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1811,10 +1863,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1861,18 +1909,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2018,15 +2054,36 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2085,26 +2142,10 @@
         <translation>Yükle</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>Ayarla</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Hazır</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2197,6 +2238,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Ä°ptal</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2224,106 +2284,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Vampircilik</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Karma</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>Topçuluk</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Kale Modu</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Takımları Böl</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Parçalanmaz Yüzey</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Sınır Ekle</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Azaltılmış Yerçekimi</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Lazer Görüşü</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>Ölümsüzlük</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">Ä°ptal</translation>
     </message>
 </context>
 <context>
@@ -2457,12 +2432,6 @@
         <translation>yakala</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>kirpi
-bilgileri</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>çıkış</translation>
     </message>
@@ -2498,33 +2467,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation type="unfinished">DiÄŸer</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">Silahlar</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2588,6 +2557,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_uk.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">СкаÑувати</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">СкаÑувати</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -45,13 +118,36 @@
         <translation>Редагувати Ñхеми</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation>Коли ввімкнена Ñ†Ñ Ð¾Ð¿Ñ†Ñ–Ñ Ð¿Ñ€Ð¸ виборі Ñхеми гри Ð·Ð±Ñ€Ð¾Ñ Ð±ÑƒÐ´Ðµ вибрана автоматично</translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished">Параметри гри</translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -102,10 +198,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -140,20 +232,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished">Ваш нік %1 вже
-зареєÑтрований на Hedgewars.org
-Введіть ваш пароль нижче або
-виберіть інший нік в налаштуваннÑÑ… гри:</translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">Ім&apos;Ñ</translation>
     </message>
@@ -166,6 +244,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -181,18 +312,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>Мапа</translation>
-    </message>
-    <message>
-        <source>Themes</source>
-        <translation>Теми</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>Фільтр</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>Ð’ÑÑ–</translation>
     </message>
@@ -217,10 +336,6 @@
         <translation>Безглузді</translation>
     </message>
     <message>
-        <source>Type</source>
-        <translation>Тип</translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation>Малі тунелі</translation>
     </message>
@@ -229,28 +344,96 @@
         <translation>Середні тунелі</translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation>Великі тунелі</translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation>Малі плавучі оÑтрова</translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation>Середні плавучі оÑтрова</translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation>Великі плавучі оÑтрова</translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation>Перемішати</translation>
     </message>
     <message>
-        <source>Set</source>
-        <translation>Задати</translation>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">Випадково</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished">Завантажити намальовану мапу</translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -322,8 +505,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">Пароль</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -338,6 +521,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">СкаÑувати</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -345,6 +554,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -363,6 +579,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -394,6 +621,38 @@
         <source>Set data</source>
         <translation>Ð’Ñтановити дані</translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">ОÑновні</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -448,8 +707,40 @@
         <translation>ОÑновні</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>Розширені</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">Капелюх</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished">Ðазва</translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">Випадкова Команда</translation>
     </message>
 </context>
 <context>
@@ -536,267 +827,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation>Виберіть той же колір що Ñ– в друга щоб грати в одній команді. Кожен з Ð²Ð°Ñ Ð±ÑƒÐ´Ðµ керувати влаÑними їжаками але вони виграють чи програють разом.</translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation>ДеÑка Ð·Ð±Ñ€Ð¾Ñ Ð½Ð°Ð½Ð¾Ñить мало шкоди, але вона може бути більш руйнівною в правильній Ñитуації. Спробуйте викориÑтати ПуÑтельного Орла Ð´Ð»Ñ ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾Ñ… їжаків у воду.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation>Якщо ви не знаєте що робити Ñ– не хочете витрачати боєприпаÑи, пропуÑÑ‚Ñ–Ñ‚ÑŒ один раунд. Ðле не марнуйте занадто багато чаÑу, тому-що прийде Раптова Смерть!</translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation>Якщо ви хочете закріпити за Ñобою нік на офіційному Ñервері, зареєÑтруйте аккаунт на http://www.hedgewars.org/.</translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation>Ви втомилиÑÑ Ð²Ñ–Ð´ гри за замовчуваннÑм? Спробуйте одну з міÑій - вони пропонують різні види гри залежно від вашого вибору.</translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation>За замовчуваннÑм оÑÑ‚Ð°Ð½Ð½Ñ Ð³Ñ€Ð° завжди буде запиÑуватиÑÑŒ в ÑкоÑÑ‚Ñ– демо. Виберіть &apos;Локальну Гру&apos; Ñ– натиÑніть кнопку &apos;ДемонÑтрації&apos; у нижньому правому куті щоб грати або керувати ними.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars Ñ” відкритою та безплатною, ми Ñтворюємо Ñ—Ñ— у вільний чаÑ. Якщо у Ð²Ð°Ñ Ñ” проблеми, запитайте на нашому форумі, але будь-лаÑка, не чекайте підтримки 24/7!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars Ñ” відкритою та безплатною, ми Ñтворюємо Ñ—Ñ— у вільний чаÑ. Якщо вона вам подобаєтьÑÑ, допоможіть нам невеликим внеÑком або вкладіть Ñвою роботу!</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars Ñ” відкритою та безплатною, ми Ñтворюємо Ñ—Ñ— у вільний чаÑ. ПоділітьÑÑ Ð³Ñ€Ð¾ÑŽ з родиною та друзÑми!</translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation>Ð§Ð°Ñ Ð²Ñ–Ð´ чаÑу проводÑÑ‚ÑŒÑÑ Ð¾Ñ„Ñ–Ñ†Ñ–Ð¹Ð½Ñ– турніри. Майбутні події будуть оголошені на http://www.hedgewars.org/ за кілька днів перед проведеннÑм.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars доÑтупна на багатьох мовах. Якщо переклад на вашу мову заÑтарів чи відÑутній, не ÑоромтеÑÑ Ð·Ð²ÐµÑ€Ñ‚Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ наÑ!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars може бути запущений на багатьох операційних ÑиÑтемах, включаючи Microsoft Windows, Mac OS X Ñ– Linux.</translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation>Завжди пам&apos;Ñтайте, ви можете Ñтворити Ñвою влаÑну гру в локальному та мережному/онлайн-режимах. Ви не обмежені опцією &apos;ПроÑта Гра&apos;.</translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation>Поки граєте гру зробіть коротку перерву хоча б раз на годину.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation>Якщо ваша відеокарта не може забезпечити апаратне приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ OpenGL, Ñпробуйте включити режим низької ÑкоÑÑ‚Ñ– Ð´Ð»Ñ Ð¿Ñ–Ð´Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚Ñ–.</translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation>Ми відкриті Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ð¹ Ñ– конÑтруктивного зворотнього зв&apos;Ñзку. Якщо вам не подобаєтьÑÑ Ñ‰Ð¾ÑÑŒ або Ñ” відмінна ідеÑ, дайте нам знати!</translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation>ОÑобливо під Ñ‡Ð°Ñ Ð³Ñ€Ð¸ онлайн будьте ввічливі Ñ– завжди пам&apos;Ñтайте, з вами чи проти Ð²Ð°Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ грати неповнолітні!</translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation>Спеціальні режими гри, такі Ñк &apos;Вампіризм&apos; чи &apos;Карма&apos; дозволÑÑŽÑ‚ÑŒ розроблÑти цілком нову тактику. Спробуйте Ñ—Ñ… в налаштованій грі!</translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation>Ви не повинні вÑтановлювати Hedgewars на комп&apos;ютерах, Ñкі вам не належать (школа, універÑитет, робота тощо). Будь лаÑка, звертайтеÑÑŒ до відповідальної оÑоби!</translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars чудово підходить Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¾Ñ— гри під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ€Ð². ПереконайтеÑÑ, що ви не додали занадто багато їжаків Ñ– не взÑли велику карту. Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу Ñ– здоров&apos;Ñ Ñ‚Ð°ÐºÐ¾Ð¶ підійде.</translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation>Під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ñ€Ð¾Ð±ÐºÐ¸ гри не поÑтраждав жодний їжак.</translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation>Hedgewars Ñ” відкритою та безплатною, ми Ñтворюємо Ñ—Ñ— у вільний чаÑ. Якщо хтоÑÑŒ продав вам гру, ви повинні Ñпробувати отримати відшкодуваннÑ!</translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation>Підключіть один або кілька геймпадів перед початком гри, щоб ваші команди могли ними кориÑтуватиÑÑŒ.</translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation>Створіть акаунт на %1 щоб запобігти викориÑтанню іншими оÑобами вашого улюбленого ніку під Ñ‡Ð°Ñ Ð³Ñ€Ð¸ на офіційному Ñервері.</translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation>Якщо ваша відеокарта не може забезпечити апаратне приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ OpenGL, Ñпробуйте оновити відповідні драйвери.</translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation>Ð’ грі Ñ–Ñнують три різних види Ñтрибків. ÐатиÑніть [виÑокий Ñтрибок] двічі щоб зробити дуже виÑокий Ñтрибок назад.</translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation>БоїтеÑÑŒ Ð¿Ð°Ð´Ñ–Ð½Ð½Ñ Ð·Ñ– Ñкелі? Утримуйте [точно] щоб повернутиÑÑŒ [вліво] чи [вправо] без фактичного переміщеннÑ.</translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation>ДеÑка Ð·Ð±Ñ€Ð¾Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” Ñпеціальних Ñтратегій або проÑто багато тренувань, тому не відмовлÑйтеÑÑŒ від конкретного інÑтрументу, Ñкщо ви раз не знешкодили ворога.</translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation>БільшіÑÑ‚ÑŒ зброї не буде працювати піÑÐ»Ñ Ñ‚Ð¾Ñ€ÐºÐ°Ð½Ð½Ñ Ð²Ð¾Ð´Ð¸. Бджола та Торт Ñ” виключеннÑми з цього правила.</translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation>Старий лімбургÑький Ñир викликає лише невеликий вибух. Однак Ñмердюча хмара, Ñку відноÑить вітер, може отруїти багато їжаків за раз.</translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation>Ðапад піаніно Ñ” найбільш руйнівним повітрÑним ударом. Ðле ви втратите їжака, тому він має Ñ– негативну Ñторону.</translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation>Липкі Міни чудовий інÑтрумент ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¼Ð°Ð»Ð¸Ñ… ланцюгових реакцій Ð´Ð»Ñ Ð·Ð°ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð²Ð¾Ñ€Ð¾Ð³Ñ–Ð² у Ñкладні Ñитуації ... або у воду.</translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation>Молоток найбільш ефективний при викориÑтанні на моÑтах чи балках. Удар їжака проÑто провалить його крізь землю.</translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation>Якщо ви заÑÑ‚Ñ€Ñгли за ворожим їжаком, викориÑтайте Молоток, щоб звільнити Ñебе без пошкоджень від вибуху.</translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation>Ðайбільший шлÑÑ… ходьби Торта залежить від землі, по Ñкій він повинен пройти. ВикориÑтовуйте [атака] щоб підірвати його раніше.</translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation>Вогнемет це зброÑ, але його можна також викориÑтати Ð´Ð»Ñ Ñ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÑƒÐ½ÐµÐ»ÑŽ.</translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation>Хочете знати хто робить гру? ÐатиÑніть на логотип Hedgewars в головному меню, щоб побачити ÑпиÑок.</translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation>ПодобаєтьÑÑ Hedgewars? Станьте фанатом на %1 або Ñлідуйте за нами на %2!</translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation>Ви можете Ñамі намалювати надгробки, шапки, прапори та навіть мапи Ñ– теми! Ðле врахуйте, вам доведетьÑÑ Ð¿Ð¾Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ÑÑ Ð½Ð¸Ð¼Ð¸ з кимоÑÑŒ щоб викориÑтати Ñ—Ñ… в інтернет-грі.</translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation>Хочете ноÑити оÑобливий капелюх? ВнеÑÑ–Ñ‚ÑŒ пожертву Ñ– отримайте екÑклюзивний капелюх на ваш вибір!</translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation>ВикориÑтовуйте оÑтанні відео драйвери щоб уникнути проблем під Ñ‡Ð°Ñ Ð³Ñ€Ð¸.</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Ви можете знайти файли конфігурації Hedgewars в &quot;My Documents\Hedgewars&quot;. Ви можете Ñтворити резервні копії або взÑти файли з Ñобою, але не редагуйте Ñ—Ñ….</translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation>Ви можете зв&apos;Ñзати відповідні файли Hedgewars (файли Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‚Ð° демо-запиÑи) з грою щоб запуÑкати Ñ—Ñ… з вашої улюбленої теки чи інтернет-браузеру.</translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation>Хочете заощадити мотузки? ВипуÑÑ‚Ñ–Ñ‚ÑŒ мотузку в Ð¿Ð¾Ð²Ñ–Ñ‚Ñ€Ñ Ð° потім знову ÑтрілÑйте. Поки ви не торкнулиÑÑŒ грунту ви можете знову викориÑтовувати мотузку, не витрачаючи боєприпаÑи!</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Ви можете знайти файли конфігурації Hedgewars в &quot;Library/Application Support/Hedgewars&quot; в домашній теці. Ви можете Ñтворити резервні копії або взÑти файли з Ñобою, але не редагуйте Ñ—Ñ….</translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation>Ви можете знайти файли конфігурації Hedgewars в &quot;.hedgewars&quot; в домашній теці. Ви можете Ñтворити резервні копії або взÑти файли з Ñобою, але не редагуйте Ñ—Ñ….</translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation>Windows-верÑÑ–Ñ Hedgewars підтримує Xfire. ПереконайтеÑÑ Ð² тому, що ви додали Hedgewars до ÑпиÑку ігор, щоб ваші друзі могли бачити Ð²Ð°Ñ Ð² грі.</translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation>ВикориÑтайте Коктейль Молотова або Вогнемет щоб тимчаÑово утримати їжаків від Ð¿Ñ€Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ñ— міÑцевоÑÑ‚Ñ– Ñк тунелі або платформи.</translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation>Ðавідна Бджілка може бути Ñкладною у керуванні. Ð Ð°Ð´Ñ–ÑƒÑ Ð¿Ð¾Ð²Ð¾Ñ€Ð¾Ñ‚Ñƒ залежить від Ñ—Ñ— швидкоÑÑ‚Ñ–, тому поÑтарайтеÑÑ Ð½Ðµ ÑтрілÑти на повну Ñилу.</translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -824,6 +862,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -831,6 +877,10 @@
         <source>Start</source>
         <translation>Старт</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -838,24 +888,13 @@
         <source>Control</source>
         <translation>КеруваннÑ</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>Локальна гра</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>Офіційний Ñервер</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
+    <message>
+        <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+        <source>Start</source>
+        <translation type="unfinished">Старт</translation>
     </message>
 </context>
 <context>
@@ -901,10 +940,6 @@
         <translation>Видалити набір зброї</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">ОÑновні</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">Розширені</translation>
     </message>
@@ -944,6 +979,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">Команди</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">ЗброÑ</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1144,18 +1267,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1164,26 +1279,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">Завантажити</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1230,14 +1333,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1245,6 +1340,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1257,10 +1362,6 @@
         <translation>Інфо</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>Старт</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>Обмежити ПриєднаннÑ</translation>
     </message>
@@ -1308,18 +1409,6 @@
         <translation>Повний екран</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>Меню на повний екран</translation>
-    </message>
-    <message>
-        <source>Enable sound</source>
-        <translation>Включити звук</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation>Включити музику</translation>
-    </message>
-    <message>
         <source>Show FPS</source>
         <translation>Показувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ FPS</translation>
     </message>
@@ -1336,18 +1425,6 @@
         <translation>Показувати підказки в меню зброї</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation>Включити звуки в меню</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation>Включити музику в меню</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation>Ефекти меню</translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1367,14 +1444,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>згенерована мапа...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>Людина</translation>
     </message>
@@ -1387,14 +1488,6 @@
         <translation>(СиÑтемні замовчуваннÑ)</translation>
     </message>
     <message>
-        <source>Mission</source>
-        <translation>МіÑÑ–Ñ</translation>
-    </message>
-    <message>
-        <source>generated maze...</source>
-        <translation>згенерований лабіринт...</translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation>Спільнота</translation>
     </message>
@@ -1411,10 +1504,6 @@
         <translation>Ð’ процеÑÑ–</translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation>вручну намальована мапа...</translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation>Вимкнено</translation>
     </message>
@@ -1451,10 +1540,6 @@
         <translation>Верх-низ</translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation>ПогойдуваннÑ</translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation>Черв./Блак. відтінки Ñірого</translation>
     </message>
@@ -1490,18 +1575,6 @@
         <translation>Форт</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>Прив&apos;Ñзки клавіш</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>Команди</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð—Ð²ÑƒÐºÑƒ та Графіки</translation>
-    </message>
-    <message>
         <source>Net game</source>
         <translation>Мережна гра</translation>
     </message>
@@ -1522,26 +1595,6 @@
         <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐšÐ¾Ð¼Ð°Ð½Ð´Ð¸</translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation>Різне</translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation>Схеми та ЗброÑ</translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1549,10 +1602,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1569,26 +1618,6 @@
         <translation>ВерÑÑ–Ñ</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>Розробники:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>Графіка:</translation>
-    </message>
-    <message>
-        <source>Sounds:</source>
-        <translation>Звуки:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>Переклади:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>ОÑоблива вдÑчніÑÑ‚ÑŒ:</translation>
-    </message>
-    <message>
         <source>Weapons</source>
         <translation>ЗброÑ</translation>
     </message>
@@ -1645,10 +1674,6 @@
         <translation>КількіÑÑ‚ÑŒ Подарунків</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>Схема гри</translation>
-    </message>
-    <message>
         <source>% Dud Mines</source>
         <translation>% Бракованих Мін</translation>
     </message>
@@ -1685,10 +1710,6 @@
         <translation>Порада: </translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation>Ð¦Ñ Ñ€Ð¾Ð·Ñ€Ð¾Ð±Ð½Ð¸Ñ†ÑŒÐºÐ° збірка Ñ” проміжною Ñ– може бути неÑуміÑною з іншими верÑÑ–Ñми гри. ДеÑкі функції можуть бути зламані чи неповні. ВикориÑтовуйте Ñ—Ñ— на Ñвій Ñтрах Ñ– ризик!</translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation>ЯкіÑÑ‚ÑŒ</translation>
     </message>
@@ -1763,10 +1784,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1794,6 +1811,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">Повний екран</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1832,10 +1881,6 @@
         <translation>Файлове аÑÐ¾Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ðµ вдалоÑÑŒ</translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1882,18 +1927,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2042,16 +2075,37 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation>Ім&apos;Ñ</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation>Будь лаÑка введіть ваше ім&apos;Ñ</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -2109,26 +2163,10 @@
         <translation>Завантажити</translation>
     </message>
     <message>
-        <source>Setup</source>
-        <translation>ÐалаштуваннÑ</translation>
-    </message>
-    <message>
-        <source>Ready</source>
-        <translation>Готовий</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation>Випадкова Команда</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation>ÐÑоціювати файлові розширеннÑ</translation>
     </message>
     <message>
-        <source>more</source>
-        <translation>більше</translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2221,6 +2259,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">СкаÑувати</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2248,109 +2305,24 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>Вампіризм</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>Карма</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>ÐртилеріÑ</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>Режим Форту</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>Ð Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ ÐšÐ¾Ð¼Ð°Ð½Ð´</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>Щільний Грунт</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>Додати Кордон</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>Слабка ГравітаціÑ</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>Лазерний Приціл</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>ÐевразливіÑÑ‚ÑŒ</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation>Випадковий ПорÑдок</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation>Король</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation>РозміÑтити Їжаків</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation>Клан ДілитьÑÑ Ð‘Ð¾Ñ”Ð¿Ñ€Ð¸Ð¿Ð°Ñами</translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation>Вимкнути Балки</translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation>Вимкнути Декорації</translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation>Режим AI ВиживаннÑ</translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation>Скинути Здоров&apos;Ñ</translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation>Ðеобмежені Ðтаки</translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation>Скинути Зброю</translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation>БоєприпаÑи на Їжака</translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation>Вимкнути Вітер</translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation>Більше Вітру</translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation>Збірна Команда</translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">СкаÑувати</translation>
+    </message>
+</context>
+<context>
     <name>binds</name>
     <message>
         <source>up</source>
@@ -2481,12 +2453,6 @@
         <translation>знімок</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>інформаціÑ
-про їжачків</translation>
-    </message>
-    <message>
         <source>quit</source>
         <translation>вихід</translation>
     </message>
@@ -2522,33 +2488,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation>ОÑновні елементи керуваннÑ</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation>ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±Ñ€Ð¾Ñ”ÑŽ</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation>ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ð¼ÐµÑ€Ð¾ÑŽ Ñ– курÑором</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation>Інше</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">ЗброÑ</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¸Ñ… їжаків та цілі:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation>ÐŸÐ¾Ð´Ð¾Ð»Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ð°Ð»Ð¸Ð½ Ñ– перешкод Ñтрибками:</translation>
     </message>
@@ -2612,6 +2578,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -4,7 +4,7 @@
 <context>
     <name>AbstractPage</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/AbstractPage.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/ui/page/AbstractPage.cpp" line="55"/>
         <source>Go back</source>
         <translation type="unfinished"></translation>
     </message>
@@ -23,6 +23,96 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="35"/>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="38"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="39"/>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="40"/>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="41"/>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="42"/>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="48"/>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="49"/>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="77"/>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="84"/>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="149"/>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="114"/>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="140"/>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="168"/>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/FreqSpinBox.cpp" line="36"/>
@@ -40,27 +130,60 @@
 <context>
     <name>GameCFGWidget</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="54"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="60"/>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="94"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="100"/>
         <source>Edit weapons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="102"/>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="79"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="108"/>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="85"/>
         <source>Edit schemes</source>
         <translation>修改游æˆè®¾ç½®</translation>
     </message>
 </context>
 <context>
+    <name>HWApplication</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="25"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="26"/>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="27"/>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="28"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="29"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="30"/>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="31"/>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="32"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="33"/>
+        <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="34"/>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>HWAskQuitDialog</name>
     <message>
         <location filename="../../../../QTfrontend/ui/dialog/ask_quit.cpp" line="33"/>
@@ -71,128 +194,175 @@
 <context>
     <name>HWChatWidget</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="627"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="625"/>
         <source>%1 has been removed from your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="637"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="635"/>
         <source>%1 has been added to your ignore list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="667"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="665"/>
         <source>%1 has been removed from your friends list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="676"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="674"/>
         <source>%1 has been added to your friends list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="742"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="740"/>
         <source>Stylesheet imported from %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="743"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="741"/>
         <source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="751"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="749"/>
         <source>Couldn&apos;t read %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="759"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="757"/>
         <source>StyleSheet discarded</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="781"/>
+        <source>StyleSheet saved to %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="784"/>
-        <source>StyleSheet saved to %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="787"/>
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="807"/>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="460"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="462"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="475"/>
         <source>DefaultTeam</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="566"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="479"/>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="629"/>
         <source>Game aborted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="978"/>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="982"/>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1008"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1047"/>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1048"/>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1076"/>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1081"/>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1093"/>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1008"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1093"/>
         <source>Someone already uses your nickname %1 on the server.
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1012"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1098"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1369"/>
         <source>No nickname supplied.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1662"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1098"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1369"/>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1120"/>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1120"/>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1141"/>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1486"/>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1486"/>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1885"/>
         <source>Hedgewars Demo File</source>
         <comment>File Types</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1663"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1886"/>
         <source>Hedgewars Save File</source>
         <comment>File Types</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1939"/>
         <source>Demo name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1939"/>
         <source>Demo name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1432"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1719"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1642"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1947"/>
         <source>Cannot save record to file %1</source>
         <translation>无法录入文件 %1</translation>
     </message>
@@ -200,13 +370,13 @@
 <context>
     <name>HWGame</name>
     <message>
-        <location filename="../../../../QTfrontend/game.cpp" line="333"/>
-        <location filename="../../../../QTfrontend/net/recorder.cpp" line="118"/>
+        <location filename="../../../../QTfrontend/game.cpp" line="363"/>
+        <location filename="../../../../QTfrontend/net/recorder.cpp" line="112"/>
         <source>en.txt</source>
         <translation>zh_CN.txt</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/game.cpp" line="344"/>
+        <location filename="../../../../QTfrontend/game.cpp" line="404"/>
         <source>Cannot open demofile %1</source>
         <translation>DEMO %1 打ä¸å¼€</translation>
     </message>
@@ -214,95 +384,161 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="82"/>
-        <source>Map</source>
-        <translation>地图</translation>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="215"/>
+        <source>Small tunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/>
+        <source>Medium tunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="124"/>
+        <source>Seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="93"/>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="96"/>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="97"/>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="98"/>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="99"/>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/>
-        <source>Small tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="104"/>
-        <source>Medium tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="105"/>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="106"/>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="107"/>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="108"/>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="118"/>
-        <source>Themes</source>
-        <translation>主题</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="162"/>
-        <source>Seed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="555"/>
-        <source>Set</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="85"/>
-        <source>Filter</source>
-        <translation>过滤</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="89"/>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/>
+        <source>Random</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="183"/>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="189"/>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="202"/>
         <source>All</source>
         <translation>全部</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="90"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="203"/>
         <source>Small</source>
         <translation>å°åž‹</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="91"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/>
         <source>Medium</source>
         <translation>中型</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="92"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/>
         <source>Large</source>
         <translation>大型</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/>
         <source>Cavern</source>
         <translation>æ´žç©´</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="94"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/>
         <source>Wacky</source>
         <translation>曲折</translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="682"/>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="690"/>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="704"/>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="715"/>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="775"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="906"/>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="857"/>
+        <source>All files</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWNetServersModel</name>
@@ -325,65 +561,65 @@
 <context>
     <name>HWNewNet</name>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="73"/>
         <source>User quit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="212"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="214"/>
         <source>Remote host has closed connection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="215"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="217"/>
         <source>The host was not found. Please check the host name and port settings.</source>
         <translation>错误没找到这个主机。请检查主机å和端å£è®¾ç½®ã€‚</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="218"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="220"/>
         <source>Connection refused</source>
         <translation>连接被拒ç»</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="276"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="279"/>
         <source>The server is too old. Disconnecting now.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="471"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="490"/>
         <source>%1 *** %2 has joined</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="518"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="739"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="537"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="769"/>
         <source>%1 *** %2 has left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="520"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="741"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="539"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="771"/>
         <source>%1 *** %2 has left (%3)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="597"/>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="724"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="621"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="754"/>
         <source>%1 *** %2 has joined the room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1282"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1503"/>
         <source>Quit reason: </source>
         <translation>退出原因:</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="648"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="678"/>
         <source>Room destroyed</source>
         <translation>房间æŸå</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="447"/>
+        <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="466"/>
         <source>You got kicked</source>
         <translation>被踢出</translation>
     </message>
@@ -392,8 +628,8 @@
     <name>HWPasswordDialog</name>
     <message>
         <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="30"/>
-        <source>Password</source>
-        <translation type="unfinished">密ç </translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -410,6 +646,37 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatbutton.cpp" line="40"/>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="63"/>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="87"/>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="103"/>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="107"/>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <location filename="../../../../QTfrontend/KB.h" line="28"/>
@@ -418,6 +685,14 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/keybinder.cpp" line="100"/>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="281"/>
@@ -440,44 +715,97 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="305"/>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="185"/>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="34"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="40"/>
+        <source>General</source>
+        <translation type="unfinished">常规</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="41"/>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="48"/>
         <source>Fetch data</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="38"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="52"/>
         <source>Server message for latest version:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="46"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="60"/>
         <source>Server message for previous versions:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="54"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="68"/>
         <source>Latest version protocol number:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="62"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="76"/>
         <source>MOTD preview:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="85"/>
         <source>Clear Accounts Cache</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="74"/>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="88"/>
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="97"/>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="98"/>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="99"/>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="108"/>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="109"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageadmin.cpp" line="110"/>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -541,13 +869,53 @@
     <name>PageEditTeam</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="45"/>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="47"/>
         <source>General</source>
         <translation>常规</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="46"/>
-        <source>Advanced</source>
-        <translation>进阶</translation>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="48"/>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="66"/>
+        <source>Hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="67"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="78"/>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="84"/>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="88"/>
+        <source>Random Team</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -568,47 +936,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="173"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="174"/>
         <source>The best shot award was won by &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; pts.</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="181"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="182"/>
         <source>The best killer is &lt;b&gt;%1&lt;/b&gt; with &lt;b&gt;%2&lt;/b&gt; kills in a turn.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="188"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="189"/>
         <source>A total of &lt;b&gt;%1&lt;/b&gt; hedgehog(s) were killed during this round.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="252"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="253"/>
         <source>(%1 kill)</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="263"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="264"/>
         <source>&lt;b&gt;%1&lt;/b&gt; thought it&apos;s good to shoot his own hedgehogs with &lt;b&gt;%2&lt;/b&gt; pts.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="271"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
         <source>&lt;b&gt;%1&lt;/b&gt; killed &lt;b&gt;%2&lt;/b&gt; of his own hedgehogs.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="279"/>
+        <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="280"/>
         <source>&lt;b&gt;%1&lt;/b&gt; was scared and skipped turn &lt;b&gt;%2&lt;/b&gt; times.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -635,358 +1003,69 @@
     <name>PageMain</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="45"/>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="46"/>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="50"/>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="51"/>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="58"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="66"/>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="71"/>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="78"/>
         <source>Read about who is behind the Hedgewars Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="63"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="83"/>
         <source>Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="67"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="86"/>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="69"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="88"/>
         <source>Access the user created content downloadable from our website</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="89"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="108"/>
         <source>Exit game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="112"/>
         <source>Manage videos recorded from game</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="116"/>
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="128"/>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="129"/>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="130"/>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="131"/>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="132"/>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="133"/>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="134"/>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="135"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="136"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="137"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="138"/>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="139"/>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="140"/>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="141"/>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="142"/>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="143"/>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="144"/>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="145"/>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="146"/>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="147"/>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="148"/>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="149"/>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="150"/>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="151"/>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="152"/>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="153"/>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="154"/>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="155"/>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="156"/>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="157"/>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="158"/>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="159"/>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="160"/>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="161"/>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="162"/>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="163"/>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="164"/>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="165"/>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="166"/>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="167"/>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="168"/>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="169"/>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="170"/>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="171"/>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="175"/>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="176"/>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="178"/>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="180"/>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="182"/>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="52"/>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="64"/>
         <source>Start</source>
         <translation>开始</translation>
     </message>
@@ -994,141 +1073,234 @@
 <context>
     <name>PageNetGame</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="84"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="63"/>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="90"/>
         <source>Control</source>
         <translation>Ctrl</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="35"/>
-        <source>LAN game</source>
-        <translation>局域网游æˆ</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="36"/>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="37"/>
-        <source>Official server</source>
-        <translation>官方æœåŠ¡å™¨</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenettype.cpp" line="38"/>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="96"/>
+        <source>Start</source>
+        <translation type="unfinished">开始</translation>
     </message>
 </context>
 <context>
     <name>PageOptions</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="50"/>
-        <source>General</source>
-        <translation type="unfinished">常规</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="91"/>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="96"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="239"/>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="99"/>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="102"/>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="104"/>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="108"/>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="112"/>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="115"/>
         <source>Advanced</source>
         <translation type="unfinished">进阶</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="77"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="128"/>
+        <source>Teams</source>
+        <translation type="unfinished">队ä¼</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="138"/>
         <source>New team</source>
         <translation>新队ä¼</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="85"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="146"/>
         <source>Edit team</source>
         <translation>修改队ä¼è®¾å®š</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="154"/>
         <source>Delete team</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="101"/>
-        <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="127"/>
-        <source>New scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="134"/>
-        <source>Edit scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="141"/>
-        <source>Delete scheme</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="155"/>
-        <source>New weapon set</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="162"/>
-        <source>Edit weapon set</source>
+        <source>You can&apos;t edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="169"/>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="178"/>
+        <source>New scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="185"/>
+        <source>Edit scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="192"/>
+        <source>Delete scheme</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="200"/>
+        <source>Weapons</source>
+        <translation type="unfinished">武器</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="209"/>
+        <source>New weapon set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="216"/>
+        <source>Edit weapon set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="223"/>
         <source>Delete weapon set</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="405"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="369"/>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="386"/>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="416"/>
         <source>Reset to default colors</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="429"/>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="467"/>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="490"/>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="516"/>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="522"/>
         <source>Proxy host</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="523"/>
         <source>Proxy port</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="456"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="524"/>
         <source>Proxy login</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="457"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="525"/>
         <source>Proxy password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="468"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="538"/>
         <source>No proxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="469"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="539"/>
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="470"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="540"/>
         <source>Socks5 proxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="541"/>
         <source>HTTP proxy</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="576"/>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="629"/>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="643"/>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1181,7 +1353,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="492"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="490"/>
         <source>%1 players online</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -1196,152 +1368,152 @@
 <context>
     <name>PageScheme</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="72"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="71"/>
         <source>Defend your fort and destroy the opponents, two team colours max!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="77"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="75"/>
         <source>Teams will start on opposite sides of the terrain, two team colours max!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="82"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="79"/>
         <source>Land can not be destroyed!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="83"/>
+        <source>Add an indestructible border around the terrain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="87"/>
-        <source>Add an indestructible border around the terrain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="92"/>
         <source>Lower gravity</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="91"/>
         <source>Assisted aiming with laser sight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="102"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="95"/>
         <source>All hogs have a personal forcefield</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="99"/>
+        <source>All (living) hedgehogs are fully restored at the end of turn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="103"/>
+        <source>Gain 80% of the damage you do back in health</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="107"/>
-        <source>All (living) hedgehogs are fully restored at the end of turn</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="112"/>
-        <source>Gain 80% of the damage you do back in health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="117"/>
         <source>Share your opponents pain, share their damage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="111"/>
         <source>Your hogs are unable to move, put your artillery skills to the test</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="115"/>
+        <source>Order of play is random instead of in room order.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="119"/>
+        <source>Play with a King. If he dies, your side dies.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="123"/>
+        <source>Take turns placing your hedgehogs before the start of play.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="127"/>
-        <source>Order of play is random instead of in room order.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="132"/>
-        <source>Play with a King. If he dies, your side dies.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="137"/>
-        <source>Take turns placing your hedgehogs before the start of play.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="142"/>
         <source>Ammo is shared between all teams that share a colour.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="131"/>
+        <source>Disable girders when generating random maps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="135"/>
+        <source>Disable land objects when generating random maps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="139"/>
+        <source>AI respawns on death.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="143"/>
+        <source>Attacking does not end your turn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="147"/>
-        <source>Disable girders when generating random maps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="152"/>
-        <source>Disable land objects when generating random maps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="157"/>
-        <source>AI respawns on death.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="162"/>
-        <source>Attacking does not end your turn.</source>
+        <source>Weapons are reset to starting values each turn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="151"/>
+        <source>Each hedgehog has its own ammo. It does not share with the team.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="155"/>
+        <source>You will not have to worry about wind anymore.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="159"/>
+        <source>Wind will affect almost everything.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="163"/>
+        <source>Teams in each clan take successive turns sharing their turn time.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="167"/>
-        <source>Weapons are reset to starting values each turn.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="172"/>
-        <source>Each hedgehog has its own ammo. It does not share with the team.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="177"/>
-        <source>You will not have to worry about wind anymore.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="182"/>
-        <source>Wind will affect almost everything.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="187"/>
-        <source>Teams in each clan take successive turns sharing their turn time.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="192"/>
         <source>Add an indestructible border along the bottom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="350"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="325"/>
         <source>Random</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="351"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="326"/>
         <source>Seconds</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="427"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="402"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="428"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="403"/>
         <source>New</source>
         <translation>新游æˆ</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="429"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="404"/>
         <source>Delete</source>
         <translation>删除</translation>
     </message>
@@ -1373,60 +1545,34 @@
     <name>PageSinglePlayer</name>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="39"/>
-        <source>Simple Game</source>
-        <translation type="unfinished">简å•æ¸¸æˆ</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="40"/>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="42"/>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="49"/>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="50"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="47"/>
         <source>Campaign Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="54"/>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="51"/>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="67"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="62"/>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="70"/>
-        <source>Load</source>
-        <translation type="unfinished">读å–</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="71"/>
+        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="65"/>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="43"/>
-        <source>Multiplayer</source>
-        <translation type="unfinished">多人游æˆ</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagesingleplayer.cpp" line="66"/>
-        <source>Demos</source>
-        <translation type="unfinished">Demo</translation>
-    </message>
 </context>
 <context>
     <name>PageTraining</name>
@@ -1441,12 +1587,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="211"/>
+        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="206"/>
         <source>No description available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="219"/>
+        <location filename="../../../../QTfrontend/ui/page/pagetraining.cpp" line="214"/>
         <source>Select a mission!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1454,44 +1600,46 @@
 <context>
     <name>PageVideos</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="234"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="121"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="235"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="122"/>
         <source>Size</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="498"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="263"/>
         <source>%1 bytes</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="742"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="507"/>
         <source>(in progress...)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="746"/>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="747"/>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="966"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="511"/>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="512"/>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="731"/>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="968"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="733"/>
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1499,64 +1647,59 @@
 <context>
     <name>QAction</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="252"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="246"/>
         <source>Kick</source>
         <translation>踢</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="79"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="85"/>
         <source>Update</source>
         <translation type="unfinished">æ›´æ–°</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="87"/>
-        <source>Start</source>
-        <translation>开始</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="107"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="121"/>
         <source>Restrict Joins</source>
         <translation>é™åˆ¶å‚与</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="109"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="123"/>
         <source>Restrict Team Additions</source>
         <translation>é™åˆ¶å›¢é˜Ÿæ’件</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="248"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="242"/>
         <source>Info</source>
         <translation>ä¿¡æ¯</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="256"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="250"/>
         <source>Ban</source>
         <translation>å±è”½</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="260"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="254"/>
         <source>Follow</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="264"/>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="865"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="258"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="858"/>
         <source>Ignore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="268"/>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="877"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="262"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="870"/>
         <source>Add friend</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="860"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="853"/>
         <source>Unignore</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="872"/>
+        <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="865"/>
         <source>Remove friend</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1564,68 +1707,75 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="349"/>
-        <source>Enable sound</source>
-        <translation>å¼€å¯éŸ³æ•ˆ</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="291"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="375"/>
         <source>Fullscreen</source>
         <translation>游æˆå…¨å±å¹•</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="424"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="347"/>
         <source>Show FPS</source>
         <translation>显示帧率 (FPS)</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="365"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="358"/>
         <source>Alternative damage show</source>
         <translation>å¦ä¸€ç§ä¼¤å®³æ˜¾ç¤ºæ–¹å¼</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="241"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="461"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="476"/>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="462"/>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="472"/>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="477"/>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="622"/>
         <source>Check for updates at startup</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="265"/>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="269"/>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="273"/>
-        <source>Enable frontend music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="353"/>
-        <source>Enable music</source>
-        <translation>å¼€å¯éŸ³ä¹</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="431"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="364"/>
         <source>Show ammo menu tooltips</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="261"/>
-        <source>Frontend fullscreen</source>
-        <translation>ç•Œé¢å…¨å±å¹•</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="436"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="602"/>
         <source>Append date and time to record file name</source>
         <translation>记录å称中包å«å…·ä½“时间日期</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="43"/>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="231"/>
+        <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="59"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="507"/>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1640,12 +1790,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="151"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="683"/>
         <source>Record audio</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="192"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="732"/>
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1653,129 +1803,104 @@
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="50"/>
-        <source>generated map...</source>
-        <translation>生æˆåœ°å›¾...</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="52"/>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="54"/>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/model/MapModel.cpp" line="116"/>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="115"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="122"/>
         <source>Human</source>
         <translation>玩家</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="323"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="284"/>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="119"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="126"/>
         <source>Level</source>
         <translation>Lv 级别</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="199"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="588"/>
         <source>(System default)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="311"/>
+        <source>Disabled</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="312"/>
-        <source>Disabled</source>
+        <source>Red/Cyan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="313"/>
-        <source>Red/Cyan</source>
+        <source>Cyan/Red</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="314"/>
-        <source>Cyan/Red</source>
+        <source>Red/Blue</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="315"/>
-        <source>Red/Blue</source>
+        <source>Blue/Red</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="316"/>
-        <source>Blue/Red</source>
+        <source>Red/Green</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="317"/>
-        <source>Red/Green</source>
+        <source>Green/Red</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
+        <source>Side-by-side</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
+        <source>Top-Bottom</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
-        <source>Green/Red</source>
+        <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
-        <source>Side-by-side</source>
+        <source>Cyan/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
-        <source>Top-Bottom</source>
+        <source>Red/Blue grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
-        <source>Wiggle</source>
+        <source>Blue/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
-        <source>Red/Cyan grayscale</source>
+        <source>Red/Green grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
-        <source>Cyan/Red grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
-        <source>Red/Blue grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
-        <source>Blue/Red grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="326"/>
-        <source>Red/Green grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="327"/>
         <source>Green/Red grayscale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="111"/>
         <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="112"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="176"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="174"/>
         <source>Any</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1793,62 +1918,22 @@
 <context>
     <name>QGroupBox</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="60"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="61"/>
         <source>Team Members</source>
         <translation>æˆå‘˜</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="89"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="96"/>
         <source>Team Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="143"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="150"/>
         <source>Fort</source>
         <translation>城堡模å¼</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="162"/>
-        <source>Key binds</source>
-        <translation>é”®ä½ç»‘定</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="69"/>
-        <source>Teams</source>
-        <translation>队ä¼</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="116"/>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="184"/>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="253"/>
-        <source>Audio/Graphic options</source>
-        <translation>音频/视频选项</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="412"/>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="448"/>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="253"/>
+        <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="266"/>
         <source>Playing teams</source>
         <translation>玩家队ä¼</translation>
     </message>
@@ -1868,17 +1953,12 @@
         <translation>基本设置</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="120"/>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="231"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="118"/>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="267"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="154"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1886,62 +1966,56 @@
 <context>
     <name>QLabel</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="189"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="582"/>
         <source>Locale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="221"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="496"/>
         <source>Nickname</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="283"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="172"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="708"/>
         <source>Resolution</source>
         <translation>分辨率</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="295"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="293"/>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="308"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="250"/>
+        <source>Fullscreen</source>
+        <translation type="unfinished">游æˆå…¨å±å¹•</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="255"/>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="265"/>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="307"/>
         <source>Stereo rendering</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="418"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="338"/>
         <source>FPS limit</source>
         <translation>FPS 上é™</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="73"/>
         <source>This program is distributed under the GNU General Public License v2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="70"/>
-        <source>Developers:</source>
-        <translation>å¼€å‘者:</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="94"/>
-        <source>Art:</source>
-        <translation>艺术:</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="122"/>
-        <source>Translations:</source>
-        <translation>翻译:</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="146"/>
-        <source>Special thanks:</source>
-        <translation>特别感谢:</translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="51"/>
         <source>Server name:</source>
         <translation>æœåŠ¡å™¨å:</translation>
@@ -1962,112 +2036,101 @@
         <translation>端å£:</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="148"/>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="86"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="92"/>
         <source>Weapons</source>
         <translation>武器</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="53"/>
+        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="71"/>
         <source>Version</source>
         <translation>版本</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/about.cpp" line="112"/>
-        <source>Sounds:</source>
-        <translation>声音:</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="340"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="437"/>
         <source>Initial sound volume</source>
         <translation>åˆå§‹éŸ³é‡</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="200"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="175"/>
         <source>Damage Modifier</source>
         <translation>伤害修改</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="214"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="189"/>
         <source>Turn Time</source>
         <translation>回åˆæ—¶é—´</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="228"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="203"/>
         <source>Initial Health</source>
         <translation>åˆå§‹ç”Ÿå‘½å€¼</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="242"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="217"/>
         <source>Sudden Death Timeout</source>
         <translation>死亡模å¼å€’计时</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="256"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="231"/>
         <source>Sudden Death Water Rise</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="270"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="245"/>
         <source>Sudden Death Health Decrease</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="284"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="259"/>
         <source>% Rope Length</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="311"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="286"/>
         <source>% Health Crates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="325"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="300"/>
         <source>Health in Crates</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="339"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="314"/>
         <source>Mines Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="355"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="330"/>
         <source>Mines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="369"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="344"/>
         <source>% Dud Mines</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="383"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="358"/>
         <source>Explosives</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="397"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="372"/>
         <source>% Get Away Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="411"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="386"/>
         <source>Scheme Name:</source>
         <translation>设置å称:</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="298"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="273"/>
         <source>Crate Drops</source>
         <translation>ç®±å­é™è½</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="120"/>
-        <source>Game scheme</source>
-        <translation>游æˆè®¾ç½®</translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/dialog/ask_quit.cpp" line="38"/>
         <source>There are videos that are currently being processed.
 Exiting now will abort them.
@@ -2105,82 +2168,97 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="93"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="100"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="96"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="103"/>
         <source>Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="99"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="106"/>
         <source>Grave</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="102"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="109"/>
         <source>Flag</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="105"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="112"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagefeedback.cpp" line="45"/>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagefeedback.cpp" line="52"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="101"/>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="126"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="116"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="154"/>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="135"/>
         <source>Tip: </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="120"/>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="125"/>
+        <location filename="../../../../QTfrontend/ui/page/pagemain.cpp" line="139"/>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="652"/>
         <source>Format</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="142"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="672"/>
         <source>Audio codec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="163"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="697"/>
         <source>Video codec</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="197"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="738"/>
         <source>Framerate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="208"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="752"/>
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="55"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="61"/>
         <source>Style</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="74"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="80"/>
         <source>Scheme</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2188,18 +2266,18 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="879"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="930"/>
         <source>unnamed</source>
         <translation>æ— å</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/team.cpp" line="42"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="335"/>
+        <location filename="../../../../QTfrontend/team.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="296"/>
         <source>hedgehog %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="226"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="501"/>
         <source>anonymous</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2207,7 +2285,7 @@
 <context>
     <name>QMainWindow</name>
     <message>
-        <location filename="../../../../QTfrontend/ui_hwform.cpp" line="59"/>
+        <location filename="../../../../QTfrontend/ui_hwform.cpp" line="57"/>
         <source>Hedgewars %1</source>
         <translation>刺猬大作战 %1</translation>
     </message>
@@ -2215,91 +2293,94 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="276"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="284"/>
         <source>Error</source>
         <translation>错误</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="277"/>
+        <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="285"/>
         <source>Cannot use the ammo &apos;%1&apos;!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="901"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="388"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="346"/>
         <source>Teams - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="902"/>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="389"/>
+        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="347"/>
         <source>Do you really want to delete the team &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="918"/>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="525"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="959"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="500"/>
         <source>Cannot delete default scheme &apos;%1&apos;!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="944"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="985"/>
         <source>Please select a record from the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1238"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1074"/>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1445"/>
         <source>Unable to start server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1282"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1503"/>
         <source>Connection to server is lost</source>
         <translation>æœåŠ¡å™¨è¿žæŽ¥ä¸¢å¤±</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1394"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="334"/>
         <source>Hedgewars - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1694"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1785"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="344"/>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="359"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="370"/>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="387"/>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="450"/>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1917"/>
+        <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="421"/>
         <source>Hedgewars - Success</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1695"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1918"/>
         <source>All file associations have been set</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1786"/>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1798"/>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1811"/>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1814"/>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1700"/>
+        <location filename="../../../../QTfrontend/hwform.cpp" line="1923"/>
         <source>File association failed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1736"/>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/dialog/upload_video.cpp" line="232"/>
         <source>Error while authenticating at google.com:
 </source>
@@ -2323,18 +2404,18 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="96"/>
-        <location filename="../../../../QTfrontend/main.cpp" line="212"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="114"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="283"/>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="97"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="115"/>
         <source>Cannot create directory %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/main.cpp" line="213"/>
+        <location filename="../../../../QTfrontend/main.cpp" line="284"/>
         <source>Failed to open data directory:
 %1
 
@@ -2342,29 +2423,29 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="50"/>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="94"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="176"/>
         <source>TCP - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="51"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="95"/>
         <source>Unable to start the server: %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="123"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="177"/>
         <source>Unable to run engine at </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="124"/>
+        <location filename="../../../../QTfrontend/net/tcpBase.cpp" line="178"/>
         <source>Error code: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pagenet.cpp" line="113"/>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="157"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="170"/>
         <source>Netgame - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2374,8 +2455,8 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="158"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="431"/>
+        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="171"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="429"/>
         <source>Please enter room name</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2404,69 +2485,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="430"/>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="445"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="428"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="443"/>
         <source>Room Name - Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="446"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="444"/>
         <source>Please select room from the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="479"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="477"/>
         <source>Room Name - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="480"/>
+        <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="478"/>
         <source>The game you are trying to join has started.
 Do you still want to join the room?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="524"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="499"/>
         <source>Schemes - Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="533"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="508"/>
         <source>Schemes - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="534"/>
+        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="509"/>
         <source>Do you really want to delete the game scheme &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="850"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="879"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="1104"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="615"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="644"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="869"/>
         <source>Videos - Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="851"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="616"/>
         <source>Do you really want to delete the video &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="880"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="645"/>
         <source>Do you really want to remove %1 file(s)?</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="1105"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="870"/>
         <source>Do you really want to cancel uploading %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="101"/>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="121"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="867"/>
         <source>File error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2477,6 +2559,7 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="122"/>
+        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="868"/>
         <source>Cannot open &apos;%1&apos; for reading</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2506,29 +2589,25 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1200"/>
-        <source>Nickname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/hwform.cpp" line="1201"/>
-        <source>Please enter your nickname</source>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="23"/>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="28"/>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="35"/>
+        <source>Hedgewars</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>QPushButton</name>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="40"/>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="51"/>
-        <source>Setup</source>
-        <translation>设置</translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/page/pageplayrecord.cpp" line="45"/>
         <location filename="../../../../QTfrontend/ui/page/pageplayrecord.cpp" line="87"/>
         <source>Play demo</source>
@@ -2588,93 +2667,79 @@
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/dialog/input_ip.cpp" line="57"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="735"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="500"/>
         <source>Cancel</source>
         <translation>å–消</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/ui/page/pageplayrecord.cpp" line="53"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="303"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="735"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="190"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="500"/>
         <source>Delete</source>
         <translation>删除</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagenetgame.cpp" line="72"/>
-        <source>Ready</source>
-        <translation>准备好了</translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/ui/dialog/ask_quit.cpp" line="50"/>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pageeditteam.cpp" line="84"/>
-        <source>Random Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="440"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="608"/>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="219"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="765"/>
         <source>Set default options</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="220"/>
+        <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="766"/>
         <source>Restore default coding parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="253"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="140"/>
         <source>Open videos directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="254"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="141"/>
         <source>Open the video directory in your system</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="299"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="186"/>
         <source>Play</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="301"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="188"/>
         <source>Play this video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="305"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="192"/>
         <source>Delete this video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="307"/>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="736"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="194"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="501"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="877"/>
         <source>Upload to YouTube</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="309"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="196"/>
         <source>Upload this video to your Youtube account</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="736"/>
+        <location filename="../../../../QTfrontend/ui/page/pagevideos.cpp" line="501"/>
         <source>Cancel uploading</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="170"/>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>RoomsListModel</name>
@@ -2719,22 +2784,45 @@
         <translation type="unfinished">武器</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="131"/>
+        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="132"/>
         <source>Random Map</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="132"/>
-        <source>Random Maze</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="133"/>
+        <source>Random Maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="134"/>
         <source>Hand-drawn</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="42"/>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="61"/>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="62"/>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="71"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <location filename="../../../../QTfrontend/ui/widget/selectWeapon.cpp" line="119"/>
@@ -2770,131 +2858,24 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="71"/>
-        <source>Fort Mode</source>
-        <translation>城堡模å¼</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="76"/>
-        <source>Divide Teams</source>
-        <translation>团体行动</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="81"/>
-        <source>Solid Land</source>
-        <translation>固实地é¢</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="86"/>
-        <source>Add Border</source>
-        <translation>添加边界</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="91"/>
-        <source>Low Gravity</source>
-        <translation>低é‡åŠ›</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="96"/>
-        <source>Laser Sight</source>
-        <translation>激光瞄准</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="101"/>
-        <source>Invulnerable</source>
-        <translation>刀枪ä¸å…¥</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="106"/>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="111"/>
-        <source>Vampirism</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="116"/>
-        <source>Karma</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="121"/>
-        <source>Artillery</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="126"/>
-        <source>Random Order</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="131"/>
-        <source>King</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="136"/>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="141"/>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="146"/>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="151"/>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="156"/>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="161"/>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="166"/>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="171"/>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="176"/>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="181"/>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="186"/>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="191"/>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/teamselhelper.cpp" line="58"/>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="47"/>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="66"/>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
     </message>
 </context>
 <context>
@@ -2924,87 +2905,87 @@
         <translation>下</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="30"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
         <source>attack</source>
         <translation>攻击</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
         <source>put</source>
         <translation>放</translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="30"/>
+        <source>switch</source>
+        <translation>切æ¢</translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="32"/>
-        <source>switch</source>
-        <translation>切æ¢</translation>
+        <source>slot 1</source>
+        <translation>slot 1</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
+        <source>slot 2</source>
+        <translation>slot 2</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="34"/>
-        <source>slot 1</source>
-        <translation>slot 1</translation>
+        <source>slot 3</source>
+        <translation>slot 3</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="35"/>
-        <source>slot 2</source>
-        <translation>slot 2</translation>
+        <source>slot 4</source>
+        <translation>slot 4</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="36"/>
-        <source>slot 3</source>
-        <translation>slot 3</translation>
+        <source>slot 5</source>
+        <translation>slot 5</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="37"/>
-        <source>slot 4</source>
-        <translation>slot 4</translation>
+        <source>slot 6</source>
+        <translation>slot 6</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="38"/>
-        <source>slot 5</source>
-        <translation>slot 5</translation>
+        <source>slot 7</source>
+        <translation>slot 7</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="39"/>
-        <source>slot 6</source>
-        <translation>slot 6</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="40"/>
-        <source>slot 7</source>
-        <translation>slot 7</translation>
+        <source>slot 8</source>
+        <translation>slot 8</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="41"/>
-        <source>slot 8</source>
-        <translation>slot 8</translation>
+        <source>slot 10</source>
+        <translation type="unfinished">slot 10</translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="42"/>
+        <source>timer 1 sec</source>
+        <translation>定时1秒</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="43"/>
-        <source>slot 10</source>
-        <translation type="unfinished">slot 10</translation>
+        <source>timer 2 sec</source>
+        <translation>定时2秒</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="44"/>
-        <source>timer 1 sec</source>
-        <translation>定时1秒</translation>
+        <source>timer 3 sec</source>
+        <translation>定时3秒</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="45"/>
-        <source>timer 2 sec</source>
-        <translation>定时2秒</translation>
+        <source>timer 4 sec</source>
+        <translation>定时4秒</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="46"/>
-        <source>timer 3 sec</source>
-        <translation>定时3秒</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
-        <source>timer 4 sec</source>
-        <translation>定时4秒</translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
         <source>timer 5 sec</source>
         <translation>定时5秒</translation>
     </message>
@@ -3034,7 +3015,12 @@
         <translation>夺å–</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="69"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="68"/>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="70"/>
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3049,7 +3035,7 @@
         <translation>找到 刺猬</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
         <source>ammo menu</source>
         <translation>å¼¹è¯èœå•</translation>
     </message>
@@ -3084,18 +3070,11 @@
         <translation>æš‚åœ</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="42"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="40"/>
         <source>slot 9</source>
         <translation>slot 9</translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="68"/>
-        <source>hedgehogs
-info</source>
-        <translation>刺猬大作战
-ä¿¡æ¯</translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="58"/>
         <source>chat</source>
         <translation>èŠå¤©</translation>
@@ -3120,59 +3099,59 @@
     <name>binds (categories)</name>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
-        <source>Basic controls</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
-        <source>Weapon controls</source>
-        <translation type="unfinished"></translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
+        <source>Weapons</source>
+        <translation type="unfinished">武器</translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="49"/>
-        <source>Camera and cursor controls</source>
+        <source>Camera</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="58"/>
-        <source>Other</source>
-        <translation type="unfinished">其他</translation>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="28"/>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="47"/>
+        <source>Fire your selected weapon or trigger an utility item:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="48"/>
+        <source>Pick a weapon or a target location under the cursor:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="30"/>
-        <source>Fire your selected weapon or trigger an utility item:</source>
+        <source>Switch your currently active hog (if possible):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/binds.cpp" line="23"/>
+        <source>Hedgehog movement</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/binds.cpp" line="31"/>
-        <source>Pick a weapon or a target location under the cursor:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="32"/>
-        <source>Switch your currently active hog (if possible):</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="33"/>
         <source>Pick a weapon or utility item:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="44"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="42"/>
         <source>Set the timer on bombs and timed weapons:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3222,7 +3201,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/binds.cpp" line="69"/>
+        <location filename="../../../../QTfrontend/binds.cpp" line="70"/>
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3585,44 +3564,44 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="193"/>
+        <location filename="../../../../QTfrontend/util/DataManager.cpp" line="156"/>
         <source>Keyboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="129"/>
-        <source>Axis</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/>
-        <source>(Up)</source>
+        <source>Axis</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="137"/>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="152"/>
+        <source>(Up)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="141"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/>
         <source>(Down)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="144"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/>
         <source>Hat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/>
-        <source>(Left)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="160"/>
+        <source>(Left)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="164"/>
         <source>(Right)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="168"/>
+        <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="172"/>
         <source>Button</source>
         <translation type="unfinished"></translation>
     </message>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts	Sun Jan 27 00:28:57 2013 +0100
@@ -20,6 +20,79 @@
     </message>
 </context>
 <context>
+    <name>BanDialog</name>
+    <message>
+        <source>IP</source>
+        <translation type="unfinished">IP</translation>
+    </message>
+    <message>
+        <source>Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <source>you know why</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please, specify %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>permanent</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>DataManager</name>
+    <message>
+        <source>Use Default</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FeedbackDialog</name>
+    <message>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <source>Send Feedback</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>FreqSpinBox</name>
     <message>
         <source>Never</source>
@@ -43,13 +116,36 @@
         <translation type="unfinished">修改éŠæˆ²è¨­ç½®</translation>
     </message>
     <message>
-        <source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Game Options</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Game scheme will auto-select a weapon</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HWApplication</name>
+    <message>
+        <source>%1 minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 hours</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWAskQuitDialog</name>
@@ -100,10 +196,6 @@
         <source>Failed to save StyleSheet to %1</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>%1 is not a valid command!</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>HWForm</name>
@@ -138,17 +230,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Your nickname %1 is
-registered on Hedgewars.org
-Please provide your password below
-or pick another nickname in game config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No password supplied.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Nickname</source>
         <translation type="unfinished">匿稱</translation>
     </message>
@@ -161,6 +242,59 @@
 Please pick another nickname:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>%1&apos;s Team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Nick registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This nick is registered, and you haven&apos;t specified a password.
+
+If this nick isn&apos;t yours, please register your own nick at www.hedgewars.org
+
+Password:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your nickname is not registered.
+To prevent someone else from using it,
+please register it at www.hedgewars.org</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>
+
+Your password wasn&apos;t saved either.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Empty nickname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Wrong password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You entered a wrong password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Try Again</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Connection error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>You reconnected too fast.
+Please wait a few seconds and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>HWGame</name>
@@ -176,14 +310,6 @@
 <context>
     <name>HWMapContainer</name>
     <message>
-        <source>Map</source>
-        <translation>地圖</translation>
-    </message>
-    <message>
-        <source>Filter</source>
-        <translation>éŽæ¿¾</translation>
-    </message>
-    <message>
         <source>All</source>
         <translation>全部</translation>
     </message>
@@ -208,14 +334,6 @@
         <translation>曲折</translation>
     </message>
     <message>
-        <source>Themes</source>
-        <translation>主題</translation>
-    </message>
-    <message>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Small tunnels</source>
         <translation type="unfinished"></translation>
     </message>
@@ -224,27 +342,95 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Large tunnels</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Small floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Medium floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Large floating islands</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Seed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Set</source>
+        <source>Map type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Image map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hand-drawn</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomly generated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random maze</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random</source>
+        <translation type="unfinished">隨機</translation>
+    </message>
+    <message>
+        <source>Map preview:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Edit map drawing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Largetunnels</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Small islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Medium islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Large islands</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map size:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Maze style:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Mission:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Map:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Theme: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Load drawn map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Drawn Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -317,8 +503,8 @@
 <context>
     <name>HWPasswordDialog</name>
     <message>
-        <source>Password</source>
-        <translation type="unfinished">密碼</translation>
+        <source>Login</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -333,6 +519,32 @@
     </message>
 </context>
 <context>
+    <name>HatButton</name>
+    <message>
+        <source>Change hat (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>HatPrompt</name>
+    <message>
+        <source>Select a hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Filter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <source>Use selected hat</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>KB</name>
     <message>
         <source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It&apos;s recommended to update your freetype lib.</source>
@@ -340,6 +552,13 @@
     </message>
 </context>
 <context>
+    <name>KeyBinder</name>
+    <message>
+        <source>Category</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LibavInteraction</name>
     <message>
         <source>Duration: %1m %2s
@@ -358,6 +577,17 @@
         <source>Audio: </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MapModel</name>
+    <message>
+        <source>No description available.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageAdmin</name>
@@ -389,6 +619,38 @@
         <source>Set data</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>General</source>
+        <translation type="unfinished">常è¦</translation>
+    </message>
+    <message>
+        <source>Bans</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IP/Nick</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Expiration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reason</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageConnecting</name>
@@ -443,8 +705,40 @@
         <translation>常è¦</translation>
     </message>
     <message>
-        <source>Advanced</source>
-        <translation>進階</translation>
+        <source>Select an action to choose a custom key bind for this team</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Use my default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hat</source>
+        <translation type="unfinished">帽å­</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>This hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Randomize this hedgehog&apos;s name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Random Team</source>
+        <translation type="unfinished">隨機隊ä¼åˆ†é…</translation>
     </message>
 </context>
 <context>
@@ -519,267 +813,14 @@
 <context>
     <name>PageMain</name>
     <message>
-        <source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they&apos;ll win or lose together.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re unsure what to do and don&apos;t want to waste ammo, skip one round. But don&apos;t let too much time pass as there will be Sudden Death!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;d like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re bored of default gameplay? Try one of the missions - they&apos;ll offer different gameplay depending on the one you picked.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>By default the game will always record the last game played as a demo. Select &apos;Local Game&apos; and pick the &apos;Demos&apos; button on the lower right corner to play or manage them.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you&apos;ve got problems, ask on our forums but please don&apos;t expect 24/7 support!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Always remember you&apos;re able to set up your own games in local and network/online play. You&apos;re not restricted to the &apos;Simple Game&apos; option.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>While playing you should give yourself a short break at least once an hour.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>We&apos;re open to suggestions and constructive feedback. If you don&apos;t like something or got a great idea, let us know!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Special game modes such as &apos;Vampirism&apos; or &apos;Karma&apos; allow you to develop completely new tactics. Try them in a custom game!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You should never install Hedgewars on computers you don&apos;t own (school, university, work, etc.). Please ask the responsible person instead!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars can be perfect for short games during breaks. Just ensure you don&apos;t add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>No hedgehogs were harmed in making this game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If your graphics card isn&apos;t able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Some weapons require special strategies or just lots of training, so don&apos;t give up on a particular tool if you miss an enemy once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Most weapons won&apos;t work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Piano Strike is the most damaging air strike. You&apos;ll lose the hedgehog performing it, so there&apos;s a huge downside as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>If you&apos;re stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Cake&apos;s maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to know who&apos;s behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you&apos;ll have to share them somewhere to use them online.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Keep your video card drivers up to date to avoid issues playing the game.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;My Documents\Hedgewars&quot;. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You&apos;re able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don&apos;t touch the ground you&apos;ll reuse your rope without wasting ammo!</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;Library/Application Support/Hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>You can find your Hedgewars configuration files under &quot;.hedgewars&quot; in your home directory. Create backups or take the files with you, but don&apos;t edit them by hand.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.</source>
-        <comment>Tips</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Downloadable Content</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Local Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game on a single computer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Network Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a game across a network</source>
         <translation type="unfinished"></translation>
     </message>
@@ -807,6 +848,14 @@
         <source>Edit game preferences</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Play a game across a local area network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Play a game on an official server</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageMultiplayer</name>
@@ -814,6 +863,10 @@
         <source>Start</source>
         <translation>開始</translation>
     </message>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PageNetGame</name>
@@ -821,24 +874,13 @@
         <source>Control</source>
         <translation>房間管ç†</translation>
     </message>
-</context>
-<context>
-    <name>PageNetType</name>
-    <message>
-        <source>LAN game</source>
-        <translation>局域網éŠæˆ²</translation>
-    </message>
-    <message>
-        <source>Official server</source>
-        <translation>官方伺æœå™¨</translation>
-    </message>
-    <message>
-        <source>Join hundreds of players online!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Join or host your own game server in a Local Area Network.</source>
-        <translation type="unfinished"></translation>
+    <message>
+        <source>Edit game preferences</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Start</source>
+        <translation type="unfinished">開始</translation>
     </message>
 </context>
 <context>
@@ -884,10 +926,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>General</source>
-        <translation type="unfinished">常è¦</translation>
-    </message>
-    <message>
         <source>Advanced</source>
         <translation type="unfinished">進階</translation>
     </message>
@@ -927,6 +965,94 @@
         <source>System proxy settings</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Select an action to change what key controls it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reset all binds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Graphics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Controls</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video Recording</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Network</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Teams</source>
+        <translation type="unfinished">隊ä¼</translation>
+    </message>
+    <message>
+        <source>Schemes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">武器</translation>
+    </message>
+    <message>
+        <source>Frontend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Custom colors</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Game audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend audio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Account</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Proxy settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Check for updates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Video recording options</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>PagePlayDemo</name>
@@ -1125,18 +1251,10 @@
 <context>
     <name>PageSinglePlayer</name>
     <message>
-        <source>Simple Game</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a quick game against the computer with random settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Multiplayer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Play a hotseat game against your friends, or AI teams</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1145,26 +1263,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Training Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Practice your skills in a range of training missions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Demos</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Watch recorded demos</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Load</source>
-        <translation type="unfinished">讀å–</translation>
-    </message>
-    <message>
         <source>Load a previously saved game</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1209,14 +1315,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Date: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Size: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>encoding</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1224,6 +1322,16 @@
         <source>uploading</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Date: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Size: %1
+</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QAction</name>
@@ -1236,10 +1344,6 @@
         <translation>ä¿¡æ¯</translation>
     </message>
     <message>
-        <source>Start</source>
-        <translation>開始</translation>
-    </message>
-    <message>
         <source>Restrict Joins</source>
         <translation>é™åˆ¶åƒèˆ‡</translation>
     </message>
@@ -1279,10 +1383,6 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <source>Enable sound</source>
-        <translation type="unfinished">é–‹å•ŸéŠæˆ²éŸ³æ•ˆ</translation>
-    </message>
-    <message>
         <source>Fullscreen</source>
         <translation>éŠæˆ²å…¨èž¢å¹•</translation>
     </message>
@@ -1295,14 +1395,6 @@
         <translation>å¦ä¸€ç¨®å‚·å®³é¡¯ç¤ºæ–¹å¼</translation>
     </message>
     <message>
-        <source>Frontend fullscreen</source>
-        <translation>介é¢å…¨èž¢å¹•</translation>
-    </message>
-    <message>
-        <source>Enable music</source>
-        <translation type="unfinished">é–‹å•ŸéŠæˆ²éŸ³æ¨‚</translation>
-    </message>
-    <message>
         <source>Append date and time to record file name</source>
         <translation>記錄å稱中包å«å…·é«”時間日期</translation>
     </message>
@@ -1315,18 +1407,6 @@
         <translation type="unfinished">顯示武器æ示訊æ¯</translation>
     </message>
     <message>
-        <source>Enable frontend sounds</source>
-        <translation type="unfinished">啟用èœå–®éŸ³æ•ˆ</translation>
-    </message>
-    <message>
-        <source>Enable frontend music</source>
-        <translation type="unfinished">啟用èœå–®éŸ³æ¨‚</translation>
-    </message>
-    <message>
-        <source>Frontend effects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Save password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1346,14 +1426,38 @@
         <source>Use game resolution</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Visual effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Sound</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>In-game music</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend sound effects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Frontend music</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <source>generated map...</source>
-        <translation>生æˆåœ°åœ–...</translation>
-    </message>
-    <message>
         <source>Human</source>
         <translation>玩家</translation>
     </message>
@@ -1366,14 +1470,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>generated maze...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Mission</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Community</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1390,10 +1486,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>hand drawn map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Disabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1430,10 +1522,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Wiggle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Red/Cyan grayscale</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1469,18 +1557,6 @@
         <translation>城堡模å¼</translation>
     </message>
     <message>
-        <source>Key binds</source>
-        <translation>éµä½ç¶å®š</translation>
-    </message>
-    <message>
-        <source>Teams</source>
-        <translation>隊ä¼</translation>
-    </message>
-    <message>
-        <source>Audio/Graphic options</source>
-        <translation>音訊/視頻é¸é …</translation>
-    </message>
-    <message>
         <source>Playing teams</source>
         <translation>玩家隊ä¼</translation>
     </message>
@@ -1501,26 +1577,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Misc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Schemes and Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Custom colors</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Video recording options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Videos</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1528,10 +1584,6 @@
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <source>Proxy settings</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QLabel</name>
@@ -1544,22 +1596,6 @@
         <translation>FPS 上é™</translation>
     </message>
     <message>
-        <source>Developers:</source>
-        <translation>開發者:</translation>
-    </message>
-    <message>
-        <source>Art:</source>
-        <translation>è—è¡“:</translation>
-    </message>
-    <message>
-        <source>Translations:</source>
-        <translation>翻譯:</translation>
-    </message>
-    <message>
-        <source>Special thanks:</source>
-        <translation>特別感è¬:</translation>
-    </message>
-    <message>
         <source>Server name:</source>
         <translation>伺æœå™¨å:</translation>
     </message>
@@ -1584,10 +1620,6 @@
         <translation>版本</translation>
     </message>
     <message>
-        <source>Sounds:</source>
-        <translation>è²éŸ³:</translation>
-    </message>
-    <message>
         <source>Initial sound volume</source>
         <translation>åˆå§‹éŸ³é‡</translation>
     </message>
@@ -1616,10 +1648,6 @@
         <translation>ç®±å­é™è½</translation>
     </message>
     <message>
-        <source>Game scheme</source>
-        <translation>éŠæˆ²è¨­ç½®</translation>
-    </message>
-    <message>
         <source>Mines Time</source>
         <translation>佈雷時間</translation>
     </message>
@@ -1664,10 +1692,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Quality</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1742,10 +1766,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Summary   </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1773,6 +1793,38 @@
         <source>Bitrate (Kbps)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>This development build is &apos;work in progress&apos; and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fullscreen</source>
+        <translation type="unfinished">éŠæˆ²å…¨èž¢å¹•</translation>
+    </message>
+    <message>
+        <source>Fullscreen Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Windowed Resolution</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Your Email</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Summary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Send system information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type the security code:</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>QLineEdit</name>
@@ -1811,10 +1863,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Please fill out all fields</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Error while authenticating at google.com:
 </source>
         <translation type="unfinished"></translation>
@@ -1861,18 +1909,6 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>Successfully posted the issue on hedgewars.googlecode.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error during authentication at google.com</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Error reporting the issue, please try again later (or visit hedgewars.googlecode.com directly)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>Main - Error</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2018,25 +2054,42 @@
         <source>Do you really want to delete the weapon set &apos;%1&apos;?</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Nickname</source>
-        <translation type="unfinished">匿稱</translation>
-    </message>
-    <message>
-        <source>Please enter your nickname</source>
-        <translation type="unfinished">請輸入您的匿稱</translation>
+    <message>
+        <source>Hedgewars - Nick not registered</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>System Information Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to generate captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Failed to download captcha</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Please fill out all fields. Email is optional.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars - Information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hedgewars</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>QPushButton</name>
     <message>
-        <source>Setup</source>
-        <translation>設置</translation>
-    </message>
-    <message>
         <source>Play demo</source>
         <translation>播放 demo</translation>
     </message>
@@ -2089,22 +2142,10 @@
         <translation>刪除</translation>
     </message>
     <message>
-        <source>Ready</source>
-        <translation>準備好了</translation>
-    </message>
-    <message>
-        <source>Random Team</source>
-        <translation type="unfinished">隨機隊ä¼åˆ†é…</translation>
-    </message>
-    <message>
         <source>Associate file extensions</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <source>more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <source>More info</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2197,6 +2238,25 @@
     </message>
 </context>
 <context>
+    <name>SeedPrompt</name>
+    <message>
+        <source>The map seed is the basis for all random values generated by the game.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
+    </message>
+    <message>
+        <source>Set seed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>SelWeaponWidget</name>
     <message>
         <source>Weapon set</source>
@@ -2224,106 +2284,21 @@
     </message>
 </context>
 <context>
-    <name>ToggleButtonWidget</name>
-    <message>
-        <source>Vampirism</source>
-        <translation>å¸è¡€é¬¼</translation>
-    </message>
-    <message>
-        <source>Karma</source>
-        <translation>因果報應</translation>
-    </message>
-    <message>
-        <source>Artillery</source>
-        <translation>å°„è¡“</translation>
-    </message>
-    <message>
-        <source>Fort Mode</source>
-        <translation>城堡模å¼</translation>
-    </message>
-    <message>
-        <source>Divide Teams</source>
-        <translation>團體行動</translation>
-    </message>
-    <message>
-        <source>Solid Land</source>
-        <translation>固實地é¢</translation>
-    </message>
-    <message>
-        <source>Add Border</source>
-        <translation>添加邊界</translation>
-    </message>
-    <message>
-        <source>Low Gravity</source>
-        <translation>低é‡åŠ›</translation>
-    </message>
-    <message>
-        <source>Laser Sight</source>
-        <translation>é³å°„瞄準</translation>
-    </message>
-    <message>
-        <source>Invulnerable</source>
-        <translation>刀æ§ä¸å…¥</translation>
-    </message>
-    <message>
-        <source>Random Order</source>
-        <translation type="unfinished">隨機順åº</translation>
-    </message>
-    <message>
-        <source>King</source>
-        <translation type="unfinished">國王模å¼</translation>
-    </message>
-    <message>
-        <source>Place Hedgehogs</source>
-        <translation type="unfinished">手動放置</translation>
-    </message>
-    <message>
-        <source>Clan Shares Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Girders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Land Objects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>AI Survival Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Health</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Unlimited Attacks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Reset Weapons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Per Hedgehog Ammo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Disable Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>More Wind</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Tag Team</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Add Bottom Border</source>
-        <translation type="unfinished"></translation>
+    <name>TeamShowWidget</name>
+    <message>
+        <source>%1&apos;s team</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ThemePrompt</name>
+    <message>
+        <source>Select a theme for this map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation type="unfinished">å–消</translation>
     </message>
 </context>
 <context>
@@ -2461,12 +2436,6 @@
         <translation>確èª</translation>
     </message>
     <message>
-        <source>hedgehogs
-info</source>
-        <translation>刺èŸå¤§ä½œæˆ°
-ä¿¡æ¯</translation>
-    </message>
-    <message>
         <source>zoom in</source>
         <translation type="unfinished">放大</translation>
     </message>
@@ -2498,33 +2467,33 @@
         <source>record</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>hedgehog info</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (categories)</name>
     <message>
-        <source>Basic controls</source>
-        <translation type="unfinished">基本控制</translation>
-    </message>
-    <message>
-        <source>Weapon controls</source>
-        <translation type="unfinished">武器控制</translation>
-    </message>
-    <message>
-        <source>Camera and cursor controls</source>
-        <translation type="unfinished">é¡é ­å’ŒéŠæ¨™æŽ§åˆ¶</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation type="unfinished">其他</translation>
+        <source>Movement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Weapons</source>
+        <translation type="unfinished">武器</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>binds (descriptions)</name>
     <message>
-        <source>Move your hogs and aim:</source>
-        <translation type="unfinished">移動ã€çž„準:</translation>
-    </message>
-    <message>
         <source>Traverse gaps and obstacles by jumping:</source>
         <translation type="unfinished">越éŽéšœç¤™ï¼š</translation>
     </message>
@@ -2588,6 +2557,10 @@
         <source>Record video:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Hedgehog movement</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>binds (keys)</name>
--- a/share/hedgewars/Data/Locale/hu.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/hu.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -108,7 +108,7 @@
 02:00=%1 lejárt a szavatossága
 02:00=Nyugodj békében, %1
 02:00=%1 nem bírta a kiképzést
-02:00=%1 nem volt macska, hogy kilenc élete legyen 
+02:00=%1 nem volt macska, hogy kilenc élete legyen
 02:00=Van itt orvos?
 
 ; Hog (%1) drowned
--- a/share/hedgewars/Data/Locale/it.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/it.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -389,7 +389,7 @@
 02:10=Proprio un bel colpo!
 
 ; Hog (%1) has to leave (team is gone)
-02:11=%1 deve andare a dormire! 
+02:11=%1 deve andare a dormire!
 02:11=%1 sembra che non abbia tempo per giocare
 02:11=%1 se ne deve andare
 02:11=%1 stava giocando sui PC della scuola ed è stato beccato
--- a/share/hedgewars/Data/Locale/ko.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/ko.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -13,7 +13,7 @@
 00:10=다ì´ë„ˆë§ˆì´íŠ¸
 00:11=야구 ë°©ë§ì´
 00:12=Shoryuken
-00:13=ì´ˆ	
+00:13=ì´ˆ
 00:14=낙하산
 00:15=í­íƒ„ 공습
 00:16=지뢰 공습
--- a/share/hedgewars/Data/Locale/lt.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/lt.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -298,7 +298,7 @@
 02:07=Tai Gali Praversti...
 02:07=Naudingi Irankiai!
 02:07=Išnaudok Šia Dėže
-02:07=Atsargiai Žemiau  
+02:07=Atsargiai Žemiau
 02:07=Dar Daugiau Naudingu Irankiu!
 02:07=Irankiai tau!
 02:07=Tai TurÄ—tu Buti Gera!
@@ -364,7 +364,7 @@
 02:09=%1 artÄ—ja prie savizudybÄ—s
 02:09=%1 padeda priešui
 02:09=Tai buvo kvaila %1
-02:09=%1 Palauk KA?? 
+02:09=%1 Palauk KA??
 02:09=%1 susimaišė
 02:09=%1 sužaloja save
 02:09=%1 myli žeminti save
@@ -406,7 +406,7 @@
 03:11=Bonk!
 03:12=Kovos Menai
 03:13=UNUSED
-03:14=Transporto PriemonÄ— 
+03:14=Transporto PriemonÄ—
 03:15=AviacinÄ— Ataka
 03:16=AviacinÄ— Ataka
 03:17=Kasimosi Irankis
@@ -455,7 +455,7 @@
 04:02=Atakuok savo priešus paleisdamas balistini objekta|kuris gali buti valdomas vėjo.|Ataka: Laikyk kad šautum stipriau
 04:03=Paleisk sprogstanÄia bite kuri seks prieÅ¡a|arba pasirinkta taikini. NeÅ¡auk su pilna jÄ—ga|nes tai gadina taikluma.|PelÄ—: Pasirink taikini|Ataka: Laikyk kad Å¡autum stipriau
 04:04=Atakuok savo prieÅ¡us naudodamas Å¡ratini Å¡autuva.|AÄiu jo pasiskirstimui tau nereikia nusitaikity tiesiai i prieÅ¡a|kad padarytum žalos.|Ataka: Å auna (Keleta Kartu)
-04:05=Judėk po žeme naudok kasimo iranga|kad galėtum nusileisti i tuneli arba i kita vietove.|Ataka: Pradėti ir nustoti kasima 
+04:05=Judėk po žeme naudok kasimo iranga|kad galėtum nusileisti i tuneli arba i kita vietove.|Ataka: Pradėti ir nustoti kasima
 04:06=Nusibodo? Nėra Kaip Pulti? Taupai Kulkas?|Jokiu Problemu! Tiesiog praleisk savo eile, baily!|Ataka: Praleidžia tavo eile be veiksmo
 04:07=Nuvaryk toli ir greitai|su virve. Numesk ežius i vandeni|arba numesk ant ju granata arba panašius ginklus.|Ataka: Šauk arba atleisk virve|Ilgas Šuolis: Meta granatas arba panašius ginklus
 04:08=Laikyk savo priešus kuo toliau numesdamas|mina siauruose praėjimuose arba prie ju kojiu. Tik|buk tikras kad pabėgsi kad pats jos neaktyvuotum!|Ataka: Meta mina tau prie kojiu
--- a/share/hedgewars/Data/Locale/missions_de.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/missions_de.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,4 +1,4 @@
-Basic_Training_-_Bazooka.name=Training: Bazooka - Grundlagen 
+Basic_Training_-_Bazooka.name=Training: Bazooka - Grundlagen
 Basic_Training_-_Bazooka.desc="Nutze den Wind zu deinem Vorteil aus!"
 
 Basic_Training_-_Grenade.name=Training: Granate - Grundlagen
--- a/share/hedgewars/Data/Locale/missions_fr.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/missions_fr.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 Basic_Training_-_Bazooka.name=Initiation au Bazooka
-Basic_Training_-_Bazooka.desc="Pour gagner, utiliser le vent à votre avantage !" 
+Basic_Training_-_Bazooka.desc="Pour gagner, utiliser le vent à votre avantage !"
 
 Basic_Training_-_Grenade.name=Entrainement au lancer de Grenade
 Basic_Training_-_Grenade.desc="Souvenez vous, retirez la goupille et lancez !"
@@ -16,11 +16,11 @@
 Basic_Training_-_Rope.name=Initiation à la Corde Ninja
 Basic_Training_-_Rope.desc="Bouge de là et Balance toi !"
 
-User_Mission_-_Dangerous_Ducklings.name=Mission: Canards dangereux 
-User_Mission_-_Dangerous_Ducklings.desc="Très bien le bleu, il est temps de mettre en pratique ce que tu as appris aux entraînements !" 
+User_Mission_-_Dangerous_Ducklings.name=Mission: Canards dangereux
+User_Mission_-_Dangerous_Ducklings.desc="Très bien le bleu, il est temps de mettre en pratique ce que tu as appris aux entraînements !"
 
 User_Mission_-_Diver.name=Mission: Diver
-User_Mission_-_Diver.desc="Cet assault 'sous-marin' est plus dur que cela n'y paraît...." 
+User_Mission_-_Diver.desc="Cet assault 'sous-marin' est plus dur que cela n'y paraît...."
 
 User_Mission_-_Teamwork.name=Mission: Travail en équipe
 User_Mission_-_Teamwork.desc="Parfois, l'amour blesse."
@@ -28,7 +28,7 @@
 User_Mission_-_Spooky_Tree.name=Mission: L'arbre qui parle
 User_Mission_-_Spooky_Tree.desc="Beaucoup de caisses par ici. J'espère vraiment que cet oiseau n'a pas faim."
 
-User_Mission_-_Bamboo_Thicket.name=Mission: Forêt de Bamboo 
+User_Mission_-_Bamboo_Thicket.name=Mission: Forêt de Bamboo
 User_Mission_-_Bamboo_Thicket.desc="La mort vient d'en haut."
 
 User_Mission_-_That_Sinking_Feeling.name=Mission: Cette impression de naufrage
@@ -44,4 +44,4 @@
 User_Mission_-_Rope_Knock_Challenge.desc="Regarde derrière toi !"
 
 User_Mission_-_RCPlane_Challenge.name=Challenge: Avion télécommandé
-User_Mission_-_RCPlane_Challenge.desc="Plutôt confiant, hein, aviateur ?" 
\ No newline at end of file
+User_Mission_-_RCPlane_Challenge.desc="Plutôt confiant, hein, aviateur ?"
\ No newline at end of file
--- a/share/hedgewars/Data/Locale/pl.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/pl.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -247,14 +247,14 @@
 02:02=Możesz uważać się za szczęśliwca jeżeli nie grasz przeciwko Jessorowi
 02:02=Dajcie z siebie wszystko!
 02:02=Przegrany sprzÄ…ta teren.
-02:02=Niech rozpocznie siÄ™ walka millenium 
-02:02=Niech rozpocznie siÄ™ walka wieku 
-02:02=Niech rozpocznie siÄ™ walka dekady 
+02:02=Niech rozpocznie siÄ™ walka millenium
+02:02=Niech rozpocznie siÄ™ walka wieku
+02:02=Niech rozpocznie siÄ™ walka dekady
 02:02=Niech rozpocznie siÄ™ walka roku
 02:02=Niech rozpocznie siÄ™ walka miesiÄ…ca
 02:02=Niech rozpocznie siÄ™ walka tygodnia
 02:02=Niech rozpocznie siÄ™ walka dnia
-02:02=Niech rozpocznie siÄ™ walka godziny 
+02:02=Niech rozpocznie siÄ™ walka godziny
 02:02=Graj jak najlepiej!
 02:02=Zniszcz przeciwnika!
 02:02=Powodzenia
@@ -549,9 +549,9 @@
 04:02=Atakuj przeciwników pociskiem balistycznym,|który jest podatny na wiatr.|Atak: Przytrzymaj by strzelić z większą siłą
 04:03=Wypuść zdenerwowaną Pszczołę, która "użądli"|zaznaczony cel. By zwiększyć precyzję nie|strzelaj pełną mocą|Kursor: Wybierz cel|Atak: Przytrzymaj by strzelić z większą siłą
 04:04=Atakuj przeciwników strzelbą z dwoma strzałami.|Działa obszarowo, więc nie musisz dokładnie|celować by zranić przeciwników.|Atak: Strzel (kilka razy)
-04:05=Schowaj się pod ziemię! Użyj młota pneumatycznego|do wywiercenia dziury w podłożu i dostania się do|innych miejsc.|Atak: Zacznij/Zakończ kopać 
+04:05=Schowaj się pod ziemię! Użyj młota pneumatycznego|do wywiercenia dziury w podłożu i dostania się do|innych miejsc.|Atak: Zacznij/Zakończ kopać
 04:06=Znudzony? Brak motywacji do ataku? Oszczędzasz broń?|No problemo! Po prostu pomiń turę, tchórzu!|Atak: Pomiń turę bez walki
-04:07=Skróć wielkie odległości używając liny. Rozpędź się|by wślizgnąć się w inne jeże lub upuścić na nich|granat albo inną broń.|Atak: Rozwiń albo odłącz linę|Długi skok: Upuść granat lub podobną broń      
+04:07=Skróć wielkie odległości używając liny. Rozpędź się|by wślizgnąć się w inne jeże lub upuścić na nich|granat albo inną broń.|Atak: Rozwiń albo odłącz linę|Długi skok: Upuść granat lub podobną broń
 04:08=Trzymaj przeciwników na dystans przez upuszczenie|miny w wąskim przejściu lub zaraz obok ich stóp. I nie|zapomnij uciec zanim się włączy!|Atak: Upuść minę obok siebie
 04:09=Niepewny co do umiejętności w celowaniu?|Weź pistolet i powystrzelaj ich jak kaczki.|Atak: Strzel (kilka razy)
 04:10=Brutalna siła zawsze jest rozwiązaniem. Upuść ten|wybuchową laskę dynamitu obok przeciwnika i|uciekaj gdzie pieprz rośnie.|Atak: Upuść dynamit obok siebie
@@ -565,15 +565,15 @@
 04:18=Potrzebujesz dodatkowej ochrony albo chcesz|przejść przez teren nie do przejścia? Umieść|konstrukcje gdzie chcesz.|Lewo/Prawo: Wybierz konstrukcję do umieszczenia|Kursor: Umieść konstrukcję w odpowiednim miejscu
 04:19=Teleport użyty w odpowiednim momencie, staje|się potężniejszy niż każda inna broń,|ponieważ potrafi wyzwolić jeża z tarapatów|w przeciągu sekund.|Kursor: Wybierz region
 04:20=Pozwala w tej turze zagrać innym jeżem.|Atak: Uaktywnij wybieranie jeża
-04:21=Odpal moździerz, który po uderzeniu|wypuści kilka bomb.|Atak: Strzel z całą mocą      
+04:21=Odpal moździerz, który po uderzeniu|wypuści kilka bomb.|Atak: Strzel z całą mocą
 04:22=Nie tylko dla Indiana Jones! Ten bicz może|być użyteczny w wielu wypadkach. Szczególnie|kiedy chcesz kogoś zrzucić z urwiska.|Atak: Ubiczuj wszystko co jest przed tobą
 04:23=Jeśli nie masz nic do stracenia, ten atak może być|całkiem użyteczny. Poświęć swojego jeża i poślij|go w odpowiednim kierunku, raniąc wszystkich po|drodze i eksplodując na końcu.|Atak: Odpal tę niszczycielską i zabójczą technikę
 04:24=Sto lat! Uruchom ciasto i pozwól mu pójść w stronę|twoich przeciwników urządzając im wybuchowe przyjęcie.|Może chodzić prawie po wszystkim, ale wtedy|wcześniej eksploduje.|Atak: Odpal ciasto albo zatrzymaj je, by wybuchło
 04:25=Użyj kostiumu by sprawić, żeby twój wróg zakochał się|w Tobie (i spadł w przepaść lub dziurę).|Atak: Użyj kostiumu i uwiedź jeża
 04:26=Rzuć tego smacznego arbuza w przeciwników. Kiedy jego|zapalnik wskaże zero, podzieli się na mniejsze kawałki.|1-5: Ustawia zapalnik arbuza|Atak: Przytrzymaj by rzucić z większą siłą
 04:27=Niech ognie piekielne ogarną twoich przeciwników!|Nie podchodź zbyt blisko po wybuchu, gdyż ogień|pali się przez dłuższy czas|Atak: Przytrzymaj by rzucić z większą siłą
-04:28=Krótko po wystrzeleniu, rakieta zacznie wiercić tunel w ziemi|i eksploduje gdy zapalnik zostanie uruchomiony lub|jeśli pojawi się po drugiej stronie terenu.|Atak: Przytrzymaj by strzelić z większą siłą   
-04:29=Tego nie powinny używać dzieci!|Pistolet na kulki wystrzeliwuje tony małych|kolorowych kulek wypełnionych materiałem wybuchowym.|Atak: Strzel kulkami|Góra/Dół: Kontynuuj celowanie      
+04:28=Krótko po wystrzeleniu, rakieta zacznie wiercić tunel w ziemi|i eksploduje gdy zapalnik zostanie uruchomiony lub|jeśli pojawi się po drugiej stronie terenu.|Atak: Przytrzymaj by strzelić z większą siłą
+04:29=Tego nie powinny używać dzieci!|Pistolet na kulki wystrzeliwuje tony małych|kolorowych kulek wypełnionych materiałem wybuchowym.|Atak: Strzel kulkami|Góra/Dół: Kontynuuj celowanie
 04:30=Wezwij samolot, żeby zrzucić dużą ilość|napalmu. Dzięki dobremu celowi ten atak|może zlikwidować dużą część mapy, w tym|znajdujące się tam nieszczęsne jeże.|Lewo/Prawo: Określ kierunek ataku|Kursor: Wybierz region
 04:31=Zaatakuj odległych przeciwników, bądź zbierz|skrzynki! Nie zapomnij o zrzuceniu bomb!|Góra/Dół: Steruj samolotem|Atak: Zrzuć bombę (3x) |Długi skok: Niech walkirie wkroczą na pole bitwy!
 04:32=Niska grawitacja jest lepsza od diety! Skacz|wyżej i dalej albo pozwól przeciwnikom fruwać.|Atak: Aktywuj
@@ -598,7 +598,7 @@
 04:51=Obrzuć kogoś błotem! Broń ta nie zadaje dużych|obrażeń ale może Gogol zepchnąć z krawędzi!|Atak: Przytrzymaj by strzelić z większą siłą
 04:52=UNUSED
 04:53=Wybierz się na podróż w czasie i przestrzeni|zostawiając inne jeże na polu walki.|Bądź przygotowany na powrót w dowolnym momencie.|Gdy rozpocznie się|Nagła Śmierć lub większość jeży zostanie wybita.|Uwaga. Nie zadziała podczas Nagłej Śmierci,|gdy jesteś sam lub jeśli jesteś Królem.
-04:54=INCOMPLETE                                                                                                                                     
+04:54=INCOMPLETE
 04:55=Wystrzel strumień kleistej mazi.|Buduj mosty, zasypuj wrogów, zatykaj tunele.|Uważaj by nie zasypać samego siebie!
 
 ; Game goal strings
--- a/share/hedgewars/Data/Locale/pt_BR.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/pt_BR.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -52,6 +52,13 @@
 00:49=Ressucitador
 00:50=Ataque Perfurador
 00:51=Bola de Lama
+00:52=Arma não selecionada
+00:53=Máquina do tempo
+00:54=Estrutura
+00:55=Spray de terra
+00:56=Freezer
+00:57=Machadinha
+
 
 01:00=Hora de lutar!
 01:01=Partida empatou
@@ -63,11 +70,18 @@
 01:07=%1 Remanescente
 01:08=Combustível
 01:09=Sincronizando...
-01:10=Usar esta ultilidade não encerrará o turno
+01:10=Usar esta utilidade não encerrará o turno
 01:11=Esta arma ou utilidade ainda não está disponível
 01:12=Último round antes da Morte Súbita!
 01:13=%1 rounds até a Morte Súbita
 01:14=Se prepare, %1!
+01:15=Mínimo
+01:16=Baixo
+01:17=Normal
+01:18=Alto
+01:19=Extremo
+01:20=%1 Quique
+01:21=Ãudio mudo
 
 ; Event messages
 ; Hog (%1) died
@@ -122,7 +136,7 @@
 02:02=Armado e preparado!
 02:02=3..2..1...!
 02:02=Cúpula do Trovão!Cúpula do Trovão!Cúpula do Trovão!
-02:02=Abrem-se as curtinas e começa o espetáculo
+02:02=Abrem-se as cortinas e começa o espetáculo
 02:02=A bola está em jogo!
 02:02=Bobeou....dançou!
 02:02=Só os melhores sobrevivem!
@@ -134,6 +148,11 @@
 02:02=Começa a partida
 02:02=Vamos a luta companheiros
 02:02=Pela Pátria!
+02:02=Vitória ou morte!
+02:02=Esmague seu inimigo!
+02:02=Solte os cães de batalha!
+02:02=Apiiiita o árbitro!
+02:02=Ao vencedor as batatas!
 
 ; Round ends (win; unused atm)
 02:03=...
@@ -148,10 +167,13 @@
 02:05=Mais um suspiro!
 02:05=Chamando doutor Hans Chucrutes
 02:05=Colírio para os olhos!
-02:05=O Motoboy da farmácia chegou!
+02:05=O motoboy da farmácia chegou!
 02:05=Curativos!
 02:05=Energia extra!
 02:05=Energéticos!
+02:05=Um Hi-Potion! Uuups, jogo errado
+02:05=Posologia: Tantos quanto possas conseguir!
+
 
 ; New ammo crate
 02:06=Mais armas!
@@ -168,6 +190,10 @@
 02:06=Suprimentos
 02:06=O que faltava para você vencer!
 02:06=Qual será a surpresa?
+02:06=Uma caixinha de surpresas!
+02:06=Não sabes o pesadelo que foi atravessar a fronteira com isso!
+02:06=Cuidado! Volátil!
+02:06=Brinquedinhos destrutivos do Céu!
 
 ; New utility crate
 02:07=Hora das compras
@@ -193,7 +219,7 @@
 02:08=%1 está se balançando na rede
 02:08=%1 prefere só ficar olhando
 02:08=%1 desaponta a todos
-02:08=%1 ficou filosofando 
+02:08=%1 ficou filosofando
 02:08=%1 amarelou
 02:08=%1 tá de boa
 02:08=%1 pegou no sono
@@ -201,11 +227,17 @@
 02:08=%1 prefere Gandhi a Mandela
 02:08=%1 foi ler um livro
 02:08=%1 está procurando algo melhor para fazer
+02:08=%1 é um franguinho!
+02:08=%1 decidiu que o melhor a fazer é ... nada!
+02:08=%1 está fora de forma!
+02:08=%1 é um pacifista
+02:08=%1 está paralizado de terror
+02:08=%1 está pedindo para sair
 
 ; Hog (%1) hurts himself only
 02:09=%1 se machucou
 02:09=%1 fez dodói
-02:09=%1 é uma anta 
+02:09=%1 é uma anta
 02:09=%1 não sabe quem é o inimigo
 02:09=%1 não gosta de si mesmo
 02:09=%1 não tem amor próprio
@@ -220,6 +252,12 @@
 02:09=%1 mudou de equipe
 02:09=%1 acha que ninguém viu
 02:09=%1 devia procurar outro jogo
+02:09=%1 deveria mudar de profissão
+02:09=%1 não tem instinto de sobrevivência
+02:09=%1 deveria praticar pontaria
+02:09=%1 acaba de demonstrar ao inimigo do que é capaz
+02:09=As armas de %1 estão obviamente defeituosas!
+02:09=Não, não, não, %1, deves atirar no INIMIGO!
 
 ; Hog shot an home run (using the bat and another hog)
 02:10=Humilhooooouuu!
@@ -227,12 +265,12 @@
 02:10=Esse aí está fora!
 02:10=Home Run!
 02:10=Ouriço perdido!
+02:10=Bolinha perdida!
 
 ; Hog (%1) has to leave (team is gone)
 02:11=%1 foi nanar
 02:11=%1 abandonou o jogo
 02:11=%1 estava borrando as calças
-02:11=Beam him up, Scotty!
 02:11=%1 teve que sair
 
 ; Weapon Categories
@@ -259,7 +297,7 @@
 03:20=Ação
 03:21=Arma Balística
 03:22=Me chame Indiana!
-03:23=Artes Marciais (Realmente) 
+03:23=Artes Marciais (Realmente)
 03:24=O Bolo não é de brinquedo!
 03:25=Disfarce
 03:26=Granada Suculenta
@@ -276,18 +314,23 @@
 03:37=Efeito Temporário
 03:38=Arma de Fogo (múltiplos tiros)
 03:39=Utilidade de Transporte
-03:40=Granada Inceneradora
+03:40=Granada Incendiária
 03:41=Grande fan de Squawks
-03:42=Última tecnologia
+03:42=Eu irei fazer uma nota aqui ...
 03:43=Musical
-03:44=Velho e fedorento
+03:44=Data de validade: 1923
 03:45=Trigonometria pura
-03:46=Incendiário
+03:46=Quente! Quente! Quente!
 03:47=Grudenta
 03:48=Tanto bate até que fura!
 03:49=Faz o que você imagina
 03:50=Contra covardes
-03:51=Devagar, e sempre....
+03:51=Encontrei no chão
+03:52=Sem uso
+03:53=Tipo 40
+03:54=Constrói algo
+03:55=Utilidade
+
 
 ; Weapon Descriptions (use | as line breaks)
 04:00=Ataque seus inimigos usando uma granada simples|Ela explodirá assim que o tempo passar|1-5: Escolha o tempo da granada|Ataque: Quanto mais tempo, mais forte o lançamento.
@@ -310,7 +353,7 @@
 04:15=Chame um avião para bombadear seus inimigos.|Esquerda/Direita: Determina a direção do ataque|Cursor: Seleciona a região do ataque
 04:16=Chame um avião para lançar diversas minas|na área alvo.|Esquerda/Direita: Determina a direção do ataque|Cursor: Seleciona a região do ataque
 04:17=Precisa de abrigo? Use o maçarico para|cavar um túnel que te de cobertura.|Ataque:Liga/Desliga o maçarico
-04:18=Precisa de proteção adicional ou quer atravessar|um lugar difícil? Coloque algumas vigas.|Esquerda/Direita: Seleciona a viga a colocar|Cursor: Coloca a viga em uma posição válida. 
+04:18=Precisa de proteção adicional ou quer atravessar|um lugar difícil? Coloque algumas vigas.|Esquerda/Direita: Seleciona a viga a colocar|Cursor: Coloca a viga em uma posição válida.
 04:19=Usada no momento certo, teleportar-se pode ser mais|poderosa que todas as outras armas, permitindo|salvar alguns ouriços em situação perigosa|Cursor: Seleciona o destino do teletransporte.
 
 04:20=Permite você jogar este turno com um ouriço diferente.|Ataque: Ativa|Tab: Alterna o ouriço
@@ -345,6 +388,12 @@
 04:47=Uma simples mina não basta? A mina aderente pode|ser arremessada e ficará aderida ao tocar no solo,|em um objeto, e até em um ouriço!|Ataque:Quanto mais tempo, mais forte o lançamento (duas vezes).
 04:48=Vamos a obra? Use esta arma para martelar|o inimigo no solo, ou através dele e tirando um terço da vida dele!|Ataque: Ativa
 04:49=Ressucite seus amigos, mas preste atenção|para não ressucitar seus inimigos!|Ataque: Mantenha pressionado para transferir|sua vida|Acima:Acelera a transferência de vida
+04:50=Alguém está se escondendo embaixo da terra?|Desenterre-os com um Ataque Perfurador!|O timer controla a profundidade alcançada.
+04:51=Ganhe um tiro de graça, atirando uma bola de barro.|Fará com que o inimigo saia voando|e arde a vista.
+04:52=Sem Uso
+04:53=Viage através do tempo e espaço,|deixando seus camaradas na mão.|Esteja preparado para retornar a qualquer momento,|ou para a Morte Súbita se todos os aliados foram mortos.|Aviso. Não funciona na Morte Súbita,|se você estiversozinho, ou se você for o Rei.
+04:54=INCOMPLETO
+04:55=Atira um jorro de barro pegajoso.|Constrói pontes, enterra inimigos, sela túneis.|Cuidado para que não pegue em você!
 
 ; Game goal strings
 05:00=Modos de Jogo
@@ -355,16 +404,17 @@
 05:05=Vampirismo: Ouriços serão curados pelos danos causados
 05:06=Carma: Ouriços serão machucados pelos danos causados
 05:07=Proteja o rei: Não deixe o seu Rei morrer!|Colocar o Rei: Escolha um lugar protegido para posicionar o seu Rei
-05:08=Colocar Ouriços: Permite posicionar os ouriços antes dapartida começar 
+05:08=Colocar Ouriços: Permite posicionar os ouriços antes da partida começar
 05:09=Artilharia: Ouriços não podem andar para mudar de lugar
 05:10=Terreno Indestrutível: Maioria das armas não destrói o terreno
-05:11=Armas Compartilhadas: Todos as equipes de mesma cor compratilham a munição
+05:11=Munição Compartilhada: Todos as equipes de mesma cor compartilham a munição
 05:12=Temporizador de mina: Minas detonarão após %1 segundo(s)
 05:13=Temporizador de mina: Minas detonarão imediatamente
-05:14=Temporizador de mina: Minas detonarão em 0 - 3 segundos
+05:14=Temporizador de mina: Minas detonarão em 0 - 5 segundos
 05:15=Modificador de Dano: Todas as armas farão %1% danos
 05:16=A vida dos ouriços é reiniciada ao fim de cada turno
 05:17=Ouriços da IA renascem após morrerem
 05:18=Ataque ilimitado
 05:19=Armas são reiniciadas ao fim do turno
 05:20=Armas não são compartilhadas entre os ouriços
+05:21=Tag Team: Equipes do mesmo clan se revezam entre si.|Turno compartilhado: Equipes do mesmo clan compartilham a duração do turno.
--- a/share/hedgewars/Data/Locale/pt_PT.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/pt_PT.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -5,57 +5,57 @@
 	["011101000"] = "011101000", -- A_Classic_Fairytale:dragon
 	["011101001"] = "011101001", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
 	["30 minutes later..."] = "30 minutos depois...", -- A_Classic_Fairytale:shadow
---      ["About a month ago, a cyborg came and told us that you're the cannibals!"] = "ácerca de um mês atrás, um cyborg veio e disse-nos que voces é que eram os cabinais!", -- A_Classic_Fairytale:enemy
-	["Accuracy Bonus!"] = "Bónus de precisão!",
+--      ["About a month ago, a cyborg came and told us that you're the cannibals!"] = "ácerca de\aproximadamente um mês atrás, um cyborg veio e disse-nos que voces é que eram os cabinais!", -- A_Classic_Fairytale:enemy
+	["Accuracy Bonus!"] = "Bónus de Precisão!",
 	["Ace"] = "Ãs", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
 	["Achievement Unlocked"] = "Proeza Desbloqueada", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_That_Sinking_Feeling, Tumbler
 	["???"] = "???", -- A_Classic_Fairytale:backstab
---      ["A Classic Fairytale"] = "Um Classico Conto de Fadas", -- A_Classic_Fairytale:first_blood
---      ["Actually, you aren't worthy of life! Take this..."] = "", -- A_Classic_Fairytale:shadow
---      ["A cy-what?"] = "", -- A_Classic_Fairytale:enemy
---      ["Adventurous"] = "", -- A_Classic_Fairytale:journey
---      ["Africa"] = "", -- Continental_supplies
---      ["After Leaks A Lot betrayed his tribe, he joined the cannibals..."] = "", -- A_Classic_Fairytale:first_blood
---      ["After the shock caused by the enemy spy, Leaks A Lot and Dense Cloud went hunting to relax."] = "", -- A_Classic_Fairytale:shadow
---      ["Again with the 'cannibals' thing!"] = "", -- A_Classic_Fairytale:enemy
---      ["a Hedgewars challenge"] = "", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
+	["A Classic Fairytale"] = "Um Clássico Conto de Fadas", -- A_Classic_Fairytale:first_blood
+--      ["Actually, you aren't worthy of life! Take this..."] = "Pensando melhor, não mereçes viver\a vida que te foi dada\não mereces o ar que respiras! Toma\Pega isto...", -- A_Classic_Fairytale:shadow
+	["A cy-what?"] = "Um cy-quê?", -- A_Classic_Fairytale:enemy
+	["Adventurous"] = "Aventureiro", -- A_Classic_Fairytale:journey
+	["Africa"] = "Ãfrica", -- Continental_supplies
+--      ["After Leaks A Lot betrayed his tribe, he joined the cannibals..."] = "Depois do Leaks A Lot ter traido a sua tribo, ele juntou-se aos canibais...", -- A_Classic_Fairytale:first_blood
+	["After the shock caused by the enemy spy, Leaks A Lot and Dense Cloud went hunting to relax."] = "Depois do choque causado pelo espião inimigo, Leaks A Lot e Nuvem Densa foram caçar para relaxar.", -- A_Classic_Fairytale:shadow
+--      ["Again with the 'cannibals' thing!"] = "Outra vez com a cena dos 'canibais'!", -- A_Classic_Fairytale:enemy
+	["a Hedgewars challenge"] = "um desafio Hedgewars", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
 	["a Hedgewars mini-game"] = "um mini-jogo Hedgewars", -- Space_Invasion, The_Specialists
 	["Aiming Practice"] = "Pratica a tua pontaria", --Bazooka, Shotgun, SniperRifle
---      ["A leap in a leap"] = "", -- A_Classic_Fairytale:first_blood
---      ["A little gift from the cyborgs"] = "", -- A_Classic_Fairytale:shadow
---      ["All gone...everything!"] = "", -- A_Classic_Fairytale:enemy
---      ["All right, we just need to get to the other side of the island!"] = "", -- A_Classic_Fairytale:journey
---      ["All walls touched!"] = "", -- WxW
---      ["Ammo Depleted!"] = "",
---      ["ammo extended!"] = "",
---      ["Ammo is reset at the end of your turn."] = "",
+--      ["A leap in a leap"] = "Um salto num salto", -- A_Classic_Fairytale:first_blood
+	["A little gift from the cyborgs"] = "Um pequeno presente dos cyborgs", -- A_Classic_Fairytale:shadow
+	["All gone...everything!"] = "Foi-se...tudo!", -- A_Classic_Fairytale:enemy
+	["All right, we just need to get to the other side of the island!"] = "Ok, so precisamos de chegar ao outro lado da ilha!", -- A_Classic_Fairytale:journey
+	["All walls touched!"] = "Todas as paredes alcançadas!", -- WxW
+--      ["Ammo Depleted!"] = "Munições Esgotadas!",
+--      ["ammo extended!"] = "munições adicionadas!",
+	["Ammo is reset at the end of your turn."] = "O armamento é reposto no fim do teu turno.",
 --      ["Ammo Maniac!"] = "",
 	["Ammo"] = "Munições",
---      ["And how am I alive?!"] = "", -- A_Classic_Fairytale:enemy
+--      ["And how am I alive?!"] = "E como (raio) estou eu ainda vivo?!", -- A_Classic_Fairytale:enemy
 --      ["And so happenned that Leaks A Lot failed to complete the challenge! He landed, pressured by shame..."] = "", -- A_Classic_Fairytale:first_blood
---      ["And so it began..."] = "", -- A_Classic_Fairytale:first_blood
---      ["...and so the cyborgs took over the world..."] = "", -- A_Classic_Fairytale:shadow
+	["And so it began..."] = "E assim começou...", -- A_Classic_Fairytale:first_blood
+--      ["...and so the cyborgs took over the world..."] = "...e então os cyborgs tomaram conta\apoderaram-se do mundo...", -- A_Classic_Fairytale:shadow
 --      ["And so they discovered that cyborgs weren't invulnerable..."] = "", -- A_Classic_Fairytale:journey
---      ["And where's all the weed?"] = "", -- A_Classic_Fairytale:dragon
---      ["And you believed me? Oh, god, that's cute!"] = "", -- A_Classic_Fairytale:journey
+--      ["And where's all the weed?"] = "E onde está a erva toda?", -- A_Classic_Fairytale:dragon
+--      ["And you believed me? Oh, god, that's cute!"] = "E tu acreditaste em mim? Ai Jesus, tão fofo!", -- A_Classic_Fairytale:journey
 --      ["Anno 1032: [The explosion will make a strong push ~ wide range, wont affect hogs close to the target]"] = "", -- Continental_supplies
---      ["Antarctica"] = "", -- Continental_supplies
---      ["Are we there yet?"] = "", -- A_Classic_Fairytale:shadow
---      ["Are you accusing me of something?"] = "", -- A_Classic_Fairytale:backstab
---      ["Are you saying that many of us have died for your entertainment?"] = "", -- A_Classic_Fairytale:enemy
+	["Antarctica"] = "Antártica", -- Continental_supplies
+	["Are we there yet?"] = "Já chegámos?", -- A_Classic_Fairytale:shadow
+--      ["Are you accusing me of something?"] = "Estás a acusar-me de alguma coisa?", -- A_Classic_Fairytale:backstab
+--      ["Are you saying that many of us have died for your entertainment?"] = "Estás a tentar dizer-me que estas quantidade de nós morreu para o teu entertenimento?", -- A_Classic_Fairytale:enemy
 --      ["Artur Detour"] = "", -- A_Classic_Fairytale:queen
 --      ["As a reward for your performance, here's some new technology!"] = "", -- A_Classic_Fairytale:dragon
---      ["a shoppa minigame"] = "", -- WxW
---      ["Asia"] = "", -- Continental_supplies
+	["a shoppa minigame"] = "um minijogo shoppa", -- WxW
+	["Asia"] = "Ãsia", -- Continental_supplies
 --      ["Assault Team"] = "", -- A_Classic_Fairytale:backstab
---      ["As the ammo is sparse, you might want to reuse ropes while mid-air.|"] = "", -- A_Classic_Fairytale:dragon
+--      ["As the ammo is sparse, you might want to reuse ropes while mid-air.|"] = "Como o armamento\munições é escaço, podes querer re-usar as cordas enquanto no ar.|", -- A_Classic_Fairytale:dragon
 --      ["As the challenge was completed, Leaks A Lot set foot on the ground..."] = "", -- A_Classic_Fairytale:first_blood
 --      ["As you can see, there is no way to get on the other side!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Attack From Rope"] = "", -- WxW
---      ["Australia"] = "", -- Continental_supplies
---      ["Available points remaining: "] = "",
---      ["Back Breaker"] = "", -- A_Classic_Fairytale:backstab
---      ["Back in the village, after telling the villagers about the threat..."] = "", -- A_Classic_Fairytale:united
+	["Australia"] = "Austrália", -- Continental_supplies
+--      ["Available points remaining: "] = "Pontos activos restantes: ",
+--      ["Back Breaker"] = "Parte Costas", -- A_Classic_Fairytale:backstab
+--      ["Back in the village, after telling the villagers about the threat..."] = "De volta à\Mais tarde na aldeia, depois de ter avisado os aldeões sobre a ameaça...", -- A_Classic_Fairytale:united
 	["[Backspace]"] = "[Retrocesso (backspace)]",
 --      ["Backstab"] = "", -- A_Classic_Fairytale:backstab
 --      ["Bad Team"] = "", -- User_Mission_-_The_Great_Escape
@@ -89,32 +89,32 @@
 --      ["Brain Teaser"] = "", -- A_Classic_Fairytale:backstab
 --      ["Brutal Lily"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil
 --      ["Brutus"] = "", -- A_Classic_Fairytale:backstab
---      ["Build a track and race."] = "",
---      ["Bullseye"] = "", -- A_Classic_Fairytale:dragon
+--      ["Build a track and race."] = "Constroi uma pista e compete numa corrida.",
+--      ["Bullseye"] = "Em cheio", -- A_Classic_Fairytale:dragon
 --      ["But it proved to be no easy task!"] = "", -- A_Classic_Fairytale:dragon
---      ["But that's impossible!"] = "", -- A_Classic_Fairytale:backstab
---      ["But the ones alive are stronger in their heart!"] = "", -- A_Classic_Fairytale:enemy
---      ["But...we died!"] = "", -- A_Classic_Fairytale:backstab
---      ["But where can we go?"] = "", -- A_Classic_Fairytale:united
---      ["But why would they help us?"] = "", -- A_Classic_Fairytale:backstab
---      ["But you're cannibals. It's what you do."] = "", -- A_Classic_Fairytale:enemy
---      ["But you said you'd let her go!"] = "", -- A_Classic_Fairytale:journey
---      ["Call me Beep! Well, 'cause I'm such a nice...person!"] = "", -- A_Classic_Fairytale:family
---      ["Cannibals"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:first_blood
+	["But that's impossible!"] = "Mas isso é impossível!", -- A_Classic_Fairytale:backstab
+--      ["But the ones alive are stronger in their heart!"] = "Mas os sobreviventes têm um coração mais forte! (não faz sentido assim...)", -- A_Classic_Fairytale:enemy
+--      ["But...we died!"] = "Mas...nós morremos!", -- A_Classic_Fairytale:backstab
+--      ["But where can we go?"] = "Mas para onde podemos ir?", -- A_Classic_Fairytale:united
+--      ["But why would they help us?"] = "Mas porque nos ajudariam eles?", -- A_Classic_Fairytale:backstab
+--      ["But you're cannibals. It's what you do."] = "Mas voçês são canibais. É o que (voçês)fazem.", -- A_Classic_Fairytale:enemy
+--      ["But you said you'd let her go!"] = "Mas disseste que a deixarias ir!", -- A_Classic_Fairytale:journey
+--      ["Call me Beep! Well, 'cause I'm such a nice...person!"] = "Trata-me por Beep! Bem, porque eu sou um---a pessoa tão simpática!", -- A_Classic_Fairytale:family
+	["Cannibals"] = "Canibais", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:first_blood
 --      ["Cannibal Sentry"] = "", -- A_Classic_Fairytale:journey
---      ["Cannibals?! You're the cannibals!"] = "", -- A_Classic_Fairytale:enemy
+--      ["Cannibals?! You're the cannibals!"] = "Canibais?! Vocês são os canibais!", -- A_Classic_Fairytale:enemy
 	["CAPTURE THE FLAG"] = "CAPTURAR A BANDEIRA",
 	["Careless"] = "Descuidado",
---      ["Carol"] = "", -- A_Classic_Fairytale:family
---      ["CHALLENGE COMPLETE"] = "DESAFIO COMPLETO", -- User_Mission_-_RCPlane_Challenge
+	["Carol"] = "Carol", -- A_Classic_Fairytale:family
+	["CHALLENGE COMPLETE"] = "DESAFIO COMPLETO", -- User_Mission_-_RCPlane_Challenge
 	["Change Weapon"] = "Trocar Arma",
---      ["Choose your side! If you want to join the strange man, walk up to him.|Otherwise, walk away from him. If you decide to att...nevermind..."] = "", -- A_Classic_Fairytale:shadow
---      ["Clumsy"] = "",
---      ["Cluster Bomb MASTER!"] = "", -- Basic_Training_-_Cluster_Bomb
---      ["Cluster Bomb Training"] = "", -- Basic_Training_-_Cluster_Bomb
---      ["Codename: Teamwork"] = "",
---      ["Collateral Damage"] = "", -- A_Classic_Fairytale:journey
---      ["Collateral Damage II"] = "", -- A_Classic_Fairytale:journey
+	["Choose your side! If you want to join the strange man, walk up to him.|Otherwise, walk away from him. If you decide to att...nevermind..."] = "Escolhe o teu lado! Se quiseres juntar-te ao homem estranho, aproxima-te dele! Caso contrario, afastate dele. Se decidires atac...esquece...", -- A_Classic_Fairytale:shadow
+	["Clumsy"] = "Desastrado",
+	["Cluster Bomb MASTER!"] = "MESTRE da Bomba de Fragmentos!", -- Basic_Training_-_Cluster_Bomb
+	["Cluster Bomb Training"] = "Treino com Bomba de Fragmentos!", -- Basic_Training_-_Cluster_Bomb
+--      ["Codename: Teamwork"] = "Nome de código: Trabalho em Equipa",
+	["Collateral Damage"] = "Dano Colateral", -- A_Classic_Fairytale:journey
+	["Collateral Damage II"] = "Dano Colateral II", -- A_Classic_Fairytale:journey
 --      ["Collect all the crates, but remember, our time in this life is limited!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Collect or destroy all the health crates."] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Collect the crate on the right.|Hint: Select the rope, [Up] or [Down] to aim, [Space] to fire, directional keys to move.|Ropes can be fired again in the air!"] = "", -- A_Classic_Fairytale:first_blood
@@ -147,9 +147,9 @@
 --      ["Defeat the cannibals!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow
 --      ["Defeat the cyborgs!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Defend yourself!|Hint: You can get tips on using weapons by moving your mouse over them in the weapon selection menu"] = "", -- A_Classic_Fairytale:shadow
---      ["Demolition is fun!"] = "",
---      ["Dense Cloud"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
---      ["Dense Cloud must have already told them everything..."] = "", -- A_Classic_Fairytale:shadow
+--      ["Demolition is fun!"] = "Demolir é divertido!",
+	["Dense Cloud"] = "Nuvem Densa", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
+	["Dense Cloud must have already told them everything..."] = "O Nuvem Densa já lhes deve ter dito tudo...", -- A_Classic_Fairytale:shadow
 --      ["Depleted Kamikaze!"] = "",
 --      ["Destroy him, Leaks A Lot! He is responsible for the deaths of many of us!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Destroy invaders to score points."] = "",
@@ -166,32 +166,32 @@
 --      ["Do the deed"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Double Kill!"] = "",
 --      ["DOUBLE KILL"] = "", -- Mutant
---      ["Do you have any idea how valuable grass is?"] = "", -- A_Classic_Fairytale:enemy
---      ["Do you think you're some kind of god?"] = "", -- A_Classic_Fairytale:enemy
+--      ["Do you have any idea how valuable grass is?"] = "Tnes alguma ideia do quão aliosa esta erva é?", -- A_Classic_Fairytale:enemy
+--      ["Do you think you're some kind of god?"] = "Pensas que és\Axas-te algum tipo de deus?", -- A_Classic_Fairytale:enemy
 --      ["Dragon's Lair"] = "", -- A_Classic_Fairytale:dragon
 --      ["Drills"] = "", -- A_Classic_Fairytale:backstab
 --      ["Drone Hunter!"] = "",
---      ["Drop a bomb: [drop some heroic wind that will turn into a bomb on impact]"] = "", -- Continental_supplies
+--      ["Drop a bomb: [drop some heroic wind that will turn into a bomb on impact]"] = "Larga uma bomba: [lança algum horoico vento que se ]", -- Continental_supplies
 --      ["Drowner"] = "",
---      ["Dude, all the plants are gone!"] = "", -- A_Classic_Fairytale:family
---      ["Dude, can you see Ramon and Spiky?"] = "", -- A_Classic_Fairytale:journey
---      ["Dude, that's so cool!"] = "", -- A_Classic_Fairytale:backstab
---      ["Dude, we really need a new shaman..."] = "", -- A_Classic_Fairytale:shadow
---      ["Dude, what's this place?!"] = "", -- A_Classic_Fairytale:dragon
---      ["Dude, where are we?"] = "", -- A_Classic_Fairytale:backstab
---      ["Dude, wow! I just had the weirdest high!"] = "", -- A_Classic_Fairytale:backstab
---      ["Duration"] = "", -- Continental_supplies
---      ["Dust storm: [Deals 20 damage to all enemies in the circle]"] = "", -- Continental_supplies
---      ["Each turn you get 1-3 random weapons"] = "",
---      ["Each turn you get one random weapon"] = "",
+--      ["Dude, all the plants are gone!"] = "Bacano, os planetas desapareceram todos!", -- A_Classic_Fairytale:family
+--      ["Dude, can you see Ramon and Spiky?"] = "Bacano, consegues ver o Ramon e o Spiky?", -- A_Classic_Fairytale:journey
+--      ["Dude, that's so cool!"] = "Bacano, isso\isto é tão fixe!", -- A_Classic_Fairytale:backstab
+--      ["Dude, we really need a new shaman..."] = "Bacano, precisamos mesmo de um xamã...", -- A_Classic_Fairytale:shadow
+--      ["Dude, what's this place?!"] = "Bacano, que sitio é este?!", -- A_Classic_Fairytale:dragon
+--      ["Dude, where are we?"] = "Bacano, onde estamos?", -- A_Classic_Fairytale:backstab
+--      ["Dude, wow! I just had the weirdest high!"] = "Bacano, wow! Acabei de ter o 'high' mais esquesito de sempre.", -- A_Classic_Fairytale:backstab
+	["Duration"] = "Duração", -- Continental_supplies
+--      ["Dust storm: [Deals 20 damage to all enemies in the circle]"] = "Tempestade de areia: [Causa 20 pontos de dano a toros os inimigos dentro no circulo]", -- Continental_supplies
+--      ["Each turn you get 1-3 random weapons"] = "Todos os turnos recebes 1-3 armas aleatórias",
+--      ["Each turn you get one random weapon"] = "Todos os turnos recebes uma arma aleatória",
 --      ["Eagle Eye"] = "", -- A_Classic_Fairytale:backstab
 --      ["Eagle Eye: [Blink to the impact ~ one shot]"] = "", -- Continental_supplies
---      ["Ear Sniffer"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:epil
+--      ["Ear Sniffer"] = "Snifa ouvidos\orelhas", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:epil
 --      ["Elderbot"] = "", -- A_Classic_Fairytale:family
---      ["Elimate your captor."] = "", -- User_Mission_-_The_Great_Escape
+--      ["Elimate your captor."] = "Elimina o teu raptor.", -- User_Mission_-_The_Great_Escape
 	["Eliminate all enemies"] = "Elimina todos os inimigos",
 	["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.", --Bazooka, Shotgun, SniperRifle
---      ["Eliminate enemy hogs and take their weapons."] = "", -- Highlander
+--      ["Eliminate enemy hogs and take their weapons."] = "Elimina os ouriços enimigos e fica-lhes com as armas\apodera-te das armas deles.", -- Highlander
 	["Eliminate Poison before the time runs out"] = "Elimina o Poison antes do tempo terminar.",
 	["Eliminate the Blue Team"] = "Elimina a equipa azul",
 --      ["Eliminate the enemy before the time runs out"] = "", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
@@ -201,13 +201,13 @@
 --      ["Elmo"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Energetic Engineer"] = "",
 	["Enjoy the swim..."] = "Aproveita o mergulho",
-      ["[Enter]"] = "[Enter]",
---      ["Europe"] = "", -- Continental_supplies
---      [" ever done to you?!"] = "", -- A_Classic_Fairytale:backstab
---      ["Everyone knows this."] = "", -- A_Classic_Fairytale:enemy
+	["[Enter]"] = "[Enter]",
+	["Europe"] = "Europa", -- Continental_supplies
+--      [" ever done to you?!"] = " alguma vez te aconteceu?!", -- A_Classic_Fairytale:backstab
+--      ["Everyone knows this."] = "Toda a gente sabe isso.", -- A_Classic_Fairytale:enemy
 --      ["Every single time!"] = "", -- A_Classic_Fairytale:dragon
 --      ["Everything looks OK..."] = "", -- A_Classic_Fairytale:enemy
---      ["Exactly, man! That was my dream."] = "", -- A_Classic_Fairytale:backstab
+--      ["Exactly, man! That was my dream."] = "Exactamente, homem! Esse era o meu sonho.", -- A_Classic_Fairytale:backstab
 --      ["Eye Chewer"] = "", -- A_Classic_Fairytale:journey
 --      ["INSANITY"] = "", -- Mutant
 --      ["Family Reunion"] = "", -- A_Classic_Fairytale:family
@@ -218,117 +218,116 @@
 --      ["Fell From Heaven is the best! Fell From Heaven is the greatest!"] = "", -- A_Classic_Fairytale:family
 --      ["Femur Lover"] = "", -- A_Classic_Fairytale:shadow
 --      ["Fierce Competition!"] = "", -- Space_Invasion
---      ["Fiery Water"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
---      ["Find your tribe!|Cross the lake!"] = "", -- A_Classic_Fairytale:dragon
---      ["Finish your training|Hint: Animations can be skipped with the [Precise] key."] = "", -- A_Classic_Fairytale:first_blood
---      ["Fire"] = "",
+	["Fiery Water"] = "Ãgua Flamejante", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
+	["Find your tribe!|Cross the lake!"] = "Encontra a tua tribo|Atravessa o lago!", -- A_Classic_Fairytale:dragon
+--      ["Finish your training|Hint: Animations can be skipped with the [Precise] key."] = "Acaba o teu treino|Ajuda: As animações podem ser saltadas com a tecla [Precisão].", -- A_Classic_Fairytale:first_blood
+	["Fire"] = "Fogo",
 --      ["Fire a mine: [Does what it says ~ Cant be dropped close to an enemy ~ 1 sec]"] = "", -- Continental_supplies
---      ["First aid kits?!"] = "", -- A_Classic_Fairytale:united
+	["First aid kits?!"] = "Kits de primeiros socorros?!", -- A_Classic_Fairytale:united
 --      ["First Blood"] = "", -- A_Classic_Fairytale:first_blood
 --      ["FIRST BLOOD MUTATES"] = "", -- Mutant
---      ["First Steps"] = "", -- A_Classic_Fairytale:first_blood
+--      ["First Steps"] = "Primeiros Passos", -- A_Classic_Fairytale:first_blood
 	["Flag captured!"] = "Bandeira capturada!",
 	["Flag respawned!"] = "Bandeira reiniciada!",
 	["Flag returned!"] = "Bandeira devolvida!",
 --      ["Flags, and their home base will be placed where each team ends their first turn."] = "",
---      ["Flamer"] = "",
---      ["Flaming Worm"] = "", -- A_Classic_Fairytale:backstab
+--      ["Flamer"] = "Azeiteiro",
+--      ["Flaming Worm"] = "Minhoca Flamejante", -- A_Classic_Fairytale:backstab
 --      ["Flare: [fire up some bombs depending on hogs depending on hogs in the circle"] = "", -- Continental_supplies
 --      ["Flesh for Brainz"] = "", -- A_Classic_Fairytale:journey
---      ["For improved features/stability, play 0.9.18+"] = "", -- WxW
---      ["Free Dense Cloud and continue the mission!"] = "", -- A_Classic_Fairytale:journey
---      ["Friendly Fire!"] = "",
---      ["fuel extended!"] = "",
---      ["GAME BEGUN!!!"] = "",
+	["For improved features/stability, play 0.9.18+"] = "Para mais funcionalidades e maior estabilidade, joga 0.9.18+", -- WxW
+	["Free Dense Cloud and continue the mission!"] = "Liberta o Nuvem Densa e continua a tua missão!", -- A_Classic_Fairytale:journey
+--      ["Friendly Fire!"] = "Fogo amigável!",
+--      ["fuel extended!"] = "combustivel aumentado!",
+--      ["GAME BEGUN!!!"] = "O JOGO COMEÇOU!!!",
 	["Game Modifiers: "] = "Modificadores de Jogo: ",
 	["GAME OVER!"] = "GAME OVER!",
 --      ["Game Started!"] = "",
---      ["Game? Was this a game to you?!"] = "", -- A_Classic_Fairytale:enemy
+	["Game? Was this a game to you?!"] = "Jogo? Isto foi um jogo para ti?!", -- A_Classic_Fairytale:enemy
 --      ["GasBomb"] = "", -- Continental_supplies
 --      ["Gas Gargler"] = "", -- A_Classic_Fairytale:queen
---      ["Get Dense Cloud out of the pit!"] = "", -- A_Classic_Fairytale:journey
+--      ["Get Dense Cloud out of the pit!"] = "Tira o Nuvem Densa do precipicio(?)", -- A_Classic_Fairytale:journey
 	["Get on over there and take him out!"] = "Chega-te aqui e acaba com ele!",
 --      ["Get on the head of the mole"] = "", -- A_Classic_Fairytale:first_blood
 --      ["Get out of there!"] = "", -- User_Mission_-_The_Great_Escape
---      ["Get that crate!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Get the crate on the other side of the island!|"] = "", -- A_Classic_Fairytale:journey
+--      ["Get that crate!"] = "Vai buscar aquela caixa!", -- A_Classic_Fairytale:first_blood
+--      ["Get the crate on the other side of the island!|"] = "Vai buscar a caixa no outro lado da ilha!|", -- A_Classic_Fairytale:journey
 --      ["Get to the target using your rope! |Controls: Left & Right to swing the rope - Up & Down to Contract and Expand!"] = "", -- Basic_Training_-_Rope
 --      ["Get your teammates out of their natural prison and save the princess!|Hint: Drilling holes should solve everything.|Hint: It might be a good idea to place a girder before starting to drill. Just saying.|Hint: All your hedgehogs need to be above the marked height!|Hint: Leaks A Lot needs to get really close to the princess!"] = "", -- A_Classic_Fairytale:family
---      ["GG!"] = "", -- User_Mission_-_Rope_Knock_Challenge
+	["GG!"] = "GG! (Excelente jogo!)", -- User_Mission_-_Rope_Knock_Challenge
 --      ["Gimme Bones"] = "", -- A_Classic_Fairytale:backstab
 --      ["Glark"] = "", -- A_Classic_Fairytale:shadow
---      ["Goal"] = "",
+--      ["Goal"] = "Objectivo\Fim",
 	["GO! GO! GO!"] = "GO! GO! GO!",
---  ["Good birdy......"] = "Lindo\Bom passarito......" (needs ingame confirmation),
---      ["Good Dude"] = "", -- User_Mission_-_The_Great_Escape
---      ["Good idea, they'll never find us there!"] = "", -- A_Classic_Fairytale:united
---      ["Good luck...or else!"] = "", -- A_Classic_Fairytale:journey
+	["Good birdy......"] = "Lindo passarito......",
+	["Good Dude"] = "Boa Bacano", -- User_Mission_-_The_Great_Escape
+	["Good idea, they'll never find us there!"] = "Boa ideia, eles nunca nos vão encontrar aqui!", -- A_Classic_Fairytale:united
+	["Good luck...or else!"] = "Boa sorte...caso contrário!", -- A_Classic_Fairytale:journey
 	["Good luck out there!"] = "Boa sorte aí fora!",
---      ["Good so far!"] = "",
---      ["Good to go!"] = "",
---      ["Go on top of the flower"] = "", -- A_Classic_Fairytale:first_blood
---      ["Go, quick!"] = "", -- A_Classic_Fairytale:backstab
+	["Good so far!"] = "Até agora tudo bem!",
+--      ["Good to go!"] = "Pronto para seguir!",
+	["Go on top of the flower"] = "Vai para cima da flor", -- A_Classic_Fairytale:first_blood
+	["Go, quick!"] = "Vai, rápido!", -- A_Classic_Fairytale:backstab
 --      ["Gorkij"] = "", -- A_Classic_Fairytale:journey
---      ["Go surf!"] = "", -- WxW
---      ["GOTCHA!"] = "",
---      ["Grab Mines/Explosives"] = "",
---      ["Great choice, Steve! Mind if I call you that?"] = "", -- A_Classic_Fairytale:shadow
---      ["Great work! Now hit it with your Baseball Bat! |Tip: You can change weapon with 'Right Click'!"] = "", -- Basic_Training_-_Rope
+--      ["Go surf!"] = "Vai 'surfar'!", -- WxW
+--      ["GOTCHA!"] = "APANHEI-TE!",
+--      ["Grab Mines/Explosives"] = "Agarra Minas/Explosivos",
+--      ["Great choice, Steve! Mind if I call you that?"] = "Excelente escolha, Steve! Importas-te que te chame\trate assim?", -- A_Classic_Fairytale:shadow
+--      ["Great work! Now hit it with your Baseball Bat! |Tip: You can change weapon with 'Right Click'!"] = Bom trabalho! Agora dá-lhe com o teu bastão de basebal! [Ajuada: Podes trocar de arma com o 'Click Direito'!]"", -- Basic_Training_-_Rope
 --      ["Great! You will be contacted soon for assistance."] = "", -- A_Classic_Fairytale:shadow
---      ["Green lipstick bullet: [Is poisonous]"] = "", -- Continental_supplies
+--      ["Green lipstick bullet: [Is poisonous]"] = "Batom bala verde: [É venenoso]", -- Continental_supplies
 --      ["Greetings, "] = "", -- A_Classic_Fairytale:dragon
 --      ["Greetings, cloudy one!"] = "", -- A_Classic_Fairytale:shadow
---      ["Grenade Training"] = "", -- Basic_Training_-_Grenade
+--      ["Grenade Training"] = "Treino com Granadas", -- Basic_Training_-_Grenade
 --      ["Grenadiers"] = "", -- Basic_Training_-_Grenade
---      ["Guys, do you think there's more of them?"] = "", -- A_Classic_Fairytale:backstab
+--      ["Guys, do you think there's more of them?"] = "Pessoal, axam que ainda há mais?\ha mais deles?", -- A_Classic_Fairytale:backstab
 	["HAHA!"] = "HAHA!", -- A_Classic_Fairytale:enemy
 	["Haha!"] = "Haha!", -- A_Classic_Fairytale:united
 	["Hahahaha!"] = "Hahahaha!",
---      ["Haha, now THAT would be something!"] = "",
---      ["Hannibal"] = "", -- A_Classic_Fairytale:epil
---      ["Hapless Hogs"] = "",
---      [" Hapless Hogs left!"] = "",
-
---      [" HAS MUTATED"] = "", -- Mutant
+--      ["Haha, now THAT would be something!"] = "Haha, agora ISSO seria espetacular!\é que era!",
+--      ["Hannibal"] = "Hannibal", -- A_Classic_Fairytale:epil
+--      ["Hapless Hogs"] = "Ouriços Desafortunados",
+--      [" Hapless Hogs left!"] = " Ouriços Desafortunados restantes!",
+--      [" HAS MUTATED"] = " MUTOU", -- Mutant
 --      ["Hatless Jerry"] = "", -- A_Classic_Fairytale:queen
---      ["Have no illusions, your tribe is dead, indifferent of your choice."] = "", -- A_Classic_Fairytale:shadow
---      ["Have we ever attacked you first?"] = "", -- A_Classic_Fairytale:enemy
---      ["Health crates extend your time."] = "",
+--      ["Have no illusions, your tribe is dead, indifferent of your choice."] = "Não tenhas ilusoes, a tua tribo está morta, indiferentes à tua escolha.", -- A_Classic_Fairytale:shadow
+--      ["Have we ever attacked you first?"] = "Alguma vez te atacamos primeiro?", -- A_Classic_Fairytale:enemy
+	["Health crates extend your time."] = "As caixas de vida prolongam o teu tempo.",
 --      ["Heavy"] = "",
 --      ["Heavy Cannfantry"] = "", -- A_Classic_Fairytale:united
---      ["Hedge-cogs"] = "", -- A_Classic_Fairytale:enemy
+--      ["Hedge-cogs"] = "Engrenagens-ouriço", -- A_Classic_Fairytale:enemy
 --      ["Hedgehog projectile: [fire your hog like a Sticky Bomb]"] = "", -- Continental_supplies
-	["Hedgewars-Basketball"] = "Hedgewars-Basketball",
+	["Hedgewars-Basketball"] = "Hedgewars-Basquetebol",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
---      ["Hedgibal Lecter"] = "", -- A_Classic_Fairytale:backstab
---      ["Heh, it's not that bad."] = "",
---      ["Hello again, "] = "Olá novamente\outra vez, ", -- A_Classic_Fairytale:family
---      ["Help me, Leaks!"] = "", -- A_Classic_Fairytale:journey
---      ["Help me, please!!!"] = "", -- A_Classic_Fairytale:journey
---      ["Help me, please!"] = "", -- A_Classic_Fairytale:journey
---      ["He moves like an eagle in the sky."] = "", -- A_Classic_Fairytale:first_blood
---      ["He must be in the village already."] = "", -- A_Classic_Fairytale:journey
---      ["Here, let me help you!"] = "", -- A_Classic_Fairytale:backstab
---      ["Here, let me help you save her!"] = "", -- A_Classic_Fairytale:family
---      ["Here...pick your weapon!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Hero Team"] = "", -- User_Mission_-_The_Great_Escape
---      ["He's so brave..."] = "", -- A_Classic_Fairytale:first_blood
+--      ["Hedgibal Lecter"] = "Hedgibal Lecter", -- A_Classic_Fairytale:backstab
+--      ["Heh, it's not that bad."] = "Heh, não é assim tão mau.\Podia ser pior.",
+	["Hello again, "] = "Olá novamente, ", -- A_Classic_Fairytale:family
+	["Help me, Leaks!"] = "Ajuda-me, Leaks!", -- A_Classic_Fairytale:journey
+	["Help me, please!!!"] = "Ajuda-me, por favor!!!", -- A_Classic_Fairytale:journey
+	["Help me, please!"] = "Ajuda-me, por favor!", -- A_Classic_Fairytale:journey
+--      ["He moves like an eagle in the sky."] = "Ele move-se tal\como uma águia no ceu.", -- A_Classic_Fairytale:first_blood
+--      ["He must be in the village already."] = "Ele já deve estar\ter chegado à na aldeia.", -- A_Classic_Fairytale:journey
+--      ["Here, let me help you!"] = "Aqui, deixa-me ajudar-te!", -- A_Classic_Fairytale:backstab
+--      ["Here, let me help you save her!"] = "Aqui, deixa-me ajudar-te a salva-la!", -- A_Classic_Fairytale:family
+--      ["Here...pick your weapon!"] = "Aqui\Pega...agarra a tua arma!", -- A_Classic_Fairytale:first_blood
+--      ["Hero Team"] = "Equipa Heroi", -- User_Mission_-_The_Great_Escape
+	["He's so brave..."] = "Ele é tão corajoso...", -- A_Classic_Fairytale:first_blood
 --      ["He won't be selling us out anymore!"] = "", -- A_Classic_Fairytale:backstab
---      ["Hey, guys!"] = ",pessoal!", -- A_Classic_Fairytale:backstab
---      ["Hey guys!"] = "pessoal!", -- A_Classic_Fairytale:united
---      ["Hey! This is cheating!"] = "", -- A_Classic_Fairytale:journey
+	["Hey, guys!"] = "Hey, pessoal!", -- A_Classic_Fairytale:backstab
+	["Hey guys!"] = "Hey pessoal!", -- A_Classic_Fairytale:united
+--      ["Hey! This is cheating!"] = "Hey! Isto\Isso é batota!", -- A_Classic_Fairytale:journey
 --      ["HIGHLANDER"] = "", -- Highlander
 --      ["Hightime"] = "", -- A_Classic_Fairytale:first_blood
---      ["Hint: Double Jump - Press [Backspace] twice"] = "", -- A_Classic_Fairytale:first_blood
+--      ["Hint: Double Jump - Press [Backspace] twice"] = "Dica: Duplo Salto - Carrega [Retroceder] duas vezes", -- A_Classic_Fairytale:first_blood
 --      ["Hint: Select the BlowTorch, aim and press [Fire]. Press [Fire] again to stop.|Don't blow up the crate."] = "", -- A_Classic_Fairytale:journey
 --      ["Hint: Select the LowGravity and press [Fire]."] = "", -- A_Classic_Fairytale:journey
 --      ["Hint: you might want to stay out of sight and take all the crates...|"] = "", -- A_Classic_Fairytale:journey
---      ["His arms are so strong!"] = "", -- A_Classic_Fairytale:first_blood
+--      ["His arms are so strong!"] = "Os braços dele são tão fortes!", -- A_Classic_Fairytale:first_blood
 --      ["Hit Combo!"] = "",
 --      ["Hmmm...actually...I didn't either."] = "", -- A_Classic_Fairytale:enemy
 	["Hmmm..."] = "Hmmm...",
 --      ["Hmmm, I'll have to find some way of moving him off this anti-portal surface..."] = "", -- portal
---      ["Hmmm...it's a draw. How unfortunate!"] = "", -- A_Classic_Fairytale:enemy
+	["Hmmm...it's a draw. How unfortunate!"] = "Hmmm...é um empate. Que azar!", -- A_Classic_Fairytale:enemy
 --      ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
 --      ["Hogminator"] = "", -- A_Classic_Fairytale:family
 --      ["Hogs in sight!"] = "", -- Continental_supplies
@@ -336,156 +335,155 @@
 --      ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
 	["Hooray!"] = "Hurra!",
 --      ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
---      ["How can I ever repay you for saving my life?"] = "", -- A_Classic_Fairytale:journey
+--      ["How can I ever repay you for saving my life?"] = "Como posso eu (possivelmente) recompensar-te por teres salvo a minha vida?", -- A_Classic_Fairytale:journey
 --      ["How come in a village full of warriors, it's up to me to save it?"] = "", -- A_Classic_Fairytale:dragon
 --      ["How difficult would you like it to be?"] = "", -- A_Classic_Fairytale:first_blood
 --      ["HOW DO THEY KNOW WHERE WE ARE???"] = "", -- A_Classic_Fairytale:united
 --      ["However, if you fail to do so, she dies a most violent death, just like your friend! Muahahaha!"] = "", -- A_Classic_Fairytale:journey
 --      ["However, if you fail to do so, she dies a most violent death! Muahahaha!"] = "", -- A_Classic_Fairytale:journey
---      ["However, my mates don't agree with me on letting you go..."] = "", -- A_Classic_Fairytale:dragon
---      [" HP"] = "", -- Mutant
+--      ["However, my mates don't agree with me on letting you go..."] = "No entanto, os meus colegas não concordam com eu deixar-vos ir...", -- A_Classic_Fairytale:dragon
+	[" HP"] = " HP", -- Mutant
 	["Hunter"] = "Comando", --Bazooka, Shotgun, SniperRifle
---      ["I believe there's more of them."] = "", -- A_Classic_Fairytale:backstab
---      ["I can see you have been training diligently."] = "", -- A_Classic_Fairytale:first_blood
---      ["I can't believe it worked!"] = "", -- A_Classic_Fairytale:shadow
---      ["I can't believe this!"] = "", -- A_Classic_Fairytale:enemy
---      ["I can't believe what I'm hearing!"] = "", -- A_Classic_Fairytale:backstab
---      ["I can't wait any more, I have to save myself!"] = "", -- A_Classic_Fairytale:shadow
---      ["I could just teleport myself there..."] = "", -- A_Classic_Fairytale:family
---      ["I'd better get going myself."] = "", -- A_Classic_Fairytale:journey
---      ["I didn't until about a month ago."] = "", -- A_Classic_Fairytale:enemy
+--      ["I believe there's more of them."] = "Acredito que existem mais deles.", -- A_Classic_Fairytale:backstab
+--      ["I can see you have been training diligently."] = "Consigo ver que tens treinado diligentemente.", -- A_Classic_Fairytale:first_blood
+	["I can't believe it worked!"] = "Mal posso acreditar que funcionou!", -- A_Classic_Fairytale:shadow
+	["I can't believe this!"] = "Não posso acreditar nisto!", -- A_Classic_Fairytale:enemy
+	["I can't believe what I'm hearing!"] = "Não posso acreditar no que estou a ouvir!", -- A_Classic_Fairytale:backstab
+	["I can't wait any more, I have to save myself!"] = "Não tenho paciencia para esperar mais, tenho de me salvar a mim mesmo!", -- A_Classic_Fairytale:shadow
+--      ["I could just teleport myself there..."] = "Podia simplesmente teletransportar-me para la...", -- A_Classic_Fairytale:family
+--      ["I'd better get going myself."] = "Seria melhor se fosse sozinho.", -- A_Classic_Fairytale:journey
+--      ["I didn't until about a month ago."] = "Nem pensei nisso até ao mês passado.", -- A_Classic_Fairytale:enemy
 --      ["I don't know how you did that.. But good work! |The next one should be easy as cake for you!"] = "", -- Basic_Training_-_Rope
---      ["I feel something...a place! They will arrive near the circles!"] = "", -- A_Classic_Fairytale:backstab
---      ["If only I had a way..."] = "", -- A_Classic_Fairytale:backstab
+--      ["I feel something...a place! They will arrive near the circles!"] = "Eu sinti algo...um lugar! Eles vão chegar perto dos circulos!", -- A_Classic_Fairytale:backstab
+--      ["If only I had a way..."] = "Ao menos se eu tivesse uma maneira...", -- A_Classic_Fairytale:backstab
 --      ["If only I were given a chance to explain my being here..."] = "", -- A_Classic_Fairytale:first_blood
---      ["I forgot that she's the daughter of the chief, too..."] = "", -- A_Classic_Fairytale:backstab
+--      ["I forgot that she's the daughter of the chief, too..."] = "Esqueci-me\Tinha-me esquecido que ela também é filha do chefe...", -- A_Classic_Fairytale:backstab
 --      ["If they try coming here, they can have a taste of my delicious knuckles!"] = "", -- A_Classic_Fairytale:united
---      ["If you agree to provide the information we need, you will be spared!"] = "", -- A_Classic_Fairytale:shadow
+--      ["If you agree to provide the information we need, you will be spared!"] = "Se concordares em fornecer a informação que precisamos, serás poupado!", -- A_Classic_Fairytale:shadow
 --      ["If you can get that crate fast enough, your beloved \"princess\" may go free."] = "", -- A_Classic_Fairytale:journey
 --      ["If you decide to help us, though, we will no longer need to find a new governor for the island."] = "", -- A_Classic_Fairytale:shadow
---      ["If you get stuck, use your Desert Eagle or restart the mission!|"] = "", -- A_Classic_Fairytale:journey
---      ["If you know what I mean..."] = "", -- A_Classic_Fairytale:shadow
---      ["If you say so..."] = "", -- A_Classic_Fairytale:shadow
-
---      ["I guess you'll have to kill them."] = "", -- A_Classic_Fairytale:dragon
---      ["I have come to make you an offering..."] = "", -- A_Classic_Fairytale:shadow
---      ["I have no idea where that mole disappeared...Can you see it?"] = "", -- A_Classic_Fairytale:shadow
---      ["I have to follow that alien."] = "", -- A_Classic_Fairytale:backstab
---      ["I have to get back to the village!"] = "", -- A_Classic_Fairytale:shadow
---      ["I hope you are prepared for a small challenge, young one."] = "", -- A_Classic_Fairytale:first_blood
---      ["I just don't want to sink to your level."] = "", -- A_Classic_Fairytale:backstab
---      ["I just found out that they have captured your princess!"] = "", -- A_Classic_Fairytale:family
---      ["I just wonder where Ramon and Spiky disappeared..."] = "", -- A_Classic_Fairytale:journey
---      ["I'll hold them off while you return to the village!"] = "", -- A_Classic_Fairytale:shadow
---      ["Imagine those targets are the wolves that killed your parents! Take your anger out on them!"] = "", -- A_Classic_Fairytale:first_blood
---      ["I'm...alive? How? Why?"] = "", -- A_Classic_Fairytale:backstab
---      ["I'm a ninja."] = "", -- A_Classic_Fairytale:dragon
---      ["I marked the place of their arrival. You're welcome!"] = "", -- A_Classic_Fairytale:backstab
---      ["I'm certain that this is a misunderstanding, fellow hedgehogs!"] = "", -- A_Classic_Fairytale:first_blood
---      ["I mean, none of you ceased to live."] = "", -- A_Classic_Fairytale:enemy
---      ["I'm getting old for this!"] = "", -- A_Classic_Fairytale:family
---      ["I'm getting thirsty..."] = "", -- A_Classic_Fairytale:family
---      ["I'm here to help you rescue her."] = "", -- A_Classic_Fairytale:family
---      ["I'm not sure about that!"] = "", -- A_Classic_Fairytale:united
---      ["Impressive...you are still dry as the corpse of a hawk after a week in the desert..."] = "", -- A_Classic_Fairytale:first_blood
---      ["I'm so scared!"] = "", -- A_Classic_Fairytale:united
---      ["Incredible..."] = "", -- A_Classic_Fairytale:shadow
---      ["I need to find the others!"] = "", -- A_Classic_Fairytale:backstab
---      ["I need to get to the other side of this island, fast!"] = "", -- A_Classic_Fairytale:journey
---      ["I need to move the tribe!"] = "", -- A_Classic_Fairytale:united
---      ["I need to prevent their arrival!"] = "", -- A_Classic_Fairytale:backstab
---      ["I need to warn the others."] = "", -- A_Classic_Fairytale:backstab
---      ["In fact, you are the only one that's been acting strangely."] = "", -- A_Classic_Fairytale:backstab
---      ["In order to get to the other side, you need to collect the crates first.|"] = "", -- A_Classic_Fairytale:dragon
+--      ["If you get stuck, use your Desert Eagle or restart the mission!|"] = "Se ficares preso, usa o teu Desert Eagle ou recomeça a missão!|", -- A_Classic_Fairytale:journey
+--      ["If you know what I mean..."] = "Se percebes o que quero dizer...", -- A_Classic_Fairytale:shadow
+	["If you say so..."] = "Se tu o dizes...", -- A_Classic_Fairytale:shadow
+	["I guess you'll have to kill them."] = "Parece que vais ter de os matar.", -- A_Classic_Fairytale:dragon
+	["I have come to make you an offering..."] = "Eu estou aqui para te fazer uma proposta...", -- A_Classic_Fairytale:shadow
+	["I have no idea where that mole disappeared...Can you see it?"] = "Não faço ideia para onde se meteu aquela toupeira...Consegues vê-la?", -- A_Classic_Fairytale:shadow
+	["I have to follow that alien."] = "Tenho de seguir aquele alienígena.", -- A_Classic_Fairytale:backstab
+	["I have to get back to the village!"] = "Tenho de voltar para a aldeia!", -- A_Classic_Fairytale:shadow
+	["I hope you are prepared for a small challenge, young one."] = "Espero que estejas preparado para um pequeno desafio jovem.", -- A_Classic_Fairytale:first_blood
+	["I just don't want to sink to your level."] = "So não quero descer ao teu nível.", -- A_Classic_Fairytale:backstab
+	["I just found out that they have captured your princess!"] = "Acabei de descobrir que eles capturaram a princesa!", -- A_Classic_Fairytale:family
+	["I just wonder where Ramon and Spiky disappeared..."] = "Só gostava de saber para onde o Ramom e o Spiky desapareceram...", -- A_Classic_Fairytale:journey
+	["I'll hold them off while you return to the village!"] = "Eu mantenho-os ocupados enquanto regressas à aldeia!", -- A_Classic_Fairytale:shadow
+	["Imagine those targets are the wolves that killed your parents! Take your anger out on them!"] = "Imagina que aqueles alvos são os lobos que mataram os teus pais! Descarrega toda a tua raiva neles!", -- A_Classic_Fairytale:first_blood
+	["I'm...alive? How? Why?"] = "Eu estou...vivo? Como? Por quê?", -- A_Classic_Fairytale:backstab
+	["I'm a ninja."] = "Sou um ninja.", -- A_Classic_Fairytale:dragon
+	["I marked the place of their arrival. You're welcome!"] = "Eu marquei o local onde vão chegar. Não é preciso agradecer!", -- A_Classic_Fairytale:backstab
+	["I'm certain that this is a misunderstanding, fellow hedgehogs!"] = "Tenho a certeza que isto é um mal entendido, camaradas ouriços!", -- A_Classic_Fairytale:first_blood
+	["I mean, none of you ceased to live."] = "Quer dizer, nenhum de vocês cesou de viver.", -- A_Classic_Fairytale:enemy
+	["I'm getting old for this!"] = "Estou a ficar velho para isto.", -- A_Classic_Fairytale:family
+	["I'm getting thirsty..."] = "Estou a ficar com sede...", -- A_Classic_Fairytale:family
+	["I'm here to help you rescue her."] = "Estou aqui para te ajudar a salva-la.", -- A_Classic_Fairytale:family
+	["I'm not sure about that!"] = "Não tenho a certeza quanto a isso!", -- A_Classic_Fairytale:united
+	["Impressive...you are still dry as the corpse of a hawk after a week in the desert..."] = "Impressionante...ainda estás seco tal e qual um cadáver de um falcão depois de uma semana no deserto...", -- A_Classic_Fairytale:first_blood
+	["I'm so scared!"] = "Tenho tanto medo!", -- A_Classic_Fairytale:united
+	["Incredible..."] = "Incrível...", -- A_Classic_Fairytale:shadow
+	["I need to find the others!"] = "Preciso de encontrar os outros!", -- A_Classic_Fairytale:backstab
+	["I need to get to the other side of this island, fast!"] = "Preciso de chegar ao outro lado da ilha, rápido!", -- A_Classic_Fairytale:journey
+	["I need to move the tribe!"] = "Preciso de mover a tribo!", -- A_Classic_Fairytale:united
+--      ["I need to prevent their arrival!"] = "Não posso deixar\permitir\Preciso de prevenir que cheguem!", -- A_Classic_Fairytale:backstab
+	["I need to warn the others."] = "Preciso de avisar os outros.", -- A_Classic_Fairytale:backstab
+	["In fact, you are the only one that's been acting strangely."] = "Na realidade, és o único que se tem comportado de forma estranha.", -- A_Classic_Fairytale:backstab
+	["In order to get to the other side, you need to collect the crates first.|"] = "De forma a conseguir chegar ao outro lado, tens primeiro de obter todas as caixas.", -- A_Classic_Fairytale:dragon
 	["Instructor"] = "Instrutor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
---      ["Interesting idea, haha!"] = "", -- A_Classic_Fairytale:enemy
---      ["Interesting! Last time you said you killed a cannibal!"] = "", -- A_Classic_Fairytale:backstab
---      ["In the meantime, take these and return to your \"friend\"!"] = "", -- A_Classic_Fairytale:shadow
+	["Interesting idea, haha!"] = "Interessante ideia, haha!", -- A_Classic_Fairytale:enemy
+	["Interesting! Last time you said you killed a cannibal!"] = "Interessante! Da ultima vez disseste que tinhas morto um canibal!", -- A_Classic_Fairytale:backstab
+--      ["In the meantime, take these and return to your \"friend\"!"] = "Entretanto, pega\toma isto e volta para o teu \"amigo\"!", -- A_Classic_Fairytale:shadow
 	["invaders destroyed"] = "invasores destruidos",
---      ["Invasion"] = "", -- A_Classic_Fairytale:united
---      ["I saw it with my own eyes!"] = "", -- A_Classic_Fairytale:shadow
---      ["I see..."] = "", -- A_Classic_Fairytale:shadow
---      ["I see you have already taken the leap of faith."] = "", -- A_Classic_Fairytale:first_blood
---      ["I see you would like his punishment to be more...personal..."] = "", -- A_Classic_Fairytale:first_blood
---      ["I sense another wave of cannibals heading my way!"] = "", -- A_Classic_Fairytale:backstab
---      ["I sense another wave of cannibals heading our way!"] = "", -- A_Classic_Fairytale:backstab
---      ["I shouldn't have drunk that last pint."] = "", -- A_Classic_Fairytale:dragon
---      ["Is this place in my head?"] = "", -- A_Classic_Fairytale:dragon
---      ["It doesn't matter. I won't let that alien hurt my daughter!"] = "", -- A_Classic_Fairytale:dragon
---      ["I think we are safe here."] = "", -- A_Classic_Fairytale:backstab
---      ["I thought their shaman died when he tried our medicine!"] = "", -- A_Classic_Fairytale:shadow
---      ["It is called 'Hogs of Steel'."] = "", -- A_Classic_Fairytale:enemy
---      ["It is time to practice your fighting skills."] = "", -- A_Classic_Fairytale:first_blood
---      ["It must be a childhood trauma..."] = "", -- A_Classic_Fairytale:family
---      ["It must be the aliens!"] = "", -- A_Classic_Fairytale:backstab
---      ["It must be the aliens' deed."] = "", -- A_Classic_Fairytale:backstab
---      ["It must be the cyborgs again!"] = "", -- A_Classic_Fairytale:enemy
---      ["I told you, I just found them."] = "", -- A_Classic_Fairytale:backstab
---      ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "",
---      ["It's always up to women to clear up the mess men created!"] = "", -- A_Classic_Fairytale:dragon
---      ["It's a shame, I forgot how to do that!"] = "", -- A_Classic_Fairytale:family
---      ["It's impossible to communicate with the spirits without a shaman."] = "", -- A_Classic_Fairytale:shadow
---      ["It's over..."] = "", -- A_Classic_Fairytale:shadow
---      ["It's time you learned that your actions have consequences!"] = "", -- A_Classic_Fairytale:journey
---      ["It's worth more than wood!"] = "", -- A_Classic_Fairytale:enemy
---      ["It wants our brains!"] = "", -- A_Classic_Fairytale:shadow
---      ["It was not a dream, unwise one!"] = "", -- A_Classic_Fairytale:backstab
---      ["I've seen this before. They just appear out of thin air."] = "", -- A_Classic_Fairytale:united
---      ["I want to play a game..."] = "", -- A_Classic_Fairytale:journey
---      ["I want to see how it handles this!"] = "", -- A_Classic_Fairytale:backstab
---      ["I wish to help you, "] = "", -- A_Classic_Fairytale:dragon
---      ["I wonder where Dense Cloud is..."] = "", -- A_Classic_Fairytale:journey, A_Classic_Fairytale:shadow
---      ["I wonder why I'm so angry all the time..."] = "", -- A_Classic_Fairytale:family
---      ["I won't let you kill her!"] = "", -- A_Classic_Fairytale:journey
---      ["Jack"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
---      ["Jeremiah"] = "", -- A_Classic_Fairytale:dragon
---      ["John"] = "", -- A_Classic_Fairytale:journey
---      ["Judas"] = "", -- A_Classic_Fairytale:backstab
---      ["Jumping is disabled"] = "",
---      ["Just kidding, none of you have died!"] = "", -- A_Classic_Fairytale:enemy
---      ["Just on a walk."] = "", -- A_Classic_Fairytale:united
---      ["Just wait till I get my hands on that trauma! ARGH!"] = "", -- A_Classic_Fairytale:family
+	["Invasion"] = "Invasão", -- A_Classic_Fairytale:united
+	["I saw it with my own eyes!"] = "Eu vi-o com os meus próprios olhos!", -- A_Classic_Fairytale:shadow
+	["I see..."] = "Estou a ver...", -- A_Classic_Fairytale:shadow
+--      ["I see you have already taken the leap of faith."] = "Vejo que ja deste um salto de fé", -- A_Classic_Fairytale:first_blood
+--      ["I see you would like his punishment to be more...personal..."] = "Estou a ver que gostarias que o seu fosse mais... pessoal...", -- A_Classic_Fairytale:first_blood
+--      ["I sense another wave of cannibals heading my way!"] = "Sinto que outro ataque de canibais vem na minha direcção!", -- A_Classic_Fairytale:backstab
+--      ["I sense another wave of cannibals heading our way!"] = "Sinto que outro ataque de canibais vem\se move na nossa direcção!", -- A_Classic_Fairytale:backstab
+	["I shouldn't have drunk that last pint."] = "Não devia ter bebido aquele ultimo caneco.", -- A_Classic_Fairytale:dragon
+--      ["Is this place in my head?"] = "Este lugar é na minha cabeça?", -- A_Classic_Fairytale:dragon
+	["It doesn't matter. I won't let that alien hurt my daughter!"] = "Não quero saber. Não vou deixar aquele alienígena magoar a minha filha!", -- A_Classic_Fairytale:dragon
+	["I think we are safe here."] = "Penso que estamos seguros aqui.", -- A_Classic_Fairytale:backstab
+	["I thought their shaman died when he tried our medicine!"] = "Pensava que o xamã deles tinha morrido quando experimentou o nosso remédio!", -- A_Classic_Fairytale:shadow
+--      ["It is called 'Hogs of Steel'."] = "É chamado 'Hogs of Steel'.", -- A_Classic_Fairytale:enemy
+	["It is time to practice your fighting skills."] = "Está na hora de praticar os habilidades em combate.", -- A_Classic_Fairytale:first_blood
+	["It must be a childhood trauma..."] = "Deve ser um trauma de criança...", -- A_Classic_Fairytale:family
+	["It must be the aliens!"] = "Devem ser os alienígenas!", -- A_Classic_Fairytale:backstab
+	["It must be the aliens' deed."] = "Devem ser obra dos alienígenas!", -- A_Classic_Fairytale:backstab
+	["It must be the cyborgs again!"] = "Devem ser os cyborgs novamente!", -- A_Classic_Fairytale:enemy
+--      ["I told you, I just found them."] = "Eu disse-te que os tinha acabado de encontrar.\que simplesmente os encontrei.", -- A_Classic_Fairytale:backstab
+	["It's a good thing SUDDEN DEATH is 99 turns away..."] = "Ainda bem que ainda faltam 99 turnos para MORTE SÚBITA...",
+	["It's always up to women to clear up the mess men created!"] = "Está sempre a cargo das mulheres, limpar a confusão que os homens criaram!", -- A_Classic_Fairytale:dragon
+--      ["It's a shame, I forgot how to do that!"] = "É uma pena, esqueci-me de como fazer isso\tal coisa!", -- A_Classic_Fairytale:family
+	["It's impossible to communicate with the spirits without a shaman."] = "É impossível comunicar com os espiritos sem um xamã.", -- A_Classic_Fairytale:shadow
+--      ["It's over..."] = "Acabou...\Finalmente acabou...", -- A_Classic_Fairytale:shadow
+--      ["It's time you learned that your actions have consequences!"] = "Está na hora de aprenderes que as tua ações teem consequencias!", -- A_Classic_Fairytale:journey
+--      ["It's worth more than wood!"] = "É mais valioso\Vale mais que madeira!", -- A_Classic_Fairytale:enemy
+--      ["It wants our brains!"] = "Quer os nosso cérebros!", -- A_Classic_Fairytale:shadow
+	["It was not a dream, unwise one!"] = "Não foi um sonho, ó insensato!", -- A_Classic_Fairytale:backstab
+	["I've seen this before. They just appear out of thin air."] = "Eu já vi isto antes. Eles aparecem do nada.", -- A_Classic_Fairytale:united
+	["I want to play a game..."] = "Eu quero jogar um jogo...", -- A_Classic_Fairytale:journey
+--      ["I want to see how it handles this!"] = "Quero ver como ele<se desembaraça nesta..> trata da situação!", -- A_Classic_Fairytale:backstab
+	["I wish to help you, "] = "Desejo ajudar-te, ", -- A_Classic_Fairytale:dragon
+	["I wonder where Dense Cloud is..."] = "Pergunto-me onde estará o Nuvem Densa...", -- A_Classic_Fairytale:journey, A_Classic_Fairytale:shadow
+	["I wonder why I'm so angry all the time..."] = "Pergunto-me porque estou sempre tão zangado...", -- A_Classic_Fairytale:family
+	["I won't let you kill her!"] = "Não te vou permitir que a mates!", -- A_Classic_Fairytale:journey
+	["Jack"] = "Jack", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+	["Jeremiah"] = "Jeremiah", -- A_Classic_Fairytale:dragon
+	["John"] = "John", -- A_Classic_Fairytale:journey
+	["Judas"] = "Judas", -- A_Classic_Fairytale:backstab
+	["Jumping is disabled"] = "Saltar está desactivado",
+	["Just kidding, none of you have died!"] = "Estou só a brincar, nenhum de vocês morreu!", -- A_Classic_Fairytale:enemy
+--      ["Just on a walk."] = "Só a passear\dar um passeio.", -- A_Classic_Fairytale:united
+	["Just wait till I get my hands on that trauma! ARGH!"] = "Espera até eu pôr as mãos naquele trauma! ARGH!", -- A_Classic_Fairytale:family
 	["Kamikaze Expert!"] = "Kamikaze profissional!",
---      ["Keep it up!"] = "Continua assim!",
---      ["Kerguelen"] = "", -- Continental_supplies
+	["Keep it up!"] = "Continua assim!",
+	["Kerguelen"] = "", -- Continental_supplies
 --      ["Killing spree!"] = "",
---      ["KILL IT!"] = "", -- A_Classic_Fairytale:first_blood
---      ["KILLS"] = "",
---      ["Kill the aliens!"] = "", -- A_Classic_Fairytale:dragon
---      ["Kill the cannibal!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Kill the traitor...or spare his life!|Kill him or press [Precise]!"] = "", -- A_Classic_Fairytale:backstab
---      ["Last Target!"] = "",
---      ["Leader"] = "", -- A_Classic_Fairytale:enemy
+--      ["KILL IT!"] = "MATA-O!", -- A_Classic_Fairytale:first_blood
+--      ["KILLS"] = "VITIMAS",
+	["Kill the aliens!"] = "Mata os alienígenas!", -- A_Classic_Fairytale:dragon
+	["Kill the cannibal!"] = "Destrói o canibal!", -- A_Classic_Fairytale:first_blood
+--      ["Kill the traitor...or spare his life!|Kill him or press [Precise]!"] = "Acaba com o traídor...ou poupa a sua vida!|Mata-o ou pressiona [Precisão]!", -- A_Classic_Fairytale:backstab
+--      ["Last Target!"] = "Ultimo Alvo!",
+--      ["Leader"] = "Lider", -- A_Classic_Fairytale:enemy
 --      ["Leaderbot"] = "", -- A_Classic_Fairytale:queen
---      ["Leaks A Lot"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
---      ["Leaks A Lot, depressed for killing his loved one, failed to save the village..."] = "", -- A_Classic_Fairytale:journey
---      ["Leaks A Lot gave his life for his tribe! He should have survived!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Leaks A Lot must survive!"] = "", -- A_Classic_Fairytale:journey
+	["Leaks A Lot"] = "Leaks A Lot", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:first_blood, A_Classic_Fairytale:journey, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow, A_Classic_Fairytale:united
+--      ["Leaks A Lot, depressed for killing his loved one, failed to save the village..."] = "O Leaks A Lot, deprimido por ter morto a sua amada, não conseguiu salvar a aldeia...", -- A_Classic_Fairytale:journey
+	["Leaks A Lot gave his life for his tribe! He should have survived!"] = "Leaks A Lot deu a sua vida pela tribo! Ele devia ter sobrevivido!", -- A_Classic_Fairytale:first_blood
+	["Leaks A Lot must survive!"] = "Leaks A Lot tem de sobreviver!", -- A_Classic_Fairytale:journey
 --      ["Led Heart"] = "", -- A_Classic_Fairytale:queen
---      ["Lee"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+	["Lee"] = "Lee", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 	["[Left Shift]"] = "[Shift Esquerdo]",
---      ["Let a Continent provide your weapons!"] = "", -- Continental_supplies
---      ["Let me test your skills a little, will you?"] = "", -- A_Classic_Fairytale:journey
---      ["Let's go home!"] = "", -- A_Classic_Fairytale:journey
---      ["Let's head back to the village!"] = "", -- A_Classic_Fairytale:shadow
---      ["Let's see what your comrade does now!"] = "", -- A_Classic_Fairytale:journey
---      ["Let's show those cannibals what we're made of!"] = "", -- A_Classic_Fairytale:backstab
---      ["Let them have a taste of my fury!"] = "", -- A_Classic_Fairytale:backstab
---      ["Let us help, too!"] = "", -- A_Classic_Fairytale:backstab
+	["Let a Continent provide your weapons!"] = "Deixa um Continente fornecer-vos armamento!", -- Continental_supplies
+--      ["Let me test your skills a little, will you?"] = "Pemite-me testar as tuas habilidades um pouco\por um bocadinho.<, ok?>", -- A_Classic_Fairytale:journey
+	["Let's go home!"] = "Vamos para casa!", -- A_Classic_Fairytale:journey
+	["Let's head back to the village!"] = "Vamos voltar para a aldeia!", -- A_Classic_Fairytale:shadow
+	["Let's see what your comrade does now!"] = "Vamos ver o que o teu camarada faz agora.", -- A_Classic_Fairytale:journey
+	["Let's show those cannibals what we're made of!"] = "Vamos mostrar àqueles canibais do que somos feitos!", -- A_Classic_Fairytale:backstab
+--      ["Let them have a taste of my fury!"] = "Deixa-os provar a minha fúria!", -- A_Classic_Fairytale:backstab
+	["Let us help, too!"] = "Deixa-nos ajudar também!", -- A_Classic_Fairytale:backstab
 --      ["Light Cannfantry"] = "", -- A_Classic_Fairytale:united
-	["Listen up, maggot!!"] = "Oiçam bem suas larvas!!",
---      ["Little did they know that this hunt will mark them forever..."] = "", -- A_Classic_Fairytale:shadow
+	["Listen up, maggot!!"] = "Ouvem bem, verme!!",
+--      ["Little did they know that this hunt will mark them forever..."] = "Nunca eles imaginariam que esta caça os marcaria para sempre...", -- A_Classic_Fairytale:shadow
 --      ["Lively Lifeguard"] = "",
---      ["Lonely Cries: [Rise the water if no hog is in the circle and deal 1 damage to all hogs]"] = "", -- Continental_supplies
---      ["Look, I had no choice!"] = "", -- A_Classic_Fairytale:backstab
---      ["Look out! There's more of them!"] = "", -- A_Classic_Fairytale:backstab
---      ["Look out! We're surrounded by cannibals!"] = "", -- A_Classic_Fairytale:enemy
+--      ["Lonely Cries: [Rise the water if no hog is in the circle and deal 1 damage to all hogs]"] = "Choros Solitarios: [Aumente o nível da água]", -- Continental_supplies
+	["Look, I had no choice!"] = "Olha, eu não tive escolha!", -- A_Classic_Fairytale:backstab
+--      ["Look out! There's more of them!"] = "Cuidado! Existem mais!", -- A_Classic_Fairytale:backstab
+--      ["Look out! We're surrounded by cannibals!"] = "Cuidado! Estamos rodeados de cabinais!", -- A_Classic_Fairytale:enemy
 --      ["Looks like the whole world is falling apart!"] = "", -- A_Classic_Fairytale:enemy
---      ["Luckily, I've managed to snatch some of them."] = "", -- A_Classic_Fairytale:united
---      ["LUDICROUS KILL"] = "", -- Mutant
+--      ["Luckily, I've managed to snatch some of them."] = "Por sorte, consegui <roubar> alguns deles.", -- A_Classic_Fairytale:united
+	["LUDICROUS KILL"] = "LUDICROUS KILL", -- Mutant
 --      ["May the spirits aid you in all your quests!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Medicine: [Fire some exploding medicine that will heal all hogs effected by the explosion]"] = "", -- Continental_supplies
---      ["MEGA KILL"] = "", -- Mutant
+	["MEGA KILL"] = "MEGA KILL", -- Mutant
 --      ["Meiwes"] = "", -- A_Classic_Fairytale:backstab
 --      ["Mindy"] = "", -- A_Classic_Fairytale:united
 --      ["Mine Deployer"] = "",
@@ -494,16 +492,16 @@
 	["MISSION FAILED"] = "MISSÃO FALHADA", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION SUCCESSFUL"] = "MISSÃO COMPLETA", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["MISSION SUCCESS"] = "MISSÃO COMPLETA", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
---      ["Molotov"] = "", -- Continental_supplies
---      ["MONSTER KILL"] = "", -- Mutant
---      ["More Natives"] = "", -- A_Classic_Fairytale:epil
+	["Molotov"] = "", -- Continental_supplies
+	["MONSTER KILL"] = "MONSTER KILL", -- Mutant
+	["More Natives"] = "Mais Nativos", -- A_Classic_Fairytale:epil
 	["Movement: [Up], [Down], [Left], [Right]"] = "Movimento: [Cima], [Baixo], [Esquerda], [Direita]",
---      ["Multi-shot!"] = "",
+--      ["Multi-shot!"] = "Multiplo-tiro!",
 --      ["Muriel"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Muscle Dissolver"] = "", -- A_Classic_Fairytale:shadow
---      ["-------"] = "", -- Mutant
+	["-------"] = "-------", -- Mutant
 --      ["Nade Boy"] = "", -- Basic_Training_-_Grenade
---      ["Name"] = "", -- A_Classic_Fairytale:queen
+	["Name"] = "Nome", -- A_Classic_Fairytale:queen
 --      ["Nameless Heroes"] = "",
 --      ["Nancy Screw"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:queen
 --      ["Napalm rocket: [Fire a bomb with napalm!]"] = "", -- Continental_supplies
@@ -512,65 +510,63 @@
 --      ["NEW CLAN RECORD: "] = "",
 	["NEW fastest lap: "] = "NOVA volta recorde: ",
 --      ["New Mines Per Turn"] = "",
---      ["NEW RACE RECORD: "] = "",
+--      ["NEW RACE RECORD: "] = "NOVO RECORDE PARA ESTA PISTA: ",
 --      ["Newton's Hammock"] = "",
---      ["Nicely done, meatbags!"] = "", -- A_Classic_Fairytale:enemy
---      ["Nice work, "] = "", -- A_Classic_Fairytale:dragon
---      ["Nice work!"] = "", -- A_Classic_Fairytale:enemy
+--      ["Nicely done, meatbags!"] = "Muito bom trabalho\Muito bem, (seus )sacos de carne!", -- A_Classic_Fairytale:enemy
+	["Nice work, "] = "Bom trabalho, ", -- A_Classic_Fairytale:dragon
+	["Nice work!"] = "Bom trabalho!", -- A_Classic_Fairytale:enemy
 --      ["Nilarian"] = "", -- A_Classic_Fairytale:queen
---      ["No, I came back to help you out..."] = "", -- A_Classic_Fairytale:shadow
---      ["No...I wonder where they disappeared?!"] = "", -- A_Classic_Fairytale:journey
+	["No, I came back to help you out..."] = "Não, voltei para te ajudar...", -- A_Classic_Fairytale:shadow
+--      ["No...I wonder where they disappeared?!"] = "Não... Pegunto-me para onde desapareceram?!", -- A_Classic_Fairytale:journey
 --      ["Nom-Nom"] = "", -- A_Classic_Fairytale:journey
 --      ["NomNom"] = "", -- A_Classic_Fairytale:united
---      ["Nope. It was one fast mole, that's for sure."] = "", -- A_Classic_Fairytale:shadow
---      ["No! Please, help me!"] = "", -- A_Classic_Fairytale:journey
---      ["NORMAL"] = "", -- Continental_supplies
---      ["North America"] = "", -- Continental_supplies
---      ["Not all hogs are born equal."] = "", -- Highlander
+--      ["Nope. It was one fast mole, that's for sure."] = "Não. Mas foi uma toupeira muito rápida de certeza.", -- A_Classic_Fairytale:shadow
+	["No! Please, help me!"] = "Não! Por favor, ajuda-me!", -- A_Classic_Fairytale:journey
+	["NORMAL"] = "NORMAL", -- Continental_supplies
+	["North America"] = "América do Norte", -- Continental_supplies
+--      ["Not all hogs are born equal."] = "Nem todos os ouriços nascem iguais\da mesma maneira.", -- Highlander
 --      ["NOT ENOUGH WAYPOINTS"] = "",
---      ["Not now, Fiery Water!"] = "", -- A_Classic_Fairytale:backstab
+	["Not now, Fiery Water!"] = "Agora não Ãgua Flamejante!", -- A_Classic_Fairytale:backstab
 	["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball
---      ["Not you again! My head still hurts from last time!"] = "", -- A_Classic_Fairytale:shadow
---      ["No, we made sure of that!"] = "", -- A_Classic_Fairytale:united
+--      ["Not you again! My head still hurts from last time!"] = "Tu outra vez?! A minha cabeça ainda doi da ultima vez!", -- A_Classic_Fairytale:shadow
+	["No, we made sure of that!"] = "Não, certificamo-nos disso!", -- A_Classic_Fairytale:united
 --      ["Now find the next target! |Tip: Normally you lose health by falling down, so be careful!"] = "", -- Basic_Training_-_Rope
---      ["No! What have I done?! What have YOU done?!"] = "", -- A_Classic_Fairytale:journey
---      ["No. Where did he come from?"] = "", -- A_Classic_Fairytale:shadow
---      ["Now how do I get on the other side?!"] = "", -- A_Classic_Fairytale:dragon
+	["No! What have I done?! What have YOU done?!"] = "Não! O que fiz eu?! O que fizeste TU?!", -- A_Classic_Fairytale:journey
+	["No. Where did he come from?"] = "Não. De onde raio é que ele apareceu?", -- A_Classic_Fairytale:shadow
+	["Now how do I get on the other side?!"] = "Agora, como chego ao outro lado?!", -- A_Classic_Fairytale:dragon
 --      ["No. You and the rest of the tribe are safer there!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Obliterate them!|Hint: You might want to take cover..."] = "", -- A_Classic_Fairytale:shadow
---      ["Obstacle course"] = "", -- A_Classic_Fairytale:dragon
---      ["Of course I have to save her. What did I expect?!"] = "", -- A_Classic_Fairytale:family
---      ["OH, COME ON!"] = "", -- A_Classic_Fairytale:journey
---      ["Oh, my!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Oh, my! This is even more entertaining than I've expected!"] = "", -- A_Classic_Fairytale:backstab
+	["Obstacle course"] = "Pista de obstáculos", -- A_Classic_Fairytale:dragon
+	["Of course I have to save her. What did I expect?!"] = "Claro que tenho de a salvar. Estavas à espera do quê?!", -- A_Classic_Fairytale:family
+--      ["OH, COME ON!"] = "OH, VÃ LÃ!", -- A_Classic_Fairytale:journey
+	["Oh, my!"] = "Uau!", -- A_Classic_Fairytale:first_blood
+	["Oh, my! This is even more entertaining than I've expected!"] = "Uau! Isto é mais interessante do que eu esperava!", -- A_Classic_Fairytale:backstab
 	["Oh no! Just try again!"] = "Oh não! Tenta novamente!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["Oh no, not "] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
 	["Oh no! Time's up! Just try again."] = "Oh não! Terminou o tempo! Tenta novamente.", --Bazooka, Shotgun, SniperRifle
 --      ["Oh no! You failed! Just try again."] = "", -- Basic_Training_-_Cluster_Bomb
 --      ["Oh, silly me! I forgot that I'm the shaman."] = "", -- A_Classic_Fairytale:backstab
---      ["Olive"] = "", -- A_Classic_Fairytale:united
---      ["Omnivore"] = "", -- A_Classic_Fairytale:first_blood
---      ["Once upon a time, on an island with great natural resources, lived two tribes in heated conflict..."] = "", -- A_Classic_Fairytale:first_blood
---      ["ONE HOG PER TEAM! KILLING EXCESS HEDGES"] = "", -- Mutant
+	["Olive"] = "Azeitona", -- A_Classic_Fairytale:united
+	["Omnivore"] = "Omnívoro", -- A_Classic_Fairytale:first_blood
+--      ["Once upon a time, on an island with great natural resources, lived two tribes in heated conflict..."] = "Era uma vez, numa ilha de grandes recursos naturais, viviam duas tribos com um profundo conflituo...", -- A_Classic_Fairytale:first_blood
+	["ONE HOG PER TEAM! KILLING EXCESS HEDGES"] = "UM OURIÇO POR EQUIPA! A REMOVER OS OURIÇOS EM EXCESSO", -- Mutant
 --      ["One tribe was peaceful, spending their time hunting and training, enjoying the small pleasures of life..."] = "", -- A_Classic_Fairytale:first_blood
---      ["Oops...I dropped them."] = "", -- A_Classic_Fairytale:united
---      ["Open that crate and we will continue!"] = "", -- A_Classic_Fairytale:first_blood
+	["Oops...I dropped them."] = "Oops...deixei-os cair.", -- A_Classic_Fairytale:united
+	["Open that crate and we will continue!"] = "Abre a caixa e podemos prosseguir!", -- A_Classic_Fairytale:first_blood
 	["Operation Diver"] = "Operação Mergulho",
 	["Opposing Team: "] = "Equipa adversária",
 --      ["Orlando Boom!"] = "", -- A_Classic_Fairytale:queen
---      ["Ouch!"] = "", -- User_Mission_-_Rope_Knock_Challenge
---      ["Our tribe, our beautiful island!"] = "", -- A_Classic_Fairytale:enemy
---      ["Parachute"] = "", -- Continental_supplies
+	["Ouch!"] = "Ouch!", -- User_Mission_-_Rope_Knock_Challenge
+	["Our tribe, our beautiful island!"] = "A nossa tribo, a nossa bela ilha!", -- A_Classic_Fairytale:enemy
+	["Parachute"] = "Pára-quedas", -- Continental_supplies
 	["Pathetic Hog #%d"] = "Ouriço patético #%d",
---      ["Pathetic Resistance"] = "", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
---      ["Perfect! Now try to get the next crate without hurting yourself!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Per-Hog Ammo"] = "",
+--      ["Pathetic Resistance"] = "Pátetica Resistencia", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
+	["Perfect! Now try to get the next crate without hurting yourself!"] = "Perfeito! Agora tenta obter a proxima caixa sem te aleijares!", -- A_Classic_Fairytale:first_blood
+--      ["Per-Hog Ammo"] = "Armamento por-Ouriço",
 --      ["- Per team weapons|- 9 weaponschemes|- Unique new weapons| |Select continent first round with the Weapon Menu or by ([switch/tab]=Increase,[precise/left shift]=Decrease) on Skip|Some weapons have a second option. Find them with [switch/tab]"] = "", -- Continental_supplies
-
---      ["Pfew! That was close!"] = "", -- A_Classic_Fairytale:shadow
---      ["Piñata bullet: [Contains some sweet candy!]"] = "", -- Continental_supplies
+	["Pfew! That was close!"] = "Ufa! Foi por um triz.", -- A_Classic_Fairytale:shadow
+--      ["Piñata bullet: [Contains some sweet candy!]"] = "Bala pinhata: [Contem goluzeimas\doces!]", -- Continental_supplies
 --      ["Pings left:"] = "", -- Space_Invasion
-
 --      ["Place more waypoints using the 'Air Attack' weapon."] = "",
 --      ["Planes Used:"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Planes Used"] = "", -- User_Mission_-_RCPlane_Challenge
@@ -585,19 +581,19 @@
 --      ["Portal mission"] = "", -- portal
 	["Power Remaining"] = "Energia Restante",
 	["Prepare yourself"] = "Prepara-te!",
---      ["Press [Enter] to accept this configuration."] = "", -- WxW
---      ["Press [Left] or [Right] to move around, [Enter] to jump"] = "", -- A_Classic_Fairytale:first_blood
---      ["Press [Precise] to skip intro"] = "",
+	["Press [Enter] to accept this configuration."] = "Pressiona [Enter] para aceitar esta configuração.", -- WxW
+	["Press [Left] or [Right] to move around, [Enter] to jump"] = "Pressiona [Esquerda] ou [Direita] para te moveres, [Enter] para saltar", -- A_Classic_Fairytale:first_blood
+--      ["Press [Precise] to skip intro"] = "Pressiona [] para saltar a introdução",
 --      ["Private Novak"] = "", -- Basic_Training_-_Cluster_Bomb
 --      ["Protect yourselves!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow
 --      ["Race complexity limit reached."] = "",
 --      ["RACER"] = "",
---      ["Rachel"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+	["Rachel"] = "Rachel", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Radar Ping"] = "", -- Space_Invasion
 --      ["Raging Buffalo"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
 --      ["Ramon"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow
 --      ["RC PLANE TRAINING"] = "", -- User_Mission_-_RCPlane_Challenge
---      ["Really?! You thought you could harm me with your little toys?"] = "", -- A_Classic_Fairytale:shadow
+--      ["Really?! You thought you could harm me with your little toys?"] = "A SÉRIO?! Pensavas que me podias fazer mal com os teus pequenos brinquedos?", -- A_Classic_Fairytale:shadow
 --      ["Regurgitator"] = "", -- A_Classic_Fairytale:backstab
 --      ["Reinforcements"] = "", -- A_Classic_Fairytale:backstab
 --      ["Remember: The rope only bend around objects, |if it doesn't hit anything it's always stright!"] = "", -- Basic_Training_-_Rope
@@ -610,36 +606,36 @@
 --      ["Rot Molester"] = "", -- A_Classic_Fairytale:shadow
 --      ["Round Limit:"] = "",
 --      ["Round Limit"] = "",
---      ["Rounds Complete: "] = "",
---      ["Rounds Complete"] = "",
+--      ["Rounds Complete: "] = "Rondas Completas: ",
+--      ["Rounds Complete"] = "Rondas Completas",
 	["RULES OF THE GAME [Press ESC to view]"] = "REGRAS DE JOGO [Pressiona ESC para as visualizar]",
---      ["Rusty Joe"] = "", -- A_Classic_Fairytale:queen
+--      ["Rusty Joe"] = "Joe Emferrujado", -- A_Classic_Fairytale:queen
 --      ["s|"] = "",
 --      ["Sabotage: [Sabotage all hogs in the circle and deal ~10 dmg]"] = "", -- Continental_supplies
 --      ["Salivaslurper"] = "", -- A_Classic_Fairytale:united
---      ["Salvation"] = "", -- A_Classic_Fairytale:family
+--      ["Salvation"] = "Salvação", -- A_Classic_Fairytale:family
 --      ["Salvation was one step closer now..."] = "", -- A_Classic_Fairytale:dragon
---      ["Save as many hapless hogs as possible!"] = "",
+	["Save as many hapless hogs as possible!"] = "Salva o máximo de ouriços desafortunados possível!",
 --      ["Save Fell From Heaven!"] = "", -- A_Classic_Fairytale:journey
---      ["Save Leaks A Lot!|Hint: The Switch utility might be of help to you."] = "", -- A_Classic_Fairytale:shadow
+--      ["Save Leaks A Lot!|Hint: The Switch utility might be of help to you."] = "Salva o Leaks A Lot! Ajuda: A abilidade\ferramente Switch(?) pode ser-te util.", -- A_Classic_Fairytale:shadow
 --      ["Save the princess! All your hogs must survive!|Hint: Kill the cyborgs first! Use the ammo very carefully!|Hint: You might want to spare a girder for cover!"] = "", -- A_Classic_Fairytale:family
 --      ["Save the princess by collecting the crate in under 12 turns!"] = "", -- A_Classic_Fairytale:journey
 --      ["Scalp Muncher"] = "", -- A_Classic_Fairytale:backstab
---      ["Score"] = "", -- Mutant
-	["SCORE"] = "RESULTADOS",
+	["Score"] = "Resultado", -- Mutant
+	["SCORE"] = "RESULTADO",
 --      ["Scream from a Walrus: [Deal 20 damage + 10% of your hogs health to all hogs around you and get half back]"] = "", -- Continental_supplies
 	["sec"] = "seg", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
---      ["Seduction"] = "", -- Continental_supplies
+	["Seduction"] = "Sedução", -- Continental_supplies
 --      ["Seems like every time you take a \"walk\", the enemy find us!"] = "", -- A_Classic_Fairytale:backstab
 --      ["See that crate farther on the right?"] = "", -- A_Classic_Fairytale:first_blood
 	["See ya!"] = "Chau!",
 --      ["Segmentation Paul"] = "", -- A_Classic_Fairytale:dragon
---      ["Select continent!"] = "", -- Continental_supplies
---      ["Select difficulty: [Left] - easier or [Right] - harder"] = "", -- A_Classic_Fairytale:first_blood
+	["Select continent!"] = "Seleciona o continente!", -- Continental_supplies
+--      ["Select difficulty: [Left] - easier or [Right] - harder"] = "Seleciona a dificuldade: [Esquerda] - facil ou [Direita] - dificil", -- A_Classic_Fairytale:first_blood
 	["selected!"] = "seleccionado!",
---      ["... share your beauty with the world every morning, my princess!"] = "", -- A_Classic_Fairytale:journey
---      ["She's behind that tall thingy."] = "", -- A_Classic_Fairytale:family
---      ["Shield boosted! +30 power"] = "Escudo melhorado! +30 energia (-unconfirmed)",
+	["... share your beauty with the world every morning, my princess!"] = "... partilha a tua beleza com o mundo todas as manhãs, minha princesa!", -- A_Classic_Fairytale:journey
+	["She's behind that tall thingy."] = "Ela está atráz daquela coisa alta.", -- A_Classic_Fairytale:family
+--      ["Shield boosted! +30 power"] = "Escudo reparado\aumentado! +30 energia (-unconfirmed)",
 	["Shield Depleted"] = "Escudo Esgotado",
 	["Shield is fully recharged!"] = "Escudo completamente recarregado!",
 --      ["Shield Master!"] = "",
@@ -647,7 +643,7 @@
 	["Shield OFF:"] = "Escudo DESLIGADO:",
 	["Shield ON:"] = "Escudo LIGADO:",
 --      ["Shield Seeker!"] = "",
---      ["Shotgun"] = "", -- Continental_supplies
+	["Shotgun"] = "Caçadeira", -- Continental_supplies
 	["Shotgun Team"] = "Caçadores",
 	["Shotgun Training"] = "Treino com Caçadeira",
 --      ["shots remaining."] = "tiros restantes.",
@@ -656,7 +652,7 @@
 --      ["Sirius Lee"] = "", -- A_Classic_Fairytale:enemy
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a equipa %d|perde um ponto!| |Pontuação:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a equipa %d|soma um ponto!| |Pontuação:", -- Basketball, Knockball
---      ["Slippery"] = "", -- A_Classic_Fairytale:journey
+--      ["Slippery"] = "Escorregadio", -- A_Classic_Fairytale:journey
 --      ["Smith 0.97"] = "", -- A_Classic_Fairytale:enemy
 --      ["Smith 0.98"] = "", -- A_Classic_Fairytale:enemy
 --      ["Smith 0.99a"] = "", -- A_Classic_Fairytale:enemy
@@ -667,23 +663,23 @@
 --      ["Sniper!"] = "", -- Space_Invasion
 	["Sniper Training"] = "Treino com Sniper",
 	["Sniperz"] = "Sniperz",
---      ["So humiliating..."] = "", -- A_Classic_Fairytale:first_blood
---      ["South America"] = "", -- Continental_supplies
---      ["So? What will it be?"] = "", -- A_Classic_Fairytale:shadow
---      ["Spawn the crate, and attack!"] = "", -- WxW
---      ["Special Weapons:"] = "", -- Continental_supplies
---      ["Spiky Cheese"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow
+	["So humiliating..."] = "Tão humilhante...", -- A_Classic_Fairytale:first_blood
+	["South America"] = "América do Sul", -- Continental_supplies
+	["So? What will it be?"] = "Então? O que vai ser?", -- A_Classic_Fairytale:shadow
+--      ["Spawn the crate, and attack!"] = "Faz aparecer a caixa, e ataca!", -- WxW
+--      ["Special Weapons:"] = "Armas Especiais:", -- Continental_supplies
+--      ["Spiky Cheese"] = "Queijo \"Picante\"", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:shadow
 --      ["Spleenlover"] = "", -- A_Classic_Fairytale:united
---      ["Sponge"] = "",
+--      ["Sponge"] = "Esponja",
 --      ["Spooky Tree"] = "",
 	["s"] = "s", -- GaudyRacer, Space_Invasion
 --      ["STATUS UPDATE"] = "", -- GaudyRacer, Space_Invasion
---      ["Steel Eye"] = "", -- A_Classic_Fairytale:queen
---      ["Step By Step"] = "", -- A_Classic_Fairytale:first_blood
---      ["Steve"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+--      ["Steel Eye"] = "Olho de Ferro", -- A_Classic_Fairytale:queen
+--      ["Step By Step"] = "Passo a Passo", -- A_Classic_Fairytale:first_blood
+	["Steve"] = "Steve", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["Sticky Mine"] = "", -- Continental_supplies
 --      ["Stronglings"] = "", -- A_Classic_Fairytale:shadow
---      ["Structure"] = "", -- Continental_supplies
+	["Structure"] = "Estrutura", -- Continental_supplies
 --      ["Super Weapons"] = "", -- WxW
 --      ["Surf Before Crate"] = "", -- WxW
 --      ["Surfer! +15 points!"] = "", -- Space_Invasion
@@ -694,28 +690,28 @@
 --      ["Syntax Errol"] = "", -- A_Classic_Fairytale:dragon
 --      ["Talk about mixed signals..."] = "", -- A_Classic_Fairytale:dragon
 	["Team %d: "] = "Equipa %d: ",
---      ["Team Scores"] = "", -- Control, Space_Invasion
---      ["Teleport hint: just use the mouse to select the destination!"] = "", -- A_Classic_Fairytale:dragon
---      ["Thanks!"] = "", -- A_Classic_Fairytale:family
---      ["Thank you, my hero!"] = "", -- A_Classic_Fairytale:family
---      ["Thank you, oh, thank you, Leaks A Lot!"] = "", -- A_Classic_Fairytale:journey
---      ["Thank you, oh, thank you, my heroes!"] = "", -- A_Classic_Fairytale:journey
---      ["That is, indeed, very weird..."] = "", -- A_Classic_Fairytale:united
+--      ["Team Scores"] = "Pontuações Equipa", -- Control, Space_Invasion
+--      ["Teleport hint: just use the mouse to select the destination!"] = "Ajuda com o Teleporte: usa o rato para selecionar o teu destino!", -- A_Classic_Fairytale:dragon
+	["Thanks!"] = "Obrigada!", -- A_Classic_Fairytale:family
+	["Thank you, my hero!"] = "Obrigada, meu herói!", -- A_Classic_Fairytale:family
+	["Thank you, oh, thank you, Leaks A Lot!"] = "Obrigada, oh, obrigada, Leaks A Lot!", -- A_Classic_Fairytale:journey
+	["Thank you, oh, thank you, my heroes!"] = "Obrigada, oh, obrigada, meus heróis!", -- A_Classic_Fairytale:journey
+	["That is, indeed, very weird..."] = "Isto é, de facto, muito estranho...", -- A_Classic_Fairytale:united
 --      ["That makes it almost invaluable!"] = "", -- A_Classic_Fairytale:enemy
 --      ["That ought to show them!"] = "", -- A_Classic_Fairytale:backstab
 --      ["That's for my father!"] = "", -- A_Classic_Fairytale:backstab
---      ["That shaman sure knows what he's doing!"] = "", -- A_Classic_Fairytale:shadow
+--      ["That shaman sure knows what he's doing!"] = "Aquele xamã sabe mesmo o que está a fazer!", -- A_Classic_Fairytale:shadow
 --      ["That Sinking Feeling"] = "",
---      ["That's not our problem!"] = "", -- A_Classic_Fairytale:enemy
---      ["That's typical of you!"] = "", -- A_Classic_Fairytale:family
---      ["That was just mean!"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
+--      ["That's not our problem!"] = "Não temos nada a ver com o teu problema.\Esse problema não tem nada a ver comnosco!", -- A_Classic_Fairytale:enemy
+	["That's typical of you!"] = "Típico vindo de ti!", -- A_Classic_Fairytale:family
+--      ["That was just mean!"] = "Isso foi desnecessariamente mau! -errr má tradução", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
 	["That was pointless."] = "Isso foi completamente desnecessario.",
---      ["The answer is...entertaintment. You'll see what I mean."] = "", -- A_Classic_Fairytale:backstab
+--      ["The answer is...entertaintment. You'll see what I mean."] = "A resposta é...entertenimento. Já vais perceber ao que me refiro\quero dizer.", -- A_Classic_Fairytale:backstab
 --      ["The anti-portal zone is all over the floor, and I have nothing to kill him...Droping something could hurt him enough to kill him..."] = "", -- portal
 --      ["The Bull's Eye"] = "", -- A_Classic_Fairytale:first_blood
 --      ["The caves are well hidden, they won't find us there!"] = "", -- A_Classic_Fairytale:united
 --      ["The Crate Frenzy"] = "", -- A_Classic_Fairytale:first_blood
---      ["The Dilemma"] = "", -- A_Classic_Fairytale:shadow
+--      ["The Dilemma"] = "O Dilema", -- A_Classic_Fairytale:shadow
 --      ["The enemy can't move but it might be a good idea to stay out of sight!|"] = "", -- A_Classic_Fairytale:dragon
 	["The enemy is hiding out on yonder ducky!"] = "O inimigo está escondido ali a diante ao pé do patinho!",
 --      ["The Enemy Of My Enemy"] = "", -- A_Classic_Fairytale:enemy
@@ -723,10 +719,10 @@
 --      ["The First Encounter"] = "", -- A_Classic_Fairytale:shadow
 	["The flag will respawn next round."] = "A bandeira ira reaparecer no próximo turno.",
 --      ["The food bites back"] = "", -- A_Classic_Fairytale:backstab
---      ["The giant umbrella from the last crate should help break the fall."] = "", -- A_Classic_Fairytale:first_blood
+--      ["The giant umbrella from the last crate should help break the fall."] = "O guarda-chuva gigante que estava na ultima caixa deve ajudar a amparar a tua queda.", -- A_Classic_Fairytale:first_blood
 --      ["The Great Escape"] = "", -- User_Mission_-_The_Great_Escape
---      ["The guardian"] = "", -- A_Classic_Fairytale:shadow
---      ["The Individualist"] = "", -- A_Classic_Fairytale:shadow
+--      ["The guardian"] = "O guardião", -- A_Classic_Fairytale:shadow
+--      ["The Individualist"] = "O Individualista", -- A_Classic_Fairytale:shadow
 --      ["Their buildings were very primitive back then, even for an uncivilised island."] = "", -- A_Classic_Fairytale:united
 --      ["The Journey Back"] = "", -- A_Classic_Fairytale:journey
 --      ["The Leap of Faith"] = "", -- A_Classic_Fairytale:first_blood
@@ -742,7 +738,7 @@
 --      ["There's nothing more satisfying to us than seeing you share your beauty with the world every morning, my princess!"] = "", -- A_Classic_Fairytale:journey
 --      ["The Rising"] = "", -- A_Classic_Fairytale:first_blood
 --      ["The Savior"] = "", -- A_Classic_Fairytale:journey
---      ["These primitive people are so funny!"] = "", -- A_Classic_Fairytale:backstab
+--      ["These primitive people are so funny!"] = "Esta gente primitiva é tão divertida!", -- A_Classic_Fairytale:backstab
 --      ["The Shadow Falls"] = "", -- A_Classic_Fairytale:shadow
 --      ["The Showdown"] = "", -- A_Classic_Fairytale:shadow
 --      ["The Slaughter"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:first_blood
@@ -754,32 +750,32 @@
 --      ["The Union"] = "", -- A_Classic_Fairytale:enemy
 --      ["The village, unprepared, was destroyed by the cyborgs..."] = "", -- A_Classic_Fairytale:journey
 --      ["The walk of Fame"] = "", -- A_Classic_Fairytale:shadow
---      ["The wasted youth"] = "", -- A_Classic_Fairytale:first_blood
+--      ["The wasted youth"] = "A juventude desperdiçada", -- A_Classic_Fairytale:first_blood
 --      ["The weapon in that last crate was bestowed upon us by the ancients!"] = "", -- A_Classic_Fairytale:first_blood
---      ["The what?!"] = "", -- A_Classic_Fairytale:dragon
---      ["The wind whispers that you are ready to become familiar with tools, now..."] = "", -- A_Classic_Fairytale:first_blood
+	["The what?!"] = "Os quê?!", -- A_Classic_Fairytale:dragon
+--      ["The wind whispers that you are ready to become familiar with tools, now..."] = "O vento sussura que tu estás pronto para te familiarizares com as ferramentas agora...", -- A_Classic_Fairytale:first_blood
 --      ["They are all waiting back in the village, haha."] = "", -- A_Classic_Fairytale:enemy
 --      ["They Call Me Bullseye!"] = "", -- Space_Invasion
---      ["They have weapons we've never seen before!"] = "", -- A_Classic_Fairytale:united
+	["They have weapons we've never seen before!"] = "Eles têm armas que nunca vimos antes!", -- A_Classic_Fairytale:united
 --      ["They keep appearing like this. It's weird!"] = "", -- A_Classic_Fairytale:united
---      ["They killed "] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
+	["They killed "] = "Eles mataram ", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
 --      ["They must be trying to weaken us!"] = "", -- A_Classic_Fairytale:enemy
---      ["They never learn"] = "", -- A_Classic_Fairytale:journey
---      ["They told us to wear these clothes. They said that this is the newest trend."] = "", -- A_Classic_Fairytale:enemy
+	["They never learn"] = "Eles nunca aprendem", -- A_Classic_Fairytale:journey
+	["They told us to wear these clothes. They said that this is the newest trend."] = "Eles disseram-nos para usar estas roupas. Eles disseram que isto era a última moda.", -- A_Classic_Fairytale:enemy
 --      ["They've been manipulating us all this time!"] = "", -- A_Classic_Fairytale:enemy
 --      ["Thighlicker"] = "", -- A_Classic_Fairytale:united
 --      ["This is it! It's time to make Fell From Heaven fall for me..."] = "", -- A_Classic_Fairytale:first_blood
---      ["This island is the only place left on Earth with grass on it!"] = "", -- A_Classic_Fairytale:enemy
---      ["This is typical!"] = "", -- A_Classic_Fairytale:dragon
---      ["This must be some kind of sorcery!"] = "", -- A_Classic_Fairytale:shadow
---      ["This must be the caves!"] = "", -- A_Classic_Fairytale:backstab
---      ["This one's tricky."] = "",
---      ["This rain is really something..."] = "",
---      ["This will be fun!"] = "", -- A_Classic_Fairytale:enemy
---      ["Those aliens are destroying the island!"] = "", -- A_Classic_Fairytale:family
+--      ["This island is the only place left on Earth with grass on it!"] = "Esta ilha é o último lugar que resta na Terra com erva nele!", -- A_Classic_Fairytale:enemy
+	["This is typical!"] = "Típico", -- A_Classic_Fairytale:dragon
+--      ["This must be some kind of sorcery!"] = "Isto deve ser algum tipo de feitiçaria!", -- A_Classic_Fairytale:shadow
+--      ["This must be the caves!"] = "Isto devem ser as cavernas!", -- A_Classic_Fairytale:backstab
+--      ["This one's tricky."] = "Este é complicado(?)",
+	["This rain is really something..."] = "Esta chuva é mesmo qualquer coisa...",
+	["This will be fun!"] = "Isto vai ser divertido!", -- A_Classic_Fairytale:enemy
+	["Those aliens are destroying the island!"] = "Aqueles alienígenas estão a destruir a ilha!", -- A_Classic_Fairytale:family
 --      ["Timed Kamikaze!"] = "",
---      ["Time Extended!"] = "",
---      ["Time Extension"] = "",
+	["Time Extended!"] = "Tempo Prolongado!",
+	["Time Extension"] = "Extensão de tempo",
 	["TIME: "] = "TEMPO: ",
 --      ["Tip: The rope physics are different than in the real world, |use it to your advantage!"] = "", -- Basic_Training_-_Rope
 	["Toggle Shield"] = "Ligar\Desligar Escudo",
@@ -791,11 +787,11 @@
 --      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 --      ["TRACK COMPLETED"] = "PISTA COMPLETA",
 --      ["TRACK FAILED!"] = "PISTA",
---      ["training"] = "", -- portal
---      ["Traitors"] = "", -- A_Classic_Fairytale:epil
---      ["Tribe"] = "", -- A_Classic_Fairytale:backstab
+	["training"] = "treino", -- portal
+	["Traitores"] = "Traidores", -- A_Classic_Fairytale:epil
+	["Tribe"] = "Tribo", -- A_Classic_Fairytale:backstab
 	["TrophyRace"] = "TrophyRace",
---      ["Try to protect the chief! You won't lose if he dies, but it is advised that he survives."] = "", -- A_Classic_Fairytale:united
+	["Try to protect the chief! You won't lose if he dies, but it is advised that he survives."] = "Tenta protejer o chefe! Não perdes se ele morrer, mas é recomendado que ele sobreviva.", -- A_Classic_Fairytale:united
 	["T_T"] = "T_T",
 --      ["Tumbling Time Extended!"] = "",
 --      ["Turns until Sudden Death: "] = "", -- A_Classic_Fairytale:dragon
@@ -803,12 +799,12 @@
 --      ["Turn Time"] = "",
 --      ["Two little hogs cooperating, getting past obstacles..."] = "", -- A_Classic_Fairytale:journey
 --      ["Uhm...I met one of them and took his weapons."] = "", -- A_Classic_Fairytale:shadow
---      ["Uhmm...ok no."] = "", -- A_Classic_Fairytale:enemy
---      ["ULTRA KILL"] = "", -- Mutant
---      ["Under Construction"] = "", -- A_Classic_Fairytale:shadow
+--      ["Uhmm...ok no."] = "Uhm...ok não.", -- A_Classic_Fairytale:enemy
+	["ULTRA KILL"] = "ULTRA KILL", -- Mutant
+	["Under Construction"] = "Em Construção", -- A_Classic_Fairytale:shadow
 --      ["Unexpected Igor"] = "", -- A_Classic_Fairytale:dragon
---      ["Unit 0x0007"] = "", -- A_Classic_Fairytale:family
---      ["Unit 334a$7%;.*"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
+	["Unit 0x0007"] = "Unidade 0x0007", -- A_Classic_Fairytale:family
+	["Unit 334a$7%;.*"] = "Unidade 334a$7%;.*", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:family, A_Classic_Fairytale:queen, A_Classic_Fairytale:united
 	["Unit 3378"] = "Unidade 3378",
 	["Unit 835"] = "Unidade 835",
 --      ["United We Stand"] = "", -- A_Classic_Fairytale:united
@@ -817,169 +813,168 @@
 --      ["Unlucky Sods"] = "", -- User_Mission_-_Rope_Knock_Challenge
 	["Unstoppable!"] = "Imparável!",
 --      ["Unsuspecting Louts"] = "", -- User_Mission_-_Rope_Knock_Challenge
---      ["[Up], [Down] to aim, [Space] to shoot!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Use it wisely!"] = "", -- A_Classic_Fairytale:dragon
---      ["Use it with precaution!"] = "", -- A_Classic_Fairytale:first_blood
+	["[Up], [Down] to aim, [Space] to shoot!"] = "[Cima], [Baixo] para apontar, [Espaço] para disparar!", -- A_Classic_Fairytale:first_blood
+--      ["Use it wisely!"] = "Usa com moderação\sábiamente", -- A_Classic_Fairytale:dragon
+--      ["Use it with precaution!"] = "Usa com cuidado!", -- A_Classic_Fairytale:first_blood
 --      ["User Challenge"] = "",
-
 --      ["Use the portal gun to get to the next crate, then use the new gun to get to the final destination!|"] = "", -- A_Classic_Fairytale:dragon
---      ["Use the rope to get on the head of the mole, young one!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Use the rope to knock your enemies to their doom."] = "", -- User_Mission_-_Rope_Knock_Challenge
+--      ["Use the rope to get on the head of the mole, young one!"] = "Usa a corda para chegar à cabeça da toupeira, jovem!", -- A_Classic_Fairytale:first_blood
+	["Use the rope to knock your enemies to their doom."] = "Usa a corda para empurrar os teus inimigos para o seu fim.", -- User_Mission_-_Rope_Knock_Challenge
 	["Use your rope to get from start to finish as fast as you can!"] = "Utilizando a corda, percorre o percurso do inicio ao fim o mais rápido que conseguires!",
---      ["Vedgies"] = "", -- A_Classic_Fairytale:journey
---      ["Vegan Jack"] = "", -- A_Classic_Fairytale:enemy
---      ["Victory!"] = "", -- Basic_Training_-_Rope
+	["Vedgies"] = "Vegetais", -- A_Classic_Fairytale:journey
+	["Vegan Jack"] = "Jack Vegetariano", -- A_Classic_Fairytale:enemy
+	["Victory!"] = "Vitória!", -- Basic_Training_-_Rope
 	["Victory for the "] = "Vitória para a", -- CTF_Blizzard, Capture_the_Flag
---      ["Violence is not the answer to your problems!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Walls Left"] = "", -- WxW
---      ["Walls Required"] = "", -- WxW
---      ["WALL TO WALL"] = "", -- WxW
+	["Violence is not the answer to your problems!"] = "Violência não é a resposta para os teus problemas!", -- A_Classic_Fairytale:first_blood
+--      ["Walls Left"] = "Faltam $1 paredes", -- WxW
+	["Walls Required"] = "Paredes Necessárias", -- WxW
+	["WALL TO WALL"] = "WALL TO WALL", -- WxW
 --      ["Wannabe Flyboys"] = "", -- User_Mission_-_RCPlane_Challenge
 --      ["Wannabe Shoppsta"] = "", -- User_Mission_-_Rope_Knock_Challenge
---      ["Watch your steps, young one!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Waypoint placed."] = "",
+--      ["Watch your steps, young one!"] = "Cuidado onde pões os pés, jovem!", -- A_Classic_Fairytale:first_blood
+--      ["Waypoint placed."] = "Waypoint colocado.",
 --      ["Way-Points Remaining"] = "",
---      ["Weaklings"] = "", -- A_Classic_Fairytale:shadow
---      ["We all know what happens when you get frightened..."] = "", -- A_Classic_Fairytale:first_blood
+--      ["Weaklings"] = "Fracotes", -- A_Classic_Fairytale:shadow
+--      ["We all know what happens when you get frightened..."] = "Todos sabemos o que acontece quando te sentes assustado...", -- A_Classic_Fairytale:first_blood
 --      ["Weapons Reset"] = "",
 --      ["Weapons reset."] = "", -- Highlander
---      ["We are indeed."] = "", -- A_Classic_Fairytale:backstab
---      ["We can't defeat them!"] = "", -- A_Classic_Fairytale:shadow
---      ["We can't hold them up much longer!"] = "", -- A_Classic_Fairytale:united
---      ["We can't let them take over our little island!"] = "", -- A_Classic_Fairytale:enemy
---      ["We have no time to waste..."] = "", -- A_Classic_Fairytale:journey
---      ["We have nowhere else to live!"] = "", -- A_Classic_Fairytale:enemy
---      ["We have to protect the village!"] = "", -- A_Classic_Fairytale:united
---      ["We have to unite and defeat those cylergs!"] = "", -- A_Classic_Fairytale:enemy
---      ["Welcome, Leaks A Lot!"] = "", -- A_Classic_Fairytale:journey
+	["We are indeed."] = "Somos mesmo.", -- A_Classic_Fairytale:backstab
+--      ["We can't defeat them!"] = "Não podemos\conseguimos derrotalos!", -- A_Classic_Fairytale:shadow
+--      ["We can't hold them up much longer!"] = "Não conseguimos aguentalos por muito mais.", -- A_Classic_Fairytale:united
+--      ["We can't let them take over our little island!"] = "Não os podemos deixar apoderarem-se\que se apoderem da nossa pequena ilha!", -- A_Classic_Fairytale:enemy
+	["We have no time to waste..."] = "Não temos tempo a perder...", -- A_Classic_Fairytale:journey
+--      ["We have nowhere else to live!"] = "Não temos mais onde viver!", -- A_Classic_Fairytale:enemy
+	["We have to protect the village!"] = "Temos de protejer a aldeia!", -- A_Classic_Fairytale:united
+--      ["We have to unite and defeat those cylergs!"] = "Temos de nos unir e derrotar estes ciber-pernudos!", -- A_Classic_Fairytale:enemy
+	["Welcome, Leaks A Lot!"] = "Bem vindo, Leaks a Lot!", -- A_Classic_Fairytale:journey
 	["Well done."] = "Bom trabalho.",
 --      ["We'll give you a problem then!"] = "", -- A_Classic_Fairytale:enemy
---      ["We'll spare your life for now!"] = "", -- A_Classic_Fairytale:backstab
---      ["Well, that was a waste of time."] = "", -- A_Classic_Fairytale:dragon
+--      ["We'll spare your life for now!"] = "Vamos poupar a tua vida para ja!", -- A_Classic_Fairytale:backstab
+--      ["Well, that was a waste of time."] = "Bem, isto foi um desperdicio de tempo.", -- A_Classic_Fairytale:dragon
 --      ["Well, well! Isn't that the cutest thing you've ever seen?"] = "", -- A_Classic_Fairytale:journey
---      ["Well, yes. This was a cyborg television show."] = "", -- A_Classic_Fairytale:enemy
---      ["We made sure noone followed us!"] = "", -- A_Classic_Fairytale:backstab
---      ["We need to move!"] = "", -- A_Classic_Fairytale:united
---      ["We need to prevent their arrival!"] = "", -- A_Classic_Fairytale:backstab
---      ["We need to warn the village."] = "", -- A_Classic_Fairytale:shadow
+--      ["Well, yes. This was a cyborg television show."] = "Bem, claro. Isto era um programa de televisão para cyborgs.", -- A_Classic_Fairytale:enemy
+--      ["We made sure noone followed us!"] = "Certificamo-nos que ninguem nos seguiu!", -- A_Classic_Fairytale:backstab
+--      ["We need to move!"] = "Temos de nos mover!", -- A_Classic_Fairytale:united
+--      ["We need to prevent their arrival!"] = "Temos de prevenir que cheguem!", -- A_Classic_Fairytale:backstab
+	["We need to warn the village."] = "Temos de avisar a aldeia.", -- A_Classic_Fairytale:shadow
 --      ["We should head back to the village now."] = "", -- A_Classic_Fairytale:shadow
---      ["We were trying to save her and we got lost."] = "", -- A_Classic_Fairytale:family
---      ["We won't let you hurt her!"] = "", -- A_Classic_Fairytale:journey
---      ["What?! A cannibal? Here? There is no time to waste! Come, you are prepared."] = "", -- A_Classic_Fairytale:first_blood
---      ["What a douche!"] = "", -- A_Classic_Fairytale:enemy
+--      ["We were trying to save her and we got lost."] = "Estavamos a tentar salva-la e acabamos por nos perder.", -- A_Classic_Fairytale:family
+--      ["We won't let you hurt her!"] = "Não vamos deixar que a magoes!", -- A_Classic_Fairytale:journey
+--      ["What?! A cannibal? Here? There is no time to waste! Come, you are prepared."] = "O quê? Um canibal? Aqui? Não ha tempo a perder! Vem, estás preparado.", -- A_Classic_Fairytale:first_blood
+	["What a douche!"] = "Que otário!", -- A_Classic_Fairytale:enemy
 --      ["What am I gonna...eat, yo?"] = "", -- A_Classic_Fairytale:family
---      ["What are you doing at a distance so great, young one?"] = "", -- A_Classic_Fairytale:first_blood
---      ["What are you doing? Let her go!"] = "", -- A_Classic_Fairytale:journey
---      ["What a ride!"] = "", -- A_Classic_Fairytale:shadow
---      ["What a strange cave!"] = "", -- A_Classic_Fairytale:dragon
+--      ["What are you doing at a distance so great, young one?"] = "O que estás a tão grande distancia, jovem?", -- A_Classic_Fairytale:first_blood
+--      ["What are you doing? Let her go!"] = "Que estás a fazer? Larga-a!", -- A_Classic_Fairytale:journey
+	["What a ride!"] = "Que viagem!", -- A_Classic_Fairytale:shadow
+	["What a strange cave!"] = "Que caverna estranha!", -- A_Classic_Fairytale:dragon
 --      ["What a strange feeling!"] = "", -- A_Classic_Fairytale:backstab
---      ["What do my faulty eyes observe? A spy!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Whatever floats your boat..."] = "", -- A_Classic_Fairytale:shadow
---      [" What !! For all of this struggle i just win some ... TIME o0"] = "", -- portal
---      ["What has "] = "", -- A_Classic_Fairytale:backstab
---      ["What? Here? How did they find us?!"] = "", -- A_Classic_Fairytale:backstab
---      ["What is this place?"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy
---      ["What shall we do with the traitor?"] = "", -- A_Classic_Fairytale:backstab
---      ["WHAT?! You're the ones attacking us!"] = "", -- A_Classic_Fairytale:enemy
---      ["When?"] = "", -- A_Classic_Fairytale:enemy
---      ["When I find it..."] = "", -- A_Classic_Fairytale:dragon
---      ["Where are all these crates coming from?!"] = "", -- A_Classic_Fairytale:shadow
---      ["Where are they?!"] = "", -- A_Classic_Fairytale:backstab
---      ["Where did that alien run?"] = "", -- A_Classic_Fairytale:dragon
---      ["Where did you get the exploding apples?"] = "", -- A_Classic_Fairytale:shadow
---      ["Where did you get the exploding apples and the magic bow that shoots many arrows?"] = "", -- A_Classic_Fairytale:shadow
---      ["Where did you get the magic bow that shoots many arrows?"] = "", -- A_Classic_Fairytale:shadow
---      ["Where did you get the weapons in the forest, Dense Cloud?"] = "", -- A_Classic_Fairytale:backstab
---      ["Where do you get that?!"] = "", -- A_Classic_Fairytale:enemy
---      ["Where have you been?!"] = "", -- A_Classic_Fairytale:backstab
---      ["Where have you been?"] = "", -- A_Classic_Fairytale:united
---      ["? Why?"] = "", -- A_Classic_Fairytale:backstab
---      ["Why "] = "", -- A_Classic_Fairytale:backstab
---      ["! Why?!"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
---      ["Why are you doing this?"] = "", -- A_Classic_Fairytale:journey
---      ["Why are you helping us, uhm...?"] = "", -- A_Classic_Fairytale:family
---      ["Why can't he just let her go?!"] = "", -- A_Classic_Fairytale:family
---      ["Why do men keep hurting me?"] = "", -- A_Classic_Fairytale:first_blood
---      ["Why do you not like me?"] = "", -- A_Classic_Fairytale:shadow
---      ["Why do you want to take over our island?"] = "", -- A_Classic_Fairytale:enemy
---      ["Why me?!"] = "", -- A_Classic_Fairytale:backstab
---      ["Why would they do this?"] = "", -- A_Classic_Fairytale:backstab
+	["What do my faulty eyes observe? A spy!"] = "O que vêm observam os meus defeituoso olhos? Um espião!", -- A_Classic_Fairytale:first_blood
+--      ["Whatever floats your boat..."] = "O que quer que seja que faz o teu barco flutuar... (preciso melhor expressão verdadeiramente portuguesa)", -- A_Classic_Fairytale:shadow
+	[" What !! For all of this struggle i just win some ... TIME o0"] = " O quê !! Por todo este esforço tudo o que ganho é ... TEMPO o0", -- portal
+--      ["What has "] = "Foi aquilo ", -- A_Classic_Fairytale:backstab
+	["What? Here? How did they find us?!"] = "O quê? Aqui? Como raio nos encontraram?!", -- A_Classic_Fairytale:backstab
+--      ["What is this place?"] = "O que é este sitio?\Que (raio de) sitio é este?", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy
+--      ["What shall we do with the traitor?"] = "O que fazemos com o traidor?", -- A_Classic_Fairytale:backstab
+--      ["WHAT?! You're the ones attacking us!"] = "O QUÊ?! Voces é que nos atacaram\estão a atacar!", -- A_Classic_Fairytale:enemy
+	["When?"] = "Quando?", -- A_Classic_Fairytale:enemy
+	["When I find it..."] = "Quando o encontrar...", -- A_Classic_Fairytale:dragon
+	["Where are all these crates coming from?!"] = "De onde vêm todas estas caixas?!", -- A_Classic_Fairytale:shadow
+	["Where are they?!"] = "Onde estão eles?!", -- A_Classic_Fairytale:backstab
+	["Where did that alien run?"] = "Para onde fugiu aquele alienígena?", -- A_Classic_Fairytale:dragon
+	["Where did you get the exploding apples?"] = "Onde arranjaste as maçãs explosivas?", -- A_Classic_Fairytale:shadow
+	["Where did you get the exploding apples and the magic bow that shoots many arrows?"] = "Onde arranjaste as maçãs explosivas e o arco mágico que dispara muitas flechas?", -- A_Classic_Fairytale:shadow
+	["Where did you get the magic bow that shoots many arrows?"] = "Onde arranjaste o arco mágico que dispara muitas flechas?", -- A_Classic_Fairytale:shadow
+--      ["Where did you get the weapons in the forest, Dense Cloud?"] = "Onde arranjaste as armas na floresta, Nuvem Densa?", -- A_Classic_Fairytale:backstab
+	["Where do you get that?!"] = "Onde arranjaste isso?!", -- A_Classic_Fairytale:enemy
+	["Where have you been?!"] = "Onde estiveste?!", -- A_Classic_Fairytale:backstab
+	["Where have you been?"] = "Onde estiveste?", -- A_Classic_Fairytale:united
+	["? Why?"] = "? Por quê?", -- A_Classic_Fairytale:backstab
+	["Why "] = "Por quê ", -- A_Classic_Fairytale:backstab
+	["! Why?!"] = "! Por quê?!", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
+	["Why are you doing this?"] = "Porque estás a fazer isto?", -- A_Classic_Fairytale:journey
+	["Why are you helping us, uhm...?"] = "Porque nos estás a ajudar, uhm...?", -- A_Classic_Fairytale:family
+	["Why can't he just let her go?!"] = "Porque não podemos simplesmente deixá-la ir?!", -- A_Classic_Fairytale:family
+	["Why do men keep hurting me?"] = "Porque é que os homens continuam a magoar-me?", -- A_Classic_Fairytale:first_blood
+	["Why do you not like me?"] = "Porque não gostas de mim?", -- A_Classic_Fairytale:shadow
+	["Why do you want to take over our island?"] = "Porque querem apoderar-se da nossa ilha?", -- A_Classic_Fairytale:enemy
+	["Why me?!"] = "Por quê eu?!", -- A_Classic_Fairytale:backstab
+	["Why would they do this?"] = "Porque fariam eles isto?", -- A_Classic_Fairytale:backstab
 --      ["- Will Get 1-3 random weapons"] = "", -- Continental_supplies
 --      ["- Will refresh Parachute each turn."] = "", -- Continental_supplies
 --      ["- Will refresh portalgun each turn."] = "", -- Continental_supplies
---      ["Will this ever end?"] = "",
---      ["WINNER IS "] = "", -- Mutant
+--      ["Will this ever end?"] = "Será que isto alguma vez vai acabar?",
+	["WINNER IS "] = "O VENCEDOR É ", -- Mutant
 	["WINNING TIME: "] = "TEMPO VENCEDOR: ",
---      ["Wise Oak"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+--      ["Wise Oak"] = "Carvalho Sábio", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
 --      ["With Dense Cloud on the land of shadows, I'm the village's only hope..."] = "", -- A_Classic_Fairytale:journey
 --      ["With the rest of the tribe gone, it was up to "] = "", -- A_Classic_Fairytale:dragon
---      ["Worry not, for it is a peaceful animal! There is no reason to be afraid..."] = "", -- A_Classic_Fairytale:first_blood
---      ["Wow, what a dream!"] = "", -- A_Classic_Fairytale:backstab
---      ["Y3K1337"] = "", -- A_Classic_Fairytale:journey, A_Classic_Fairytale:shadow
---      ["Yay, we won!"] = "", -- A_Classic_Fairytale:enemy
+	["Worry not, for it is a peaceful animal! There is no reason to be afraid..."] = "Não te preocupes, pois este animal é perfeitamente pacífico! Não há qualquer fazão para receio...", -- A_Classic_Fairytale:first_blood
+	["Wow, what a dream!"] = "Wow, mas que sonho!", -- A_Classic_Fairytale:backstab
+	["Y3K1337"] = "Y3K1337", -- A_Classic_Fairytale:journey, A_Classic_Fairytale:shadow
+--      ["Yay, we won!"] = "Boa, ganhamos!", -- A_Classic_Fairytale:enemy
 --      ["Y Chwiliad"] = "", -- A_Classic_Fairytale:dragon
---      ["Yeah...I think it's a 'he', lol."] = "", -- A_Classic_Fairytale:shadow
---      ["Yeah, sure! I died. Hillarious!"] = "", -- A_Classic_Fairytale:backstab
---      ["Yeah, take that!"] = "", -- A_Classic_Fairytale:dragon
---      ["Yeah? Watcha gonna do? Cry?"] = "", -- A_Classic_Fairytale:journey
---      ["Yes!"] = "", -- A_Classic_Fairytale:enemy
---      ["Yes, yeees! You are now ready to enter the real world!"] = "", -- A_Classic_Fairytale:first_blood
---      ["Yo, dude, we're here, too!"] = "", -- A_Classic_Fairytale:family
---      ["You are given the chance to turn your life around..."] = "", -- A_Classic_Fairytale:shadow
---      ["You are playing with our lives here!"] = "", -- A_Classic_Fairytale:enemy
---      ["! You bastards!"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
---      ["You bear impressive skills, "] = "", -- A_Classic_Fairytale:dragon
---      ["You can't fire a portal on the blue surface"] = "", -- portal
+--      ["Yeah...I think it's a 'he', lol."] = "Sim...penso que é um \"ele\", lol.", -- A_Classic_Fairytale:shadow
+	["Yeah, sure! I died. Hillarious!"] = "Sim, claro! Morri. Que piada!", -- A_Classic_Fairytale:backstab
+--      ["Yeah, take that!"] = "Sim, toma isto!", -- A_Classic_Fairytale:dragon
+	["Yeah? Watcha gonna do? Cry?"] = "Ai sim? E o que vais fazer? Chorar?", -- A_Classic_Fairytale:journey
+	["Yes!"] = "Sim!", -- A_Classic_Fairytale:enemy
+--      ["Yes, yeees! You are now ready to enter the real world!"] = "Sim, SIM! Estás agora pronto para entrar no mundo real!", -- A_Classic_Fairytale:first_blood
+--      ["Yo, dude, we're here, too!"] = "Yo, bacano, também estamos aqui!\chagámos, também!", -- A_Classic_Fairytale:family
+	["You are given the chance to turn your life around..."] = "Foi-te oferecida uma oportunidade para mudar a tua vida...", -- A_Classic_Fairytale:shadow
+--      ["You are playing with our lives here!"] = "Estas a bincar com as nossas vidas com isto!", -- A_Classic_Fairytale:enemy
+--      ["! You bastards!"] = "! Seus bastardos!<precisa uma expresão melhor>", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
+--      ["You bear impressive skills, "] = "As tuas habilidades são impressionantes, ", -- A_Classic_Fairytale:dragon
+--      ["You can't fire a portal on the blue surface"] = "Não podes disparar um portal na superficie azul", -- portal
 --      ["You couldn't possibly believe that after refusing my offer I'd just let you go!"] = "", -- A_Classic_Fairytale:journey
 	["You'd almost swear the water was rising!"] = "Quase eras capaz jurar que a água estava a subir!",
---      ["You'd better watch your steps..."] = "", -- A_Classic_Fairytale:journey
---      ["You did not make it in time, try again!"] = "", -- Basic_Training_-_Rope
+--      ["You'd better watch your steps..."] = "É melhor teres cuidado onde pôes os pés...", -- A_Classic_Fairytale:journey
+--      ["You did not make it in time, try again!"] = "Não chegaste a tempo, tenta novamente!", -- Basic_Training_-_Rope
 --      ["You have 7 turns until the next wave arrives.|Make sure the arriving cannibals are greeted appropriately!|If the hog dies, the cause is lost.|Hint: you might want to use some mines..."] = "", -- A_Classic_Fairytale:backstab
---      ["You have "] = "", -- A_Classic_Fairytale:dragon
+--      ["You have "] = "Tens ", -- A_Classic_Fairytale:dragon
 --      ["You have been giving us out to the enemy, haven't you!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You have been respawned, at your last checkpoint!"] = "", -- Basic_Training_-_Rope
 --      ["You have been respawned, be more carefull next time!"] = "", -- Basic_Training_-_Rope
---      ["You have chosen the perfect moment to leave."] = "", -- A_Classic_Fairytale:united
---      ["You have failed to complete your task, young one!"] = "", -- A_Classic_Fairytale:journey
---      ["You have failed to save the tribe!"] = "", -- A_Classic_Fairytale:backstab
---      ["You have finally figured it out!"] = "", -- A_Classic_Fairytale:enemy
---      ["You have kidnapped our whole tribe!"] = "", -- A_Classic_Fairytale:enemy
+--      ["You have chosen the perfect moment to leave."] = "Escolheste o momento perfeito para ir embora\sair.", -- A_Classic_Fairytale:united
+--      ["You have failed to complete your task, young one!"] = "Não foste capaz de completar a tua tarefa, jovem!", -- A_Classic_Fairytale:journey
+--      ["You have failed to save the tribe!"] = "Não foste capaz de salvar a tribo!", -- A_Classic_Fairytale:backstab
+--      ["You have finally figured it out!"] = "Finalmente percebeste!", -- A_Classic_Fairytale:enemy
+--      ["You have kidnapped our whole tribe!"] = "Tu raptaste toda a nossa tribo!", -- A_Classic_Fairytale:enemy
 --      ["You have killed an innocent hedgehog!"] = "", -- A_Classic_Fairytale:backstab
 --      ["You have proven yourself worthy to see our most ancient secret!"] = "", -- A_Classic_Fairytale:first_blood
 --      ["You have proven yourselves worthy!"] = "", -- A_Classic_Fairytale:enemy
 	["You have SCORED!!"] = "Marcaste!!",
---      ["You have to destroy 12 targets in 180 seconds"] = "", -- Basic_Training_-_Cluster_Bomb
---      ["You have won the game by proving true cooperative skills!"] = "", -- A_Classic_Fairytale:enemy
---      ["You just appeared out of thin air!"] = "", -- A_Classic_Fairytale:backstab
---      ["You just committed suicide..."] = "", -- A_Classic_Fairytale:shadow
---      ["You killed my father, you monster!"] = "", -- A_Classic_Fairytale:backstab
---      ["You know...taking a stroll."] = "", -- A_Classic_Fairytale:backstab
---      ["You know what? I don't even regret anything!"] = "", -- A_Classic_Fairytale:backstab
---      ["You'll see what I mean!"] = "", -- A_Classic_Fairytale:enemy
---      ["You may only attack from a rope!"] = "", -- WxW
---      ["You meatbags are pretty slow, you know!"] = "", -- A_Classic_Fairytale:enemy
+	["You have to destroy 12 targets in 180 seconds"] = "Tens de destruir 12 alvos em 180 segundos", -- Basic_Training_-_Cluster_Bomb
+--      ["You have won the game by proving true cooperative skills!"] = "Ganhaste o jogo demonstrando a tua excelente habilidade em cooperar!", -- A_Classic_Fairytale:enemy
+	["You just appeared out of thin air!"] = "Simplesmente apareceste do nada!", -- A_Classic_Fairytale:backstab
+	["You just committed suicide..."] = "Acabaste de cometer suicídio...", -- A_Classic_Fairytale:shadow
+	["You killed my father, you monster!"] = "Tu mataste o meu pai, seu monstro!", -- A_Classic_Fairytale:backstab
+--      ["You know...taking a stroll."] = "Tu sabes...a passear.", -- A_Classic_Fairytale:backstab
+--      ["You know what? I don't even regret anything!"] = "Sabes que mais? Nem me arrependo de nada disto!", -- A_Classic_Fairytale:backstab
+--      ["You'll see what I mean!"] = "Já vais perceber o que quero dizer!", -- A_Classic_Fairytale:enemy
+	["You may only attack from a rope!"] = "Só podes atacar da corda!", -- WxW
+	["You meatbags are pretty slow, you know!"] = "Voçês sacos de carne são muito lentos, sabiam?", -- A_Classic_Fairytale:enemy
 --      ["You might want to find a way to instantly kill arriving cannibals!"] = "", -- A_Classic_Fairytale:backstab
 --      ["Young one, you are telling us that they can instantly change location without a shaman?"] = "", -- A_Classic_Fairytale:united
 --      ["You probably know what to do next..."] = "", -- A_Classic_Fairytale:first_blood
---      ["Your deaths will be avenged, cannibals!"] = "", -- A_Classic_Fairytale:enemy
---      ["Your death will not be in vain, Dense Cloud!"] = "", -- A_Classic_Fairytale:shadow
---      ["You're...alive!? But we saw you die!"] = "", -- A_Classic_Fairytale:backstab
+--      ["Your deaths will be avenged, cannibals!"] = "As vossas mortes serão vingadas canibais!", -- A_Classic_Fairytale:enemy
+	["Your death will not be in vain, Dense Cloud!"] = "A tua morte não será em vão, Nuvem Densa!", -- A_Classic_Fairytale:shadow
+	["You're...alive!? But we saw you die!"] = "Estás...vivo!? Mas nós vimos-te morrer!", -- A_Classic_Fairytale:backstab
 --      ["You're a pathetic liar!"] = "", -- A_Classic_Fairytale:backstab
---      ["You're funny!"] = "", -- A_Classic_Fairytale:journey
---      ["You're getting pretty good! |Tip: When you shorten you rope you move faster! |and when you lengthen it you move slower"] = "", -- Basic_Training_-_Rope
---      ["You're pathetic! You are not worthy of my attention..."] = "", -- A_Classic_Fairytale:shadow
---      ["You're probably wondering why I bought you back..."] = "", -- A_Classic_Fairytale:backstab
---      ["You're terrorizing the forest...We won't catch anything like this!"] = "", -- A_Classic_Fairytale:shadow
---      ["Your hogs must survive!"] = "", -- A_Classic_Fairytale:journey
---      ["Your movement skills will be evaluated now."] = "", -- A_Classic_Fairytale:first_blood
---      ["You saved"] = "",
---      ["You've been assaulting us, we have been just defending ourselves!"] = "", -- A_Classic_Fairytale:enemy
+--      ["You're funny!"] = "És engraçado!", -- A_Classic_Fairytale:journey
+--      ["You're getting pretty good! |Tip: When you shorten you rope you move faster! |and when you lengthen it you move slower"] = "Estás a ficar muito bom!", -- Basic_Training_-_Rope
+--      ["You're pathetic! You are not worthy of my attention..."] = "És patetico! Não és digno da minha atenção...", -- A_Classic_Fairytale:shadow
+--      ["You're probably wondering why I bought you back..."] = "Deves-te estar(?) a perguntar-te porque te trouxe de volta...", -- A_Classic_Fairytale:backstab
+	["You're terrorizing the forest...We won't catch anything like this!"] = "Estás a aterrorizar a floresta...Não vamos conseguir apanhar nada assim!", -- A_Classic_Fairytale:shadow
+	["Your hogs must survive!"] = "Os teus ouriços têm de sobreviver!", -- A_Classic_Fairytale:journey
+--      ["Your movement skills will be evaluated now."] = "A tua habilidade para te movimentares serão agora avaliadas.", -- A_Classic_Fairytale:first_blood
+--      ["You saved"] = "Salvaste",
+--      ["You've been assaulting us, we have been just defending ourselves!"] = "Voces têm-nos atacado, apenas nos estamos a defender!", -- A_Classic_Fairytale:enemy
 	["You've failed. Try again."] = "Falhaste. Tenta novamente.",
 	["You've reached the goal!| |Time: "] = "Chegaste ao fim!| |Tempo: ",
---      ["You will be avenged!"] = "", -- A_Classic_Fairytale:shadow
---      ["You won't believe what happened to me!"] = "", -- A_Classic_Fairytale:backstab
---      ["Yuck! I bet they'll keep worshipping her even after I save the village!"] = "", -- A_Classic_Fairytale:family
+	["You will be avenged!"] = "Serás vingado!", -- A_Classic_Fairytale:shadow
+	["You won't believe what happened to me!"] = "Não vais acreditar no que se passou comigo!", -- A_Classic_Fairytale:backstab
+--      ["Yuck! I bet they'll keep worshipping her even after I save the village!"] = "Yuck! Aposto que eles vão continuar a venerala mesmo depois de eu ter salvo a aldeia deles~~~~~~", -- A_Classic_Fairytale:family
 --      ["Zealandia"] = "", -- Continental_supplies
 	["'Zooka Team"] = "Bazuqueiros",
---      ["Zork"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+	["Zork"] = "Zork", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
     }
--- a/share/hedgewars/Data/Locale/ro.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/ro.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -20,7 +20,7 @@
 00:17=Lovitura de torță
 00:18=Constructie
 00:19=Teleportare
-00:20=Schimbă ariciuș	
+00:20=Schimbă ariciuș
 00:21=Mortar
 00:22=Bici
 00:23=Kamikaze
@@ -28,7 +28,7 @@
 00:25=Seducere
 00:26=Pepene bombă
 00:27=Grenadă de mână infernală
-00:28=Racheta burghiu	
+00:28=Racheta burghiu
 00:29=Pistol cu bile
 00:30=Napalm
 00:31=Avion RC
@@ -505,7 +505,7 @@
 04:51=Get in a free shot by hurling a ball of mud.|Stings a bit, and knocks hogs back.
 04:52=UNUSED
 04:53=Go on an adventure through time and space,|while leaving your comrades to fight on alone.|Be prepared to return at any time,|or for Sudden Death or if they are all defeated.|Disclaimer. Does not function in Sudden Death,|if you are alone, or if you are a King.
-04:54=INCOMPLETE                                                                                                                                     
+04:54=INCOMPLETE
 04:55=Spray a stream of sticky flakes.|Build bridges, bury enemies, seal off tunnels.|Be careful you don't get any on you!
 
 ; Game goal strings
--- a/share/hedgewars/Data/Locale/sv.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/sv.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -535,7 +535,7 @@
 04:51=Få till en gratisträff genom att kasta en boll med|jord. Känns lite gran, och knuffar tillbaka|igelkottar.
 04:52=UNUSED
 04:53=Åk på ett äventyr genom tid och rymd, medan dina|kamrater blir kvar själva att slåss. Var beredd|att komma tillbaka när som helst, eller till|Sudden Death eller om de andra blir besegrade.|Varning. Fungerar inte under Sudden Death, om du|är ensam, eller om du är en kung.
-04:54=INCOMPLETE                                                                                                                                     
+04:54=INCOMPLETE
 04:55=Spruta en ström av fästande jord.|Bygg broar, gräv ner fienden, stäng igen tunnlar.|Var försiktig så att du inte får något på dig!
 
 ; Game goal strings
--- a/share/hedgewars/Data/Locale/uk.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Locale/uk.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -110,7 +110,7 @@
 02:01=%1 забув надіти Ñ€Ñтувальний жилет
 02:01=%1 Ñпить Ñеред риб
 02:01=%1 хоче пити
-02:01=%1 загубивÑÑ Ð² морі 
+02:01=%1 загубивÑÑ Ð² морі
 02:01=%1 забув надіти акваланг
 02:01=%1 похований у морі
 02:01=%1 пробує плавати на Ñпині
@@ -344,7 +344,7 @@
 04:51=ЗдійÑни халÑвний удар, шпурни грудку багна.|Трохи пече Ñ– відкидає їжака назад.
 04:52=UNUSED
 04:53=ЗдійÑни подорож крізь Ñ‡Ð°Ñ Ñ‚Ð° проÑÑ‚Ñ–Ñ€,|залишивши товаришів битиÑÑŒ далі Ñамим.|Будь готовий повернутиÑÑŒ в кожну мить,|або до Раптової Ñмерті або до Ñ—Ñ… поразки.|Відмова. Ðе працює в Раптовій Смерті,|Ñкщо ти один, або Ñкщо ти Король.
-04:54=ÐЕЗÐВЕРШЕÐО                                                                                                                                     
+04:54=ÐЕЗÐВЕРШЕÐО
 04:55=Розпили потік лепких плаÑтівців.|будуй моÑти, хорони ворогів, перекривай тунелі.|Стеж щоб на тебе не впала жодна з них!
 
 ; Game goal strings
--- a/share/hedgewars/Data/Maps/Bamboo/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Bamboo/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Bamboo)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Bamboo)
--- a/share/hedgewars/Data/Maps/BambooPlinko/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/BambooPlinko/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/BambooPlinko)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/BambooPlinko)
--- a/share/hedgewars/Data/Maps/Basketball/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Basketball/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,7 +1,8 @@
 install(FILES
-	map.png
-	map.cfg
-	map.lua
-	mask.png
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Basketball)
+    map.png
+    map.cfg
+    map.lua
+    mask.png
+    preview.png
+    desc.txt
+    DESTINATION ${SHAREPATH}Data/Maps/Basketball)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Basketball/desc.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,1 @@
+en_US=Who said hedgehogs can't|play basketball?
--- a/share/hedgewars/Data/Maps/Basketball/map.cfg	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Basketball/map.cfg	Sun Jan 27 00:28:57 2013 +0100
@@ -1,2 +1,2 @@
 Nature
-12
+12
\ No newline at end of file
--- a/share/hedgewars/Data/Maps/Basketball/map.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Basketball/map.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 -- Hedgewars - Basketball for 2+ Players
 
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+HedgewarsScriptLoad("Scripts/Locale.lua")()
 
 local score = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0}
 
--- a/share/hedgewars/Data/Maps/Bath/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Bath/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Bath)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Bath)
--- a/share/hedgewars/Data/Maps/Battlefield/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Battlefield/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,7 +1,7 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Battlefield)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Battlefield)
 
--- a/share/hedgewars/Data/Maps/Blizzard/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Blizzard/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,7 +1,7 @@
 install(FILES
-	map.png
-	map.cfg
-	mask.png
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Blizzard)
+    map.png
+    map.cfg
+    mask.png
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Blizzard)
 
--- a/share/hedgewars/Data/Maps/Blox/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Blox/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Blox)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Blox)
--- a/share/hedgewars/Data/Maps/Bubbleflow/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Bubbleflow/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Bubbleflow)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Bubbleflow)
--- a/share/hedgewars/Data/Maps/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,45 +1,45 @@
 foreach(dir
-	Bamboo
-	BambooPlinko
-	Basketball
-	Bath
-	Battlefield
-	Blizzard
-	Blox
-	Bubbleflow
-	Cake
-	Castle
-	Cave
-	Cheese
-	Cogs
-	Control
-	CrazyMission
-	CTF_Blizzard
-	EarthRise
-	Eyes
-	Hammock
-	HedgeFortress
-	Hedgelove
-	Hedgewars
-	Hogville
-	Hydrant
-	Islands
-	Knockball
-	Lonely_Island
-	Mushrooms
-	Octorama
-	PirateFlag
-	Plane
-	portal
-	Ropes
-	Ruler
-	Sheep
-	ShoppaKing
-	Sticks
-	Trash
-	Tree
-	TrophyRace
-	)
+    Bamboo
+    BambooPlinko
+    Basketball
+    Bath
+    Battlefield
+    Blizzard
+    Blox
+    Bubbleflow
+    Cake
+    Castle
+    Cave
+    Cheese
+    Cogs
+    Control
+    CrazyMission
+    CTF_Blizzard
+    EarthRise
+    Eyes
+    Hammock
+    HedgeFortress
+    Hedgelove
+    Hedgewars
+    Hogville
+    Hydrant
+    Islands
+    Knockball
+    Lonely_Island
+    Mushrooms
+    Octorama
+    PirateFlag
+    Plane
+    portal
+    Ropes
+    Ruler
+    Sheep
+    ShoppaKing
+    Sticks
+    Trash
+    Tree
+    TrophyRace
+    )
 
 add_subdirectory(${dir})
 endforeach(dir)
--- a/share/hedgewars/Data/Maps/CTF_Blizzard/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,6 @@
 install(FILES
-	map.cfg
-	map.lua
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/CTF_Blizzard)
+    map.cfg
+    map.lua
+    preview.png
+    desc.txt
+    DESTINATION ${SHAREPATH}Data/Maps/CTF_Blizzard)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/desc.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,1 @@
+en_US=Capture the Flag\, blizzard style!
--- a/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -91,7 +91,7 @@
 -- add support for more players
 -- re-enable sudden death, but set water rise to 0
 
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+HedgewarsScriptLoad("Scripts/Locale.lua")()
 
 ---------------------------------------------------------------
 ----------lots of bad variables and things
--- a/share/hedgewars/Data/Maps/Cake/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Cake/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Cake)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Cake)
--- a/share/hedgewars/Data/Maps/Castle/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Castle/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Castle)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Castle)
--- a/share/hedgewars/Data/Maps/Cave/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Cave/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Cave)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Cave)
--- a/share/hedgewars/Data/Maps/Cheese/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Cheese/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Cheese)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Cheese)
--- a/share/hedgewars/Data/Maps/Cogs/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Cogs/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Cogs)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Cogs)
--- a/share/hedgewars/Data/Maps/Control/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Control/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,7 @@
 install(FILES
-	map.cfg
-	map.lua
-	map.png
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Control)
+    map.cfg
+    map.lua
+    map.png
+    preview.png
+    desc.txt
+    DESTINATION ${SHAREPATH}Data/Maps/Control)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Control/desc.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,1 @@
+en_US=Islands scattered everywhere\, full set of|weapons.
--- a/share/hedgewars/Data/Maps/Control/map.cfg	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Control/map.cfg	Sun Jan 27 00:28:57 2013 +0100
@@ -1,4 +1,4 @@
 Deepspace
 48
 Default
-Crazy
+Crazy
\ No newline at end of file
--- a/share/hedgewars/Data/Maps/Control/map.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Control/map.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -49,7 +49,7 @@
 --script begins
 -----------------
 
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+HedgewarsScriptLoad("Scripts/Locale.lua")()
 
 ---------------------------------------------------------------
 ----------lots of bad variables and things
--- a/share/hedgewars/Data/Maps/CrazyMission/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/CrazyMission/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/CrazyMission)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/CrazyMission)
--- a/share/hedgewars/Data/Maps/EarthRise/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/EarthRise/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/EarthRise)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/EarthRise)
--- a/share/hedgewars/Data/Maps/Eyes/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Eyes/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Eyes)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Eyes)
--- a/share/hedgewars/Data/Maps/Hammock/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Hammock/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Hammock)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Hammock)
--- a/share/hedgewars/Data/Maps/HedgeFortress/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/HedgeFortress/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/HedgeFortress)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/HedgeFortress)
--- a/share/hedgewars/Data/Maps/Hedgelove/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Hedgelove/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Hedgelove)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Hedgelove)
--- a/share/hedgewars/Data/Maps/Hedgewars/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Hedgewars/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Hedgewars)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Hedgewars)
--- a/share/hedgewars/Data/Maps/Hogville/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Hogville/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Hogville)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Hogville)
--- a/share/hedgewars/Data/Maps/Hydrant/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Hydrant/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Hydrant)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Hydrant)
--- a/share/hedgewars/Data/Maps/Islands/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Islands/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Islands)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Islands)
--- a/share/hedgewars/Data/Maps/Knockball/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Knockball/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,7 @@
 install(FILES
-	map.png
-	map.cfg
-	map.lua
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Knockball)
+    map.png
+    map.cfg
+    map.lua
+    preview.png
+    desc.txt
+    DESTINATION ${SHAREPATH}Data/Maps/Knockball)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Knockball/desc.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,1 @@
+en_US=Knock your opponents off the platforms|using only a bat!
--- a/share/hedgewars/Data/Maps/Knockball/map.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Knockball/map.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 -- Hedgewars - Knockball for 2+ Players
 
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+HedgewarsScriptLoad("Scripts/Locale.lua")()
 
 local score = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0}
 
--- a/share/hedgewars/Data/Maps/Lonely_Island/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Lonely_Island/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Lonely_Island)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Lonely_Island)
--- a/share/hedgewars/Data/Maps/Mushrooms/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Mushrooms/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Mushrooms)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Mushrooms)
--- a/share/hedgewars/Data/Maps/Octorama/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Octorama/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	info.txt
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Octorama)
+    info.txt
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Octorama)
--- a/share/hedgewars/Data/Maps/Octorama/info.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Octorama/info.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -2,9 +2,9 @@
   octorama
 
 :: TYPE
-  custom hedgewars map 
- 
-:: VERSION 
+  custom hedgewars map
+
+:: VERSION
   RC3
 
 :: CHANGELOG
@@ -27,13 +27,13 @@
    - shades on upper left bubbles are now correct
    - removed the theme for now since the theme didn't
      bring anything new but the music (tiyuri)
- 
-:: DESCRIPTION 
-  just a fun map similar to bubbleflow 
- 
-:: CREATOR 
+
+:: DESCRIPTION
+  just a fun map similar to bubbleflow
+
+:: CREATOR
   jesse/jessor - http://geekosphere.org
- 
+
 :: RIGHTZ
   Octopod Vector Art: http://iconicon.net/ (CC)
 
--- a/share/hedgewars/Data/Maps/PirateFlag/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/PirateFlag/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/PirateFlag)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/PirateFlag)
 
--- a/share/hedgewars/Data/Maps/Plane/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Plane/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Plane)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Plane)
 
--- a/share/hedgewars/Data/Maps/Ropes/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Ropes/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Ropes)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Ropes)
--- a/share/hedgewars/Data/Maps/Ruler/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Ruler/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Ruler)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Ruler)
 
--- a/share/hedgewars/Data/Maps/Sheep/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Sheep/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Sheep)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Sheep)
 
--- a/share/hedgewars/Data/Maps/ShoppaKing/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/ShoppaKing/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/ShoppaKing)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/ShoppaKing)
--- a/share/hedgewars/Data/Maps/Sticks/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Sticks/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Sticks)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Sticks)
--- a/share/hedgewars/Data/Maps/Trash/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Trash/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Trash)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Trash)
 
--- a/share/hedgewars/Data/Maps/Tree/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/Tree/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 install(FILES
-	map.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/Tree)
+    map.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/Tree)
--- a/share/hedgewars/Data/Maps/TrophyRace/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/TrophyRace/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,7 +1,8 @@
 install(FILES
-	map.cfg
-	map.lua
-	map.png
-	mask.png
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/TrophyRace)
+    map.cfg
+    map.lua
+    map.png
+    mask.png
+    preview.png
+    desc.txt
+    DESTINATION ${SHAREPATH}Data/Maps/TrophyRace)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/TrophyRace/desc.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -0,0 +1,1 @@
+en_US=Ready\, set\, go! Who is going to|be the first in this|crazy race?
\ No newline at end of file
--- a/share/hedgewars/Data/Maps/TrophyRace/map.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/TrophyRace/map.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 -- Hedgewars - Roperace for 2+ Players
 
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+HedgewarsScriptLoad("Scripts/Locale.lua")()
 
 -- store number of hedgehogs
 local numhhs = 0
--- a/share/hedgewars/Data/Maps/portal/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Maps/portal/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,6 +1,6 @@
 install(FILES
-	map.png
-	mask.png
-	map.cfg
-	preview.png
-	DESTINATION ${SHAREPATH}Data/Maps/portal)
+    map.png
+    mask.png
+    map.cfg
+    preview.png
+    DESTINATION ${SHAREPATH}Data/Maps/portal)
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -2,6 +2,6 @@
 file(GLOB Missions *.lua)
 
 install(FILES
-	${Config}
-	${Missions}
-	DESTINATION "${SHAREPATH}Data/Missions/Campaign/A Classic Fairytale")
+    ${Config}
+    ${Missions}
+    DESTINATION "${SHAREPATH}Data/Missions/Campaign/A Classic Fairytale")
--- a/share/hedgewars/Data/Missions/Campaign/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Missions/Campaign/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -3,5 +3,5 @@
 file(GLOB Scripts *.lua)
 
 install(FILES
-	${Scripts}
-	DESTINATION ${SHAREPATH}Data/Missions/Campaign)
+    ${Scripts}
+    DESTINATION ${SHAREPATH}Data/Missions/Campaign)
--- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -64,7 +64,15 @@
 	-- The base number for the random number generator
 	Seed = 1
 	-- Game settings and rules
-	GameFlags = gfMultiWeapon + gfOneClanMode + gfSolidLand
+    EnableGameFlags(gfMultiWeapon, gfOneClanMode, gfSolidLand)
+    -- Uncommenting this wouldn't do anything
+    --EnableGameFlags(gfMultiWeapon, gfOneClanMode, gfSolidLand)
+    -- Neither this
+    --DisableGameFlags(gfArtillery)
+    -- Uncommenting this would make the terrain damageable
+    --DisableGameFlags(gfSolidLand)
+    -- Uncommenting this would remove all flags set previously
+    --ClearGameFlags()
 	-- The time the player has to move each round (in ms)
 	TurnTime = 60000
 	-- The frequency of crate drops
--- a/share/hedgewars/Data/Missions/Training/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Missions/Training/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
 file(GLOB Scripts *.lua)
 
 install(FILES
-	${Scripts}
-	DESTINATION ${SHAREPATH}Data/Missions/Training)
+    ${Scripts}
+    DESTINATION ${SHAREPATH}Data/Missions/Training)
--- a/share/hedgewars/Data/Music/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Music/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,5 +1,5 @@
-file(GLOB BaseMusic *.ogg) 
+file(GLOB BaseMusic *.ogg)
 
 install(FILES
-	${BaseMusic}
-	DESTINATION ${SHAREPATH}Data/Music)
+    ${BaseMusic}
+    DESTINATION ${SHAREPATH}Data/Music)
--- a/share/hedgewars/Data/Names/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Names/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -2,7 +2,7 @@
 file(GLOB cfgnames *.cfg)
 
 install(FILES
-	types.ini
-	${txtnames}
-	${cfgnames}
-	DESTINATION ${SHAREPATH}Data/Names)
+    types.ini
+    ${txtnames}
+    ${cfgnames}
+    DESTINATION ${SHAREPATH}Data/Names)
--- a/share/hedgewars/Data/Scripts/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Scripts/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,7 +1,7 @@
 file(GLOB luafiles *.lua)
 
 install(FILES
-	${luafiles}
-	DESTINATION ${SHAREPATH}Data/Scripts)
+    ${luafiles}
+    DESTINATION ${SHAREPATH}Data/Scripts)
 
 add_subdirectory(Multiplayer)
--- a/share/hedgewars/Data/Scripts/Locale.lua	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Scripts/Locale.lua	Sun Jan 27 00:28:57 2013 +0100
@@ -1,11 +1,11 @@
 -- Library for localizing strings in lua scripts
 
-local lang = loadfile(GetUserDataPath() .. "Locale/" .. tostring(L) .. ".lua")
+local lang = HedgewarsScriptLoad("Locale/" .. tostring(L) .. ".lua")
 
 if lang ~= nil then
     lang()
 else
-    lang = loadfile(GetDataPath() .. "Locale/" .. tostring(L) .. ".lua")
+    lang = HedgewarsScriptLoad("Locale/" .. tostring(L) .. ".lua")
     if lang ~= nil then
         lang()
     end
--- a/share/hedgewars/Data/Scripts/Multiplayer/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Scripts/Multiplayer/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -2,6 +2,6 @@
 file(GLOB cfgfiles *.cfg)
 
 install(FILES
-	${luafiles}
-	${cfgfiles}
-	DESTINATION ${SHAREPATH}Data/Scripts/Multiplayer)
+    ${luafiles}
+    ${cfgfiles}
+    DESTINATION ${SHAREPATH}Data/Scripts/Multiplayer)
--- a/share/hedgewars/Data/Sounds/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,7 +1,7 @@
 add_subdirectory(voices)
 
-file(GLOB BaseSounds *.ogg) 
+file(GLOB BaseSounds *.ogg)
 
 install(FILES
-	${BaseSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds)
+    ${BaseSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds)
--- a/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/British)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/British)
--- a/share/hedgewars/Data/Sounds/voices/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,16 +1,16 @@
 foreach(dir
     British
-	Classic
-	Default
-	Mobster
-	Pirate
-	Robot
-	Russian
-	Singer
-	Surfer
-	Default_uk
-	Default_es
-	HillBilly
-	)
-	add_subdirectory(${dir})
+    Classic
+    Default
+    Mobster
+    Pirate
+    Robot
+    Russian
+    Singer
+    Surfer
+    Default_uk
+    Default_es
+    HillBilly
+    )
+    add_subdirectory(${dir})
 endforeach(dir)
--- a/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Classic)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Classic)
--- a/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Default)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Default)
--- a/share/hedgewars/Data/Sounds/voices/Default_es/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Default_es/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Default_es)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Default_es)
--- a/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Default_uk)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Default_uk)
--- a/share/hedgewars/Data/Sounds/voices/HillBilly/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/HillBilly/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/HillBilly)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/HillBilly)
--- a/share/hedgewars/Data/Sounds/voices/HillBilly/readme.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/HillBilly/readme.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -3,8 +3,8 @@
 
 
 
-What can I say? I got bored and decided to add a little West Virginia to the game. 
+What can I say? I got bored and decided to add a little West Virginia to the game.
 
-This version has better quality audio, and the oofs, fireballs, oops, and ows were replaced as well. 
+This version has better quality audio, and the oofs, fireballs, oops, and ows were replaced as well.
 
 Enjoy.
--- a/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Mobster)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Mobster)
--- a/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Pirate)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Pirate)
--- a/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Robot)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Robot)
--- a/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Russian)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Russian)
--- a/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Singer)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Singer)
--- a/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -37,5 +37,5 @@
 )
 
 install(FILES
-	${VoiceSounds}
-	DESTINATION ${SHAREPATH}Data/Sounds/voices/Surfer)
+    ${VoiceSounds}
+    DESTINATION ${SHAREPATH}Data/Sounds/voices/Surfer)
--- a/share/hedgewars/Data/Themes/CMakeLists.txt	Wed Jan 02 11:11:49 2013 +0100
+++ b/share/hedgewars/Data/Themes/CMakeLists.txt	Sun Jan 27 00:28:57 2013 +0100
@@ -1,34 +1,34 @@
 foreach(dir
-	Art
-	Bamboo
-	Bath
-	Blox
-	Brick
-	Cake
-	Cave
-	Castle
-	Cheese
-	Christmas
-	Compost
-	Deepspace
-	Desert
-	City
-	CrazyMission
-	EarthRise
-	Eyes
-	Freeway
-	Golf
-	Halloween
-	Hell
-	Island
-	Jungle
-	Nature
-	Olympics
-	Planes
-	Sheep
-	Snow
-	Stage
-	Underwater
-	)
-	add_subdirectory(${dir})
+    Art
+    Bamboo
+    Bath
+    Blox
+    Brick
+    Cake
+    Cave
+    Castle
+    Cheese
+    Christmas
+    Compost
+    Deepspace
+    Desert
+    City
+    CrazyMission
+    EarthRise
+    Eyes
+    Freeway
+    Golf
+    Halloween
+    Hell
+    Island
+    Jungle
+    Nature
+    Olympics
+    Planes
+    Sheep
+    Snow
+    Stage
+    Underwater
+    )
+    add_subdirectory(${dir})
 endforeach(dir)
--- a/tools/pas2c/Pas2C.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/tools/pas2c/Pas2C.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -555,7 +555,7 @@
     liftM (map(\i -> t' i)) $ mapM (id2CTyped2 (Just $ t' empty) (VarParamType t)) ids
 
 tvar2C _ externVar includeType ignoreInit (VarDeclaration _ isConst (ids, t) mInitExpr) = do
-    t' <- liftM (((if isConst then text "static const" else if externVar 
+    t' <- liftM (((if isConst then text "static const" else if externVar
                                                                 then text "extern"
                                                                 else empty)
                    <+>) . ) $ type2C t
@@ -575,18 +575,18 @@
             ie' <- return $ case (r, mInitExpr, ignoreInit) of
                 (RangeInfinite, Nothing, False) -> text "= NULL" -- force dynamic array to be initialized as NULL if not initialized at all
                 (_, _, _) -> ie
-            result <- liftM (map(\i -> varDeclDecision isConst includeType (t' i) ie')) $ mapM (id2CTyped t) ids           
+            result <- liftM (map(\i -> varDeclDecision isConst includeType (t' i) ie')) $ mapM (id2CTyped t) ids
             case (r, ignoreInit) of
-                (RangeInfinite, False) -> 
+                (RangeInfinite, False) ->
                     -- if the array is dynamic, add dimension info to it
                     return $ [dimDecl] ++ result
-                    where 
+                    where
                         arrayDimStr = show $ arrayDimension t
                         arrayDimInitExp = text ("={" ++ ".dim = " ++ arrayDimStr ++ ", .a = {0, 0, 0, 0}}")
                         dimDecl = varDeclDecision isConst includeType (text "fpcrtl_dimension_t" <+>  i' <> text "_dimension_info") arrayDimInitExp
-                    
+
                 (_, _) -> return result
-            
+
          _ -> liftM (map(\i -> varDeclDecision isConst includeType (t' i) ie)) $ mapM (id2CTyped2 (Just $ t' empty) t) ids
     where
     initExpr Nothing = return $ empty
--- a/tools/pas2c/PascalParser.hs	Wed Jan 02 11:11:49 2013 +0100
+++ b/tools/pas2c/PascalParser.hs	Sun Jan 27 00:28:57 2013 +0100
@@ -45,7 +45,7 @@
         parens pas (liftM RefExpression expression >>= postfixes) >>= postfixes
         , try $ typeCast >>= postfixes
         , char '@' >> liftM Address reference >>= postfixes
-        , liftM SimpleReference iD >>= postfixes 
+        , liftM SimpleReference iD >>= postfixes
         ] <?> "simple reference"
 
     table = [
@@ -149,7 +149,7 @@
         if null r then
             return $ ArrayDecl Nothing t
             else
-            return $ foldr (\a b -> ArrayDecl (Just a) b) (ArrayDecl (Just $ head r) t) (tail r) 
+            return $ foldr (\a b -> ArrayDecl (Just a) b) (ArrayDecl (Just $ head r) t) (tail r)
     recordDecl = do
         try $ do
             optional $ (try $ string "packed") >> comments
@@ -414,7 +414,7 @@
         {-, [  Infix (try $ string "shl" >> return (BinOp "shl")) AssocNone
              , Infix (try $ string "shr" >> return (BinOp "shr")) AssocNone
           ]
-        , [ 
+        , [
              Infix (try $ string "or" >> return (BinOp "or")) AssocLeft
            , Infix (try $ string "xor" >> return (BinOp "xor")) AssocLeft
           ]-}
@@ -510,7 +510,7 @@
             optionMaybe $ choice [
                 try $ string "to"
                 , try $ string "downto"
-                ]   
+                ]
     --choice [string "to", string "downto"]
     comments
     e2 <- expression
@@ -576,7 +576,7 @@
 initExpression = buildExpressionParser table term <?> "initialization expression"
     where
     term = comments >> choice [
-        liftM (uncurry BuiltInFunction) $ builtInFunction initExpression 
+        liftM (uncurry BuiltInFunction) $ builtInFunction initExpression
         , try $ brackets pas (commaSep pas $ initExpression) >>= return . InitSet
         , try $ parens pas (commaSep pas $ initExpression) >>= \ia -> when (null $ tail ia) mzero >> return (InitArray ia)
         , try $ parens pas (sepEndBy recField (char ';' >> comments)) >>= return . InitRecord
--- a/tools/templates/mainform.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/tools/templates/mainform.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -9,102 +9,102 @@
 #include "mainform.h"
 
 MyWindow::MyWindow(QWidget * parent, Qt::WFlags flags)
-		: QMainWindow(parent, flags)
+        : QMainWindow(parent, flags)
 
 {
-	QWidget * centralWidget = new QWidget(this);
-	QGridLayout * mainlayout = new QGridLayout(centralWidget);
-	mainlayout->setMargin(1);
-	mainlayout->setSpacing(1);
+    QWidget * centralWidget = new QWidget(this);
+    QGridLayout * mainlayout = new QGridLayout(centralWidget);
+    mainlayout->setMargin(1);
+    mainlayout->setSpacing(1);
 
-	sa_xy = new QScrollArea(centralWidget);
-	xy = new PixLabel();
-	xy->setFixedSize(1024, 512);
-	sa_xy->setWidget(xy);
+    sa_xy = new QScrollArea(centralWidget);
+    xy = new PixLabel();
+    xy->setFixedSize(1024, 512);
+    sa_xy->setWidget(xy);
 
-	mainlayout->addWidget(sa_xy, 0, 0, 1, 4);
+    mainlayout->addWidget(sa_xy, 0, 0, 1, 4);
 
-	setCentralWidget(centralWidget);
+    setCentralWidget(centralWidget);
 
-	buttAdd = new QPushButton(centralWidget);
-	buttAdd->setText(tr("Add"));
-	mainlayout->addWidget(buttAdd, 1, 0);
+    buttAdd = new QPushButton(centralWidget);
+    buttAdd->setText(tr("Add"));
+    mainlayout->addWidget(buttAdd, 1, 0);
 
-	buttCode = new QPushButton(centralWidget);
-	buttCode->setText(tr("Code"));
-	mainlayout->addWidget(buttCode, 1, 1);
+    buttCode = new QPushButton(centralWidget);
+    buttCode->setText(tr("Code"));
+    mainlayout->addWidget(buttCode, 1, 1);
 
-	buttSave = new QPushButton(centralWidget);
-	buttSave->setText(tr("Save"));
-	mainlayout->addWidget(buttSave, 1, 3);
+    buttSave = new QPushButton(centralWidget);
+    buttSave->setText(tr("Save"));
+    mainlayout->addWidget(buttSave, 1, 3);
 
-	buttLoad = new QPushButton(centralWidget);
-	buttLoad->setText(tr("Load"));
-	mainlayout->addWidget(buttLoad, 1, 2);
+    buttLoad = new QPushButton(centralWidget);
+    buttLoad->setText(tr("Load"));
+    mainlayout->addWidget(buttLoad, 1, 2);
 
-	connect(buttAdd, SIGNAL(clicked()), xy, SLOT(AddRect()));
-	connect(buttCode, SIGNAL(clicked()), this, SLOT(Code()));
-	connect(buttSave, SIGNAL(clicked()), this, SLOT(Save()));
-	connect(buttLoad, SIGNAL(clicked()), this, SLOT(Load()));
+    connect(buttAdd, SIGNAL(clicked()), xy, SLOT(AddRect()));
+    connect(buttCode, SIGNAL(clicked()), this, SLOT(Code()));
+    connect(buttSave, SIGNAL(clicked()), this, SLOT(Save()));
+    connect(buttLoad, SIGNAL(clicked()), this, SLOT(Load()));
 }
 
 void MyWindow::Code()
 {
-	if (xy->rects.size())
-	{
-		QFile f("template.pas");
-		if (!f.open(QIODevice::WriteOnly))
-		{
-			QMessageBox::information(this, tr("Error"),
-						tr("Cannot save"));
-			return ;
-		}
+    if (xy->rects.size())
+    {
+        QFile f("template.pas");
+        if (!f.open(QIODevice::WriteOnly))
+        {
+            QMessageBox::information(this, tr("Error"),
+                        tr("Cannot save"));
+            return ;
+        }
 
-		QTextStream stream(&f);
-		stream << QString("const Template0Points: array[0..%1] of TSDL_Rect =").arg(xy->rects.size() - 1) << endl;
-		stream << "      (" << endl;
-		for(int i = 0; i < xy->rects.size(); i++)
-		{
-			QRect r = xy->rects[i].normalized();
-			stream << QString("       (x: %1; y: %2; w: %3; h: %4),").
-					arg(r.x() * 4, 4).arg(r.y() * 4, 4).arg(r.width() * 4, 4).arg(r.height() * 4, 4) << endl;
-		}
-		stream << "      );" << endl;
-		f.close();
-	}
+        QTextStream stream(&f);
+        stream << QString("const Template0Points: array[0..%1] of TSDL_Rect =").arg(xy->rects.size() - 1) << endl;
+        stream << "      (" << endl;
+        for(int i = 0; i < xy->rects.size(); i++)
+        {
+            QRect r = xy->rects[i].normalized();
+            stream << QString("       (x: %1; y: %2; w: %3; h: %4),").
+                    arg(r.x() * 4, 4).arg(r.y() * 4, 4).arg(r.width() * 4, 4).arg(r.height() * 4, 4) << endl;
+        }
+        stream << "      );" << endl;
+        f.close();
+    }
 }
 
 void MyWindow::Save()
 {
-	Code();
+    Code();
 }
 
 void MyWindow::Load()
 {
-	QFile f("template.pas");
-	if (!f.open(QIODevice::ReadOnly))
-	{
-		QMessageBox::information(this, tr("Error"),
-					tr("Cannot open file"));
-		return ;
-	}
+    QFile f("template.pas");
+    if (!f.open(QIODevice::ReadOnly))
+    {
+        QMessageBox::information(this, tr("Error"),
+                    tr("Cannot open file"));
+        return ;
+    }
 
-	QTextStream stream(&f);
-	QStringList sl;
-	while (!stream.atEnd())
-	{
-		sl << stream.readLine();
-	}
-	xy->rects.clear();
-	for (int i = 0; i < sl.size(); ++i)
-	{
-		QRegExp re("x:\\s+(\\d+);\\sy:\\s+(\\d+);\\sw:\\s+(\\d+);\\sh:\\s+(\\d+)");
-		re.indexIn(sl.at(i));
-		QStringList coords = re.capturedTexts();
-		qDebug() << sl.at(i) << coords;
-		if ((coords.size() == 5) && (coords[0].size()))
-			xy->rects.push_back(QRect(coords[1].toInt() / 4, coords[2].toInt() / 4, coords[3].toInt() / 4, coords[4].toInt() / 4));
-	}
-	f.close();
-	xy->repaint();
+    QTextStream stream(&f);
+    QStringList sl;
+    while (!stream.atEnd())
+    {
+        sl << stream.readLine();
+    }
+    xy->rects.clear();
+    for (int i = 0; i < sl.size(); ++i)
+    {
+        QRegExp re("x:\\s+(\\d+);\\sy:\\s+(\\d+);\\sw:\\s+(\\d+);\\sh:\\s+(\\d+)");
+        re.indexIn(sl.at(i));
+        QStringList coords = re.capturedTexts();
+        qDebug() << sl.at(i) << coords;
+        if ((coords.size() == 5) && (coords[0].size()))
+            xy->rects.push_back(QRect(coords[1].toInt() / 4, coords[2].toInt() / 4, coords[3].toInt() / 4, coords[4].toInt() / 4));
+    }
+    f.close();
+    xy->repaint();
 }
--- a/tools/templates/mainform.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/tools/templates/mainform.h	Sun Jan 27 00:28:57 2013 +0100
@@ -7,23 +7,23 @@
 
 class MyWindow : public QMainWindow
 {
-	Q_OBJECT
+    Q_OBJECT
 
 public:
 
-	MyWindow(QWidget * parent = 0, Qt::WFlags flags = 0);
+    MyWindow(QWidget * parent = 0, Qt::WFlags flags = 0);
 
 private:
 
-	QScrollArea * sa_xy;
-	PixLabel * xy;
-	QPushButton * buttAdd;
-	QPushButton * buttCode;
-	QPushButton * buttSave;
-	QPushButton * buttLoad;
+    QScrollArea * sa_xy;
+    PixLabel * xy;
+    QPushButton * buttAdd;
+    QPushButton * buttCode;
+    QPushButton * buttSave;
+    QPushButton * buttLoad;
 
 private slots:
-	void Code();
-	void Save();
-	void Load();
+    void Code();
+    void Save();
+    void Load();
 };
--- a/tools/templates/pixlabel.cpp	Wed Jan 02 11:11:49 2013 +0100
+++ b/tools/templates/pixlabel.cpp	Sun Jan 27 00:28:57 2013 +0100
@@ -3,49 +3,49 @@
 #include "pixlabel.h"
 
 PixLabel::PixLabel()
-		: QLabel(0)
+        : QLabel(0)
 {
 
 }
 
 void PixLabel::paintEvent(QPaintEvent * event)
 {
-	QLabel::paintEvent(event);
-	QPainter p(this);
+    QLabel::paintEvent(event);
+    QPainter p(this);
 
-	p.fillRect(QRect(0, 0, 1024, 512), QBrush(Qt::black));
+    p.fillRect(QRect(0, 0, 1024, 512), QBrush(Qt::black));
 
-	if (rects.size())
-	{
-		p.setPen(QPen(Qt::lightGray));
-		QVector<QPoint> centers;
-		for(QList<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it)
-			centers.push_back((*it).center());
-		p.drawPolyline(QPolygon(centers));
+    if (rects.size())
+    {
+        p.setPen(QPen(Qt::lightGray));
+        QVector<QPoint> centers;
+        for(QList<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it)
+            centers.push_back((*it).center());
+        p.drawPolyline(QPolygon(centers));
 
-		p.setPen(QPen(Qt::white));
-		p.drawRects(rects.toVector());
+        p.setPen(QPen(Qt::white));
+        p.drawRects(rects.toVector());
 
-		p.setPen(QPen(Qt::yellow));
-		p.drawRect(rects.last());
-	}
+        p.setPen(QPen(Qt::yellow));
+        p.drawRect(rects.last());
+    }
 }
 
 void PixLabel::mousePressEvent(QMouseEvent * e)
 {
-	if (!rects.empty())
-	{
-		if (e->button() == Qt::LeftButton)
-			rects[rects.size() - 1].moveTopLeft(QPoint(e->x(), e->y()));
-		else
-		if (e->button() == Qt::RightButton)
-			rects[rects.size() - 1].setBottomRight(QPoint(e->x(), e->y()));
-		repaint();
-	}
+    if (!rects.empty())
+    {
+        if (e->button() == Qt::LeftButton)
+            rects[rects.size() - 1].moveTopLeft(QPoint(e->x(), e->y()));
+        else
+        if (e->button() == Qt::RightButton)
+            rects[rects.size() - 1].setBottomRight(QPoint(e->x(), e->y()));
+        repaint();
+    }
 }
 
 void PixLabel::AddRect()
 {
-	rects.push_back(QRect(0, 0, 1, 1));
-	repaint();
+    rects.push_back(QRect(0, 0, 1, 1));
+    repaint();
 }
--- a/tools/templates/pixlabel.h	Wed Jan 02 11:11:49 2013 +0100
+++ b/tools/templates/pixlabel.h	Sun Jan 27 00:28:57 2013 +0100
@@ -5,17 +5,17 @@
 
 class PixLabel : public QLabel
 {
-	Q_OBJECT
+    Q_OBJECT
 
 public:
 
-	PixLabel();
-	QList<QRect> rects;
+    PixLabel();
+    QList<QRect> rects;
 
 public slots:
-	void AddRect();
+    void AddRect();
 
 private:
-	void paintEvent(QPaintEvent * event);
-	void mousePressEvent(QMouseEvent * e);
+    void paintEvent(QPaintEvent * event);
+    void mousePressEvent(QMouseEvent * e);
 };