changeset 15213:c0eb9a74f73d v8.1.0616

patch 8.1.0616: NSIS installer is outdated commit https://github.com/vim/vim/commit/af610b8e66a7fefcb8db07ee65686f51e1cb288a Author: Bram Moolenaar <Bram@vim.org> Date: Fri Dec 21 16:22:50 2018 +0100 patch 8.1.0616: NSIS installer is outdated Problem: NSIS installer is outdated. Solution: Use modern syntax, MUI2 and make it work better. Add translations. (Ken Takata, closes #3501)
author Bram Moolenaar <Bram@vim.org>
date Fri, 21 Dec 2018 16:30:05 +0100
parents 5be035cf3d97
children 877df5a96e97
files Filelist nsis/gvim.nsi nsis/icons/header.bmp nsis/icons/header.svg nsis/icons/un_header.bmp nsis/icons/uninstall.bmp nsis/icons/welcome.bmp nsis/icons/welcome.svg nsis/lang/danish.nsi nsis/lang/dutch.nsi nsis/lang/english.nsi nsis/lang/german.nsi nsis/lang/italian.nsi nsis/lang/japanese.nsi nsis/lang/simpchinese.nsi nsis/lang/tradchinese.nsi src/dosinst.c src/version.c
diffstat 18 files changed, 3627 insertions(+), 344 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -477,6 +477,7 @@ SRC_DOS =	\
 		nsis/gvim_version.nsh \
 		nsis/vimrc.ini \
 		nsis/README.txt \
+		nsis/lang/*.nsi \
 		uninstal.txt \
 		src/VisVim/Commands.cpp \
 		src/VisVim/Commands.h \
@@ -517,6 +518,7 @@ SRC_DOS_BIN =	\
 		src/xpm/x86/lib-vc14/libXpm.lib \
 		nsis/icons/*.bmp \
 		nsis/icons/*.ico \
+		nsis/icons/*.svg \
 
 # source files for Amiga, DOS, etc. (also in the extra archive)
 SRC_AMI_DOS =	\
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -1,7 +1,9 @@
 # NSIS file to create a self-installing exe for Vim.
-# It requires NSIS version 2.0 or later.
+# It requires NSIS version 3.0 or later.
 # Last Change:	2014 Nov 5
 
+Unicode true
+
 # WARNING: if you make changes to this script, look out for $0 to be valid,
 # because uninstall deletes most files in $0.
 
@@ -31,171 +33,288 @@
 # Get it at https://upx.github.io/
 !define HAVE_UPX
 
-# comment the next line if you do not want to add Native Language Support
+# Comment the next line if you do not want to add Native Language Support
 !define HAVE_NLS
 
+# Uncomment the next line if you want to include VisVim extension:
+#!define HAVE_VIS_VIM
+
+# Comment the following line to create a multilanguage installer:
+!define HAVE_MULTI_LANG
+
+# Uncomment the next line if you want to create a 64-bit installer.
+#!define WIN64
+
 !include gvim_version.nsh	# for version number
 
 # ----------- No configurable settings below this line -----------
 
-!include UpgradeDLL.nsh		# for VisVim.dll
-!include LogicLib.nsh
-!include x64.nsh
+!include "Library.nsh"		# For DLL install
+!ifdef HAVE_VIS_VIM
+  !include "UpgradeDLL.nsh"	# for VisVim.dll
+!endif
+!include "LogicLib.nsh"
+!include "MUI2.nsh"
+!include "nsDialogs.nsh"
+!include "Sections.nsh"
+!include "x64.nsh"
 
-Name "Vim ${VER_MAJOR}.${VER_MINOR}"
+!define PRODUCT		"Vim ${VER_MAJOR}.${VER_MINOR}"
+!define UNINST_REG_KEY	"Software\Microsoft\Windows\CurrentVersion\Uninstall"
+!define UNINST_REG_KEY_VIM  "${UNINST_REG_KEY}\${PRODUCT}"
+
+!ifdef WIN64
+Name "${PRODUCT} (x64)"
+!else
+Name "${PRODUCT}"
+!endif
 OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
 CRCCheck force
 SetCompressor /SOLID lzma
+SetCompressorDictSize 64
+ManifestDPIAware true
 SetDatablockOptimize on
 RequestExecutionLevel highest
-XPStyle on
-
-ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
-DirText "Choose a directory to install Vim (should contain 'vim')"
-Icon icons\vim_16c.ico
-# NSIS2 uses a different strategy with six different images in a strip...
-#EnabledBitmap icons\enabled.bmp
-#DisabledBitmap icons\disabled.bmp
-UninstallText "This will uninstall Vim ${VER_MAJOR}.${VER_MINOR} from your system."
-UninstallIcon icons\vim_uninst_16c.ico
-
-# On NSIS 2 using the BGGradient causes trouble on Windows 98, in combination
-# with the BringToFront.
-# BGGradient 004000 008200 FFFFFF
-LicenseText "You should read the following before installing:"
-LicenseData ${VIMRT}\doc\uganda.nsis.txt
 
 !ifdef HAVE_UPX
   !packhdr temp.dat "upx --best --compress-icons=1 temp.dat"
 !endif
 
-# This adds '\vim' to the user choice automagically.  The actual value is
-# obtained below with ReadINIStr.
+!ifdef WIN64
+!define BIT	64
+!else
+!define BIT	32
+!endif
+
+##########################################################
+# MUI2 settings
+
+!define MUI_ABORTWARNING
+!define MUI_UNABORTWARNING
+
+!define MUI_ICON   "icons\vim_16c.ico"
+!define MUI_UNICON "icons\vim_uninst_16c.ico"
+
+# Show all languages, despite user's codepage:
+!define MUI_LANGDLL_ALLLANGUAGES
+!define MUI_LANGDLL_REGISTRY_ROOT       "HKCU"
+!define MUI_LANGDLL_REGISTRY_KEY        "Software\Vim"
+!define MUI_LANGDLL_REGISTRY_VALUENAME  "Installer Language"
+
+!define MUI_WELCOMEFINISHPAGE_BITMAP       "icons\welcome.bmp"
+!define MUI_UNWELCOMEFINISHPAGE_BITMAP     "icons\uninstall.bmp"
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_BITMAP             "icons\header.bmp"
+!define MUI_HEADERIMAGE_UNBITMAP           "icons\un_header.bmp"
+
+!define MUI_WELCOMEFINISHPAGE_BITMAP_STRETCH    "AspectFitHeight"
+!define MUI_UNWELCOMEFINISHPAGE_BITMAP_STRETCH  "AspectFitHeight"
+!define MUI_HEADERIMAGE_BITMAP_STRETCH          "AspectFitHeight"
+!define MUI_HEADERIMAGE_UNBITMAP_STRETCH        "AspectFitHeight"
+
+!define MUI_COMPONENTSPAGE_SMALLDESC
+!define MUI_LICENSEPAGE_CHECKBOX
+!define MUI_FINISHPAGE_RUN                 "$0\gvim.exe"
+!define MUI_FINISHPAGE_RUN_TEXT            $(str_show_readme)
+!define MUI_FINISHPAGE_RUN_PARAMETERS      "-R $\"$0\README.txt$\""
+
+# This adds '\Vim' to the user choice automagically.  The actual value is
+# obtained below with CheckOldVim.
+!ifdef WIN64
+InstallDir "$PROGRAMFILES64\Vim"
+!else
 InstallDir "$PROGRAMFILES\Vim"
+!endif
 
 # Types of installs we can perform:
-InstType Typical
-InstType Minimal
-InstType Full
+InstType $(str_type_typical)
+InstType $(str_type_minimal)
+InstType $(str_type_full)
 
 SilentInstall normal
 
-# These are the pages we use
-Page license
-Page components
-Page custom SetCustom ValidateCustom ": _vimrc setting"
-Page directory "" "" CheckInstallDir
-Page instfiles
-UninstPage uninstConfirm
-UninstPage instfiles
+# General custom functions for MUI2:
+#!define MUI_CUSTOMFUNCTION_ABORT   VimOnUserAbort
+#!define MUI_CUSTOMFUNCTION_UNABORT un.VimOnUserAbort
+
+# Installer pages
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_LICENSE "${VIMRT}\doc\uganda.nsis.txt"
+!insertmacro MUI_PAGE_COMPONENTS
+Page custom SetCustom ValidateCustom
+#!define MUI_PAGE_CUSTOMFUNCTION_LEAVE VimFinalCheck
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!define MUI_FINISHPAGE_NOREBOOTSUPPORT
+!insertmacro MUI_PAGE_FINISH
+
+# Uninstaller pages:
+!insertmacro MUI_UNPAGE_CONFIRM
+#!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.VimCheckRunning
+!insertmacro MUI_UNPAGE_COMPONENTS
+!insertmacro MUI_UNPAGE_INSTFILES
+!define MUI_FINISHPAGE_NOREBOOTSUPPORT
+!insertmacro MUI_UNPAGE_FINISH
+
+##########################################################
+# Languages Files
+
+!insertmacro MUI_RESERVEFILE_LANGDLL
+!include "lang\english.nsi"
+
+# Include support for other languages:
+!ifdef HAVE_MULTI_LANG
+    !include "lang\danish.nsi"
+    !include "lang\dutch.nsi"
+    !include "lang\german.nsi"
+    !include "lang\italian.nsi"
+    !include "lang\japanese.nsi"
+    !include "lang\simpchinese.nsi"
+    !include "lang\tradchinese.nsi"
+!endif
+
+
+# Global variables
+Var vim_dialog
+Var vim_nsd_compat
+Var vim_nsd_keymap
+Var vim_nsd_mouse
+Var vim_compat_stat
+Var vim_keymap_stat
+Var vim_mouse_stat
+
 
 # Reserve files
-# Needed for showing the _vimrc setting page faster.
-ReserveFile /plugin InstallOptions.dll
-ReserveFile vimrc.ini
+ReserveFile ${VIMSRC}\installw32.exe
 
 ##########################################################
 # Functions
 
-Function .onInit
-  MessageBox MB_YESNO|MB_ICONQUESTION \
-	"This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \
-	/SD IDYES \
-	IDYES NoAbort
-	    Abort ; causes installer to quit.
-	NoAbort:
-
-  # run the install program to check for already installed versions
-  SetOutPath $TEMP
-  File /oname=install.exe ${VIMSRC}\installw32.exe
-  ExecWait "$TEMP\install.exe -uninstall-check"
-  Delete $TEMP\install.exe
-
-  # We may have been put to the background when uninstall did something.
-  BringToFront
-
-  # Install will have created a file for us that contains the directory where
-  # we should install.  This is $VIM if it's set.  This appears to be the only
-  # way to get the value of $VIM here!?
-  ReadINIStr $INSTDIR $TEMP\vimini.ini vimini dir
-  Delete $TEMP\vimini.ini
-
-  # If ReadINIStr failed or did not find a path: use the default dir.
-  StrCmp $INSTDIR "" 0 IniOK
-  StrCpy $INSTDIR "$PROGRAMFILES\Vim"
-  IniOK:
-
-  # Should check for the value of $VIM and use it.  Unfortunately I don't know
-  # how to obtain the value of $VIM
-  # IfFileExists "$VIM" 0 No_Vim
-  #   StrCpy $INSTDIR "$VIM"
-  # No_Vim:
-
-  # User variables:
-  # $0 - holds the directory the executables are installed to
-  # $1 - holds the parameters to be passed to install.exe.  Starts with OLE
-  #      registration (since a non-OLE gvim will not complain, and we want to
-  #      always register an OLE gvim).
-  # $2 - holds the names to create batch files for
-  StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}"
-  StrCpy $1 "-register-OLE"
-  StrCpy $2 "gvim evim gview gvimdiff vimtutor"
-
-  # Extract InstallOptions files
-  # $PLUGINSDIR will automatically be removed when the installer closes
-  InitPluginsDir
-  File /oname=$PLUGINSDIR\vimrc.ini "vimrc.ini"
-FunctionEnd
-
-Function .onUserAbort
-  MessageBox MB_YESNO|MB_ICONQUESTION "Abort install?" IDYES NoCancelAbort
-    Abort ; causes installer to not quit.
-  NoCancelAbort:
-FunctionEnd
-
-# We only accept the directory if it ends in "vim".  Using .onVerifyInstDir has
-# the disadvantage that the browse dialog is difficult to use.
-Function CheckInstallDir
-FunctionEnd
-
-Function .onInstSuccess
-  WriteUninstaller vim${VER_MAJOR}${VER_MINOR}\uninstall-gui.exe
-  MessageBox MB_YESNO|MB_ICONQUESTION \
-	"The installation process has been successful. Happy Vimming! \
-	$\n$\n Do you want to see the README file now?" IDNO NoReadme
-      Exec '$0\gvim.exe -R "$0\README.txt"'
-  NoReadme:
-FunctionEnd
-
-Function .onInstFailed
-  MessageBox MB_OK|MB_ICONEXCLAMATION "Installation failed. Better luck next time."
-FunctionEnd
-
-Function un.onUnInstSuccess
-  MessageBox MB_OK|MB_ICONINFORMATION \
-  "Vim ${VER_MAJOR}.${VER_MINOR} has been (partly) removed from your system"
-FunctionEnd
-
-Function un.GetParent
+# Get parent directory
+# Share this function both on installer and uninstaller
+!macro GetParent un
+Function ${un}GetParent
   Exch $0 ; old $0 is on top of stack
   Push $1
   Push $2
   StrCpy $1 -1
-  loop:
+  ${Do}
     StrCpy $2 $0 1 $1
-    StrCmp $2 "" exit
-    StrCmp $2 "\" exit
+    ${If} $2 == ""
+    ${OrIf} $2 == "\"
+      ${ExitDo}
+    ${EndIf}
     IntOp $1 $1 - 1
-  Goto loop
-  exit:
-    StrCpy $0 $0 $1
-    Pop $2
-    Pop $1
-    Exch $0 ; put $0 on top of stack, restore $0 to original value
+  ${Loop}
+  StrCpy $0 $0 $1
+  Pop $2
+  Pop $1
+  Exch $0 ; put $0 on top of stack, restore $0 to original value
+FunctionEnd
+!macroend
+
+!insertmacro GetParent ""
+!insertmacro GetParent "un."
+
+# Check if Vim is already installed.
+# return: Installed directory. If not found, it will be empty.
+Function CheckOldVim
+  Push $0
+  Push $R0
+  Push $R1
+  Push $R2
+
+  ${If} ${RunningX64}
+    SetRegView 64
+  ${EndIf}
+
+  ClearErrors
+  StrCpy $0  ""   # Installed directory
+  StrCpy $R0 0    # Sub-key index
+  StrCpy $R1 ""   # Sub-key
+  ${Do}
+    # Eumerate the sub-key:
+    EnumRegKey $R1 HKLM ${UNINST_REG_KEY} $R0
+
+    # Stop if no more sub-key:
+    ${If} ${Errors}
+    ${OrIf} $R1 == ""
+      ${ExitDo}
+    ${EndIf}
+
+    # Move to the next sub-key:
+    IntOp $R0 $R0 + 1
+
+    # Check if the key is Vim uninstall key or not:
+    StrCpy $R2 $R1 4
+    ${If} $R2 S!= "Vim "
+      ${Continue}
+    ${EndIf}
+
+    # Verifies required sub-keys:
+    ReadRegStr $R2 HKLM "${UNINST_REG_KEY}\$R1" "DisplayName"
+    ${If} ${Errors}
+    ${OrIf} $R2 == ""
+      ${Continue}
+    ${EndIf}
+
+    ReadRegStr $R2 HKLM "${UNINST_REG_KEY}\$R1" "UninstallString"
+    ${If} ${Errors}
+    ${OrIf} $R2 == ""
+      ${Continue}
+    ${EndIf}
+
+    # Found
+    Push $R2
+    call GetParent
+    call GetParent
+    Pop $0   # Vim directory
+    ${ExitDo}
+
+  ${Loop}
+
+  ${If} ${RunningX64}
+    SetRegView lastused
+  ${EndIf}
+
+  Pop $R2
+  Pop $R1
+  Pop $R0
+  Exch $0  # put $0 on top of stack, restore $0 to original value
 FunctionEnd
 
 ##########################################################
-Section "Vim executables and runtime files"
+Section "$(str_section_old_ver)" id_section_old_ver
+	SectionIn 1 2 3 RO
+
+	# run the install program to check for already installed versions
+	SetOutPath $TEMP
+	File /oname=install.exe ${VIMSRC}\installw32.exe
+	DetailPrint "$(str_msg_uninstalling)"
+	${Do}
+	  nsExec::Exec "$TEMP\install.exe -uninstall-check"
+	  Pop $3
+
+	  call CheckOldVim
+	  Pop $3
+	  ${If} $3 == ""
+	    ${ExitDo}
+	  ${Else}
+	    # It seems that the old version is still remaining.
+	    # TODO: Should we show a warning and run the uninstaller again?
+
+	    ${ExitDo}	# Just ignore for now.
+	  ${EndIf}
+	${Loop}
+	Delete $TEMP\install.exe
+	Delete $TEMP\vimini.ini   # install.exe creates this, but we don't need it.
+
+	# We may have been put to the background when uninstall did something.
+	BringToFront
+SectionEnd
+
+##########################################################
+Section "$(str_section_exe)" id_section_exe
 	SectionIn 1 2 3 RO
 
 	# we need also this here if the user changes the instdir
@@ -215,7 +334,7 @@ Section "Vim executables and runtime fil
 	File ${VIMRT}\rgb.txt
 
 	File ${VIMTOOLS}\diff.exe
-	File ${VIMTOOLS}\winpty32.dll
+	File ${VIMTOOLS}\winpty${BIT}.dll
 	File ${VIMTOOLS}\winpty-agent.exe
 
 	SetOutPath $0\colors
@@ -299,120 +418,63 @@ Section "Vim executables and runtime fil
 SectionEnd
 
 ##########################################################
-Section "Vim console program (vim.exe)"
+Section "$(str_section_console)" id_section_console
 	SectionIn 1 3
 
 	SetOutPath $0
-	ReadRegStr $R0 HKLM \
-	   "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
-	IfErrors 0 lbl_winnt
-	    # Windows 95/98/ME: not supported
-	    Goto lbl_done
-	lbl_winnt:
-	    # Windows NT/2000/XP and later
-	    File /oname=vim.exe ${VIMSRC}\vimw32.exe
-	lbl_done:
+	File /oname=vim.exe ${VIMSRC}\vimw32.exe
 	StrCpy $2 "$2 vim view vimdiff"
 SectionEnd
 
 ##########################################################
-Section "Create .bat files for command line use"
+Section "$(str_section_batch)" id_section_batch
 	SectionIn 3
 
 	StrCpy $1 "$1 -create-batfiles $2"
 SectionEnd
 
 ##########################################################
-Section "Create icons on the Desktop"
-	SectionIn 1 3
+SectionGroup $(str_group_icons) id_group_icons
+	Section "$(str_section_desktop)" id_section_desktop
+		SectionIn 1 3
 
-	StrCpy $1 "$1 -install-icons"
-SectionEnd
+		StrCpy $1 "$1 -install-icons"
+	SectionEnd
 
-##########################################################
-Section "Add Vim to the Start Menu"
-	SectionIn 1 3
+	Section "$(str_section_start_menu)" id_section_startmenu
+		SectionIn 1 3
 
-	StrCpy $1 "$1 -add-start-menu"
-SectionEnd
+		StrCpy $1 "$1 -add-start-menu"
+	SectionEnd
+SectionGroupEnd
 
 ##########################################################
-Section "Add an Edit-with-Vim context menu entry"
+Section "$(str_section_edit_with)" id_section_editwith
 	SectionIn 1 3
 
-	# Be aware of this sequence of events:
-	# - user uninstalls Vim, gvimext.dll can't be removed (it's in use) and
-	#   is scheduled to be removed at next reboot.
-	# - user installs Vim in same directory, gvimext.dll still exists.
-	# If we now skip installing gvimext.dll, it will disappear at the next
-	# reboot.  Thus when copying gvimext.dll fails always schedule it to be
-	# installed at the next reboot.  Can't use UpgradeDLL!
-	# We don't ask the user to reboot, the old dll will keep on working.
 	SetOutPath $0
-	ClearErrors
-	SetOverwrite try
 
 	${If} ${RunningX64}
 	  # Install 64-bit gvimext.dll into the GvimExt64 directory.
 	  SetOutPath $0\GvimExt64
 	  ClearErrors
-	  File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
-!ifdef HAVE_NLS
-	  File ${GETTEXT}\gettext64\libintl-8.dll
-	  File ${GETTEXT}\gettext64\libiconv-2.dll
-!endif
-
-	  IfErrors 0 GvimExt64Done
-
-	  # Can't copy gvimext.dll, create it under another name and rename it
-	  # on next reboot.
-	  GetTempFileName $3 $0\GvimExt64
-	  File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
-	  Rename /REBOOTOK $3 $0\GvimExt64\gvimext.dll
-!ifdef HAVE_NLS
-	  GetTempFileName $3 $0\GvimExt64
-	  File /oname=$3 ${GETTEXT}\gettext64\libintl-8.dll
-	  Rename /REBOOTOK $3 $0\GvimExt64\libintl-8.dll
-	  GetTempFileName $3 $0\GvimExt64
-	  File /oname=$3 ${GETTEXT}\gettext64\libiconv-2.dll
-	  Rename /REBOOTOK $3 $0\GvimExt64\libiconv-2.dll
-!endif
+	  !define LIBRARY_SHELL_EXTENSION
+	  !define LIBRARY_X64
+	  !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "${VIMSRC}\GvimExt\gvimext64.dll" \
+	      "$0\GvimExt64\gvimext.dll" "$0"
+	  !undef LIBRARY_X64
+	  !undef LIBRARY_SHELL_EXTENSION
 	${EndIf}
 
-	GvimExt64Done:
-
 	# Install 32-bit gvimext.dll into the GvimExt32 directory.
 	SetOutPath $0\GvimExt32
 	ClearErrors
-
-	File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
-!ifdef HAVE_NLS
-	File ${GETTEXT}\gettext32\libintl-8.dll
-	File ${GETTEXT}\gettext32\libiconv-2.dll
-	File ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
-!endif
-
-	IfErrors 0 GvimExt32Done
-
-	# Can't copy gvimext.dll, create it under another name and rename it on
-	# next reboot.
-	GetTempFileName $3 $0\GvimExt32
-	File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
-	Rename /REBOOTOK $3 $0\GvimExt32\gvimext.dll
-!ifdef HAVE_NLS
-	GetTempFileName $3 $0\GvimExt32
-	File /oname=$3 ${GETTEXT}\gettext32\libintl-8.dll
-	Rename /REBOOTOK $3 $0\GvimExt32\libintl-8.dll
-	GetTempFileName $3 $0\GvimExt32
-	File /oname=$3 ${GETTEXT}\gettext32\libiconv-2.dll
-	Rename /REBOOTOK $3 $0\GvimExt32\libiconv-2.dll
-	GetTempFileName $3 $0\GvimExt32
-	File /oname=$3 ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
-	Rename /REBOOTOK $3 $0\GvimExt32\libgcc_s_sjlj-1.dll
-!endif
-
-	GvimExt32Done:
-	SetOverwrite lastused
+	!define LIBRARY_SHELL_EXTENSION
+	!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	    "${VIMSRC}\GvimExt\gvimext.dll" \
+	    "$0\GvimExt32\gvimext.dll" "$0"
+	!undef LIBRARY_SHELL_EXTENSION
 
 	# We don't have a separate entry for the "Open With..." menu, assume
 	# the user wants either both or none.
@@ -420,131 +482,564 @@ Section "Add an Edit-with-Vim context me
 SectionEnd
 
 ##########################################################
-Section "Create a _vimrc if it doesn't exist" sec_vimrc_id
+Section "$(str_section_vim_rc)" id_section_vimrc
 	SectionIn 1 3
 
 	StrCpy $1 "$1 -create-vimrc"
+
+	${If} ${RunningX64}
+	  SetRegView 64
+	${EndIf}
+	WriteRegStr HKLM "${UNINST_REG_KEY_VIM}" "vim_compat" "$vim_compat_stat"
+	WriteRegStr HKLM "${UNINST_REG_KEY_VIM}" "vim_keyremap" "$vim_keymap_stat"
+	WriteRegStr HKLM "${UNINST_REG_KEY_VIM}" "vim_mouse" "$vim_mouse_stat"
+	${If} ${RunningX64}
+	  SetRegView lastused
+	${EndIf}
+
+	${If} $vim_compat_stat == "vi"
+	  StrCpy $1 "$1 -vimrc-compat vi"
+	${ElseIf} $vim_compat_stat == "vim"
+	  StrCpy $1 "$1 -vimrc-compat vim"
+	${ElseIf} $vim_compat_stat == "defaults"
+	  StrCpy $1 "$1 -vimrc-compat defaults"
+	${Else}
+	  StrCpy $1 "$1 -vimrc-compat all"
+	${EndIf}
+
+	${If} $vim_keymap_stat == "default"
+	  StrCpy $1 "$1 -vimrc-remap no"
+	${Else}
+	  StrCpy $1 "$1 -vimrc-remap win"
+	${EndIf}
+
+	${If} $vim_mouse_stat == "default"
+	  StrCpy $1 "$1 -vimrc-behave default"
+	${ElseIf} $vim_mouse_stat == "windows"
+	  StrCpy $1 "$1 -vimrc-behave mswin"
+	${Else}
+	  StrCpy $1 "$1 -vimrc-behave unix"
+	${EndIf}
+
 SectionEnd
 
 ##########################################################
-Section "Create plugin directories in HOME or VIM"
-	SectionIn 1 3
+SectionGroup $(str_group_plugin) id_group_plugin
+	Section "$(str_section_plugin_home)" id_section_pluginhome
+		SectionIn 1 3
+
+		StrCpy $1 "$1 -create-directories home"
+	SectionEnd
 
-	StrCpy $1 "$1 -create-directories home"
-SectionEnd
+	Section "$(str_section_plugin_vim)" id_section_pluginvim
+		SectionIn 3
+
+		StrCpy $1 "$1 -create-directories vim"
+	SectionEnd
+SectionGroupEnd
 
 ##########################################################
-Section "Create plugin directories in VIM"
-	SectionIn 3
-
-	StrCpy $1 "$1 -create-directories vim"
-SectionEnd
-
-##########################################################
-Section "VisVim Extension for MS Visual Studio"
+!ifdef HAVE_VIS_VIM
+Section "$(str_section_vis_vim)" id_section_visvim
 	SectionIn 3
 
 	SetOutPath $0
 	!insertmacro UpgradeDLL "${VIMSRC}\VisVim\VisVim.dll" "$0\VisVim.dll" "$0"
 	File ${VIMSRC}\VisVim\README_VisVim.txt
 SectionEnd
+!endif
 
 ##########################################################
 !ifdef HAVE_NLS
-	Section "Native Language Support"
-		SectionIn 1 3
+Section "$(str_section_nls)" id_section_nls
+	SectionIn 1 3
+
+	SetOutPath $0\lang
+	File /r ${VIMRT}\lang\*.*
+	SetOutPath $0\keymap
+	File ${VIMRT}\keymap\README.txt
+	File ${VIMRT}\keymap\*.vim
+	SetOutPath $0
+	!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	    "${GETTEXT}\gettext${BIT}\libintl-8.dll" \
+	    "$0\libintl-8.dll" "$0"
+	!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	    "${GETTEXT}\gettext${BIT}\libiconv-2.dll" \
+	    "$0\libiconv-2.dll" "$0"
+  !if /FileExists "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll"
+	# Install libgcc_s_sjlj-1.dll only if it is needed.
+	!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	    "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll" \
+	    "$0\libgcc_s_sjlj-1.dll" "$0"
+  !endif
 
-		SetOutPath $0\lang
-		File /r ${VIMRT}\lang\*.*
-		SetOutPath $0\keymap
-		File ${VIMRT}\keymap\README.txt
-		File ${VIMRT}\keymap\*.vim
-		SetOutPath $0
-		File ${GETTEXT}\gettext32\libintl-8.dll
-		File ${GETTEXT}\gettext32\libiconv-2.dll
-		#File /nonfatal ${VIMRT}\libwinpthread-1.dll
-		File /nonfatal ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
-	SectionEnd
+	${If} ${SectionIsSelected} ${id_section_editwith}
+	  ${If} ${RunningX64}
+	    # Install DLLs for 64-bit gvimext.dll into the GvimExt64 directory.
+	    SetOutPath $0\GvimExt64
+	    ClearErrors
+	    !define LIBRARY_X64
+	    !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+		"${GETTEXT}\gettext64\libintl-8.dll" \
+		"$0\GvimExt64\libintl-8.dll" "$0\GvimExt64"
+	    !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+		"${GETTEXT}\gettext64\libiconv-2.dll" \
+		"$0\GvimExt64\libiconv-2.dll" "$0\GvimExt64"
+	    !undef LIBRARY_X64
+	  ${EndIf}
+
+	  # Install DLLs for 32-bit gvimext.dll into the GvimExt32 directory.
+	  SetOutPath $0\GvimExt32
+	  ClearErrors
+	  !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "${GETTEXT}\gettext32\libintl-8.dll" \
+	      "$0\GvimExt32\libintl-8.dll" "$0\GvimExt32"
+	  !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "${GETTEXT}\gettext32\libiconv-2.dll" \
+	      "$0\GvimExt32\libiconv-2.dll" "$0\GvimExt32"
+  !if /FileExists "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll"
+	  # Install libgcc_s_sjlj-1.dll only if it is needed.
+	  !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" \
+	      "$0\GvimExt32\libgcc_s_sjlj-1.dll" "$0\GvimExt32"
+  !endif
+	${EndIf}
+SectionEnd
 !endif
 
 ##########################################################
 Section -call_install_exe
 	SetOutPath $0
-	ExecWait "$0\install.exe $1"
+	DetailPrint "$(str_msg_registering)"
+	nsExec::Exec "$0\install.exe $1"
+	Pop $3
 SectionEnd
 
 ##########################################################
+!macro SaveSectionSelection section_id reg_value
+	${If} ${SectionIsSelected} ${section_id}
+	  WriteRegDWORD HKLM "${UNINST_REG_KEY_VIM}" ${reg_value} 1
+	${Else}
+	  WriteRegDWORD HKLM "${UNINST_REG_KEY_VIM}" ${reg_value} 0
+	${EndIf}
+!macroend
+
 Section -post
+
+	# Get estimated install size
+	SectionGetSize ${id_section_exe} $3
+	${If} ${SectionIsSelected} ${id_section_console}
+	  SectionGetSize ${id_section_console} $4
+	  IntOp $3 $3 + $4
+	${EndIf}
+	${If} ${SectionIsSelected} ${id_section_editwith}
+	  SectionGetSize ${id_section_editwith} $4
+	  IntOp $3 $3 + $4
+	${EndIf}
+!ifdef HAVE_VIS_VIM
+	${If} ${SectionIsSelected} ${id_section_visvim}
+	  SectionGetSize ${id_section_visvim} $4
+	  IntOp $3 $3 + $4
+	${EndIf}
+!endif
+!ifdef HAVE_NLS
+	${If} ${SectionIsSelected} ${id_section_nls}
+	  SectionGetSize ${id_section_nls} $4
+	  IntOp $3 $3 + $4
+	${EndIf}
+!endif
+
+	# Register EstimatedSize and AllowSilent.
+	# Other information will be set by the install.exe (dosinst.c).
+	${If} ${RunningX64}
+	  SetRegView 64
+	${EndIf}
+	WriteRegDWORD HKLM "${UNINST_REG_KEY_VIM}" "EstimatedSize" $3
+	WriteRegDWORD HKLM "${UNINST_REG_KEY_VIM}" "AllowSilent" 1
+	${If} ${RunningX64}
+	  SetRegView lastused
+	${EndIf}
+
+	# Store the selections to the registry.
+	${If} ${RunningX64}
+	  SetRegView 64
+	${EndIf}
+	!insertmacro SaveSectionSelection ${id_section_console}    "select_console"
+	!insertmacro SaveSectionSelection ${id_section_batch}      "select_batch"
+	!insertmacro SaveSectionSelection ${id_section_desktop}    "select_desktop"
+	!insertmacro SaveSectionSelection ${id_section_startmenu}  "select_startmenu"
+	!insertmacro SaveSectionSelection ${id_section_editwith}   "select_editwith"
+	!insertmacro SaveSectionSelection ${id_section_vimrc}      "select_vimrc"
+	!insertmacro SaveSectionSelection ${id_section_pluginhome} "select_pluginhome"
+	!insertmacro SaveSectionSelection ${id_section_pluginvim}  "select_pluginvim"
+!ifdef HAVE_VIS_VIM
+	!insertmacro SaveSectionSelection ${id_section_visvim}     "select_visvim"
+!endif
+!ifdef HAVE_NLS
+	!insertmacro SaveSectionSelection ${id_section_nls}        "select_nls"
+!endif
+	${If} ${RunningX64}
+	  SetRegView lastused
+	${EndIf}
+
 	BringToFront
 SectionEnd
 
 ##########################################################
+!macro LoadSectionSelection section_id reg_value
+	ClearErrors
+	ReadRegDWORD $3 HKLM "${UNINST_REG_KEY_VIM}" ${reg_value}
+	${IfNot} ${Errors}
+	  ${If} $3 = 1
+	    !insertmacro SelectSection ${section_id}
+	  ${Else}
+	    !insertmacro UnselectSection ${section_id}
+	  ${EndIf}
+	${EndIf}
+!macroend
+
+Function .onInit
+!ifdef HAVE_MULTI_LANG
+  # Select a language (or read from the registry).
+  !insertmacro MUI_LANGDLL_DISPLAY
+!endif
+
+  # Check $VIM
+  ReadEnvStr $INSTDIR "VIM"
+
+  call CheckOldVim
+  Pop $3
+  ${If} $3 == ""
+    # No old versions of Vim found. Unselect and hide the section.
+    !insertmacro UnselectSection ${id_section_old_ver}
+    SectionSetInstTypes ${id_section_old_ver} 0
+    SectionSetText ${id_section_old_ver} ""
+  ${Else}
+    ${If} $INSTDIR == ""
+      StrCpy $INSTDIR $3
+    ${EndIf}
+  ${EndIf}
+
+  # If did not find a path: use the default dir.
+  ${If} $INSTDIR == ""
+!ifdef WIN64
+    StrCpy $INSTDIR "$PROGRAMFILES64\Vim"
+!else
+    StrCpy $INSTDIR "$PROGRAMFILES\Vim"
+!endif
+  ${EndIf}
+
+# Load the selections from the registry (if any).
+  ${If} ${RunningX64}
+    SetRegView 64
+  ${EndIf}
+  !insertmacro LoadSectionSelection ${id_section_console}    "select_console"
+  !insertmacro LoadSectionSelection ${id_section_batch}      "select_batch"
+  !insertmacro LoadSectionSelection ${id_section_desktop}    "select_desktop"
+  !insertmacro LoadSectionSelection ${id_section_startmenu}  "select_startmenu"
+  !insertmacro LoadSectionSelection ${id_section_editwith}   "select_editwith"
+  !insertmacro LoadSectionSelection ${id_section_vimrc}      "select_vimrc"
+  !insertmacro LoadSectionSelection ${id_section_pluginhome} "select_pluginhome"
+  !insertmacro LoadSectionSelection ${id_section_pluginvim}  "select_pluginvim"
+!ifdef HAVE_VIS_VIM
+  !insertmacro LoadSectionSelection ${id_section_visvim}     "select_visvim"
+!endif
+!ifdef HAVE_NLS
+  !insertmacro LoadSectionSelection ${id_section_nls}        "select_nls"
+!endif
+  ${If} ${RunningX64}
+    SetRegView lastused
+  ${EndIf}
+
+  # User variables:
+  # $0 - holds the directory the executables are installed to
+  # $1 - holds the parameters to be passed to install.exe.  Starts with OLE
+  #      registration (since a non-OLE gvim will not complain, and we want to
+  #      always register an OLE gvim).
+  # $2 - holds the names to create batch files for
+  StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}"
+  StrCpy $1 "-register-OLE"
+  StrCpy $2 "gvim evim gview gvimdiff vimtutor"
+FunctionEnd
+
+Function .onInstSuccess
+  WriteUninstaller vim${VER_MAJOR}${VER_MINOR}\uninstall-gui.exe
+FunctionEnd
+
+Function .onInstFailed
+  MessageBox MB_OK|MB_ICONEXCLAMATION "$(str_msg_install_fail)" /SD IDOK
+FunctionEnd
+
+##########################################################
 Function SetCustom
-	# Display the InstallOptions dialog
+	# Display the _vimrc setting dialog using nsDialogs.
 
 	# Check if a _vimrc should be created
-	SectionGetFlags ${sec_vimrc_id} $3
-	IntOp $3 $3 & 1
-	StrCmp $3 "1" +2 0
+	${IfNot} ${SectionIsSelected} ${id_section_vimrc}
+	  Abort
+	${EndIf}
+
+	!insertmacro MUI_HEADER_TEXT \
+	    $(str_vimrc_page_title) $(str_vimrc_page_subtitle)
+
+	nsDialogs::Create 1018
+	Pop $vim_dialog
+
+	${If} $vim_dialog == error
 	  Abort
+	${EndIf}
 
-	InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
+	${If} ${RunningX64}
+	  SetRegView 64
+	${EndIf}
+
+	GetFunctionAddress $3 ValidateCustom
+	nsDialogs::OnBack $3
+
+
+	# 1st group - Compatibility
+	${NSD_CreateGroupBox} 0 0 100% 32% $(str_msg_compat_title)
+	Pop $3
+
+	${NSD_CreateLabel} 5% 10% 35% 8% $(str_msg_compat_desc)
+	Pop $3
+	${NSD_CreateDropList} 18% 19% 75% 8% ""
+	Pop $vim_nsd_compat
+	${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_vi)
+	${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_vim)
+	${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_defaults)
+	${NSD_CB_AddString} $vim_nsd_compat $(str_msg_compat_all)
+
+	# Default selection
+	${If} $vim_compat_stat == ""
+	  ReadRegStr $3 HKLM "${UNINST_REG_KEY_VIM}" "vim_compat"
+	${Else}
+	  StrCpy $3 $vim_compat_stat
+	${EndIf}
+	${If} $3 == "defaults"
+	  StrCpy $4 2
+	${ElseIf} $3 == "vim"
+	  StrCpy $4 1
+	${ElseIf} $3 == "vi"
+	  StrCpy $4 0
+	${Else} # default
+	  StrCpy $4 3
+	${EndIf}
+	${NSD_CB_SetSelectionIndex} $vim_nsd_compat $4
+
+
+	# 2nd group - Key remapping
+	${NSD_CreateGroupBox} 0 35% 100% 31% $(str_msg_keymap_title)
+	Pop $3
+
+	${NSD_CreateLabel} 5% 45% 90% 8% $(str_msg_keymap_desc)
 	Pop $3
+	${NSD_CreateDropList} 38% 54% 55% 8% ""
+	Pop $vim_nsd_keymap
+	${NSD_CB_AddString} $vim_nsd_keymap $(str_msg_keymap_default)
+	${NSD_CB_AddString} $vim_nsd_keymap $(str_msg_keymap_windows)
+
+	# Default selection
+	${If} $vim_keymap_stat == ""
+	  ReadRegStr $3 HKLM "${UNINST_REG_KEY_VIM}" "vim_keyremap"
+	${Else}
+	  StrCpy $3 $vim_keymap_stat
+	${EndIf}
+	${If} $3 == "windows"
+	  StrCpy $4 1
+	${Else} # default
+	  StrCpy $4 0
+	${EndIf}
+	${NSD_CB_SetSelectionIndex} $vim_nsd_keymap $4
+
+
+	# 3rd group - Mouse behavior
+	${NSD_CreateGroupBox} 0 69% 100% 31% $(str_msg_mouse_title)
+	Pop $3
+
+	${NSD_CreateLabel} 5% 79% 90% 8% $(str_msg_mouse_desc)
+	Pop $3
+	${NSD_CreateDropList} 23% 87% 70% 8% ""
+	Pop $vim_nsd_mouse
+	${NSD_CB_AddString} $vim_nsd_mouse $(str_msg_mouse_default)
+	${NSD_CB_AddString} $vim_nsd_mouse $(str_msg_mouse_windows)
+	${NSD_CB_AddString} $vim_nsd_mouse $(str_msg_mouse_unix)
+
+	# Default selection
+	${If} $vim_mouse_stat == ""
+	  ReadRegStr $3 HKLM "${UNINST_REG_KEY_VIM}" "vim_mouse"
+	${Else}
+	  StrCpy $3 $vim_mouse_stat
+	${EndIf}
+	${If} $3 == "xterm"
+	  StrCpy $4 2
+	${ElseIf} $3 == "windows"
+	  StrCpy $4 1
+	${Else} # default
+	  StrCpy $4 0
+	${EndIf}
+	${NSD_CB_SetSelectionIndex} $vim_nsd_mouse $4
+
+	${If} ${RunningX64}
+	  SetRegView lastused
+	${EndIf}
+
+	nsDialogs::Show
 FunctionEnd
 
 Function ValidateCustom
-	ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 2" "State"
-	StrCmp $3 "1" 0 +3
-	  StrCpy $1 "$1 -vimrc-remap no"
-	  Goto behave
-
-	  StrCpy $1 "$1 -vimrc-remap win"
+	${NSD_CB_GetSelectionIndex} $vim_nsd_compat $3
+	${If} $3 = 0
+	  StrCpy $vim_compat_stat "vi"
+	${ElseIf} $3 = 1
+	  StrCpy $vim_compat_stat "vim"
+	${ElseIf} $3 = 2
+	  StrCpy $vim_compat_stat "defaults"
+	${Else}
+	  StrCpy $vim_compat_stat "all"
+	${EndIf}
 
-	behave:
-	ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 5" "State"
-	StrCmp $3 "1" 0 +3
-	  StrCpy $1 "$1 -vimrc-behave unix"
-	  Goto done
+	${NSD_CB_GetSelectionIndex} $vim_nsd_keymap $3
+	${If} $3 = 0
+	  StrCpy $vim_keymap_stat "default"
+	${Else}
+	  StrCpy $vim_keymap_stat "windows"
+	${EndIf}
 
-	ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 6" "State"
-	StrCmp $3 "1" 0 +3
-	  StrCpy $1 "$1 -vimrc-behave mswin"
-	  Goto done
-
-	  StrCpy $1 "$1 -vimrc-behave default"
-	done:
+	${NSD_CB_GetSelectionIndex} $vim_nsd_mouse $3
+	${If} $3 = 0
+	  StrCpy $vim_mouse_stat "default"
+	${ElseIf} $3 = 1
+	  StrCpy $vim_mouse_stat "windows"
+	${Else}
+	  StrCpy $vim_mouse_stat "xterm"
+	${EndIf}
 FunctionEnd
 
 ##########################################################
-Section Uninstall
+# Description for Installer Sections
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_old_ver}     $(str_desc_old_ver)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_exe}         $(str_desc_exe)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_console}     $(str_desc_console)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_batch}       $(str_desc_batch)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_group_icons}         $(str_desc_icons)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_desktop}     $(str_desc_desktop)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_startmenu}   $(str_desc_start_menu)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_editwith}    $(str_desc_edit_with)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_vimrc}       $(str_desc_vim_rc)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_group_plugin}        $(str_desc_plugin)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginhome}  $(str_desc_plugin_home)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginvim}   $(str_desc_plugin_vim)
+!ifdef HAVE_VIS_VIM
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_visvim}      $(str_desc_vis_vim)
+!endif
+!ifdef HAVE_NLS
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_nls}         $(str_desc_nls)
+!endif
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+
+##########################################################
+# Uninstaller Functions and Sections
+
+Function un.onInit
+!ifdef HAVE_MULTI_LANG
+  # Get the language from the registry.
+  !insertmacro MUI_UNGETLANGUAGE
+!endif
+FunctionEnd
+
+Section "un.$(str_unsection_register)" id_unsection_register
+	SectionIn RO
+
 	# Apparently $INSTDIR is set to the directory where the uninstaller is
 	# created.  Thus the "vim61" directory is included in it.
 	StrCpy $0 "$INSTDIR"
 
+!ifdef HAVE_VIS_VIM
 	# If VisVim was installed, unregister the DLL.
-	IfFileExists "$0\VisVim.dll" Has_VisVim No_VisVim
-	Has_VisVim:
-	   ExecWait "regsvr32.exe /u /s $0\VisVim.dll"
-
-	No_VisVim:
+	${If} ${FileExists} "$0\VisVim.dll"
+	  ExecWait "regsvr32.exe /u /s $0\VisVim.dll"
+	${EndIf}
+!endif
 
 	# delete the context menu entry and batch files
-	ExecWait "$0\uninstal.exe -nsis"
+	DetailPrint "$(str_msg_unregistering)"
+	nsExec::Exec "$0\uninstal.exe -nsis"
+	Pop $3
 
 	# We may have been put to the background when uninstall did something.
 	BringToFront
 
-	# ask the user if the Vim version dir must be removed
-	MessageBox MB_YESNO|MB_ICONQUESTION \
-	  "Would you like to delete $0?$\n \
-	   $\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes
+	# Delete the installer language setting.
+	DeleteRegKey ${MUI_LANGDLL_REGISTRY_ROOT} ${MUI_LANGDLL_REGISTRY_KEY}
+SectionEnd
+
+Section "un.$(str_unsection_exe)" id_unsection_exe
+
+	StrCpy $0 "$INSTDIR"
+
+	# Delete gettext and iconv DLLs
+	${If} ${FileExists} "$0\libiconv-2.dll"
+	  !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "$0\libiconv-2.dll"
+	${EndIf}
+	${If} ${FileExists} "$0\libintl-8.dll"
+	  !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "$0\libintl-8.dll"
+	${EndIf}
+	${If} ${FileExists} "$0\libgcc_s_sjlj-1.dll"
+	  !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "$0\libgcc_s_sjlj-1.dll"
+	${EndIf}
+
+	# Delete other DLLs
+	Delete /REBOOTOK $0\*.dll
 
-	Delete /REBOOTOK $0\*.dll
-	Delete /REBOOTOK $0\GvimExt32\*.dll
+	# Delete 64-bit GvimExt
 	${If} ${RunningX64}
-	  Delete /REBOOTOK $0\GvimExt64\*.dll
+	  !define LIBRARY_X64
+	  ${If} ${FileExists} "$0\GvimExt64\gvimext.dll"
+	    !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+		"$0\GvimExt64\gvimext.dll"
+	  ${EndIf}
+	  ${If} ${FileExists} "$0\GvimExt64\libiconv-2.dll"
+	    !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+		"$0\GvimExt64\libiconv-2.dll"
+	  ${EndIf}
+	  ${If} ${FileExists} "$0\GvimExt64\libintl-8.dll"
+	    !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+		"$0\GvimExt64\libintl-8.dll"
+	  ${EndIf}
+	  ${If} ${FileExists} "$0\GvimExt64\libwinpthread-1.dll"
+	    !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+		"$0\GvimExt64\libwinpthread-1.dll"
+	  ${EndIf}
+	  !undef LIBRARY_X64
+	  RMDir /r $0\GvimExt64
 	${EndIf}
 
+	# Delete 32-bit GvimExt
+	${If} ${FileExists} "$0\GvimExt32\gvimext.dll"
+	  !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "$0\GvimExt32\gvimext.dll"
+	${EndIf}
+	${If} ${FileExists} "$0\GvimExt32\libiconv-2.dll"
+	  !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "$0\GvimExt32\libiconv-2.dll"
+	${EndIf}
+	${If} ${FileExists} "$0\GvimExt32\libintl-8.dll"
+	  !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "$0\GvimExt32\libintl-8.dll"
+	${EndIf}
+	${If} ${FileExists} "$0\GvimExt32\libgcc_s_sjlj-1.dll"
+	  !insertmacro UninstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+	      "$0\GvimExt32\libgcc_s_sjlj-1.dll"
+	${EndIf}
+	RMDir /r $0\GvimExt32
+
 	ClearErrors
 	# Remove everything but *.dll files.  Avoids that
 	# a lot remains when gvimext.dll cannot be deleted.
@@ -555,12 +1050,15 @@ Section Uninstall
 	RMDir /r $0\ftplugin
 	RMDir /r $0\indent
 	RMDir /r $0\macros
+	RMDir /r $0\pack
 	RMDir /r $0\plugin
 	RMDir /r $0\spell
 	RMDir /r $0\syntax
 	RMDir /r $0\tools
 	RMDir /r $0\tutor
+!ifdef HAVE_VIS_VIM
 	RMDir /r $0\VisVim
+!endif
 	RMDir /r $0\lang
 	RMDir /r $0\keymap
 	Delete $0\*.exe
@@ -568,46 +1066,78 @@ Section Uninstall
 	Delete $0\*.vim
 	Delete $0\*.txt
 
-	IfErrors ErrorMess NoErrorMess
-	  ErrorMess:
-	    MessageBox MB_OK|MB_ICONEXCLAMATION \
-	      "Some files in $0 have not been deleted!$\nYou must do it manually."
-	  NoErrorMess:
+	${If} ${Errors}
+	  MessageBox MB_OK|MB_ICONEXCLAMATION $(str_msg_rm_exe_fail) /SD IDOK
+	${EndIf}
 
 	# No error message if the "vim62" directory can't be removed, the
 	# gvimext.dll may still be there.
 	RMDir $0
+SectionEnd
 
-	NoRemoveExes:
+# Remove "vimfiles" directory under the specified directory.
+!macro RemoveVimfiles dir
+	${If} ${FileExists} ${dir}\vimfiles
+	  RMDir ${dir}\vimfiles\colors
+	  RMDir ${dir}\vimfiles\compiler
+	  RMDir ${dir}\vimfiles\doc
+	  RMDir ${dir}\vimfiles\ftdetect
+	  RMDir ${dir}\vimfiles\ftplugin
+	  RMDir ${dir}\vimfiles\indent
+	  RMDir ${dir}\vimfiles\keymap
+	  RMDir ${dir}\vimfiles\plugin
+	  RMDir ${dir}\vimfiles\syntax
+	  RMDir ${dir}\vimfiles
+	${EndIf}
+!macroend
+
+SectionGroup "un.$(str_ungroup_plugin)" id_ungroup_plugin
+	Section /o "un.$(str_unsection_plugin_home)" id_unsection_plugin_home
+		# get the home dir
+		ReadEnvStr $0 "HOME"
+		${If} $0 == ""
+		  ReadEnvStr $0 "HOMEDRIVE"
+		  ReadEnvStr $1 "HOMEPATH"
+		  StrCpy $0 "$0$1"
+		  ${If} $0 == ""
+		    ReadEnvStr $0 "USERPROFILE"
+		  ${EndIf}
+		${EndIf}
+
+		${If} $0 != ""
+		  !insertmacro RemoveVimfiles $0
+		${EndIf}
+	SectionEnd
+
+	Section "un.$(str_unsection_plugin_vim)" id_unsection_plugin_vim
+		# get the parent dir of the installation
+		Push $INSTDIR
+		Call un.GetParent
+		Pop $0
+
+		# if a plugin dir was created at installation remove it
+		!insertmacro RemoveVimfiles $0
+	SectionEnd
+SectionGroupEnd
+
+Section "un.$(str_unsection_rootdir)" id_unsection_rootdir
 	# get the parent dir of the installation
 	Push $INSTDIR
 	Call un.GetParent
 	Pop $0
-	StrCpy $1 $0
 
-	# if a plugin dir was created at installation ask the user to remove it
-	# first look in the root of the installation then in HOME
-	IfFileExists $1\vimfiles AskRemove 0
-	    ReadEnvStr $1 "HOME"
-	    StrCmp $1 "" NoRemove 0
+	Delete $0\_vimrc
+	RMDir $0
+SectionEnd
 
-	    IfFileExists $1\vimfiles 0 NoRemove
+##########################################################
+# Description for Uninstaller Sections
 
-	  AskRemove:
-	    MessageBox MB_YESNO|MB_ICONQUESTION \
-	      "Remove all files in your $1\vimfiles directory?$\n \
-	      $\nCAREFUL: If you have created something there that you want to keep, click No" IDNO Fin
-	    RMDir /r $1\vimfiles
-	  NoRemove:
-
-	# ask the user if the Vim root dir must be removed
-	MessageBox MB_YESNO|MB_ICONQUESTION \
-	  "Would you like to remove $0?$\n \
-	   $\nIt contains your Vim configuration files!" IDNO NoDelete
-	   RMDir /r $0 ; skipped if no
-	NoDelete:
-
-	Fin:
-	Call un.onUnInstSuccess
-
-SectionEnd
+!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_unsection_register}    $(str_desc_unregister)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_unsection_exe}         $(str_desc_rm_exe)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_ungroup_plugin}        $(str_desc_rm_plugin)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_unsection_plugin_home} $(str_desc_rm_plugin_home)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_unsection_plugin_vim}  $(str_desc_rm_plugin_vim)
+    !insertmacro MUI_DESCRIPTION_TEXT ${id_unsection_rootdir}     $(str_desc_rm_rootdir)
+!insertmacro MUI_UNFUNCTION_DESCRIPTION_END
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c2f426953cc286fe381e8f0761222dbb1cf51525
GIT binary patch
literal 102654
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
new file mode 100644
--- /dev/null
+++ b/nsis/icons/header.svg
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="300"
+   height="114"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="header.svg"
+   inkscape:export-filename="header.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4">
+    <filter
+       id="filter2840"
+       inkscape:label="Drop shadow"
+       width="1.5"
+       height="1.5"
+       x="-.25"
+       y="-.25">
+      <feGaussianBlur
+         id="feGaussianBlur2842"
+         in="SourceAlpha"
+         stdDeviation="3.000000"
+         result="blur" />
+      <feColorMatrix
+         id="feColorMatrix2844"
+         result="bluralpha"
+         type="matrix"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.600000 0 " />
+      <feOffset
+         id="feOffset2846"
+         in="bluralpha"
+         dx="-5.000000"
+         dy="5.000000"
+         result="offsetBlur" />
+      <feMerge
+         id="feMerge2848">
+        <feMergeNode
+           id="feMergeNode2850"
+           in="offsetBlur" />
+        <feMergeNode
+           id="feMergeNode2852"
+           in="SourceGraphic" />
+      </feMerge>
+    </filter>
+    <filter
+       id="filter2910"
+       inkscape:label="Drop shadow"
+       width="1.5"
+       height="1.5"
+       x="-.25"
+       y="-.25">
+      <feGaussianBlur
+         id="feGaussianBlur2912"
+         in="SourceAlpha"
+         stdDeviation="2.500000"
+         result="blur" />
+      <feColorMatrix
+         id="feColorMatrix2914"
+         result="bluralpha"
+         type="matrix"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.600000 0 " />
+      <feOffset
+         id="feOffset2916"
+         in="bluralpha"
+         dx="-3.000000"
+         dy="3.000000"
+         result="offsetBlur" />
+      <feMerge
+         id="feMerge2918">
+        <feMergeNode
+           id="feMergeNode2920"
+           in="offsetBlur" />
+        <feMergeNode
+           id="feMergeNode2922"
+           in="SourceGraphic" />
+      </feMerge>
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="1"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.1369427"
+     inkscape:cx="130.27686"
+     inkscape:cy="77.09629"
+     inkscape:document-units="px"
+     inkscape:current-layer="header"
+     showgrid="false"
+     inkscape:window-width="1280"
+     inkscape:window-height="942"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:snap-global="true"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="header"
+     transform="translate(0,-938.36218)">
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       id="text3026"
+       x="4.0525044"
+       y="-8.7699928">The editor</text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:100%;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;filter:url(#filter2910)"
+       x="178.45901"
+       y="988.47156"
+       id="text3198"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan3200"
+         x="178.45901"
+         y="988.47156"
+         style="font-size:36px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Courier New;-inkscape-font-specification:Courier New Bold">The</tspan><tspan
+         sodipodi:role="line"
+         x="178.45901"
+         y="1024.4716"
+         id="tspan3202"
+         style="font-size:36px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Courier New;-inkscape-font-specification:Courier New Bold">editor</tspan></text>
+    <g
+       id="g2916"
+       style="filter:url(#filter2840)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="M 107.53604,994.85892 57.991535,946.32092 9.4535173,995.84025 57.991535,1044.4034 107.53604,994.85892" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3003"
+         style="fill:#006b05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 102.57907,994.85892 2.96915,0 -47.556685,47.55668 0,-2.9691 44.587535,-44.58758" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3007"
+         style="fill:#007d17;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 11.441335,995.84025 2.969148,0 43.581052,43.60625 0,2.9691 -46.5502,-46.57535" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3011"
+         style="fill:#66ff99;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 57.991535,951.25272 0,-2.94398 -46.5502,47.53151 2.969148,0 43.581052,-44.58753" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3015"
+         style="fill:#45ff02;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 57.991535,948.30873 0,2.94399 44.587535,43.6062 2.96915,0 -47.556685,-46.55019" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3019"
+         style="fill:#009933;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 57.991535,1039.4465 44.587535,-44.58758 -44.587535,-43.6062 -43.581052,44.58753 43.581052,43.60625" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3023"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 67.25125,961.16664 2.969146,2.99431 0,0 -20.482085,20.78405 0,-20.78405 1.987817,0 2.969148,-2.99431 0,-7.90094 -2.969148,-2.99431 -33.012896,0 -2.969149,2.99431 0,7.90094 2.969149,2.99431 2.314928,0 0,67.35935 3.623367,2.9692 10.241043,0 70.98276,-73.32286 0,-7.90094 -2.96915,-2.99431 -32.358674,0 -3.296256,2.99431 0,7.90094" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3027"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 19.694561,962.17314 -1.987821,-1.98782 0,-5.9383 1.987821,-1.98782 31.05024,-0.0252 1.962656,2.01298 -1.962656,0.95617 -1.00649,-0.95617 -30.04375,4.9318 0,2.99432" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3031"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 25.632856,1032.5017 -2.314928,-1.9878 0,-68.36592 2.314928,-1.96266 0,72.31638" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3035"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 75.177364,962.17314 1.987819,-1.98782 0,3.97563 -33.038059,33.66712 3.64853,-7.9261 27.40171,-27.72883" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3039"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 26.312236,959.20399 -0.67938,0.98133 -2.314928,1.98782 -3.623367,0 0,-3.97563 6.617675,1.00648" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3043"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 47.775654,962.17314 0,27.72883 -3.64853,7.90094 0,-37.64275 5.611187,0 1.00649,-0.98133 -1.00649,-4.93181 2.969146,0 0,5.9383 -1.962656,1.98782 -2.969147,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3047"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 71.201725,962.17314 -1.962656,-1.98782 0,-5.9383 2.289766,-1.98782 30.068915,0 2.31493,1.98782 -3.32142,2.96915 -29.389535,1.96265 0,2.99432" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3051"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 103.91268,960.18532 -69.699491,72.31638 -8.580333,0 0,-2.9692 6.290568,0 69.674326,-71.33499 -1.00649,-3.95049 3.32142,0 0,5.9383" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3055"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 77.819404,959.20399 -0.679382,0.98133 -1.962658,1.98782 -3.975639,0 0,-3.97563 6.617679,1.00648" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3059"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 44.127124,997.80291 0,-37.64275 5.611187,0 1.00649,-0.98134 0,-3.97563 -1.00649,-0.98133 -29.062421,0 -0.981329,0.98133 0,3.97563 0.981329,0.98134 4.956966,0 0,69.37234 1.283276,0.9814 5.661511,0 69.347217,-72.31639 0,-2.84335 -1.00649,-1.1323 -28.710153,0 -1.006492,0.98133 0,4.0008 1.006492,0.98133 4.956966,0 0,3.97563 -33.038059,33.64196" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3063"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 62.143307,997.85323 2.31493,-1.98781 5.938295,0 1.660709,1.98781 -1.987817,5.93827 -2.289767,1.9879 -5.938295,0 -1.685872,-1.9879 1.987817,-5.93827" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3067"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 64.131127,1030.539 5.963458,-17.8149 -1.987818,0 1.987818,-5.9634 8.882281,0 1.987818,1.9878 1.333602,0 1.962657,-1.9878 6.617676,0 1.98782,1.9878 1.308439,0 1.987818,-1.9878 7.246734,0 2.64204,3.9756 -4.32791,14.0909 1.96265,0 -1.91233,5.7118 -11.901751,0 4.655019,-13.8644 -2.969147,0 -2.742688,8.1023 1.962658,0 -1.862008,5.7621 -11.901753,0 4.629856,-13.8644 -2.969146,0 -2.767852,8.1526 1.987821,0 -1.862008,5.7118 -11.901754,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3071"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 102.50359,1008.7485 1.53489,2.1891 -4.881475,15.6509 1.962655,0 -0.65422,1.9627 -7.92611,0 4.629858,-13.8644 -6.944788,0 -3.950475,11.9017 1.962657,0 -0.654219,1.9627 -7.926114,0 4.629855,-13.8644 -6.944785,0 -3.950476,11.9017 1.987818,0 -0.67938,1.9627 -7.926116,0 5.963458,-17.8149 -1.987818,0 0.654217,-1.9878 7.271898,0 1.987818,1.9878 1.962657,0 1.987819,-1.9878 5.938295,0 1.987821,1.9878 1.987818,0 1.987821,-1.9878 5.988621,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3075"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 69.088095,1006.7607 -6.064107,18.0413 2.063305,0 -1.962657,5.737 -11.876589,0 5.938295,-17.8149 -1.98782,0 13.889573,-5.9634 z m -13.889573,5.9634 1.98782,-5.9634 11.901753,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3079"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 61.816199,1028.5512 0.654219,-1.9627 -1.987819,0 5.963458,-17.84 -8.253225,0 -0.67938,1.9878 2.314928,0 -5.938297,17.8149 7.926116,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3083"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07548681;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+         d="m 68.408713,1002.8102 1.333602,-3.97563 -0.65422,-0.98134 -3.975639,0 -1.308438,0.98134 -1.333601,3.97563 0.679382,0.9813 3.975639,0 1.283275,-0.9813" />
+    </g>
+  </g>
+</svg>
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4b6516951f44a16a8398341992000b4343204405
GIT binary patch
literal 102654
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
B&YA!K
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..223d6a45df3d1c2c32974742928111e13f10888f
GIT binary patch
literal 618006
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6ef2a9b995cf12fc87058a95dd75f1119a9dd2a3
GIT binary patch
literal 618006
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
zzo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;
zYYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2Uj
zhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|J
zplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|
z42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<
zzo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;
zYYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2Uj
zhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|J
zplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|
z42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<
zzo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42Hj;
uYYc|Jplb|<zo2UjhQFX|42Hj;YYc|Jplb|<zo2UjhQFX|42HjmuKyoU`mP`V
new file mode 100644
--- /dev/null
+++ b/nsis/icons/welcome.svg
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="328"
+   height="628"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="welcome.svg"
+   inkscape:export-filename="welcome.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4">
+    <filter
+       id="filter3356"
+       inkscape:label="Drop shadow"
+       width="1.5"
+       height="1.5"
+       x="-.25"
+       y="-.25">
+      <feGaussianBlur
+         id="feGaussianBlur3358"
+         in="SourceAlpha"
+         stdDeviation="5.000000"
+         result="blur" />
+      <feColorMatrix
+         id="feColorMatrix3360"
+         result="bluralpha"
+         type="matrix"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.600000 0 " />
+      <feOffset
+         id="feOffset3362"
+         in="bluralpha"
+         dx="-10.000000"
+         dy="10.000000"
+         result="offsetBlur" />
+      <feMerge
+         id="feMerge3364">
+        <feMergeNode
+           id="feMergeNode3366"
+           in="offsetBlur" />
+        <feMergeNode
+           id="feMergeNode3368"
+           in="SourceGraphic" />
+      </feMerge>
+    </filter>
+    <filter
+       id="filter3496"
+       inkscape:label="Drop shadow"
+       width="1.5"
+       height="1.5"
+       x="-.25"
+       y="-.25">
+      <feGaussianBlur
+         id="feGaussianBlur3498"
+         in="SourceAlpha"
+         stdDeviation="3.000000"
+         result="blur" />
+      <feColorMatrix
+         id="feColorMatrix3500"
+         result="bluralpha"
+         type="matrix"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.600000 0 " />
+      <feOffset
+         id="feOffset3502"
+         in="bluralpha"
+         dx="-5.000000"
+         dy="5.000000"
+         result="offsetBlur" />
+      <feMerge
+         id="feMerge3504">
+        <feMergeNode
+           id="feMergeNode3506"
+           in="offsetBlur" />
+        <feMergeNode
+           id="feMergeNode3508"
+           in="SourceGraphic" />
+      </feMerge>
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="1"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.0716561"
+     inkscape:cx="122.81449"
+     inkscape:cy="381.22777"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1280"
+     inkscape:window-height="942"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:snap-global="true"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-424.36218)">
+    <rect
+       style="fill:#eeffcc;fill-opacity:1;stroke:#007f00;stroke-width:2.0138948;stroke-miterlimit:2.6099999;stroke-opacity:1;stroke-dasharray:none"
+       id="rect3510"
+       width="327.98608"
+       height="635.98608"
+       x="-0.99305254"
+       y="420.36914" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#ffffff;fill-opacity:0;stroke:none"
+       id="path3795"
+       sodipodi:cx="92.889717"
+       sodipodi:cy="94.761551"
+       sodipodi:rx="83.062592"
+       sodipodi:ry="84.466469"
+       d="m 175.95231,94.761551 c 0,46.649539 -37.18839,84.466469 -83.062593,84.466469 -45.874202,0 -83.0625915,-37.81693 -83.0625915,-84.466469 0,-46.649543 37.1883895,-84.466469 83.0625915,-84.466469 45.874203,0 83.062593,37.816926 83.062593,84.466469 z"
+       transform="matrix(0,-2.3099964,-2.3548838,0,387.15244,952.93709)" />
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;filter:url(#filter3496)"
+       id="text3026"><textPath
+         xlink:href="#path3795"
+         startOffset="50%"
+         id="textPath3036"
+         style="font-size:58;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;text-anchor:middle;font-family:Courier New;-inkscape-font-specification:Courier New Bold;">The editor</textPath></text>
+    <g
+       id="g2968"
+       style="filter:url(#filter3356)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2999"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="M 299.80052,736.9686 162.60646,602.56167 28.199478,739.68603 162.60646,874.16269 299.80052,736.9686" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3003"
+         style="fill:#006b05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 286.07415,736.9686 8.22189,0 -131.68958,131.68962 0,-8.2219 123.46769,-123.46772" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3007"
+         style="fill:#007d17;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 33.703958,739.68603 8.221891,0 120.680611,120.75029 0,8.2219 L 33.703958,739.68603" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3011"
+         style="fill:#66ff99;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 162.60646,616.21837 0,-8.15223 -128.902502,131.61989 8.221891,0 120.680611,-123.46766" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3015"
+         style="fill:#45ff02;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 162.60646,608.06614 0,8.15223 123.46769,120.75023 8.22189,0 -131.68958,-128.90246" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3019"
+         style="fill:#009933;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="M 162.60646,860.43632 286.07415,736.9686 162.60646,616.21837 41.925849,739.68603 162.60646,860.43632" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3023"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 188.24761,643.67106 8.22188,8.29158 0,0 -56.71709,57.55326 0,-57.55326 5.50448,0 8.22189,-8.29158 0,-21.87855 -8.22189,-8.29157 -91.416257,0 -8.221894,8.29157 0,21.87855 8.221894,8.29158 6.410285,0 0,186.52539 10.033492,8.22191 28.358547,0 196.558893,-203.03888 0,-21.87855 -8.22189,-8.29157 -89.60466,0 -9.12768,8.29157 0,21.87855" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3027"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 56.558028,646.45817 -5.504489,-5.50448 0,-16.4438 5.504489,-5.50448 85.981452,-0.0697 5.4348,5.57416 -5.4348,2.64775 -2.78708,-2.64775 -83.194372,13.6567 0,8.29158" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3031"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 73.001805,841.20547 -6.410285,-5.50448 0,-189.3125 6.410285,-5.4348 0,200.25178" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3035"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 210.19587,646.45817 5.50448,-5.50448 0,11.00895 -91.48593,93.22786 10.10317,-21.94822 75.87828,-76.78411" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3039"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 74.883082,638.23626 -1.881277,2.71743 -6.410285,5.50448 -10.033492,0 0,-11.00895 18.325054,2.78704" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3043"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 134.31759,646.45817 0,76.78411 -10.10317,21.87855 0,-104.23681 15.53798,0 2.78708,-2.71743 -2.78708,-13.6567 8.22188,0 0,16.4438 -5.4348,5.50448 -8.22189,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3047"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 199.1869,646.45817 -5.43481,-5.50448 0,-16.4438 6.34061,-5.50448 83.26404,0 6.41029,5.50448 -9.19736,8.2219 -81.38277,5.4348 0,8.29158" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3051"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 289.76703,640.95369 -193.005361,200.25177 -23.759864,0 0,-8.2219 17.419257,0 192.935678,-197.53434 -2.78707,-10.93933 9.19736,0 0,16.4438" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3055"
+         style="fill:#7f7f7f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 217.51196,638.23626 -1.88128,2.71743 -5.43481,5.50448 -11.00897,0 0,-11.00895 18.32506,2.78704" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3059"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 124.21442,745.12082 0,-104.23681 15.53798,0 2.78708,-2.71742 0,-11.00895 -2.78708,-2.71743 -80.476968,0 -2.717404,2.71743 0,11.00895 2.717404,2.71742 13.726373,0 0,192.09955 3.553528,2.71743 15.677333,0 192.029884,-200.25177 0,-7.87353 -2.78708,-3.13548 -79.50149,0 -2.78708,2.71743 0,11.07862 2.78708,2.71743 13.72637,0 0,11.00895 -91.48593,93.15818" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3063"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 174.10317,745.26018 6.41029,-5.50448 16.44377,0 4.59868,5.50448 -5.50447,16.4438 -6.34062,5.50448 -16.44377,0 -4.66836,-5.50448 5.50448,-16.4438" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3067"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 179.60765,835.77066 16.51346,-49.33135 -5.50448,0 5.50448,-16.51342 24.59599,0 5.50448,5.50447 3.69289,0 5.43481,-5.50447 18.32505,0 5.50449,5.50447 3.62321,0 5.50448,-5.50447 20.06698,0 7.31609,11.00895 -11.98445,39.01911 5.43481,0 -5.29546,15.81671 -32.95723,0 12.89025,-38.39208 -8.22189,0 -7.59479,22.43602 5.43481,0 -5.1561,15.95606 -32.95724,0 12.82057,-38.39208 -8.22188,0 -7.66448,22.57537 5.50449,0 -5.1561,15.81671 -32.95724,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3071"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 285.86512,775.43036 4.25029,6.06188 -13.51734,43.3391 5.43481,0 -1.8116,5.43485 -21.94826,0 12.82057,-38.39208 -19.23086,0 -10.93929,32.95723 5.43481,0 -1.81161,5.43485 -21.94826,0 12.82057,-38.39208 -19.23086,0 -10.93929,32.95723 5.50448,0 -1.88127,5.43485 -21.94827,0 16.51346,-49.33135 -5.50449,0 1.8116,-5.50448 20.13667,0 5.50448,5.50448 5.43481,0 5.50448,-5.50448 16.44378,0 5.50449,5.50448 5.50448,0 5.50449,-5.50448 16.58312,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3075"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 193.33403,769.92588 -16.79216,49.95839 5.71351,0 -5.43481,15.88639 -32.88755,0 16.44378,-49.33135 -5.50449,0 38.46172,-16.51343 z m -38.46172,16.51343 5.50449,-16.51343 32.95723,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3079"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 173.19737,830.26619 1.8116,-5.43485 -5.50448,0 16.51345,-49.40098 -22.85406,0 -1.88128,5.50448 6.41028,0 -16.44378,49.33135 21.94827,0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3083"
+         style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20903109000000000;stroke-miterlimit:2.60999990000000004;stroke-opacity:1;stroke-dasharray:none;"
+         d="m 191.45275,758.98656 3.69288,-11.00896 -1.8116,-2.71743 -11.00897,0 -3.62321,2.71743 -3.69288,11.00896 1.88128,2.71742 11.00897,0 3.55353,-2.71742" />
+    </g>
+  </g>
+</svg>
new file mode 100644
--- /dev/null
+++ b/nsis/lang/danish.nsi
@@ -0,0 +1,175 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# danish.nsi: Danish language strings for gvim NSIS installer.
+#
+# Locale ID    : 1030
+# fileencoding : UTF-8
+# Author       : scootergrisen
+
+!insertmacro MUI_LANGUAGE "Danish"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_DANISH}         "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_DANISH}         "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_DANISH}     "Destinationsmappe (skal slutte med $\"vim$\")"
+
+LangString str_show_readme          ${LANG_DANISH}     "Vis README efter installationen er gennemført"
+
+# Install types:
+LangString str_type_typical         ${LANG_DANISH}     "Typisk"
+
+LangString str_type_minimal         ${LANG_DANISH}     "Minimal"
+
+LangString str_type_full            ${LANG_DANISH}     "Fuld"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_DANISH}     "Afinstaller eksisterende version(er)"
+LangString str_desc_old_ver         ${LANG_DANISH}     "Afinstaller eksisterende Vim-version(er) fra dit system."
+
+LangString str_section_exe          ${LANG_DANISH}     "Vim GUI og afviklingsfiler"
+LangString str_desc_exe             ${LANG_DANISH}     "Vim GUI-eksekverbare- og afviklingsfiler. Komponenten kræves."
+
+LangString str_section_console      ${LANG_DANISH}     "Vim-konsolprogram"
+LangString str_desc_console         ${LANG_DANISH}     "Konsolversion af Vim (vim.exe)."
+
+LangString str_section_batch        ${LANG_DANISH}     "Opret .bat-filer"
+LangString str_desc_batch           ${LANG_DANISH}     "Opret .bat-filer til Vim-varianter i Windows-mappen til brug fra kommandolinjen."
+
+LangString str_group_icons          ${LANG_DANISH}     "Opret ikoner til Vim"
+LangString str_desc_icons           ${LANG_DANISH}     "Opret ikoner til Vim diverse steder for at hjælpe med at gøre adgangen let."
+
+LangString str_section_desktop      ${LANG_DANISH}     "På skrivebordet"
+LangString str_desc_desktop         ${LANG_DANISH}     "Opret ikoner til gVim-eksekverbare på skrivebordet."
+
+LangString str_section_start_menu   ${LANG_DANISH}     "I Programmer-mappen i menuen Start"
+LangString str_desc_start_menu      ${LANG_DANISH}     "Tilføj Vim i Programmer-mappen i menuen Start."
+
+#LangString str_section_quick_launch ${LANG_DANISH}     "I værktøjslinjen Hurtig start"
+#LangString str_desc_quick_launch    ${LANG_DANISH}     "Tilføj Vim-genvej i værktøjslinjen Hurtig start."
+
+LangString str_section_edit_with    ${LANG_DANISH}     "Tilføj Vim-genvejsmenu"
+LangString str_desc_edit_with       ${LANG_DANISH}     "Tilføj Vim til listen i $\"Åbn med...$\"-genvejsmenuen."
+
+#LangString str_section_edit_with32  ${LANG_DANISH}     "32-bit-version"
+#LangString str_desc_edit_with32     ${LANG_DANISH}     "Tilføj Vim til listen i $\"Åbn med...$\"-genvejsmenuen for 32-bit-programmer."
+
+#LangString str_section_edit_with64  ${LANG_DANISH}     "64-bit-version"
+#LangString str_desc_edit_with64     ${LANG_DANISH}     "Tilføj Vim til listen i $\"Åbn med...$\"-genvejsmenuen for 64-bit-programmer."
+
+LangString str_section_vim_rc       ${LANG_DANISH}     "Opret standardkonfiguration"
+LangString str_desc_vim_rc          ${LANG_DANISH}     "Opret en standardkonfigurationsfil (_vimrc) hvis der ikke allerede findes en."
+
+LangString str_group_plugin         ${LANG_DANISH}     "Opret plugin-mapper"
+LangString str_desc_plugin          ${LANG_DANISH}     "Opret plugin-mapper. Plugin-mapper giver mulighed for at udvide Vim ved at slippe en fil i en mappen."
+
+LangString str_section_plugin_home  ${LANG_DANISH}     "Private"
+LangString str_desc_plugin_home     ${LANG_DANISH}     "Opret plugin-mapper i HOME-mappen."
+
+LangString str_section_plugin_vim   ${LANG_DANISH}     "Delte"
+LangString str_desc_plugin_vim      ${LANG_DANISH}     "Opret plugin-mapper i Vim-installationsmappe, det bruges af alle på systemet."
+
+LangString str_section_vis_vim      ${LANG_DANISH}     "VisVim-udvidelser"
+LangString str_desc_vis_vim         ${LANG_DANISH}     "VisVim-udvidelser til integrering i Microsoft Visual Studio."
+
+LangString str_section_nls          ${LANG_DANISH}     "Understøttelse af modersmål"
+LangString str_desc_nls             ${LANG_DANISH}     "Installer filer til understøttelse af modersmål."
+
+LangString str_unsection_register   ${LANG_DANISH}     "Afregistrer Vim"
+LangString str_desc_unregister      ${LANG_DANISH}     "Afregistrer Vim fra systemet."
+
+LangString str_unsection_exe        ${LANG_DANISH}     "Fjern Vim-eksekverbare-/afviklingsfiler"
+LangString str_desc_rm_exe          ${LANG_DANISH}     "Fjern alle Vim-eksekverbare- og afviklingsfiler."
+
+LangString str_ungroup_plugin       ${LANG_DANISH}     "Fjern plugin-mapper"
+LangString str_desc_rm_plugin       ${LANG_DANISH}     "Fjern plugin-mapperne hvis de er tomme."
+
+LangString str_unsection_plugin_home ${LANG_DANISH}    "Privat"
+LangString str_desc_rm_plugin_home  ${LANG_DANISH}     "Fjern plugin-mapperne fra HOME-mappen."
+
+LangString str_unsection_plugin_vim ${LANG_DANISH}     "Delte"
+LangString str_desc_rm_plugin_vim   ${LANG_DANISH}     "Fjern plugin-mapperne fra Vim-installationsmappen."
+
+LangString str_unsection_rootdir    ${LANG_DANISH}     "Fjern Vim-rodmappen"
+LangString str_desc_rm_rootdir      ${LANG_DANISH}     "Fjern Vim-rodmappen. Den indeholder dine Vim-konfigurationsfiler!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_DANISH}     "Fandt $vim_old_ver_count Vim-versioner på dit system.$\r$\nInstallationsguiden kan højst håndtere ${VIM_MAX_OLD_VER}-versioner.$\r$\nFjern venligst nogle versioner og start igen."
+
+#LangString str_msg_invalid_root  ${LANG_DANISH}     "Ugyldig installationssti: $vim_install_root!$\r$\nDen skal slutte med $\"vim$\"."
+
+#LangString str_msg_bin_mismatch  ${LANG_DANISH}     "Uoverensstemmelse i binære sti!$\r$\n$\r$\nForventede at den binære sti var $\"$vim_bin_path$\",$\r$\nmen systemet indikerer at den binære sti er $\"$INSTDIR$\"."
+
+#LangString str_msg_vim_running   ${LANG_DANISH}     "Vim kører stadig på dit system.$\r$\nLuk venligst alle instanser af Vim inden du fortsætter."
+
+#LangString str_msg_register_ole  ${LANG_DANISH}     "Forsøger at registrere Vim med OLE. Der er ingen meddelelse til at indikere om det virker eller ej."
+
+#LangString str_msg_unreg_ole     ${LANG_DANISH}     "Forsøger at afregistrere Vim med OLE. Der er ingen meddelelse til at indikere om det virker eller ej."
+
+#LangString str_msg_rm_start      ${LANG_DANISH}     "Afinstallerer følgende version:"
+
+#LangString str_msg_rm_fail       ${LANG_DANISH}     "Kunne ikke afinstallere følgende version:"
+
+#LangString str_msg_no_rm_key     ${LANG_DANISH}     "Kan ikke finde registreringsdatabasenøgle for afinstallationsguiden."
+
+#LangString str_msg_no_rm_reg     ${LANG_DANISH}     "Kan ikke finde afinstallationsguiden fra registreringsdatabasen."
+
+#LangString str_msg_no_rm_exe     ${LANG_DANISH}     "Kan ikke tilgå afinstallationsguide."
+
+#LangString str_msg_rm_copy_fail  ${LANG_DANISH}     "Kunne ikke kopiere afinstallationsguide til midlertidig mappe."
+
+#LangString str_msg_rm_run_fail   ${LANG_DANISH}     "Kunne ikke køre afinstallationsguide."
+
+#LangString str_msg_abort_install ${LANG_DANISH}     "Installationsguiden vil afbryde."
+
+LangString str_msg_install_fail  ${LANG_DANISH}     "Installationen mislykkedes. Bedre held næste gang."
+
+LangString str_msg_rm_exe_fail   ${LANG_DANISH}     "Nogle filer i $0 er ikke blevet slettet!$\r$\nDu skal gøre det manuelt."
+
+#LangString str_msg_rm_root_fail  ${LANG_DANISH}     "ADVARSEL: Kan ikke fjerne $\"$vim_install_root$\", den er ikke tom!"
+
+LangString str_msg_uninstalling  ${LANG_DANISH}     "Afinstallerer den gamle version..."
+
+LangString str_msg_registering   ${LANG_DANISH}     "Registrerer..."
+
+LangString str_msg_unregistering ${LANG_DANISH}     "Afregistrerer..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_DANISH}     "Vælg _vimrc-indstillinger"
+LangString str_vimrc_page_subtitle ${LANG_DANISH}     "Vælg indstillingerne til forbedring, tastatur og mus."
+
+LangString str_msg_compat_title    ${LANG_DANISH}     " Vi- / Vim-opførsel "
+LangString str_msg_compat_desc     ${LANG_DANISH}     "&Kompatibilitet og forbedringer"
+LangString str_msg_compat_vi       ${LANG_DANISH}     "Vi-kompatibel"
+LangString str_msg_compat_vim      ${LANG_DANISH}     "Vim original"
+LangString str_msg_compat_defaults ${LANG_DANISH}     "Vim med nogle forbedringer (indlæs defaults.vim)"
+LangString str_msg_compat_all      ${LANG_DANISH}     "Vim med alle forbedringer (indlæs vimrc_example.vim) (standard)"
+
+LangString str_msg_keymap_title   ${LANG_DANISH}     " Tilknytninger "
+LangString str_msg_keymap_desc    ${LANG_DANISH}     "&Gentilknyt nogle få taster (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F osv.)"
+LangString str_msg_keymap_default ${LANG_DANISH}     "Gentilknyt ikke taster (standard)"
+LangString str_msg_keymap_windows ${LANG_DANISH}     "Gentilknyt nogle få taster til Windows"
+
+LangString str_msg_mouse_title   ${LANG_DANISH}     " Mus "
+LangString str_msg_mouse_desc    ${LANG_DANISH}     "&Opførsel af højre og venstre knapper"
+LangString str_msg_mouse_default ${LANG_DANISH}     "Højre: genvejsmenu, venstre: visuel tilstand (standard)"
+LangString str_msg_mouse_windows ${LANG_DANISH}     "Højre: genvejsmenu, venstre: vælg-tilstand (Windows)"
+LangString str_msg_mouse_unix    ${LANG_DANISH}     "Højre: udvider markering, venstre: visuel tilstand (Unix)"
new file mode 100644
--- /dev/null
+++ b/nsis/lang/dutch.nsi
@@ -0,0 +1,281 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# dutch.nsi : Dutch language strings for gvim NSIS installer.
+#
+# Locale ID    : 1043
+# Locale Name  : nl
+# fileencoding : UTF-8
+# Author       : Peter Odding <peter@peterodding.com>
+
+!insertmacro MUI_LANGUAGE "Dutch"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_DUTCH} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_DUTCH} \
+        "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_DUTCH} \
+#    "Doelmap (moet eindigen op $\"vim$\")"
+
+LangString str_show_readme          ${LANG_DUTCH} \
+    "README weergeven na installatie"
+
+# Install types:
+LangString str_type_typical         ${LANG_DUTCH} \
+    "Gebruikelijk"
+
+LangString str_type_minimal         ${LANG_DUTCH} \
+    "Minimaal"
+
+LangString str_type_full            ${LANG_DUTCH} \
+    "Volledig"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_DUTCH} \
+    "Bestaande versie(s) de-installeren"
+LangString str_desc_old_ver         ${LANG_DUTCH} \
+    "Bestaande Vim versie(s) van je systeem verwijderen."
+
+LangString str_section_exe          ${LANG_DUTCH} \
+    "Vim GUI"
+LangString str_desc_exe             ${LANG_DUTCH} \
+    "Vim GUI uitvoerbare bestanden en runtime bestanden.  Dit component is vereist."
+
+LangString str_section_console      ${LANG_DUTCH} \
+    "Vim console programma"
+LangString str_desc_console         ${LANG_DUTCH} \
+    "Console versie van Vim (vim.exe)."
+
+LangString str_section_batch        ${LANG_DUTCH} \
+    "Creëer .bat bestanden"
+LangString str_desc_batch           ${LANG_DUTCH} \
+    "Creëer .bat bestanden voor Vim varianten in de Windows map voor \
+     commando regel gebruik."
+
+LangString str_group_icons          ${LANG_DUTCH} \
+    "Creëer pictogrammen for Vim"
+LangString str_desc_icons           ${LANG_DUTCH} \
+    "Creëer pictogrammen voor Vim op verschillende locaties voor gemakkelijke toegang."
+
+LangString str_section_desktop      ${LANG_DUTCH} \
+    "Op het bureaublad"
+LangString str_desc_desktop         ${LANG_DUTCH} \
+    "Creëer pictogrammen voor Vim uitvoerbare bestanden op het bureaublad."
+
+LangString str_section_start_menu   ${LANG_DUTCH} \
+    "In de Programma's map in het start menu"
+LangString str_desc_start_menu      ${LANG_DUTCH} \
+    "Voeg Vim toe aan de programma's map in het start menu.  \
+     Van toepassing op Windows 95 en later."
+
+#LangString str_section_quick_launch ${LANG_DUTCH} \
+#    "In de snel starten balk"
+#LangString str_desc_quick_launch    ${LANG_DUTCH} \
+#    "Voeg Vim snelkoppeling toe aan de snel starten balk."
+
+LangString str_section_edit_with    ${LANG_DUTCH} \
+    "Voeg Vim contextmenu toe"
+LangString str_desc_edit_with       ${LANG_DUTCH} \
+    "Voeg Vim toe aan de $\"Openen met...$\" contextmenu lijst."
+
+#LangString str_section_edit_with32  ${LANG_DUTCH} \
+#    "32-bit versie"
+#LangString str_desc_edit_with32     ${LANG_DUTCH} \
+#    "Voeg Vim toe aan de $\"Openen met...$\" contextmenu lijst \
+#     voor 32-bit toepassingen."
+
+#LangString str_section_edit_with64  ${LANG_DUTCH} \
+#    "64-bit versie"
+#LangString str_desc_edit_with64     ${LANG_DUTCH} \
+#    "Voeg Vim toe aan de $\"Openen met...$\" contextmenu lijst \
+#     voor 64-bit toepassingen."
+
+LangString str_section_vim_rc       ${LANG_DUTCH} \
+    "Creëer standaard configuratie"
+LangString str_desc_vim_rc          ${LANG_DUTCH} \
+    "Creëer een standaard configuratie bestand (_vimrc) als er nog geen bestaat."
+
+LangString str_group_plugin         ${LANG_DUTCH} \
+    "Creëer Plugin mappen"
+LangString str_desc_plugin          ${LANG_DUTCH} \
+    "Creëer plugin mappen.  Plugin mappen maken het mogelijk om \
+     Vim uit te breiden door een bestand in een map te plaatsen."
+
+LangString str_section_plugin_home  ${LANG_DUTCH} \
+    "Privé"
+LangString str_desc_plugin_home     ${LANG_DUTCH} \
+    "Create plugin directories in HOME directory."
+
+LangString str_section_plugin_vim   ${LANG_DUTCH} \
+    "Gedeeld"
+LangString str_desc_plugin_vim      ${LANG_DUTCH} \
+    "Creëer plugin mappen in Vim installatie map, deze worden gebruikt \
+     voor iedereen op het systeem."
+
+LangString str_section_vis_vim      ${LANG_DUTCH} \
+    "VisVim extensie"
+LangString str_desc_vis_vim         ${LANG_DUTCH} \
+    "VisVim extensie voor Microsoft Visual Studio integratie."
+
+LangString str_section_nls          ${LANG_DUTCH} \
+    "Ondersteuning voor andere talen"
+LangString str_desc_nls             ${LANG_DUTCH} \
+    "Bestanden voor ondersteuning van andere talen dan Engels installeren."
+
+LangString str_unsection_register   ${LANG_DUTCH} \
+    "Vim afmelden"
+LangString str_desc_unregister      ${LANG_DUTCH} \
+    "Registratie van Vim in het systeem ongedaan maken."
+
+LangString str_unsection_exe        ${LANG_DUTCH} \
+    "Vim uitvoerbare/runtime bestanden verwijderen"
+LangString str_desc_rm_exe          ${LANG_DUTCH} \
+    "Verwijder alle Vim uitvoerbare bestanden en runtime bestanden."
+
+LangString str_ungroup_plugin       ${LANG_DUTCH} \
+    "Remove plugin directories"
+LangString str_desc_rm_plugin       ${LANG_DUTCH} \
+    "Remove the plugin directories if they are empty."
+
+LangString str_unsection_plugin_home ${LANG_DUTCH} \
+    "Privé"
+LangString str_desc_rm_plugin_home  ${LANG_DUTCH} \
+    "Remove the plugin directories from HOME directory."
+
+LangString str_unsection_plugin_vim ${LANG_DUTCH} \
+    "Gedeeld"
+LangString str_desc_rm_plugin_vim   ${LANG_DUTCH} \
+    "Remove the plugin directories from Vim install directory."
+
+LangString str_unsection_rootdir    ${LANG_DUTCH} \
+    "Remove the Vim root directory"
+LangString str_desc_rm_rootdir      ${LANG_DUTCH} \
+    "Remove the Vim root directory. It contains your Vim configuration files!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_DUTCH} \
+#    "Er zijn $vim_old_ver_count Vim versies op je systeem gevonden.$\r$\n\
+#     Deze installatie kan omgaan met maximaal ${VIM_MAX_OLD_VER} versies.$\r$\n\
+#     Verwijder a.u.b. wat versies en probeer het dan opnieuw."
+
+#LangString str_msg_invalid_root  ${LANG_DUTCH} \
+#    "Ongeldig installatiepad: $vim_install_root!$\r$\n\
+#     Het moet eindelijk op $\"vim$\"."
+
+#LangString str_msg_bin_mismatch  ${LANG_DUTCH} \
+#    "Binair pad onjuist!$\r$\n$\r$\n\
+#     Het binaire pad zou $\"$vim_bin_path$\" moeten zijn,$\r$\n\
+#     maar het systeem geeft aan dat het binaire pad $\"$INSTDIR$\" is."
+
+#LangString str_msg_vim_running   ${LANG_DUTCH} \
+#    "Vim is nog actief op je systeem.$\r$\n\
+#     Sluit a.u.b. alle instanties van Vim voordat je verder gaat."
+
+#LangString str_msg_register_ole  ${LANG_DUTCH} \
+#    "Bezig met proberen om Vim te registreren met OLE. \
+#     Er is geen bericht dat aangeeft of deze operatie slaagt."
+
+#LangString str_msg_unreg_ole     ${LANG_DUTCH} \
+#    "Bezig met proberen om Vim te de-registreren met OLE. \
+#     Er is geen bericht dat aangeeft of deze operatie slaagt."
+
+#LangString str_msg_rm_start      ${LANG_DUTCH} \
+#    "De volgende versies worden verwijderd:"
+
+#LangString str_msg_rm_fail       ${LANG_DUTCH} \
+#    "De volgende versies konden niet worden verwijderd:"
+
+#LangString str_msg_no_rm_key     ${LANG_DUTCH} \
+#    "Kan de uninstaller register sleutel niet vinden."
+
+#LangString str_msg_no_rm_reg     ${LANG_DUTCH} \
+#    "Kan de uninstaller niet vinden via het register."
+
+#LangString str_msg_no_rm_exe     ${LANG_DUTCH} \
+#    "Kan geen toegang krijgen tot de uninstaller."
+
+#LangString str_msg_rm_copy_fail  ${LANG_DUTCH} \
+#    "Kon de uninstaller niet naar een tijdelijke map kopiëren."
+
+#LangString str_msg_rm_run_fail   ${LANG_DUTCH} \
+#    "Kon de uninstaller niet uitvoeren."
+
+#LangString str_msg_abort_install ${LANG_DUTCH} \
+#    "Installatie wordt gestopt."
+
+LangString str_msg_install_fail  ${LANG_DUTCH} \
+    "Installatie is mislukt."
+
+LangString str_msg_rm_exe_fail   ${LANG_DUTCH} \
+    "Sommige bestanden in $0 zijn niet verwijderd!$\r$\n\
+     Dit moet je handmatig doen."
+
+#LangString str_msg_rm_root_fail  ${LANG_DUTCH} \
+#    "WAARSCHUWING: Kan $\"$vim_install_root$\" niet verwijderen omdat het niet leeg is!"
+
+LangString str_msg_uninstalling  ${LANG_DUTCH} \
+    "Uninstalling the old version..."
+
+LangString str_msg_registering   ${LANG_DUTCH} \
+    "Registering..."
+
+LangString str_msg_unregistering ${LANG_DUTCH} \
+    "Unregistering..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_DUTCH} \
+    "Choose _vimrc settings"
+LangString str_vimrc_page_subtitle ${LANG_DUTCH} \
+    "Choose the settings for enhancement, keyboard and mouse."
+
+LangString str_msg_compat_title    ${LANG_DUTCH} \
+    " Vi / Vim behavior "
+LangString str_msg_compat_desc     ${LANG_DUTCH} \
+    "&Compatibility and enhancements"
+LangString str_msg_compat_vi       ${LANG_DUTCH} \
+    "Vi compatible"
+LangString str_msg_compat_vim      ${LANG_DUTCH} \
+    "Vim original"
+LangString str_msg_compat_defaults ${LANG_DUTCH} \
+    "Vim with some enhancements (load defaults.vim)"
+LangString str_msg_compat_all      ${LANG_DUTCH} \
+    "Vim with all enhancements (load vimrc_example.vim) (Default)"
+
+LangString str_msg_keymap_title   ${LANG_DUTCH} \
+    " Mappings "
+LangString str_msg_keymap_desc    ${LANG_DUTCH} \
+    "&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
+LangString str_msg_keymap_default ${LANG_DUTCH} \
+    "Do not remap keys (Default)"
+LangString str_msg_keymap_windows ${LANG_DUTCH} \
+    "Remap a few keys"
+
+LangString str_msg_mouse_title   ${LANG_DUTCH} \
+    " Mouse "
+LangString str_msg_mouse_desc    ${LANG_DUTCH} \
+    "&Behavior of right and left buttons"
+LangString str_msg_mouse_default ${LANG_DUTCH} \
+    "Right: popup menu, Left: visual mode (Default)"
+LangString str_msg_mouse_windows ${LANG_DUTCH} \
+    "Right: popup menu, Left: select mode (Windows)"
+LangString str_msg_mouse_unix    ${LANG_DUTCH} \
+    "Right: extends selection, Left: visual mode (Unix)"
new file mode 100644
--- /dev/null
+++ b/nsis/lang/english.nsi
@@ -0,0 +1,280 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# english.nsi: English language strings for gvim NSIS installer.
+#
+# Locale ID    : 1033
+# fileencoding : UTF-8
+# Author       : Guopeng Wen, Ken Takata
+
+!insertmacro MUI_LANGUAGE "English"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_ENGLISH} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_ENGLISH} \
+        "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_ENGLISH} \
+#    "Destination Folder (Must end with $\"vim$\")"
+
+LangString str_show_readme          ${LANG_ENGLISH} \
+    "Show README after installation finish"
+
+# Install types:
+LangString str_type_typical         ${LANG_ENGLISH} \
+    "Typical"
+
+LangString str_type_minimal         ${LANG_ENGLISH} \
+    "Minimal"
+
+LangString str_type_full            ${LANG_ENGLISH} \
+    "Full"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_ENGLISH} \
+    "Uninstall Existing Version(s)"
+LangString str_desc_old_ver         ${LANG_ENGLISH} \
+    "Uninstall existing Vim version(s) from your system."
+
+LangString str_section_exe          ${LANG_ENGLISH} \
+    "Vim GUI and runtime files"
+LangString str_desc_exe             ${LANG_ENGLISH} \
+    "Vim GUI executables and runtime files.  This component is required."
+
+LangString str_section_console      ${LANG_ENGLISH} \
+    "Vim console program"
+LangString str_desc_console         ${LANG_ENGLISH} \
+    "Console version of Vim (vim.exe)."
+
+LangString str_section_batch        ${LANG_ENGLISH} \
+    "Create .bat files"
+LangString str_desc_batch           ${LANG_ENGLISH} \
+    "Create .bat files for Vim variants in the Windows directory for \
+     command line use."
+
+LangString str_group_icons          ${LANG_ENGLISH} \
+    "Create icons for Vim"
+LangString str_desc_icons           ${LANG_ENGLISH} \
+    "Create icons for Vim at various locations to facilitate easy access."
+
+LangString str_section_desktop      ${LANG_ENGLISH} \
+    "On the Desktop"
+LangString str_desc_desktop         ${LANG_ENGLISH} \
+    "Create icons for gVim executables on the desktop."
+
+LangString str_section_start_menu   ${LANG_ENGLISH} \
+    "In the Start Menu Programs Folder"
+LangString str_desc_start_menu      ${LANG_ENGLISH} \
+    "Add Vim in the programs folder of the start menu."
+
+#LangString str_section_quick_launch ${LANG_ENGLISH} \
+#    "In the Quick Launch Bar"
+#LangString str_desc_quick_launch    ${LANG_ENGLISH} \
+#    "Add Vim shortcut in the quick launch bar."
+
+LangString str_section_edit_with    ${LANG_ENGLISH} \
+    "Add Vim Context Menu"
+LangString str_desc_edit_with       ${LANG_ENGLISH} \
+    "Add Vim to the $\"Open With...$\" context menu list."
+
+#LangString str_section_edit_with32  ${LANG_ENGLISH} \
+#    "32-bit Version"
+#LangString str_desc_edit_with32     ${LANG_ENGLISH} \
+#    "Add Vim to the $\"Open With...$\" context menu list \
+#     for 32-bit applications."
+
+#LangString str_section_edit_with64  ${LANG_ENGLISH} \
+#    "64-bit Version"
+#LangString str_desc_edit_with64     ${LANG_ENGLISH} \
+#    "Add Vim to the $\"Open With...$\" context menu list \
+#     for 64-bit applications."
+
+LangString str_section_vim_rc       ${LANG_ENGLISH} \
+    "Create Default Config"
+LangString str_desc_vim_rc          ${LANG_ENGLISH} \
+    "Create a default config file (_vimrc) if one does not already exist."
+
+LangString str_group_plugin         ${LANG_ENGLISH} \
+    "Create Plugin Directories"
+LangString str_desc_plugin          ${LANG_ENGLISH} \
+    "Create plugin directories.  Plugin directories allow extending Vim \
+     by dropping a file into a directory."
+
+LangString str_section_plugin_home  ${LANG_ENGLISH} \
+    "Private"
+LangString str_desc_plugin_home     ${LANG_ENGLISH} \
+    "Create plugin directories in HOME directory."
+
+LangString str_section_plugin_vim   ${LANG_ENGLISH} \
+    "Shared"
+LangString str_desc_plugin_vim      ${LANG_ENGLISH} \
+    "Create plugin directories in Vim install directory, it is used for \
+     everybody on the system."
+
+LangString str_section_vis_vim      ${LANG_ENGLISH} \
+    "VisVim Extension"
+LangString str_desc_vis_vim         ${LANG_ENGLISH} \
+    "VisVim Extension for Microsoft Visual Studio integration."
+
+LangString str_section_nls          ${LANG_ENGLISH} \
+    "Native Language Support"
+LangString str_desc_nls             ${LANG_ENGLISH} \
+    "Install files for native language support."
+
+LangString str_unsection_register   ${LANG_ENGLISH} \
+    "Unregister Vim"
+LangString str_desc_unregister      ${LANG_ENGLISH} \
+    "Unregister Vim from the system."
+
+LangString str_unsection_exe        ${LANG_ENGLISH} \
+    "Remove Vim Executables/Runtime Files"
+LangString str_desc_rm_exe          ${LANG_ENGLISH} \
+    "Remove all Vim executables and runtime files."
+
+LangString str_ungroup_plugin       ${LANG_ENGLISH} \
+    "Remove plugin directories"
+LangString str_desc_rm_plugin       ${LANG_ENGLISH} \
+    "Remove the plugin directories if they are empty."
+
+LangString str_unsection_plugin_home ${LANG_ENGLISH} \
+    "Private"
+LangString str_desc_rm_plugin_home  ${LANG_ENGLISH} \
+    "Remove the plugin directories from HOME directory."
+
+LangString str_unsection_plugin_vim ${LANG_ENGLISH} \
+    "Shared"
+LangString str_desc_rm_plugin_vim   ${LANG_ENGLISH} \
+    "Remove the plugin directories from Vim install directory."
+
+LangString str_unsection_rootdir    ${LANG_ENGLISH} \
+    "Remove the Vim root directory"
+LangString str_desc_rm_rootdir      ${LANG_ENGLISH} \
+    "Remove the Vim root directory. It contains your Vim configuration files!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_ENGLISH} \
+#    "Found $vim_old_ver_count Vim versions on your system.$\r$\n\
+#     This installer can only handle ${VIM_MAX_OLD_VER} versions \
+#     at most.$\r$\n\
+#     Please remove some versions and start again."
+
+#LangString str_msg_invalid_root  ${LANG_ENGLISH} \
+#    "Invalid install path: $vim_install_root!$\r$\n\
+#     It should end with $\"vim$\"."
+
+#LangString str_msg_bin_mismatch  ${LANG_ENGLISH} \
+#    "Binary path mismatch!$\r$\n$\r$\n\
+#     Expect the binary path to be $\"$vim_bin_path$\",$\r$\n\
+#     but system indicates the binary path is $\"$INSTDIR$\"."
+
+#LangString str_msg_vim_running   ${LANG_ENGLISH} \
+#    "Vim is still running on your system.$\r$\n\
+#     Please close all instances of Vim before you continue."
+
+#LangString str_msg_register_ole  ${LANG_ENGLISH} \
+#    "Attempting to register Vim with OLE. \
+#     There is no message indicates whether this works or not."
+
+#LangString str_msg_unreg_ole     ${LANG_ENGLISH} \
+#    "Attempting to unregister Vim with OLE. \
+#     There is no message indicates whether this works or not."
+
+#LangString str_msg_rm_start      ${LANG_ENGLISH} \
+#    "Uninstalling the following version:"
+
+#LangString str_msg_rm_fail       ${LANG_ENGLISH} \
+#    "Fail to uninstall the following version:"
+
+#LangString str_msg_no_rm_key     ${LANG_ENGLISH} \
+#    "Cannot find uninstaller registry key."
+
+#LangString str_msg_no_rm_reg     ${LANG_ENGLISH} \
+#    "Cannot find uninstaller from registry."
+
+#LangString str_msg_no_rm_exe     ${LANG_ENGLISH} \
+#    "Cannot access uninstaller."
+
+#LangString str_msg_rm_copy_fail  ${LANG_ENGLISH} \
+#    "Fail to copy uninstaller to temporary directory."
+
+#LangString str_msg_rm_run_fail   ${LANG_ENGLISH} \
+#    "Fail to run uninstaller."
+
+#LangString str_msg_abort_install ${LANG_ENGLISH} \
+#    "Installer will abort."
+
+LangString str_msg_install_fail  ${LANG_ENGLISH} \
+    "Installation failed. Better luck next time."
+
+LangString str_msg_rm_exe_fail   ${LANG_ENGLISH} \
+    "Some files in $0 have not been deleted!$\r$\n\
+     You must do it manually."
+
+#LangString str_msg_rm_root_fail  ${LANG_ENGLISH} \
+#    "WARNING: Cannot remove $\"$vim_install_root$\", it is not empty!"
+
+LangString str_msg_uninstalling  ${LANG_ENGLISH} \
+    "Uninstalling the old version..."
+
+LangString str_msg_registering   ${LANG_ENGLISH} \
+    "Registering..."
+
+LangString str_msg_unregistering ${LANG_ENGLISH} \
+    "Unregistering..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_ENGLISH} \
+    "Choose _vimrc settings"
+LangString str_vimrc_page_subtitle ${LANG_ENGLISH} \
+    "Choose the settings for enhancement, keyboard and mouse."
+
+LangString str_msg_compat_title    ${LANG_ENGLISH} \
+    " Vi / Vim behavior "
+LangString str_msg_compat_desc     ${LANG_ENGLISH} \
+    "&Compatibility and enhancements"
+LangString str_msg_compat_vi       ${LANG_ENGLISH} \
+    "Vi compatible"
+LangString str_msg_compat_vim      ${LANG_ENGLISH} \
+    "Vim original"
+LangString str_msg_compat_defaults ${LANG_ENGLISH} \
+    "Vim with some enhancements (load defaults.vim)"
+LangString str_msg_compat_all      ${LANG_ENGLISH} \
+    "Vim with all enhancements (load vimrc_example.vim) (Default)"
+
+LangString str_msg_keymap_title   ${LANG_ENGLISH} \
+    " Mappings "
+LangString str_msg_keymap_desc    ${LANG_ENGLISH} \
+    "&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
+LangString str_msg_keymap_default ${LANG_ENGLISH} \
+    "Do not remap keys (Default)"
+LangString str_msg_keymap_windows ${LANG_ENGLISH} \
+    "Remap a few keys"
+
+LangString str_msg_mouse_title   ${LANG_ENGLISH} \
+    " Mouse "
+LangString str_msg_mouse_desc    ${LANG_ENGLISH} \
+    "&Behavior of right and left buttons"
+LangString str_msg_mouse_default ${LANG_ENGLISH} \
+    "Right: popup menu, Left: visual mode (Default)"
+LangString str_msg_mouse_windows ${LANG_ENGLISH} \
+    "Right: popup menu, Left: select mode (Windows)"
+LangString str_msg_mouse_unix    ${LANG_ENGLISH} \
+    "Right: extends selection, Left: visual mode (Unix)"
new file mode 100644
--- /dev/null
+++ b/nsis/lang/german.nsi
@@ -0,0 +1,280 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# german.nsi : German language strings for gvim NSIS installer.
+#
+# Locale ID    : 1031
+# fileencoding : UTF-8
+# Author       : Christian Brabandt, tux
+
+!insertmacro MUI_LANGUAGE "German"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_GERMAN} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_GERMAN} \
+        "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_GERMAN} \
+#    "Zielverzeichnis auswählen (muss auf $\"vim$\" enden)"
+
+LangString str_show_readme          ${LANG_GERMAN} \
+    "README-Datei nach der Installation anzeigen"
+
+# Install types:
+LangString str_type_typical         ${LANG_GERMAN} \
+    "Typisch"
+
+LangString str_type_minimal         ${LANG_GERMAN} \
+    "Minimal"
+
+LangString str_type_full            ${LANG_GERMAN} \
+    "Vollständig"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_GERMAN} \
+    "Vorherige Version deinstallieren"
+LangString str_desc_old_ver         ${LANG_GERMAN} \
+    "Vorherige installierte Versionen auf diesem System deinstallieren."
+
+LangString str_section_exe          ${LANG_GERMAN} \
+    "Vim GUI"
+LangString str_desc_exe             ${LANG_GERMAN} \
+    "Vim (Anwendung) und Laufzeitdateien (Dieser Teil ist zwingend \
+     erforderlich)."
+
+LangString str_section_console      ${LANG_GERMAN} \
+    "Vim Konsolenanwendung"
+LangString str_desc_console         ${LANG_GERMAN} \
+    "Konsolenversion von Vim."
+
+LangString str_section_batch        ${LANG_GERMAN} \
+    ".bat-Dateien erstellen"
+LangString str_desc_batch           ${LANG_GERMAN} \
+    ".bat-Dateien erstellen, um Vim in der Konsole auszuführen."
+
+LangString str_group_icons          ${LANG_GERMAN} \
+    "Vim-Verknüpfungen erstellen"
+LangString str_desc_icons           ${LANG_GERMAN} \
+    "Verknüpfungen mit Vim für einfachen Aufruf erstellen."
+
+LangString str_section_desktop      ${LANG_GERMAN} \
+    "Auf dem Desktop"
+LangString str_desc_desktop         ${LANG_GERMAN} \
+    "Icons für GVim auf dem Desktop erstellen."
+
+LangString str_section_start_menu   ${LANG_GERMAN} \
+    "Im Startmenü"
+LangString str_desc_start_menu      ${LANG_GERMAN} \
+    "Vim im Programmverzeichnis des Startmenüs hinzufügen."
+
+#LangString str_section_quick_launch ${LANG_GERMAN} \
+#    "In der Schnellstartleiste"
+#LangString str_desc_quick_launch    ${LANG_GERMAN} \
+#    "Verknüpfung zu Vim in der Schnellstartleiste ablegen."
+
+LangString str_section_edit_with    ${LANG_GERMAN} \
+    "Vim zum Kontextmenü hinzufügen"
+LangString str_desc_edit_with       ${LANG_GERMAN} \
+    "Vim in das $\"Öffnen mit...$\"-Kontextmenü einfügen."
+
+#LangString str_section_edit_with32  ${LANG_GERMAN} \
+#    "32-Bit-Version"
+#LangString str_desc_edit_with32     ${LANG_GERMAN} \
+#    "Vim in das $\"Öffnen mit...$\"-Kontextmenü \
+#     für 32-Bit-Anwendungen integrieren."
+
+#LangString str_section_edit_with64  ${LANG_GERMAN} \
+#    "64-Bit-Version"
+#LangString str_desc_edit_with64     ${LANG_GERMAN} \
+#    "Vim in das $\"Öffnen mit...$\"-Kontextmenü \
+#     für 64-Bit-Anwendungen integrieren."
+
+LangString str_section_vim_rc       ${LANG_GERMAN} \
+    "Standard-Konfigurationsdatei erstellen"
+LangString str_desc_vim_rc          ${LANG_GERMAN} \
+    "Eine Standard-Konfigurationsdatei (_vimrc) erstellen, \
+     falls noch keine existiert."
+
+LangString str_group_plugin         ${LANG_GERMAN} \
+    "Plugin-Verzeichnisse anlegen"
+LangString str_desc_plugin          ${LANG_GERMAN} \
+    "Plugin-Verzeichnisse anlegen. Plugins erlauben es, Vim \
+     um zusätzliche Funktionen zu erweitern."
+
+LangString str_section_plugin_home  ${LANG_GERMAN} \
+    "Privat"
+LangString str_desc_plugin_home     ${LANG_GERMAN} \
+    "Erstelle Plugin-Verzeichnis im HOME Benutzerverzeichnis."
+
+LangString str_section_plugin_vim   ${LANG_GERMAN} \
+    "Freigegeben"
+LangString str_desc_plugin_vim      ${LANG_GERMAN} \
+    "Plugin-Verzeichnisse im Vim-Installationsverzeichnis erstellen. Diese werden \
+     für alle Benutzer dieses Systems genutzt."
+
+LangString str_section_vis_vim      ${LANG_GERMAN} \
+    "VisVim-Erweiterung"
+LangString str_desc_vis_vim         ${LANG_GERMAN} \
+    "VisVim-Erweiterung zur Integration in Microsoft Visual Studio."
+
+LangString str_section_nls          ${LANG_GERMAN} \
+    "Unterstützung für andere Sprachen"
+LangString str_desc_nls             ${LANG_GERMAN} \
+    "Dateien zur Unterstützung anderer Sprachen als Englisch installieren."
+
+LangString str_unsection_register   ${LANG_GERMAN} \
+    "Vim deinstallieren"
+LangString str_desc_unregister      ${LANG_GERMAN} \
+    "Vim vom System entfernen."
+
+LangString str_unsection_exe        ${LANG_GERMAN} \
+    "Vim-Anwendung und Laufzeitdateien entfernen"
+LangString str_desc_rm_exe          ${LANG_GERMAN} \
+    "Alle Vim-Anwendungen und Laufzeitdateien von diesem System entfernen."
+
+LangString str_ungroup_plugin       ${LANG_GERMAN} \
+    "Entferne Plugin-Verzeichnisse"
+LangString str_desc_rm_plugin       ${LANG_GERMAN} \
+    "Entferne Plugin-Verzeichnisse, falls sie leer sind."
+
+LangString str_unsection_plugin_home ${LANG_GERMAN} \
+    "Privat"
+LangString str_desc_rm_plugin_home  ${LANG_GERMAN} \
+    "Entfernt die Plugin-Verzeichnisse aus dem HOME Benutzerverzeichnis."
+
+LangString str_unsection_plugin_vim ${LANG_GERMAN} \
+    "Freigegeben"
+LangString str_desc_rm_plugin_vim   ${LANG_GERMAN} \
+    "Entfernt das Plugin-Verzeichnis aus dem Vim-Installationsverzeichnis."
+
+LangString str_unsection_rootdir    ${LANG_GERMAN} \
+    "Entferne Vim Installationsverzeichnis"
+LangString str_desc_rm_rootdir      ${LANG_GERMAN} \
+    "Entfernt das Vim Installationsverzeichnis. Es enthält die Vim Konfigurationsdateien!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_GERMAN} \
+#    "$vim_old_ver_count Vim-Versionen auf diesem System gefunden..$\r$\n\
+#     Dieser Installer kann maximal ${VIM_MAX_OLD_VER} Versionen \
+#     handhaben.$\r$\n\
+#     Bitte alte Versionen entfernen und noch einmal probieren."
+
+#LangString str_msg_invalid_root  ${LANG_GERMAN} \
+#    "Nicht gültiges Installationsverzeichnis: $vim_install_root!$\r$\n\
+#     Der Pfad muss auf $\"vim$\" enden."
+
+#LangString str_msg_bin_mismatch  ${LANG_GERMAN} \
+#    "Pfaddiskrepanz!$\r$\n$\r$\n\
+#     Erwarte Anwendungsverzeichnis $\"$vim_bin_path$\",$\r$\n\
+#     aber fand Anwendungspfad $\"$INSTDIR$\" vor."
+
+#LangString str_msg_vim_running   ${LANG_GERMAN} \
+#    "Laufender Vim-Prozess erkannt.$\r$\n\
+#     Bitte alle laufenden Vim-Prozesse vor dem Fortfahren beenden."
+
+#LangString str_msg_register_ole  ${LANG_GERMAN} \
+#    "Versuche OLE-Registrierung durchzuführen."
+
+#LangString str_msg_unreg_ole     ${LANG_GERMAN} \
+#    "Versuche OLE-Registrierung zu löschen."
+
+#LangString str_msg_rm_start      ${LANG_GERMAN} \
+#    "Deinstalliere die folgende Version:"
+
+#LangString str_msg_rm_fail       ${LANG_GERMAN} \
+#    "Deinstallation der Version fehlgeschlagen:"
+
+#LangString str_msg_no_rm_key     ${LANG_GERMAN} \
+#    "Deinstallationsschlüssel in der Registrierungsdatenbank nicht gefunden."
+
+#LangString str_msg_no_rm_reg     ${LANG_GERMAN} \
+#    "Kein Uninstaller in der Registrierungsdatenbank gefunden."
+
+#LangString str_msg_no_rm_exe     ${LANG_GERMAN} \
+#    "Kein Zugriff auf den Uninstaller."
+
+#LangString str_msg_rm_copy_fail  ${LANG_GERMAN} \
+#    "Fehler beim Kopieren des Uninstallers in ein temporäres Verzeichnis."
+
+#LangString str_msg_rm_run_fail   ${LANG_GERMAN} \
+#    "Fehler beim Aufruf des Uninstallers."
+
+#LangString str_msg_abort_install ${LANG_GERMAN} \
+#    "Installation wird abgebrochen."
+
+LangString str_msg_install_fail  ${LANG_GERMAN} \
+    "Installation fehlerhaft beendet."
+
+LangString str_msg_rm_exe_fail   ${LANG_GERMAN} \
+    "Einige Dateien im Pfad $0 konnten nicht gelöscht werden!$\r$\n\
+     Diese Dateien müssen manuell gelöscht werden."
+
+#LangString str_msg_rm_root_fail  ${LANG_GERMAN} \
+#    "Achtung: Kann Verzeichnis $\"$vim_install_root$\" nicht entfernen, \
+#     weil es nicht leer ist!"
+
+LangString str_msg_uninstalling  ${LANG_GERMAN} \
+    "Deinstalliere alte Version..."
+
+LangString str_msg_registering   ${LANG_GERMAN} \
+    "Registriere..."
+
+LangString str_msg_unregistering ${LANG_GERMAN} \
+    "Entferne Registrierung..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_GERMAN} \
+    "Wähle _vimrc Konfigurationsoptionen"
+LangString str_vimrc_page_subtitle ${LANG_GERMAN} \
+    "Wähle Einstellungen zur Kompatibilität, Tastatur und Maus."
+
+LangString str_msg_compat_title    ${LANG_GERMAN} \
+    " Vi / Vim Verhalten "
+LangString str_msg_compat_desc     ${LANG_GERMAN} \
+    "&Kompatibilität und Erweiterungen"
+LangString str_msg_compat_vi       ${LANG_GERMAN} \
+    "Vi-kompatibel"
+LangString str_msg_compat_vim      ${LANG_GERMAN} \
+    "Vim Original"
+LangString str_msg_compat_defaults ${LANG_GERMAN} \
+    "Vim mit einigen Erweiterungen (Lädt defaults.vim)"
+LangString str_msg_compat_all      ${LANG_GERMAN} \
+    "Vim mit allen Erweiterungen (Lädt vimrc_example.vim) (Standard)"
+
+LangString str_msg_keymap_title   ${LANG_GERMAN} \
+    " Mappings für Windows Standard Tastenkombinationen "
+LangString str_msg_keymap_desc    ${LANG_GERMAN} \
+    "&Einige Tasten umkonfigurieren (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
+LangString str_msg_keymap_default ${LANG_GERMAN} \
+    "Keine Tasten umkonfigurieren (Standard)"
+LangString str_msg_keymap_windows ${LANG_GERMAN} \
+    "Einige Tasten umkonfigurieren"
+
+LangString str_msg_mouse_title   ${LANG_GERMAN} \
+    " Maus "
+LangString str_msg_mouse_desc    ${LANG_GERMAN} \
+    "&Verhalten der linken und rechten Buttons"
+LangString str_msg_mouse_default ${LANG_GERMAN} \
+    "Rechts: Popup Menü, Links: Visueller Modus (Standard)"
+LangString str_msg_mouse_windows ${LANG_GERMAN} \
+    "Rechts: Popup Menü, Links: Auswahl Modus (Windows)"
+LangString str_msg_mouse_unix    ${LANG_GERMAN} \
+    "Rechts: Auswahl erweitern, Links: Visueller Modus (Unix)"
new file mode 100644
--- /dev/null
+++ b/nsis/lang/italian.nsi
@@ -0,0 +1,290 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# italian.nsi : Italian language strings for gvim NSIS installer.
+#
+# Locale ID    : 1040
+# Locale Name  : it
+# fileencoding : latin1
+# Author       : Antonio Colombo
+
+!insertmacro MUI_LANGUAGE "Italian"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_ITALIAN} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_ITALIAN} \
+        "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_ITALIAN} \
+#    "Cartella d'installazione (il nome deve finire con $\"vim$\")"
+
+LangString str_show_readme          ${LANG_ITALIAN} \
+    "Visualizza README al termine dell'installazione"
+
+# Install types:
+LangString str_type_typical         ${LANG_ITALIAN} \
+    "Tipica"
+
+LangString str_type_minimal         ${LANG_ITALIAN} \
+    "Minima"
+
+LangString str_type_full            ${LANG_ITALIAN} \
+    "Completa"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_ITALIAN} \
+    "Disinstalla versione/i esistente/i"
+LangString str_desc_old_ver         ${LANG_ITALIAN} \
+    "Disinstalla versione/i esistente/i di Vim dal vostro sistema."
+
+LangString str_section_exe          ${LANG_ITALIAN} \
+    "Vim GUI (gvim.exe per Windows)"
+LangString str_desc_exe             ${LANG_ITALIAN} \
+    "Vim GUI programmi e file di supporto.  Questa componente è indispensabile."
+
+LangString str_section_console      ${LANG_ITALIAN} \
+    "Vim console (vim.exe per MS-DOS)"
+LangString str_desc_console         ${LANG_ITALIAN} \
+    "Versione console di Vim (vim.exe)."
+
+LangString str_section_batch        ${LANG_ITALIAN} \
+    "Crea file di invocazione (MS-DOS) .bat"
+LangString str_desc_batch           ${LANG_ITALIAN} \
+    "Crea file di invocazione .bat per varianti di Vim nella directory \
+     di Windows, da utilizzare da linea di comando (MS-DOS)."
+
+LangString str_group_icons          ${LANG_ITALIAN} \
+    "Crea icone per Vim"
+LangString str_desc_icons           ${LANG_ITALIAN} \
+    "Crea icone per Vim in vari posti, per rendere facile l'accesso."
+
+LangString str_section_desktop      ${LANG_ITALIAN} \
+    "Sul Desktop"
+LangString str_desc_desktop         ${LANG_ITALIAN} \
+    "Crea icone per programma gvim sul desktop."
+
+LangString str_section_start_menu   ${LANG_ITALIAN} \
+    "Nella cartella del menù START"
+LangString str_desc_start_menu      ${LANG_ITALIAN} \
+    "Aggiungi Vim alle cartelle del menù START.  \
+     Disponibile solo da Windows 95 in avanti."
+
+#LangString str_section_quick_launch ${LANG_ITALIAN} \
+#    "Nella barra di Avvio Veloce"
+#LangString str_desc_quick_launch    ${LANG_ITALIAN} \
+#    "Aggiungi un puntatore a Vim nella barra di Avvio Veloce."
+
+LangString str_section_edit_with    ${LANG_ITALIAN} \
+    "Aggiungi Vim al Menù Contestuale"
+LangString str_desc_edit_with       ${LANG_ITALIAN} \
+    "Aggiungi Vim alla lista contestuale $\"Apri con...$\"."
+
+#LangString str_section_edit_with32  ${LANG_ITALIAN} \
+#    "Versione a 32-bit"
+#LangString str_desc_edit_with32     ${LANG_ITALIAN} \
+#    "Aggiungi Vim alla lista contestuale $\"Apri con...$\" \
+#     per applicazioni a 32-bit."
+
+#LangString str_section_edit_with64  ${LANG_ITALIAN} \
+#    "Versione a 64-bit"
+#LangString str_desc_edit_with64     ${LANG_ITALIAN} \
+#    "Aggiungi Vim alla lista contestuale $\"Apri con...$\" \
+#     per applicazioni a 64-bit."
+
+LangString str_section_vim_rc       ${LANG_ITALIAN} \
+    "Crea Configurazione di default"
+LangString str_desc_vim_rc          ${LANG_ITALIAN} \
+    "Crea file configurazione di default (_vimrc) se non ne \
+     esiste già uno."
+
+LangString str_group_plugin         ${LANG_ITALIAN} \
+    "Crea Directory per Plugin"
+LangString str_desc_plugin          ${LANG_ITALIAN} \
+    "Crea Directory per Plugin.  Servono per aggiungere funzionalità \
+     a Vim aggiungendo file a una di queste directory."
+
+LangString str_section_plugin_home  ${LANG_ITALIAN} \
+    "Privato"
+LangString str_desc_plugin_home     ${LANG_ITALIAN} \
+    "Create plugin directories in HOME directory."
+
+LangString str_section_plugin_vim   ${LANG_ITALIAN} \
+    "Condiviso"
+LangString str_desc_plugin_vim      ${LANG_ITALIAN} \
+    "Crea Directory Plugin nella directory di installazione di Vim \
+     per uso da parte di tutti gli utenti di questo sistema."
+
+LangString str_section_vis_vim      ${LANG_ITALIAN} \
+    "Estensione VisVim"
+LangString str_desc_vis_vim         ${LANG_ITALIAN} \
+    "Estensione VisVim per integrazione con Microsoft Visual Studio."
+
+LangString str_section_nls          ${LANG_ITALIAN} \
+    "Supporto Multilingue (NLS)"
+LangString str_desc_nls             ${LANG_ITALIAN} \
+    "Installa file per supportare messaggi in diverse lingue."
+
+LangString str_unsection_register   ${LANG_ITALIAN} \
+    "Togli Vim dal Registry"
+LangString str_desc_unregister      ${LANG_ITALIAN} \
+    "Togli Vim dal Registry di configurazione sistema."
+
+LangString str_unsection_exe        ${LANG_ITALIAN} \
+    "Cancella programmi/file_ausiliari Vim"
+LangString str_desc_rm_exe          ${LANG_ITALIAN} \
+    "Cancella tutti i programmi/file_ausiliari di Vim."
+
+LangString str_unsection_rc         ${LANG_ITALIAN} \
+    "Cancella file di configurazione di Vim"
+LangString str_desc_rm_rc           ${LANG_ITALIAN} \
+    "Cancella file di configurazione di Vim $vim_install_root\_vimrc. \
+     Da saltare se avete personalizzato il file di configurazione."
+
+LangString str_ungroup_plugin       ${LANG_ITALIAN} \
+    "Remove plugin directories"
+LangString str_desc_rm_plugin       ${LANG_ITALIAN} \
+    "Remove the plugin directories if they are empty."
+
+LangString str_unsection_plugin_home ${LANG_ITALIAN} \
+    "Privato"
+LangString str_desc_rm_plugin_home  ${LANG_ITALIAN} \
+    "Remove the plugin directories from HOME directory."
+
+LangString str_unsection_plugin_vim ${LANG_ITALIAN} \
+    "Condiviso"
+LangString str_desc_rm_plugin_vim   ${LANG_ITALIAN} \
+    "Remove the plugin directories from Vim install directory."
+
+LangString str_unsection_rootdir    ${LANG_ITALIAN} \
+    "Remove the Vim root directory"
+LangString str_desc_rm_rootdir      ${LANG_ITALIAN} \
+    "Remove the Vim root directory. It contains your Vim configuration files!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_ITALIAN} \
+#    "Trovate $vim_old_ver_count versioni di Vim sul vostro sistema.$\r$\n\
+#     Questo programma di installazione può gestirne solo \
+#     ${VIM_MAX_OLD_VER}.$\r$\n\
+#     Disinstallate qualche versione precedente e ricominciate."
+
+#LangString str_msg_invalid_root  ${LANG_ITALIAN} \
+#    "Nome di directory di installazione non valida: $vim_install_root!$\r$\n\
+#     Dovrebbe terminare con $\"vim$\"."
+
+#LangString str_msg_bin_mismatch  ${LANG_ITALIAN} \
+#    "Incongruenza di installazione!$\r$\n$\r$\n\
+#     Cartella di installazione dev'essere $\"$vim_bin_path$\",$\r$\n\
+#     ma il sistema segnala invece $\"$INSTDIR$\"."
+
+#LangString str_msg_vim_running   ${LANG_ITALIAN} \
+#    "Vim ancora in esecuzione sul vostro sistema.$\r$\n\
+#     Chiudete tutte le sessioni attive di Vim per continuare."
+
+#LangString str_msg_register_ole  ${LANG_ITALIAN} \
+#    "Tentativo di registrazione di Vim con OLE. \
+#     Non ci sono messaggi che indicano se ha funzionato o no."
+
+#LangString str_msg_unreg_ole     ${LANG_ITALIAN} \
+#    "Tentativo di togliere da Registry  Vim con OLE. \
+#     Non ci sono messaggi che indicano se ha funzionato o no."
+
+#LangString str_msg_rm_start      ${LANG_ITALIAN} \
+#    "Disinstallazione delle seguenti versioni:"
+
+#LangString str_msg_rm_fail       ${LANG_ITALIAN} \
+#    "Disinstallazione non riuscita per la seguente versione:"
+
+#LangString str_msg_no_rm_key     ${LANG_ITALIAN} \
+#    "Non riesco a trovare chiave di disinstallazione nel Registry."
+
+#LangString str_msg_no_rm_reg     ${LANG_ITALIAN} \
+#    "Non riesco a trovare programma disinstallazione nel Registry."
+
+#LangString str_msg_no_rm_exe     ${LANG_ITALIAN} \
+#    "Non riesco a utilizzare programma disinstallazione."
+
+#LangString str_msg_rm_copy_fail  ${LANG_ITALIAN} \
+#    "Non riesco a copiare programma disinstallazione a una \
+#     directory temporanea."
+
+#LangString str_msg_rm_run_fail   ${LANG_ITALIAN} \
+#    "Non riesco a eseguire programma disinstallazione."
+
+#LangString str_msg_abort_install ${LANG_ITALIAN} \
+#    "Il programma di disinstallazione verrà chiuso senza aver fatto nulla."
+
+LangString str_msg_install_fail  ${LANG_ITALIAN} \
+    "Installazione non riuscita. Miglior fortuna alla prossima!"
+
+LangString str_msg_rm_exe_fail   ${LANG_ITALIAN} \
+    "Alcuni file in $0 non sono stati cancellati!$\r$\n\
+     Dovreste cancellarli voi stessi."
+
+#LangString str_msg_rm_root_fail  ${LANG_ITALIAN} \
+#    "AVVISO: Non posso cancellare $\"$vim_install_root$\", non è vuota!"
+
+LangString str_msg_uninstalling  ${LANG_ITALIAN} \
+    "Uninstalling the old version..."
+
+LangString str_msg_registering   ${LANG_ITALIAN} \
+    "Registering..."
+
+LangString str_msg_unregistering ${LANG_ITALIAN} \
+    "Unregistering..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_ITALIAN} \
+    "Choose _vimrc settings"
+LangString str_vimrc_page_subtitle ${LANG_ITALIAN} \
+    "Choose the settings for enhancement, keyboard and mouse."
+
+LangString str_msg_compat_title    ${LANG_ITALIAN} \
+    " Vi / Vim behavior "
+LangString str_msg_compat_desc     ${LANG_ITALIAN} \
+    "&Compatibility and enhancements"
+LangString str_msg_compat_vi       ${LANG_ITALIAN} \
+    "Vi compatible"
+LangString str_msg_compat_vim      ${LANG_ITALIAN} \
+    "Vim original"
+LangString str_msg_compat_defaults ${LANG_ITALIAN} \
+    "Vim with some enhancements (load defaults.vim)"
+LangString str_msg_compat_all      ${LANG_ITALIAN} \
+    "Vim with all enhancements (load vimrc_example.vim) (Default)"
+
+LangString str_msg_keymap_title   ${LANG_ITALIAN} \
+    " Mappings "
+LangString str_msg_keymap_desc    ${LANG_ITALIAN} \
+    "&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
+LangString str_msg_keymap_default ${LANG_ITALIAN} \
+    "Do not remap keys (Default)"
+LangString str_msg_keymap_windows ${LANG_ITALIAN} \
+    "Remap a few keys"
+
+LangString str_msg_mouse_title   ${LANG_ITALIAN} \
+    " Mouse "
+LangString str_msg_mouse_desc    ${LANG_ITALIAN} \
+    "&Behavior of right and left buttons"
+LangString str_msg_mouse_default ${LANG_ITALIAN} \
+    "Right: popup menu, Left: visual mode (Default)"
+LangString str_msg_mouse_windows ${LANG_ITALIAN} \
+    "Right: popup menu, Left: select mode (Windows)"
+LangString str_msg_mouse_unix    ${LANG_ITALIAN} \
+    "Right: extends selection, Left: visual mode (Unix)"
new file mode 100644
--- /dev/null
+++ b/nsis/lang/japanese.nsi
@@ -0,0 +1,287 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# japanese.nsi: Japanese language strings for gvim NSIS installer.
+#
+# Locale ID    : 1041
+# fileencoding : UTF-8
+# Author       : Ken Takata
+
+!insertmacro MUI_LANGUAGE "Japanese"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_JAPANESE} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_JAPANESE} \
+        "$(^Name) Uninstall"
+
+# Workarounds for NSIS Japanese translation. The messages are too long.
+# These should be better to be fixed by the NSIS upstream.
+LangString ^SpaceAvailable   ${LANG_JAPANESE} \
+        "利用可能なディスク容量:"
+LangString ^SpaceRequired    ${LANG_JAPANESE} \
+        "必要なディスク容量:"
+# Fix another NSIS Japanese translation. The access key was missing.
+LangString ^InstallBtn       ${LANG_JAPANESE} \
+        "インストール(&I)"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_JAPANESE} \
+#    "Destination Folder (Must end with $\"vim$\")"
+
+LangString str_show_readme          ${LANG_JAPANESE} \
+    "インストール完了後に README を表示する"
+
+# Install types:
+LangString str_type_typical         ${LANG_JAPANESE} \
+    "通常"
+
+LangString str_type_minimal         ${LANG_JAPANESE} \
+    "最小"
+
+LangString str_type_full            ${LANG_JAPANESE} \
+    "全て"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_JAPANESE} \
+    "既存のバージョンをアンインストール"
+LangString str_desc_old_ver         ${LANG_JAPANESE} \
+    "すでにインストールされている Vim をシステムから削除します。"
+
+LangString str_section_exe          ${LANG_JAPANESE} \
+    "Vim GUI とランタイムファイル"
+LangString str_desc_exe             ${LANG_JAPANESE} \
+    "Vim GUI 実行ファイルとラインタイムファイル。このコンポーネントは必須です。"
+
+LangString str_section_console      ${LANG_JAPANESE} \
+    "Vim コンソールプログラム"
+LangString str_desc_console         ${LANG_JAPANESE} \
+    "コンソール版の Vim (vim.exe)。"
+
+LangString str_section_batch        ${LANG_JAPANESE} \
+    ".bat ファイルを作成"
+LangString str_desc_batch           ${LANG_JAPANESE} \
+    "コマンドラインから Vim と関連コマンドを実行できるように、.bat ファイルを Windows ディレクトリに作成します。"
+
+LangString str_group_icons          ${LANG_JAPANESE} \
+    "Vim のアイコンを作成"
+LangString str_desc_icons           ${LANG_JAPANESE} \
+    "Vim を簡単に実行できるように、いくつかの場所にアイコンを作成します。"
+
+LangString str_section_desktop      ${LANG_JAPANESE} \
+    "デスクトップ上"
+LangString str_desc_desktop         ${LANG_JAPANESE} \
+    "gVim 実行ファイルのアイコンをデスクトップ上に作成します。"
+
+LangString str_section_start_menu   ${LANG_JAPANESE} \
+    "スタートメニューのプログラムフォルダー上"
+LangString str_desc_start_menu      ${LANG_JAPANESE} \
+    "Vim のアイコンをスタートメニューのプログラムフォルダー上に作成します。"
+
+#LangString str_section_quick_launch ${LANG_JAPANESE} \
+#    "In the Quick Launch Bar"
+#LangString str_desc_quick_launch    ${LANG_JAPANESE} \
+#    "Add Vim shortcut in the quick launch bar."
+
+LangString str_section_edit_with    ${LANG_JAPANESE} \
+    "Vim のコンテキストメニューを追加"
+LangString str_desc_edit_with       ${LANG_JAPANESE} \
+    "$\"Vimで編集する$\" をコンテキストメニューに追加します。"
+
+#LangString str_section_edit_with32  ${LANG_JAPANESE} \
+#    "32-bit Version"
+#LangString str_desc_edit_with32     ${LANG_JAPANESE} \
+#    "Add Vim to the $\"Open With...$\" context menu list \
+#     for 32-bit applications."
+
+#LangString str_section_edit_with64  ${LANG_JAPANESE} \
+#    "64-bit Version"
+#LangString str_desc_edit_with64     ${LANG_JAPANESE} \
+#    "Add Vim to the $\"Open With...$\" context menu list \
+#     for 64-bit applications."
+
+LangString str_section_vim_rc       ${LANG_JAPANESE} \
+    "既定のコンフィグを作成"
+LangString str_desc_vim_rc          ${LANG_JAPANESE} \
+    "もし無ければ、既定のコンフィグファイル (_vimrc) を作成します。"
+
+LangString str_group_plugin         ${LANG_JAPANESE} \
+    "プラグインディレクトリを作成"
+LangString str_desc_plugin          ${LANG_JAPANESE} \
+    "プラグインディレクトリを作成します。そこにプラグインファイルを置くことで Vim を拡張することができます。"
+
+LangString str_section_plugin_home  ${LANG_JAPANESE} \
+    "個人用"
+LangString str_desc_plugin_home     ${LANG_JAPANESE} \
+    "プラグインディレクトリをホームディレクトリに作成します。"
+
+LangString str_section_plugin_vim   ${LANG_JAPANESE} \
+    "共用"
+LangString str_desc_plugin_vim      ${LANG_JAPANESE} \
+    "プラグインディレクトリを Vim のインストールディレクトリに作成します。システムの全員で共有されます。"
+
+LangString str_section_vis_vim      ${LANG_JAPANESE} \
+    "VisVim 拡張"
+LangString str_desc_vis_vim         ${LANG_JAPANESE} \
+    "Microsoft Visual Studio 統合用の VisVim 拡張。"
+
+LangString str_section_nls          ${LANG_JAPANESE} \
+    "多言語サポート"
+LangString str_desc_nls             ${LANG_JAPANESE} \
+    "多言語サポート用のファイルをインストールします。"
+
+LangString str_unsection_register   ${LANG_JAPANESE} \
+    "Vim を登録解除"
+LangString str_desc_unregister      ${LANG_JAPANESE} \
+    "Vim をシステムから登録解除します。"
+
+LangString str_unsection_exe        ${LANG_JAPANESE} \
+    "Vim の実行ファイル/ランタイムファイルを削除"
+LangString str_desc_rm_exe          ${LANG_JAPANESE} \
+    "全ての Vim の実行ファイルとランタイムファイルを削除します。"
+
+LangString str_ungroup_plugin       ${LANG_JAPANESE} \
+    "プラグインディレクトリを削除"
+LangString str_desc_rm_plugin       ${LANG_JAPANESE} \
+    "プラグインディレクトリが空であればそれを削除します。"
+
+LangString str_unsection_plugin_home ${LANG_JAPANESE} \
+    "個人用"
+LangString str_desc_rm_plugin_home  ${LANG_JAPANESE} \
+    "プラグインディレクトリをホームディレクトリから削除します。"
+
+LangString str_unsection_plugin_vim ${LANG_JAPANESE} \
+    "共用"
+LangString str_desc_rm_plugin_vim   ${LANG_JAPANESE} \
+    "プラグインディレクトリを Vim のインストールディレクトリから削除します。"
+
+LangString str_unsection_rootdir    ${LANG_JAPANESE} \
+    "Vim のトップディレクトリを削除"
+LangString str_desc_rm_rootdir      ${LANG_JAPANESE} \
+    "Vim のトップディレクトリを削除します。あなたの Vim の設定ファイルも含まれていることに注意してください!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_JAPANESE} \
+#    "Found $vim_old_ver_count Vim versions on your system.$\r$\n\
+#     This installer can only handle ${VIM_MAX_OLD_VER} versions \
+#     at most.$\r$\n\
+#     Please remove some versions and start again."
+
+#LangString str_msg_invalid_root  ${LANG_JAPANESE} \
+#    "Invalid install path: $vim_install_root!$\r$\n\
+#     It should end with $\"vim$\"."
+
+#LangString str_msg_bin_mismatch  ${LANG_JAPANESE} \
+#    "Binary path mismatch!$\r$\n$\r$\n\
+#     Expect the binary path to be $\"$vim_bin_path$\",$\r$\n\
+#     but system indicates the binary path is $\"$INSTDIR$\"."
+
+#LangString str_msg_vim_running   ${LANG_JAPANESE} \
+#    "Vim is still running on your system.$\r$\n\
+#     Please close all instances of Vim before you continue."
+
+#LangString str_msg_register_ole  ${LANG_JAPANESE} \
+#    "Attempting to register Vim with OLE. \
+#     There is no message indicates whether this works or not."
+
+#LangString str_msg_unreg_ole     ${LANG_JAPANESE} \
+#    "Attempting to unregister Vim with OLE. \
+#     There is no message indicates whether this works or not."
+
+#LangString str_msg_rm_start      ${LANG_JAPANESE} \
+#    "Uninstalling the following version:"
+
+#LangString str_msg_rm_fail       ${LANG_JAPANESE} \
+#    "Fail to uninstall the following version:"
+
+#LangString str_msg_no_rm_key     ${LANG_JAPANESE} \
+#    "Cannot find uninstaller registry key."
+
+#LangString str_msg_no_rm_reg     ${LANG_JAPANESE} \
+#    "Cannot find uninstaller from registry."
+
+#LangString str_msg_no_rm_exe     ${LANG_JAPANESE} \
+#    "Cannot access uninstaller."
+
+#LangString str_msg_rm_copy_fail  ${LANG_JAPANESE} \
+#    "Fail to copy uninstaller to temporary directory."
+
+#LangString str_msg_rm_run_fail   ${LANG_JAPANESE} \
+#    "Fail to run uninstaller."
+
+#LangString str_msg_abort_install ${LANG_JAPANESE} \
+#    "Installer will abort."
+
+LangString str_msg_install_fail  ${LANG_JAPANESE} \
+    "インストールに失敗しました。次はうまくいくことを祈ります。"
+
+LangString str_msg_rm_exe_fail   ${LANG_JAPANESE} \
+    "$0 内の一部のファイルは削除できませんでした!$\r$\n\
+     手動で削除する必要があります。"
+
+#LangString str_msg_rm_root_fail  ${LANG_JAPANESE} \
+#    "WARNING: Cannot remove $\"$vim_install_root$\", it is not empty!"
+
+LangString str_msg_uninstalling  ${LANG_JAPANESE} \
+    "古いバージョンをアンインストールしています..."
+
+LangString str_msg_registering   ${LANG_JAPANESE} \
+    "登録中..."
+
+LangString str_msg_unregistering ${LANG_JAPANESE} \
+    "登録解除中..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_JAPANESE} \
+    "_vimrc の設定を選んでください"
+LangString str_vimrc_page_subtitle ${LANG_JAPANESE} \
+    "拡張やキーボード、マウスの設定を選んでください。"
+
+LangString str_msg_compat_title    ${LANG_JAPANESE} \
+    " Vi / Vim の動作 "
+LangString str_msg_compat_desc     ${LANG_JAPANESE} \
+    "互換性と拡張(&C)"
+LangString str_msg_compat_vi       ${LANG_JAPANESE} \
+    "Vi 互換"
+LangString str_msg_compat_vim      ${LANG_JAPANESE} \
+    "Vim 独自"
+LangString str_msg_compat_defaults ${LANG_JAPANESE} \
+    "Vim 独自と多少の拡張 (defaults.vim を読み込み)"
+LangString str_msg_compat_all      ${LANG_JAPANESE} \
+    "Vim 独自と全ての拡張 (vimrc_example.vim を読み込み) (既定)"
+
+LangString str_msg_keymap_title   ${LANG_JAPANESE} \
+    " マッピング "
+LangString str_msg_keymap_desc    ${LANG_JAPANESE} \
+    "Windows用に一部のキーをリマップする(&R) (例: Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F など)"
+LangString str_msg_keymap_default ${LANG_JAPANESE} \
+    "リマップしない (既定)"
+LangString str_msg_keymap_windows ${LANG_JAPANESE} \
+    "リマップする"
+
+LangString str_msg_mouse_title   ${LANG_JAPANESE} \
+    " マウス "
+LangString str_msg_mouse_desc    ${LANG_JAPANESE} \
+    "右ボタンと左ボタンの動作(&B)"
+LangString str_msg_mouse_default ${LANG_JAPANESE} \
+    "右:ポップアップメニュー、左:ビジュアルモード (既定)"
+LangString str_msg_mouse_windows ${LANG_JAPANESE} \
+    "右:ポップアップメニュー、左:選択モード (Windows)"
+LangString str_msg_mouse_unix    ${LANG_JAPANESE} \
+    "右:選択を拡張、左:ビジュアルモード (Unix)"
new file mode 100644
--- /dev/null
+++ b/nsis/lang/simpchinese.nsi
@@ -0,0 +1,277 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# simpchinese.nsi: Simplified Chinese language strings for gvim NSIS
+# installer.
+#
+# Locale ID    : 2052
+# fileencoding : UTF-8
+# Author       : Guopeng Wen
+
+!insertmacro MUI_LANGUAGE "SimpChinese"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_SIMPCHINESE} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_SIMPCHINESE} \
+        "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_SIMPCHINESE} \
+#    "安装路径 (必须以 vim 结尾)"
+
+LangString str_show_readme          ${LANG_SIMPCHINESE} \
+    "安装完成后显示 README 文件"
+
+# Install types:
+LangString str_type_typical         ${LANG_SIMPCHINESE} \
+    "典型安装"
+
+LangString str_type_minimal         ${LANG_SIMPCHINESE} \
+    "最小安装"
+
+LangString str_type_full            ${LANG_SIMPCHINESE} \
+    "完全安装"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_SIMPCHINESE} \
+    "卸载旧版本"
+LangString str_desc_old_ver         ${LANG_SIMPCHINESE} \
+    "卸载系统上旧版本的 Vim。"
+
+LangString str_section_exe          ${LANG_SIMPCHINESE} \
+    "安装 Vim 图形界面"
+LangString str_desc_exe             ${LANG_SIMPCHINESE} \
+    "安装 Vim 图形界面及脚本。此为必选安装。"
+
+LangString str_section_console      ${LANG_SIMPCHINESE} \
+    "安装 Vim 命令行程序"
+LangString str_desc_console         ${LANG_SIMPCHINESE} \
+    "安装 Vim 命令行程序 (vim.exe)。该程序在命令行窗口中运行。"
+
+LangString str_section_batch        ${LANG_SIMPCHINESE} \
+    "安装批处理文件"
+LangString str_desc_batch           ${LANG_SIMPCHINESE} \
+    "为 Vim 的各种变体创建批处理程序,以便在命令行下运行 Vim。"
+
+LangString str_group_icons          ${LANG_SIMPCHINESE} \
+    "创建 Vim 图标"
+LangString str_desc_icons           ${LANG_SIMPCHINESE} \
+    "为 Vim 创建若干图标,以方便使用 Vim。"
+
+LangString str_section_desktop      ${LANG_SIMPCHINESE} \
+    "在桌面上"
+LangString str_desc_desktop         ${LANG_SIMPCHINESE} \
+    "在桌面上为 Vim 创建若干图标,以方便启动 Vim。"
+
+LangString str_section_start_menu   ${LANG_SIMPCHINESE} \
+    "在启动菜单的程序菜单下"
+LangString str_desc_start_menu      ${LANG_SIMPCHINESE} \
+    "在启动菜单的程序菜单下添加 Vim 组。适用于 Windows 95 及以上版本。"
+
+#LangString str_section_quick_launch ${LANG_SIMPCHINESE} \
+#    "在快速启动启动栏中"
+#LangString str_desc_quick_launch    ${LANG_SIMPCHINESE} \
+#    "在快速启动栏中添加 Vim 图标。"
+
+LangString str_section_edit_with    ${LANG_SIMPCHINESE} \
+    "安装快捷菜单"
+LangString str_desc_edit_with       ${LANG_SIMPCHINESE} \
+    "将 Vim 添加到“打开方式”快捷菜单中。"
+
+#LangString str_section_edit_with32  ${LANG_SIMPCHINESE} \
+#    "32 位版本"
+#LangString str_desc_edit_with32     ${LANG_SIMPCHINESE} \
+#    "将 Vim 添加到 32 位程序的“打开方式”快捷菜单中。"
+
+#LangString str_section_edit_with64  ${LANG_SIMPCHINESE} \
+#    "64 位版本"
+#LangString str_desc_edit_with64     ${LANG_SIMPCHINESE} \
+#    "将 Vim 添加到 64 位程序的“打开方式”快捷菜单中。"
+
+LangString str_section_vim_rc       ${LANG_SIMPCHINESE} \
+    "创建缺省配置文件"
+LangString str_desc_vim_rc          ${LANG_SIMPCHINESE} \
+    "在安装目录下生成缺省的 Vim 配置文件(_vimrc)。\
+     如果该文件已经存在,则略过此项。"
+
+LangString str_group_plugin         ${LANG_SIMPCHINESE} \
+    "创建插件目录"
+LangString str_desc_plugin          ${LANG_SIMPCHINESE} \
+    "创建(空的)插件目录结构。插件目录用于安装 Vim 扩展插件,\
+     只要将文件复制到相关的子目录中即可。"
+
+LangString str_section_plugin_home  ${LANG_SIMPCHINESE} \
+    "私有插件目录"
+LangString str_desc_plugin_home     ${LANG_SIMPCHINESE} \
+    "Create plugin directories in HOME directory."
+
+LangString str_section_plugin_vim   ${LANG_SIMPCHINESE} \
+    "公共插件目录"
+LangString str_desc_plugin_vim      ${LANG_SIMPCHINESE} \
+    "在 Vim 安装目录下创建(空的)插件目录结构,系统上所有用户都能使用安装在\
+     该目录下的扩展插件。"
+
+LangString str_section_vis_vim      ${LANG_SIMPCHINESE} \
+    "安装 VisVim 插件"
+LangString str_desc_vis_vim         ${LANG_SIMPCHINESE} \
+    "安装用于与微软 Microsoft Visual Studio 进行集成的 VisVim 插件。"
+
+LangString str_section_nls          ${LANG_SIMPCHINESE} \
+    "安装多语言支持"
+LangString str_desc_nls             ${LANG_SIMPCHINESE} \
+    "安装用于多语言支持的文件。"
+
+LangString str_unsection_register   ${LANG_SIMPCHINESE} \
+    "删除 Vim 系统配置"
+LangString str_desc_unregister      ${LANG_SIMPCHINESE} \
+    "删除和 Vim 相关的系统配置。"
+
+LangString str_unsection_exe        ${LANG_SIMPCHINESE} \
+    "删除 Vim 执行文件以及脚本"
+LangString str_desc_rm_exe          ${LANG_SIMPCHINESE} \
+    "删除 Vim 的所有执行文件及脚本。"
+
+LangString str_ungroup_plugin       ${LANG_SIMPCHINESE} \
+    "Remove plugin directories"
+LangString str_desc_rm_plugin       ${LANG_SIMPCHINESE} \
+    "Remove the plugin directories if they are empty."
+
+LangString str_unsection_plugin_home ${LANG_SIMPCHINESE} \
+    "私有插件目录"
+LangString str_desc_rm_plugin_home  ${LANG_SIMPCHINESE} \
+    "Remove the plugin directories from HOME directory."
+
+LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \
+    "公共插件目录"
+LangString str_desc_rm_plugin_vim   ${LANG_SIMPCHINESE} \
+    "Remove the plugin directories from Vim install directory."
+
+LangString str_unsection_rootdir    ${LANG_SIMPCHINESE} \
+    "Remove the Vim root directory"
+LangString str_desc_rm_rootdir      ${LANG_SIMPCHINESE} \
+    "Remove the Vim root directory. It contains your Vim configuration files!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_SIMPCHINESE} \
+#    "您的系统上安装了 $vim_old_ver_count 个不同版本的 Vim,$\r$\n\
+#     但本安装程序最多只能处理 ${VIM_MAX_OLD_VER} 个版本。$\r$\n\
+#     请您手工删除一些旧版本以后再运行本安装程序。"
+
+#LangString str_msg_invalid_root  ${LANG_SIMPCHINESE} \
+#    "安装路径“$vim_install_root”无效!$\r$\n\
+#     该路径必须以 vim 结尾。"
+
+#LangString str_msg_bin_mismatch  ${LANG_SIMPCHINESE} \
+#    "Vim 执行程序安装路径异常!$\r$\n$\r$\n\
+#     该版本 Vim 的执行程序安装路径应该是“$vim_bin_path”,$\r$\n\
+#     而系统却指示该路径为“$INSTDIR”。"
+
+#LangString str_msg_vim_running   ${LANG_SIMPCHINESE} \
+#    "您的系统上仍有 Vim 在运行,$\r$\n\
+#     请您在执行后续步骤前退出这些 Vim。"
+
+#LangString str_msg_register_ole  ${LANG_SIMPCHINESE} \
+#    "试图注册 Vim OLE 服务器。请注意无论成功与否都不再显示进一步的信息。"
+
+#LangString str_msg_unreg_ole     ${LANG_SIMPCHINESE} \
+#    "试图注销 Vim OLE 服务器。请注意无论成功与否都不再显示进一步的信息。"
+
+#LangString str_msg_rm_start      ${LANG_SIMPCHINESE} \
+#    "开始卸载以下版本:"
+
+#LangString str_msg_rm_fail       ${LANG_SIMPCHINESE} \
+#    "以下版本卸载失败:"
+
+#LangString str_msg_no_rm_key     ${LANG_SIMPCHINESE} \
+#    "找不到卸载程序的注册表键。"
+
+#LangString str_msg_no_rm_reg     ${LANG_SIMPCHINESE} \
+#    "在注册表中未找到卸载程序路径。"
+
+#LangString str_msg_no_rm_exe     ${LANG_SIMPCHINESE} \
+#    "找不到卸载程序。"
+
+#LangString str_msg_rm_copy_fail  ${LANG_SIMPCHINESE} \
+#    "无法将卸载程序复制到临时目录。"
+
+#LangString str_msg_rm_run_fail   ${LANG_SIMPCHINESE} \
+#    "执行卸载程序失败。"
+
+#LangString str_msg_abort_install ${LANG_SIMPCHINESE} \
+#    "安装程序将退出。"
+
+LangString str_msg_install_fail  ${LANG_SIMPCHINESE} \
+    "安装失败。祝您下次好运。"
+
+LangString str_msg_rm_exe_fail   ${LANG_SIMPCHINESE} \
+    "目录“$0”下有部分文件删除失败!$\r$\n\
+     您只能手工删除该目录。"
+
+#LangString str_msg_rm_root_fail  ${LANG_SIMPCHINESE} \
+#    "警告:无法删除 Vim 安装目录“$vim_install_root”,\
+#     该目录下仍有其他文件。"
+
+LangString str_msg_uninstalling  ${LANG_SIMPCHINESE} \
+    "Uninstalling the old version..."
+
+LangString str_msg_registering   ${LANG_SIMPCHINESE} \
+    "Registering..."
+
+LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
+    "Unregistering..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_SIMPCHINESE} \
+    "Choose _vimrc settings"
+LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \
+    "Choose the settings for enhancement, keyboard and mouse."
+
+LangString str_msg_compat_title    ${LANG_SIMPCHINESE} \
+    " Vi / Vim behavior "
+LangString str_msg_compat_desc     ${LANG_SIMPCHINESE} \
+    "&Compatibility and enhancements"
+LangString str_msg_compat_vi       ${LANG_SIMPCHINESE} \
+    "Vi compatible"
+LangString str_msg_compat_vim      ${LANG_SIMPCHINESE} \
+    "Vim original"
+LangString str_msg_compat_defaults ${LANG_SIMPCHINESE} \
+    "Vim with some enhancements (load defaults.vim)"
+LangString str_msg_compat_all      ${LANG_SIMPCHINESE} \
+    "Vim with all enhancements (load vimrc_example.vim) (Default)"
+
+LangString str_msg_keymap_title   ${LANG_SIMPCHINESE} \
+    " Mappings "
+LangString str_msg_keymap_desc    ${LANG_SIMPCHINESE} \
+    "&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
+LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \
+    "Do not remap keys (Default)"
+LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \
+    "Remap a few keys"
+
+LangString str_msg_mouse_title   ${LANG_SIMPCHINESE} \
+    " Mouse "
+LangString str_msg_mouse_desc    ${LANG_SIMPCHINESE} \
+    "&Behavior of right and left buttons"
+LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \
+    "Right: popup menu, Left: visual mode (Default)"
+LangString str_msg_mouse_windows ${LANG_SIMPCHINESE} \
+    "Right: popup menu, Left: select mode (Windows)"
+LangString str_msg_mouse_unix    ${LANG_SIMPCHINESE} \
+    "Right: extends selection, Left: visual mode (Unix)"
new file mode 100644
--- /dev/null
+++ b/nsis/lang/tradchinese.nsi
@@ -0,0 +1,278 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# tradchinese.nsi: Traditional Chinese language strings for gvim NSIS
+# installer.
+#
+# Locale ID    : 1028
+# fileencoding : UTF-8
+# Author       : Guopeng Wen
+
+!insertmacro MUI_LANGUAGE "TradChinese"
+
+
+# Overwrite the default translation.
+# These string should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_TRADCHINESE} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_TRADCHINESE} \
+        "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_TRADCHINESE} \
+#    "安裝資料夾 (必須以 vim 結尾)"
+
+LangString str_show_readme          ${LANG_TRADCHINESE} \
+    "安裝完成後顯示 README 檔案"
+
+# Install types:
+LangString str_type_typical         ${LANG_TRADCHINESE} \
+    "典型安裝"
+
+LangString str_type_minimal         ${LANG_TRADCHINESE} \
+    "最小安裝"
+
+LangString str_type_full            ${LANG_TRADCHINESE} \
+    "完全安裝"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_TRADCHINESE} \
+    "移除舊版本"
+LangString str_desc_old_ver         ${LANG_TRADCHINESE} \
+    "移除閣下電腦上舊版本的 Vim。"
+
+LangString str_section_exe          ${LANG_TRADCHINESE} \
+    "安裝 Vim 圖形界面程式"
+LangString str_desc_exe             ${LANG_TRADCHINESE} \
+    "安裝 Vim 圖形界面程式及腳本。此為必選安裝。"
+
+LangString str_section_console      ${LANG_TRADCHINESE} \
+    "安裝 Vim 命令行程式"
+LangString str_desc_console         ${LANG_TRADCHINESE} \
+    "安裝 Vim 命令行程式 (vim.exe)。該程式在控制臺窗口中運行。"
+
+LangString str_section_batch        ${LANG_TRADCHINESE} \
+    "安裝批次檔案"
+LangString str_desc_batch           ${LANG_TRADCHINESE} \
+    "為 Vim 的各種變體創建批次檔,以便在命令行下啟動 Vim。"
+
+LangString str_group_icons          ${LANG_TRADCHINESE} \
+    "建立 Vim 圖示"
+LangString str_desc_icons           ${LANG_TRADCHINESE} \
+    "建立若干 Vim 圖示,以便于使用 Vim。"
+
+LangString str_section_desktop      ${LANG_TRADCHINESE} \
+    "於桌面"
+LangString str_desc_desktop         ${LANG_TRADCHINESE} \
+    "建立若干 Vim 圖示於桌面上,以方便啟動 Vim。"
+
+LangString str_section_start_menu   ${LANG_TRADCHINESE} \
+    "於「開始」功能表的「程式」集"
+LangString str_desc_start_menu      ${LANG_TRADCHINESE} \
+    "在「開始」功能表的「程式」集中建立 Vim 啟動組。\
+     適用于 Windows 95 及以上版本。"
+
+#LangString str_section_quick_launch ${LANG_TRADCHINESE} \
+#    "於快速啟動列"
+#LangString str_desc_quick_launch    ${LANG_TRADCHINESE} \
+#    "在快速啟動列中建立 Vim 圖示。"
+
+LangString str_section_edit_with    ${LANG_TRADCHINESE} \
+    "安裝快捷選單"
+LangString str_desc_edit_with       ${LANG_TRADCHINESE} \
+    "在「打開方式」快捷選單中添加 Vim 項。"
+
+#LangString str_section_edit_with32  ${LANG_TRADCHINESE} \
+#    "32 位元版本"
+#LangString str_desc_edit_with32     ${LANG_TRADCHINESE} \
+#    "在 32 位元程式的「打開方式」快捷選單中添加 Vim 項。"
+
+#LangString str_section_edit_with64  ${LANG_TRADCHINESE} \
+#    "64 位元版本"
+#LangString str_desc_edit_with64     ${LANG_TRADCHINESE} \
+#    "在 64 位元程式的「打開方式」快捷選單中添加 Vim 項。"
+
+LangString str_section_vim_rc       ${LANG_TRADCHINESE} \
+    "建立默認設定檔"
+LangString str_desc_vim_rc          ${LANG_TRADCHINESE} \
+    "在安裝資料夾下建立默認的 Vim 設定檔(_vimrc)。\
+     若該設定檔已經存在,則略過此項。"
+
+LangString str_group_plugin         ${LANG_TRADCHINESE} \
+    "建立插件資料夾"
+LangString str_desc_plugin          ${LANG_TRADCHINESE} \
+    "建立(空的)插件資料夾結構。插件資料夾用于安裝 Vim 的擴展插件,\
+     只要將檔案復制到相關的子資料夾中即可。"
+
+LangString str_section_plugin_home  ${LANG_TRADCHINESE} \
+    "建立插件資料夾"
+LangString str_desc_plugin_home     ${LANG_TRADCHINESE} \
+    "Create plugin directories in HOME directory."
+
+LangString str_section_plugin_vim   ${LANG_TRADCHINESE} \
+    "建立共享插件資料夾"
+LangString str_desc_plugin_vim      ${LANG_TRADCHINESE} \
+    "在 Vim 安裝資料夾下建立(空的)插件資料夾結構,電腦上所有用戶都能使用安裝\
+     在該資料夾里的擴展插件。"
+
+LangString str_section_vis_vim      ${LANG_TRADCHINESE} \
+    "安裝 VisVim 插件"
+LangString str_desc_vis_vim         ${LANG_TRADCHINESE} \
+    "VisVim 是用于與微軟 Microsoft Visual Studio 軟體進行整合的插件。"
+
+LangString str_section_nls          ${LANG_TRADCHINESE} \
+    "安裝本地語言支持"
+LangString str_desc_nls             ${LANG_TRADCHINESE} \
+    "安裝用于支持本地語言的檔案。"
+
+LangString str_unsection_register   ${LANG_TRADCHINESE} \
+    "移除 Vim 系統設定"
+LangString str_desc_unregister      ${LANG_TRADCHINESE} \
+    "移除與 Vim 相關的系統設定。"
+
+LangString str_unsection_exe        ${LANG_TRADCHINESE} \
+    "移除 Vim 程式及腳本"
+LangString str_desc_rm_exe          ${LANG_TRADCHINESE} \
+    "移除所有的 Vim 程式及腳本。"
+
+LangString str_ungroup_plugin       ${LANG_TRADCHINESE} \
+    "Remove plugin directories"
+LangString str_desc_rm_plugin       ${LANG_TRADCHINESE} \
+    "Remove the plugin directories if they are empty."
+
+LangString str_unsection_plugin_home ${LANG_TRADCHINESE} \
+    "Private"
+LangString str_desc_rm_plugin_home  ${LANG_TRADCHINESE} \
+    "Remove the vimfiles directory in HOME directory."
+
+LangString str_unsection_plugin_vim ${LANG_TRADCHINESE} \
+    "Shared"
+LangString str_desc_rm_plugin_vim   ${LANG_TRADCHINESE} \
+    "Remove the vimfiles directory in Vim install directory."
+
+LangString str_unsection_rootdir    ${LANG_TRADCHINESE} \
+    "Remove the Vim root directory"
+LangString str_desc_rm_rootdir      ${LANG_TRADCHINESE} \
+    "Remove the Vim root directory. It contains your Vim configuration files!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_TRADCHINESE} \
+#    "閣下的電腦上安裝了 $vim_old_ver_count 個不同版本的 Vim,$\r$\n\
+#     但是本安裝程式最多只能處理 ${VIM_MAX_OLD_VER} 個版本。$\r$\n\
+#     煩請閣下手工移除一些版本以后再運行本安裝程式。"
+
+#LangString str_msg_invalid_root  ${LANG_TRADCHINESE} \
+#    "安裝資料夾「$vim_install_root」無效!$\r$\n\
+#     該資料夾必須以「vim」結尾。"
+
+#LangString str_msg_bin_mismatch  ${LANG_TRADCHINESE} \
+#    "Vim 執行程式安裝路徑異常!$\r$\n$\r$\n\
+#     該版本 Vim 的執行程式安裝路徑應該是「$vim_bin_path」,$\r$\n\
+#     而系統卻指示該路徑為「$INSTDIR」。"
+
+#LangString str_msg_vim_running   ${LANG_TRADCHINESE} \
+#    "閣下的電腦上尚有正在運行之 Vim,$\r$\n\
+#     煩請閣下在執行后續步驟前將其全部退出。"
+
+#LangString str_msg_register_ole  ${LANG_TRADCHINESE} \
+#    "試圖注冊 Vim OLE 伺服程式。請注意不論成功與否都不再顯示進一步的信息。"
+
+#LangString str_msg_unreg_ole     ${LANG_TRADCHINESE} \
+#    "試圖注銷 Vim OLE 伺服程式。請注意不論成功與否都不再顯示進一步的信息。"
+
+#LangString str_msg_rm_start      ${LANG_TRADCHINESE} \
+#    "正移除如下版本:"
+
+#LangString str_msg_rm_fail       ${LANG_TRADCHINESE} \
+#    "以下版本移除失敗:"
+
+#LangString str_msg_no_rm_key     ${LANG_TRADCHINESE} \
+#    "找不到反安裝程式的登錄檔入口。"
+
+#LangString str_msg_no_rm_reg     ${LANG_TRADCHINESE} \
+#    "在登錄檔中未找到反安裝程式路徑。"
+
+#LangString str_msg_no_rm_exe     ${LANG_TRADCHINESE} \
+#    "找不到反安裝程式。"
+
+#LangString str_msg_rm_copy_fail  ${LANG_TRADCHINESE} \
+#    "無法將法將反安裝程式复制到臨時目錄。"
+
+#LangString str_msg_rm_run_fail   ${LANG_TRADCHINESE} \
+#    "執行反安裝程式失敗。"
+
+#LangString str_msg_abort_install ${LANG_TRADCHINESE} \
+#    "安裝程式將退出。"
+
+LangString str_msg_install_fail  ${LANG_TRADCHINESE} \
+    "安裝失敗。預祝下次好運。"
+
+LangString str_msg_rm_exe_fail   ${LANG_TRADCHINESE} \
+    "資料夾「$0」下有部分檔案未能移除!$\r$\n\
+     閣下只能手工移除該資料夾。"
+
+#LangString str_msg_rm_root_fail  ${LANG_TRADCHINESE} \
+#    "警告:無法刪除 Vim 安裝資料夾「$vim_install_root」,\
+#     該資料夾下仍有其他檔案。"
+
+LangString str_msg_uninstalling  ${LANG_TRADCHINESE} \
+    "Uninstalling the old version..."
+
+LangString str_msg_registering   ${LANG_TRADCHINESE} \
+    "Registering..."
+
+LangString str_msg_unregistering ${LANG_TRADCHINESE} \
+    "Unregistering..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_TRADCHINESE} \
+    "Choose _vimrc settings"
+LangString str_vimrc_page_subtitle ${LANG_TRADCHINESE} \
+    "Choose the settings for enhancement, keyboard and mouse."
+
+LangString str_msg_compat_title    ${LANG_TRADCHINESE} \
+    " Vi / Vim behavior "
+LangString str_msg_compat_desc     ${LANG_TRADCHINESE} \
+    "&Compatibility and enhancements"
+LangString str_msg_compat_vi       ${LANG_TRADCHINESE} \
+    "Vi compatible"
+LangString str_msg_compat_vim      ${LANG_TRADCHINESE} \
+    "Vim original"
+LangString str_msg_compat_defaults ${LANG_TRADCHINESE} \
+    "Vim with some enhancements (load defaults.vim)"
+LangString str_msg_compat_all      ${LANG_TRADCHINESE} \
+    "Vim with all enhancements (load vimrc_example.vim) (Default)"
+
+LangString str_msg_keymap_title   ${LANG_TRADCHINESE} \
+    " Mappings "
+LangString str_msg_keymap_desc    ${LANG_TRADCHINESE} \
+    "&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
+LangString str_msg_keymap_default ${LANG_TRADCHINESE} \
+    "Do not remap keys (Default)"
+LangString str_msg_keymap_windows ${LANG_TRADCHINESE} \
+    "Remap a few keys"
+
+LangString str_msg_mouse_title   ${LANG_TRADCHINESE} \
+    " Mouse "
+LangString str_msg_mouse_desc    ${LANG_TRADCHINESE} \
+    "&Behavior of right and left buttons"
+LangString str_msg_mouse_default ${LANG_TRADCHINESE} \
+    "Right: popup menu, Left: visual mode (Default)"
+LangString str_msg_mouse_windows ${LANG_TRADCHINESE} \
+    "Right: popup menu, Left: select mode (Windows)"
+LangString str_msg_mouse_unix    ${LANG_TRADCHINESE} \
+    "Right: extends selection, Left: visual mode (Unix)"
--- a/src/dosinst.c
+++ b/src/dosinst.c
@@ -444,12 +444,56 @@ window_cb(HWND hwnd, LPARAM lparam)
 
     title[0] = 0;
     GetWindowText(hwnd, title, 256);
-    if (strstr(title, "Vim ") != NULL && strstr(title, "Uninstall:") != NULL)
+    if (strstr(title, "Vim ") != NULL && strstr(title, " Uninstall") != NULL)
 	++num_windows;
     return TRUE;
 }
 
 /*
+ * Run the uninstaller silently.
+ */
+    static int
+run_silent_uninstall(char *uninst_exe)
+{
+    char    vimrt_dir[BUFSIZE];
+    char    temp_uninst[BUFSIZE];
+    char    temp_dir[MAX_PATH];
+    char    buf[BUFSIZE * 2 + 10];
+    int	    i;
+    DWORD   tick;
+
+    strcpy(vimrt_dir, uninst_exe);
+    remove_tail(vimrt_dir);
+
+    if (!GetTempPath(sizeof(temp_dir), temp_dir))
+	return FAIL;
+
+    /* Copy the uninstaller to a temporary exe. */
+    tick = GetTickCount();
+    for (i = 0; ; i++)
+    {
+	sprintf(temp_uninst, "%s\\vimun%04X.exe", temp_dir,
+							(i + tick) & 0xFFFF);
+	if (CopyFile(uninst_exe, temp_uninst, TRUE))
+	    break;
+	if (GetLastError() != ERROR_FILE_EXISTS)
+	    return FAIL;
+	if (i == 65535)
+	    return FAIL;
+    }
+
+    /* Run the copied uninstaller silently. */
+    if (strchr(temp_uninst, ' ') != NULL)
+	sprintf(buf, "\"%s\" /S _?=%s", temp_uninst, vimrt_dir);
+    else
+	sprintf(buf, "%s /S _?=%s", temp_uninst, vimrt_dir);
+    run_command(buf);
+
+    DeleteFile(temp_uninst);
+    return OK;
+}
+
+/*
  * Check for already installed Vims.
  * Return non-zero when found one.
  */
@@ -469,6 +513,7 @@ uninstall_check(int skip_question)
     DWORD	value_type;
     DWORD	orig_num_keys;
     DWORD	new_num_keys;
+    DWORD	allow_silent;
     int		foundone = 0;
 
     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, uninstall_key, 0,
@@ -495,6 +540,16 @@ uninstall_check(int skip_question)
 	    local_bufsize = BUFSIZE;
 	    CHECK_REG_ERROR(code);
 
+	    allow_silent = 0;
+	    if (skip_question)
+	    {
+		DWORD varsize = sizeof(DWORD);
+
+		RegQueryValueEx(uninstall_key_handle, "AllowSilent", 0,
+			&value_type, (LPBYTE)&allow_silent,
+			&varsize);
+	    }
+
 	    foundone = 1;
 	    printf("\n*********************************************************\n");
 	    printf("Vim Install found what looks like an existing Vim version.\n");
@@ -549,45 +604,54 @@ uninstall_check(int skip_question)
 			/* Find existing .bat files before deleting them. */
 			find_bat_exe(TRUE);
 
-			/* Execute the uninstall program.  Put it in double
-			 * quotes if there is an embedded space. */
+			if (allow_silent)
 			{
-			    char buf[BUFSIZE];
+			    if (run_silent_uninstall(temp_string_buffer)
+								    == FAIL)
+				allow_silent = 0; /* Retry with non silent. */
+			}
+			if (!allow_silent)
+			{
+			    /* Execute the uninstall program.  Put it in double
+			     * quotes if there is an embedded space. */
+			    {
+				char buf[BUFSIZE];
 
-			    if (strchr(temp_string_buffer, ' ') != NULL)
-				sprintf(buf, "\"%s\"", temp_string_buffer);
-			    else
-				strcpy(buf, temp_string_buffer);
-			    run_command(buf);
-			}
+				if (strchr(temp_string_buffer, ' ') != NULL)
+				    sprintf(buf, "\"%s\"", temp_string_buffer);
+				else
+				    strcpy(buf, temp_string_buffer);
+				run_command(buf);
+			    }
 
-			/* Count the number of windows with a title that match
-			 * the installer, so that we can check when it's done.
-			 * The uninstaller copies itself, executes the copy
-			 * and exits, thus we can't wait for the process to
-			 * finish. */
-			sleep(1);  /* wait for uninstaller to start up */
-			num_windows = 0;
-			EnumWindows(window_cb, 0);
-			if (num_windows == 0)
-			{
-			    /* Did not find the uninstaller, ask user to press
-			     * Enter when done. Just in case. */
-			    printf("Press Enter when the uninstaller is finished\n");
-			    rewind(stdin);
-			    (void)getchar();
-			}
-			else
-			{
-			    printf("Waiting for the uninstaller to finish (press CTRL-C to abort).");
-			    do
+			    /* Count the number of windows with a title that match
+			     * the installer, so that we can check when it's done.
+			     * The uninstaller copies itself, executes the copy
+			     * and exits, thus we can't wait for the process to
+			     * finish. */
+			    sleep(1);  /* wait for uninstaller to start up */
+			    num_windows = 0;
+			    EnumWindows(window_cb, 0);
+			    if (num_windows == 0)
 			    {
-				printf(".");
-				fflush(stdout);
-				sleep(1);  /* wait for the uninstaller to finish */
-				num_windows = 0;
-				EnumWindows(window_cb, 0);
-			    } while (num_windows > 0);
+				/* Did not find the uninstaller, ask user to press
+				 * Enter when done. Just in case. */
+				printf("Press Enter when the uninstaller is finished\n");
+				rewind(stdin);
+				(void)getchar();
+			    }
+			    else
+			    {
+				printf("Waiting for the uninstaller to finish (press CTRL-C to abort).");
+				do
+				{
+				    printf(".");
+				    fflush(stdout);
+				    sleep(1);  /* wait for the uninstaller to finish */
+				    num_windows = 0;
+				    EnumWindows(window_cb, 0);
+				} while (num_windows > 0);
+			    }
 			}
 			printf("\nDone!\n");
 
@@ -1609,7 +1673,11 @@ install_registry(void)
     }
 
     printf("Creating an uninstall entry\n");
-    sprintf(display_name, "Vim " VIM_VERSION_SHORT);
+    sprintf(display_name, "Vim " VIM_VERSION_SHORT
+#ifdef _WIN64
+	    " (x64)"
+#endif
+	    );
 
     /* For the NSIS installer use the generated uninstaller. */
     if (interactive)
--- a/src/version.c
+++ b/src/version.c
@@ -800,6 +800,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    616,
+/**/
     615,
 /**/
     614,