changeset 18053:8ac85adee561

Update runtime files Commit: https://github.com/vim/vim/commit/8fe1000e9c3438d0ff36cf2340f0f0e48f8fb89f Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 11 22:56:44 2019 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Wed, 11 Sep 2019 23:00:05 +0200
parents 5023a656f85e
children 88b5c2b4e3d2
files nsis/lang/serbian.nsi runtime/autoload/haskellcomplete.vim runtime/delmenu.vim runtime/doc/channel.txt runtime/doc/eval.txt runtime/doc/insert.txt runtime/doc/options.txt runtime/doc/popup.txt runtime/doc/tags runtime/doc/terminal.txt runtime/doc/testing.txt runtime/doc/todo.txt runtime/gvim.desktop runtime/lang/menu_chinese_gb.936.vim runtime/lang/menu_zh_cn.gb2312.vim runtime/lang/menu_zh_cn.utf-8.vim runtime/syntax/debchangelog.vim runtime/syntax/debcopyright.vim runtime/syntax/debsources.vim runtime/syntax/freebasic.vim runtime/syntax/sshconfig.vim runtime/syntax/vim.vim runtime/syntax/yaml.vim runtime/vim.desktop src/po/de.po src/po/gvim.desktop.in src/po/sr.po
diffstat 27 files changed, 1915 insertions(+), 1391 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/nsis/lang/serbian.nsi
@@ -0,0 +1,280 @@
+# vi:set ts=8 sts=4 sw=4 et fdm=marker:
+#
+# serbian.nsi: Serbian language strings for gvim NSIS installer.
+#
+# Locale ID    : 3098
+# fileencoding : UTF-8
+# Author       : Ivan Pešić
+
+!insertmacro MUI_LANGUAGE "Српски"
+
+
+# Overwrite the default translation.
+# These strings should be always English.  Otherwise dosinst.c fails.
+LangString ^SetupCaption     ${LANG_SERBIAN} \
+        "$(^Name) Setup"
+LangString ^UninstallCaption ${LANG_SERBIAN} \
+        "$(^Name) Uninstall"
+
+##############################################################################
+# MUI Configuration Strings                                               {{{1
+##############################################################################
+
+#LangString str_dest_folder          ${LANG_SERBIAN} \
+#    "Destination Folder (Must end with $\"vim$\")"
+
+LangString str_show_readme          ${LANG_SERBIAN} \
+    "Прикажи ПРОЧИТАЈМЕ када се заврши инсталација"
+
+# Install types:
+LangString str_type_typical         ${LANG_SERBIAN} \
+    "Типична"
+
+LangString str_type_minimal         ${LANG_SERBIAN} \
+    "Минимална"
+
+LangString str_type_full            ${LANG_SERBIAN} \
+    "Пуна"
+
+
+##############################################################################
+# Section Titles & Description                                            {{{1
+##############################################################################
+
+LangString str_section_old_ver      ${LANG_SERBIAN} \
+    "Уклањање постојећ(е/их) верзиј(е/а)"
+LangString str_desc_old_ver         ${LANG_SERBIAN} \
+    "Уклања постојећ(у/е) Vim верзииј(у/е) из вашег система."
+
+LangString str_section_exe          ${LANG_SERBIAN} \
+    "Vim ГКИ и фајлови потребни за извршавање"
+LangString str_desc_exe             ${LANG_SERBIAN} \
+    "Vim ГКИ извршни фајлови и фајлови потребни током извршавања. Ова компонента је неопходна."
+
+LangString str_section_console      ${LANG_SERBIAN} \
+    "Vim конзолни програм"
+LangString str_desc_console         ${LANG_SERBIAN} \
+    "Конзолна верзија програма Vim (vim.exe)."
+
+LangString str_section_batch        ${LANG_SERBIAN} \
+    "Креирај .bat фајлове"
+LangString str_desc_batch           ${LANG_SERBIAN} \
+    "Креира у Windows директоријуму .bat фајлове за Vim варијанте \
+     у циљу коришћења из командне линије."
+
+LangString str_group_icons          ${LANG_SERBIAN} \
+    "Креирај иконе за Vim"
+LangString str_desc_icons           ${LANG_SERBIAN} \
+    "Креира иконе за Vim на различитим местима, како би се олакшао приступ."
+
+LangString str_section_desktop      ${LANG_SERBIAN} \
+    "На радној површини"
+LangString str_desc_desktop         ${LANG_SERBIAN} \
+    "Креира иконе за gVim извршне фајлове на радној површини."
+
+LangString str_section_start_menu   ${LANG_SERBIAN} \
+    "У фасцикли Програми унутар Старт менија"
+LangString str_desc_start_menu      ${LANG_SERBIAN} \
+    "Додаје Vim у фолдер Програми Старт менија."
+
+#LangString str_section_quick_launch ${LANG_SERBIAN} \
+#    "In the Quick Launch Bar"
+#LangString str_desc_quick_launch    ${LANG_SERBIAN} \
+#    "Add Vim shortcut in the quick launch bar."
+
+LangString str_section_edit_with    ${LANG_SERBIAN} \
+    "Додај Vim контекстни мени"
+LangString str_desc_edit_with       ${LANG_SERBIAN} \
+    "Додаје Vim у $\"Отвори помоћу...$\" листу контекстног менија."
+
+#LangString str_section_edit_with32  ${LANG_SERBIAN} \
+#    "32-bit Version"
+#LangString str_desc_edit_with32     ${LANG_SERBIAN} \
+#    "Add Vim to the $\"Open With...$\" context menu list \
+#     for 32-bit applications."
+
+#LangString str_section_edit_with64  ${LANG_SERBIAN} \
+#    "64-bit Version"
+#LangString str_desc_edit_with64     ${LANG_SERBIAN} \
+#    "Add Vim to the $\"Open With...$\" context menu list \
+#     for 64-bit applications."
+
+LangString str_section_vim_rc       ${LANG_SERBIAN} \
+    "Креирај Подразумевану конфигурацију"
+LangString str_desc_vim_rc          ${LANG_SERBIAN} \
+    "Креира подразумевани конфиг фајл (_vimrc) ако неки већ не постоји."
+
+LangString str_group_plugin         ${LANG_SERBIAN} \
+    "Креира директоријуме додатака"
+LangString str_desc_plugin          ${LANG_SERBIAN} \
+    "Креира директоријуме додатака. Ови директоријуми омогућавају проширење програма Vim \
+     убацивањем фајла у директоријум."
+
+LangString str_section_plugin_home  ${LANG_SERBIAN} \
+    "Приватне"
+LangString str_desc_plugin_home     ${LANG_SERBIAN} \
+    "Креира директоријуме додатака у HOME директоријуму."
+
+LangString str_section_plugin_vim   ${LANG_SERBIAN} \
+    "Дељене"
+LangString str_desc_plugin_vim      ${LANG_SERBIAN} \
+    "Креира директоријуме додатака у Vim инсталационом директоријуму, користе их сви \
+     на систему."
+
+LangString str_section_vis_vim      ${LANG_SERBIAN} \
+    "VisVim проширење"
+LangString str_desc_vis_vim         ${LANG_SERBIAN} \
+    "VisVim проширење за Microsoft Visual Studio интеграцију."
+
+LangString str_section_nls          ${LANG_SERBIAN} \
+    "Подршка за домаћи језик"
+LangString str_desc_nls             ${LANG_SERBIAN} \
+    "Инсталира фајлове за домаћу језичку подршку."
+
+LangString str_unsection_register   ${LANG_SERBIAN} \
+    "Поништи регистрацију Vim"
+LangString str_desc_unregister      ${LANG_SERBIAN} \
+    "Поништава регистрацију програма Vim на систему."
+
+LangString str_unsection_exe        ${LANG_SERBIAN} \
+    "Уклони Vim извршне фајлове/фајлове потребне у време извршавања"
+LangString str_desc_rm_exe          ${LANG_SERBIAN} \
+    "Уклања све Vim извршне фајлове и оне потребне у време извршавања."
+
+LangString str_ungroup_plugin       ${LANG_SERBIAN} \
+    "Укони директоријуме додатака"
+LangString str_desc_rm_plugin       ${LANG_SERBIAN} \
+    "Уклања директоријуме додатака ако су празни."
+
+LangString str_unsection_plugin_home ${LANG_SERBIAN} \
+    "Приватне"
+LangString str_desc_rm_plugin_home  ${LANG_SERBIAN} \
+    "Уклања директоријуме додатака из HOME директоријума."
+
+LangString str_unsection_plugin_vim ${LANG_SERBIAN} \
+    "Дељене"
+LangString str_desc_rm_plugin_vim   ${LANG_SERBIAN} \
+    "Уклања директоријуме додатака из Vim инсталациониг директоријума."
+
+LangString str_unsection_rootdir    ${LANG_SERBIAN} \
+    "Уклони Vim корени директоријум"
+LangString str_desc_rm_rootdir      ${LANG_SERBIAN} \
+    "Уклања Vim корени директоријум. Он садржи ваше Vim конфигурационе фајлове!"
+
+
+##############################################################################
+# Messages                                                                {{{1
+##############################################################################
+
+#LangString str_msg_too_many_ver  ${LANG_SERBIAN} \
+#    "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_SERBIAN} \
+#    "Invalid install path: $vim_install_root!$\r$\n\
+#     It should end with $\"vim$\"."
+
+#LangString str_msg_bin_mismatch  ${LANG_SERBIAN} \
+#    "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_SERBIAN} \
+#    "Vim is still running on your system.$\r$\n\
+#     Please close all instances of Vim before you continue."
+
+#LangString str_msg_register_ole  ${LANG_SERBIAN} \
+#    "Attempting to register Vim with OLE. \
+#     There is no message indicates whether this works or not."
+
+#LangString str_msg_unreg_ole     ${LANG_SERBIAN} \
+#    "Attempting to unregister Vim with OLE. \
+#     There is no message indicates whether this works or not."
+
+#LangString str_msg_rm_start      ${LANG_SERBIAN} \
+#    "Uninstalling the following version:"
+
+#LangString str_msg_rm_fail       ${LANG_SERBIAN} \
+#    "Fail to uninstall the following version:"
+
+#LangString str_msg_no_rm_key     ${LANG_SERBIAN} \
+#    "Cannot find uninstaller registry key."
+
+#LangString str_msg_no_rm_reg     ${LANG_SERBIAN} \
+#    "Cannot find uninstaller from registry."
+
+#LangString str_msg_no_rm_exe     ${LANG_SERBIAN} \
+#    "Cannot access uninstaller."
+
+#LangString str_msg_rm_copy_fail  ${LANG_SERBIAN} \
+#    "Fail to copy uninstaller to temporary directory."
+
+#LangString str_msg_rm_run_fail   ${LANG_SERBIAN} \
+#    "Fail to run uninstaller."
+
+#LangString str_msg_abort_install ${LANG_SERBIAN} \
+#    "Installer will abort."
+
+LangString str_msg_install_fail  ${LANG_SERBIAN} \
+    "Инсталација није успела. Више среће идући пут."
+
+LangString str_msg_rm_exe_fail   ${LANG_SERBIAN} \
+    "Неки фајлови у $0 нису обрисани!$\r$\n\
+     Морате то ручно да обавите."
+
+#LangString str_msg_rm_root_fail  ${LANG_SERBIAN} \
+#    "WARNING: Cannot remove $\"$vim_install_root$\", it is not empty!"
+
+LangString str_msg_uninstalling  ${LANG_SERBIAN} \
+    "Уклањање старе верзије..."
+
+LangString str_msg_registering   ${LANG_SERBIAN} \
+    "Регистровање..."
+
+LangString str_msg_unregistering ${LANG_SERBIAN} \
+    "Поништавање регистрације..."
+
+
+##############################################################################
+# Dialog Box                                                              {{{1
+##############################################################################
+
+LangString str_vimrc_page_title    ${LANG_SERBIAN} \
+    "Изаберите _vimrc подешавања"
+LangString str_vimrc_page_subtitle ${LANG_SERBIAN} \
+    "Изаберите подешавања за побољшања, тастатуру и миша."
+
+LangString str_msg_compat_title    ${LANG_SERBIAN} \
+    " Vi / Vim понашање "
+LangString str_msg_compat_desc     ${LANG_SERBIAN} \
+    "&Компатибилност и побољшања"
+LangString str_msg_compat_vi       ${LANG_SERBIAN} \
+    "Vi компатибилно"
+LangString str_msg_compat_vim      ${LANG_SERBIAN} \
+    "Vim оригинално"
+LangString str_msg_compat_defaults ${LANG_SERBIAN} \
+    "Vim са неким побољшањима (учитава defaults.vim)"
+LangString str_msg_compat_all      ${LANG_SERBIAN} \
+    "Vim са свим побољшањима (учитава vimrc_example.vim) (Подразумевано)"
+
+LangString str_msg_keymap_title   ${LANG_SERBIAN} \
+    " Мапирања "
+LangString str_msg_keymap_desc    ${LANG_SERBIAN} \
+    "&Ремапира неколико тастера за Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, итд.)"
+LangString str_msg_keymap_default ${LANG_SERBIAN} \
+    "Немој да ремапираш тастере (Подразумевано)"
+LangString str_msg_keymap_windows ${LANG_SERBIAN} \
+    "Ремапира неколико тастера"
+
+LangString str_msg_mouse_title   ${LANG_SERBIAN} \
+    " Миш "
+LangString str_msg_mouse_desc    ${LANG_SERBIAN} \
+    "&Понашање левог и десног тастера"
+LangString str_msg_mouse_default ${LANG_SERBIAN} \
+    "Десни: искачући мени, Леви: визуелни режим (Подразумевано)"
+LangString str_msg_mouse_windows ${LANG_SERBIAN} \
+    "Десни: искачући мени, Леви: режим избора (Windows)"
+LangString str_msg_mouse_unix    ${LANG_SERBIAN} \
+    "Десни: проширује избор, Леви: визуелни режим (Unix)"
--- a/runtime/autoload/haskellcomplete.vim
+++ b/runtime/autoload/haskellcomplete.vim
@@ -2,7 +2,7 @@
 " Language:        Haskell
 " Maintainer:      Daniel Campoverde <alx@sillybytes.net>
 " URL:             https://github.com/alx741/haskellcomplete.vim
-" Last Change:     2018 Aug 26
+" Last Change:     2019 May 14
 
 " Usage:           setlocal omnifunc=haskellcomplete#Complete
 
@@ -63,6 +63,7 @@ function! haskellcomplete#Complete(finds
                     call add(l:matches, extension)
                 endif
             endfor
+            let b:completingLangExtension = 0
             return l:matches
         endif
 
@@ -78,6 +79,7 @@ function! haskellcomplete#Complete(finds
                     call add(l:matches, flag)
                 endif
             endfor
+            let b:completingOptionsGHC = 0
             return l:matches
         endif
 
@@ -93,6 +95,7 @@ function! haskellcomplete#Complete(finds
                     call add(l:matches, module)
                 endif
             endfor
+            let b:completingModule = 0
             return l:matches
         endif
 
--- a/runtime/delmenu.vim
+++ b/runtime/delmenu.vim
@@ -2,7 +2,7 @@
 " Warning: This also deletes all menus defined by the user!
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2001 May 27
+" Last Change:	2019 Sep 11
 
 aunmenu *
 tlunmenu *
@@ -21,6 +21,11 @@ silent! unlet menutrans_path_dialog
 silent! unlet menutrans_tags_dialog
 silent! unlet menutrans_textwidth_dialog
 silent! unlet menutrans_fileformat_dialog
+silent! unlet menutrans_fileformat_choices
 silent! unlet menutrans_no_file
+silent! unlet menutrans_set_lang_to
+silent! unlet menutrans_spell_change_ARG_to
+silent! unlet menutrans_spell_add_ARG_to_word_list
+silent! unlet menutrans_spell_ignore_ARG
 
 " vim: set sw=2 :
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 8.1.  Last change: 2019 Aug 22
+*channel.txt*      For Vim version 8.1.  Last change: 2019 Sep 11
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -508,6 +508,9 @@ ch_evalexpr({handle}, {expr} [, {options
 		expression.  When there is an error or timeout it returns an
 		empty string.
 
+		Note that while waiting for the response, Vim handles other
+		messages.  You need to make sure this doesn't cause trouble.
+
 		Can also be used as a |method|: >
 			GetChannel()->ch_evalexpr(expr)
 
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.1.  Last change: 2019 Sep 06
+*eval.txt*	For Vim version 8.1.  Last change: 2019 Sep 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.1.  Last change: 2019 Aug 21
+*insert.txt*    For Vim version 8.1.  Last change: 2019 Sep 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1124,7 +1124,7 @@ is used when the info popup is created. 
 of values:
 	height		maximum height of the popup
 	width		maximum width of the popup
-	highlight	highlight group of the popup (default is Pmenu)
+	highlight	highlight group of the popup (default is PmenuSel)
 	align		"item" (default) or "menu"
 	border		"on" (default) or "off"
 Example: >
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.1.  Last change: 2019 Aug 21
+*options.txt*	For Vim version 8.1.  Last change: 2019 Sep 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt*  For Vim version 8.1.  Last change: 2019 Sep 04
+*popup.txt*  For Vim version 8.1.  Last change: 2019 Sep 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -204,7 +204,7 @@ popup_beval({what}, {options})			*popup_
 			\ mousemoved: 'WORD',
 			\ })
 <		Use {options} to change the properties.
-		See |popup_beval_example| for an example use.
+		See |popup_beval_example| for an example.
 
 		Can also be used as a |method|: >
 			GetText()->popup_beval({})
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -183,9 +183,11 @@
 'csverb'	options.txt	/*'csverb'*
 'cuc'	options.txt	/*'cuc'*
 'cul'	options.txt	/*'cul'*
+'culopt'	options.txt	/*'culopt'*
 'cursorbind'	options.txt	/*'cursorbind'*
 'cursorcolumn'	options.txt	/*'cursorcolumn'*
 'cursorline'	options.txt	/*'cursorline'*
+'cursorlineopt'	options.txt	/*'cursorlineopt'*
 'cwh'	options.txt	/*'cwh'*
 'debug'	options.txt	/*'debug'*
 'deco'	options.txt	/*'deco'*
@@ -9968,6 +9970,7 @@ win_gotoid()	eval.txt	/*win_gotoid()*
 win_id2tabwin()	eval.txt	/*win_id2tabwin()*
 win_id2win()	eval.txt	/*win_id2win()*
 win_screenpos()	eval.txt	/*win_screenpos()*
+win_splitmove()	eval.txt	/*win_splitmove()*
 winbufnr()	eval.txt	/*winbufnr()*
 wincol()	eval.txt	/*wincol()*
 window	windows.txt	/*window*
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt*	For Vim version 8.1.  Last change: 2019 Jul 04
+*terminal.txt*	For Vim version 8.1.  Last change: 2019 Sep 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt*	For Vim version 8.1.  Last change: 2019 Aug 21
+*testing.txt*	For Vim version 8.1.  Last change: 2019 Sep 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.1.  Last change: 2019 Sep 07
+*todo.txt*      For Vim version 8.1.  Last change: 2019 Sep 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,6 +38,8 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Split off part of option.c: #4918
+
 Popup windows:
 - Implement flip option
 - Why does 'nrformats' leak from the popup window buffer???
@@ -132,14 +134,12 @@ Remove check for cmd_silent when calling
 
 undo result wrong: Masato Nishihata, #4798
 
+Undo puts cursor in wrong line after "cG<Esc>" undo.
+
 Sound: support on Mac?  Or does libcanberra work there?
 
-Patch to add win_splitmove() function. (Andy Massimino, #4561)
-
 Patch for #4733: #4734.  Test needs improvements.
 
-Add CmdwinLeavePost (#4762).  Also add WinLeavePost then?
-
 Patch to fix session file when using multiple tabs. (Jason Franklin, 2019 May
 20)
 Also put :argadd commands at the start for all buffers, so that their order
@@ -157,15 +157,6 @@ Ready to include now?
 Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
 (#4087)
 
-Patch to support 'cursorlineopt' - only highlight the line number of the
-cursor line: #4693
-
-Let plugins know how much space is available in the last line before
-triggering the hit-enter prompt.  Internally called "sc_col".
-(Daniel Hahler, #4732)
-
-Patch for Template string: #4491  Not ready yet.  New pull: #4634
-
 ":bnext" in a help buffer is supposed to go to the next help buffer, but it
 goes to any buffer, and then :bnext skips help buffers, since they are
 unlisted. (#4478)
@@ -191,9 +182,18 @@ with packages under "start". (xtal8, #19
 Modeless selection doesn't work in gvim. (#4783)
 Caused by patch 8.1.1534.
 
+Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
+Alternative from Christian Brabandt. (2010 Sep 19)
+New one from Yasuhiro Matsumoto, #1277.
+
 Visual highlight not removed when 'dipslay' is "lastline" and line doesn't
 fit. (Kevin Lawler, #4457)
 
+Patch to add interrupt(). (Yasuhiro Matsumoto, #2834)
+
+Patch to add per-tabpage and per-window previous directory: "lcd -" and "tcd
+-". (Yegappan Lakshmanan, #4362)
+
 Does not build with MinGW out of the box:
 - _stat64 is not defined, need to use "struct stat" in vim.h
 - WINVER conflict, should use 0x0600 by default?
@@ -203,6 +203,11 @@ 13, #2910)  Can't reproduce?
 
 Check_external_diff() is used too often. (Daniel Hahler, #4800)
 
+Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)
+
+Patch to sort buffers on b_last_used time.  (Andy Massimino, #4722)
+Needs a test.
+
 Errors found with random data:
     heap-buffer-overflow in alist_add (#2472)
 
@@ -311,6 +316,9 @@ Support setting the character displayed 
 Check: __attribute__((format(printf, on semsg() and siemsg().  Where was this
 added?
 
+Patch to add a flatten() function.  #3676.  Check that the doc explains the
+maxdepth argument (applies to the input "recursiveness").
+
 Add test for urxvt mouse codes.  Also test that mouse coordinates can be
 negative. (see #4326)
 
@@ -639,6 +647,9 @@ Jan 15, #2555)
 
 ":bufdo e" disabled syntax HL in windows other than the current. (BPJ)
 
+Patch for Template string: #4491.  New pull: #4634
+It's an awful lot of code for something that is just a bit nicer syntax.
+
 Check argument of systemlist(). (Pavlov)
 
 No maintainer for Vietnamese translations.
@@ -989,10 +1000,6 @@ somewhere else.  :{range}copy {dest} !cm
 Patch to fix that empty first tab is not in session.
 (Hirohito Higashi, 2016 Nov 25, #1282)
 
-Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
-Alternative from Christian Brabandt. (2010 Sep 19)
-New one from Yasuhiro Matsumoto, #1277.
-
 Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
 Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
 Update Aug 2017: #1954
--- a/runtime/gvim.desktop
+++ b/runtime/gvim.desktop
@@ -20,6 +20,7 @@ Comment=Edit text files
 GenericName[da]=Teksteditor
 GenericName[fr]=Éditeur de texte
 GenericName[pl]=Edytor tekstu
+GenericName[sr]=Едитор текста
 GenericName[is]=Ritvinnsluforrit
 Comment[af]=Redigeer tekslêers
 Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
--- a/runtime/lang/menu_chinese_gb.936.vim
+++ b/runtime/lang/menu_chinese_gb.936.vim
@@ -1,270 +1,452 @@
 " Menu Translations:    Simplified Chinese
 " Maintainer:           Shun Bai <baishunde@gmail.com>
 " Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2014 Oct 15
-
-" vim: ts=8 sw=8 noet
+" Last Change:          2019-09-10
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 scriptencoding cp936
 
 " Help menu
-menutrans &Help			(&H)
-menutrans &Overview<Tab><F1>	(&O)<Tab><F1>
-menutrans &User\ Manual		ûֲ(&U)
-menutrans &How-to\ links	How-to\ ָ(&H)
-menutrans &Find\.\.\.		(&F)\.\.\.
-menutrans &Credits		л(&C)
-menutrans Co&pying		Ȩ(&P)
-menutrans &Sponsor/Register	/ע(&S)
-menutrans O&rphans		¶(&R)
-menutrans &Version		汾(&V)
-menutrans &About		(&A)
+menutrans &Help		(&H)
+" Help menuitems and dialog {{{1
+menutrans &Overview<Tab><F1>	(&O)<Tab><F1>
+menutrans &User\ Manual			ûֲ(&U)
+menutrans &How-to\ Links		ʹ(&H)
+menutrans &Find\.\.\.			(&F)\.\.\.
+menutrans &Credits				л(&C)
+menutrans Co&pying				Ȩ(&P)
+menutrans &Sponsor/Register		/ע(&S)
+menutrans O&rphans				ȹ¶(&R)
+menutrans &Version				汾(&V)
+menutrans &About				(&A)
+
+" fun! s:Helpfind()
+if !exists("g:menutrans_help_dialog")
+  let g:menutrans_help_dialog = "򵥴Իð:\n\nǰ׺ i_ ʾģʽµ(: i_CTRL-X)\nǰ׺ c_ ʾµı༭(: c_<Del>)\nǰ׺ ' ʾѡ(: 'shiftwidth')"
+endif
+" }}}
 
 " File menu
-menutrans &File				ļ(&F)
-menutrans &Open\.\.\.<Tab>:e		(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp	ָ(&L)\.\.\.<Tab>:sp
-menutrans Open\ Tab\.\.\.<Tab>:tabnew	򿪱ǩ\.\.\.<Tab>:tabnew
-menutrans &New<Tab>:enew		½(&N)<Tab>:enew
-menutrans &Close<Tab>:close		ر(&C)<Tab>:close
-menutrans &Save<Tab>:w			(&S)<Tab>:w
-menutrans Save\ &As\.\.\.<Tab>:sav	Ϊ(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	ָȽ(Diff)(&D)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	ָ򲹶(Patch)(&B)\.\.\.
-menutrans &Print			ӡ(&P)
-menutrans Sa&ve-Exit<Tab>:wqa		沢˳(&V)<Tab>:wqa
-menutrans E&xit<Tab>:qa			˳(&X)<Tab>:qa
+menutrans &File		ļ(&F)
+" File menuitems {{{1
+menutrans &Open\.\.\.<Tab>:e			(&O)\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp		ڲִڴ(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	ڱǩҳ\.\.\.<Tab>:tabnew
+menutrans &New<Tab>:enew				½(&N)<Tab>:enew
+menutrans &Close<Tab>:close				ر(&C)<Tab>:close
+menutrans &Save<Tab>:w					(&S)<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav		Ϊ(&A)\.\.\.<Tab>:sav
+menutrans Split\ &Diff\ With\.\.\.		ִԶԱȲ(Diff)(&D)\.\.\.
+menutrans Split\ Patched\ &By\.\.\.		ִԽ޲(Patch)(&B)\.\.\.
+menutrans &Print						ӡ(&P)
+menutrans Sa&ve-Exit<Tab>:wqa			沢˳(&V)<Tab>:wqa
+menutrans E&xit<Tab>:qa					˳(&X)<Tab>:qa
+" }}}
 
 " Edit menu
-menutrans &Edit				༭(&E)
-menutrans &Undo<Tab>u			(&U)<Tab>u
-menutrans &Redo<Tab>^R			(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.		ظϴβ(&E)<Tab>\.
-menutrans Cu&t<Tab>"+x			(&T)<Tab>"+x
-menutrans &Copy<Tab>"+y			(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP		ճ(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p		ճǰ(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p		ճ(&A)<Tab>]p
-menutrans &Delete<Tab>x			ɾ(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
-menutrans &Find\.\.\.			(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	Һ滻(&L)\.\.\.
-menutrans &Find<Tab>/			(&F)<Tab>/
-menutrans Find\ and\ Rep&lace<Tab>:%s	Һ滻(&L)<Tab>:%s
-menutrans Settings\ &Window		趨(&W)
-menutrans Startup\ &Settings		趨(&S)
-menutrans &Global\ Settings		ȫ趨(&G)
+menutrans &Edit		༭(&E)
+" Edit menuitems {{{1
+menutrans &Undo<Tab>u						(&U)<Tab>u
+menutrans &Redo<Tab>^R						ָ(&R)<Tab>^R
+menutrans Rep&eat<Tab>\.					ظ(&E)<Tab>\.
+menutrans Cu&t<Tab>"+x						(&T)<Tab>"+x
+menutrans &Copy<Tab>"+y						(&C)<Tab>"+y
+menutrans &Paste<Tab>"+gP					ճ(&P)<Tab>"+gP
+menutrans Put\ &Before<Tab>[p				ճǰ(&B)<Tab>[p
+menutrans Put\ &After<Tab>]p				ճ(&A)<Tab>]p
+menutrans &Delete<Tab>x						ɾ(&D)<Tab>x
+menutrans &Select\ All<Tab>ggVG				ȫѡ(&S)<Tab>ggVG
+menutrans &Find\.\.\.						(&F)\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\.			Һ滻(&L)\.\.\.
+menutrans &Find<Tab>/						(&F)<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s		Һ滻(&L)<Tab>:%s
+menutrans Settings\ &Window					ô(&W)
+menutrans Startup\ &Settings				(&S)
 
 " Edit/Global Settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	/ģʽ(&H)<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		/غԴСд(&I)<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm!		/ʾ(&S)<Tab>:set\ sm!
-menutrans &Context\ lines			(&C)
-
-menutrans &Virtual\ Edit			༭(&V)
+menutrans &Global\ Settings					ȫ(&G)
+" Edit.Global Settings menuitems and dialogs {{{2
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!		/ظ(&H)<Tab>:set\ hls!
+menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!				/غԴСд(&I)<Tab>:set\ ic!
+menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!	/ʾƥ(&S)<Tab>:set\ sm!
+menutrans &Context\ Lines									(&C)
+menutrans &Virtual\ Edit									༭(&V)
+" Edit.Global Settings.Virtual Edit menuitems {{{3
 menutrans Never					Ӳ
-menutrans Block\ Selection			ѡ
-menutrans Insert\ mode				ģʽ
-menutrans Block\ and\ Insert			ѡͲģʽ
-menutrans Always				
-
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	/زģʽ(&M)<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	/\ Vi\ <Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.			·(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.			Tag\ ļ(&T)\.\.\.
+menutrans Block\ Selection		ֻѡοʱ
+menutrans Insert\ Mode			ֻڲģʽʱ
+menutrans Block\ and\ Insert	ѡοͲģʽʱ
+menutrans Always				ʼ
+" }}}
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!				/زģʽ(&M)<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!			/\ Vi\ (&O)<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\.								·(&P)\.\.\.
+menutrans Ta&g\ Files\.\.\.									ļ(Tags)(&G)\.\.\.
 
 " GUI options
-menutrans Toggle\ &Toolbar			/ع(&T)
-menutrans Toggle\ &Bottom\ Scrollbar		/صײ(&B)
-menutrans Toggle\ &Left\ Scrollbar		/˹(&L)
-menutrans Toggle\ &Right\ Scrollbar		/Ҷ˹(&R)
+menutrans Toggle\ &Toolbar									/ع(&T)
+menutrans Toggle\ &Bottom\ Scrollbar						/صײ(&B)
+menutrans Toggle\ &Left\ Scrollbar							/(&L)
+menutrans Toggle\ &Right\ Scrollbar							/Ҳ(&R)
+
+" fun! s:SearchP()
+if !exists("g:menutrans_path_dialog")
+  let g:menutrans_path_dialog = "·\nöŷָĿ¼"
+endif
+
+" fun! s:TagFiles()
+if !exists("g:menutrans_tags_dialog")
+  let g:menutrans_tags_dialog = "ļ(Tags)ơ\nöŷָļ"
+endif
+" }}}
 
 " Edit/File Settings
-menutrans F&ile\ Settings			ļ趨(&I)
-
+menutrans F&ile\ Settings					ļ(&I)
+" Edit.File Settings menuitems and dialogs {{{2
 " Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!		/ʾк(&N)<Tab>:set\ nu!
-menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!	/к(&V)<Tab>:set\ rnu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!			/\ list\ ģʽ(&L)<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			/(&W)<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!		/(&R)<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et!			/չ\ tab(&E)<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai!			/Զ(&A)<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin!			/\ C\ (&C)<Tab>:set\ cin!
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			/к(&N)<Tab>:set\ nu!
+menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!	/к(&V)<Tab>:set\ rnu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list!				/бģʽ(&L)<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!			/ػ(&W)<Tab>:set\ wrap!
+menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!		/شβ(&R)<Tab>:set\ lbr!
+menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!				/Ʊչ(&E)<Tab>:set\ et!
+menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!			/Զ(&A)<Tab>:set\ ai!
+menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!		/\ C\ ʽ(&C)<Tab>:set\ cin!
 
 " other options
-menutrans &Shiftwidth			(&S)
-menutrans Soft\ &Tabstop		Soft\ Tab\ (&T)
-menutrans Te&xt\ Width\.\.\.		ı(&X)\.\.\.
-menutrans &File\ Format\.\.\.		ļʽ(&F)\.\.\.
-menutrans C&olor\ Scheme		ɫ(&O)
-menutrans Select\ Fo&nt\.\.\.		ѡ(&N)\.\.\.
-menutrans &Keymap			ӳ(&K)
+menutrans &Shiftwidth										(&S)
+menutrans Soft\ &Tabstop									Ʊλ(Soft Tabstop)(&T)
+menutrans Te&xt\ Width\.\.\.								ı(&X)\.\.\.
+menutrans &File\ Format\.\.\.								ļʽ(&F)\.\.\.
+
+" fun! s:TextWidth()
+if !exists("g:menutrans_textwidth_dialog")
+  let g:menutrans_textwidth_dialog = "ı(ÿַ0 ʾ):"
+endif
+
+" fun! s:FileFormat()
+if !exists("g:menutrans_fileformat_dialog")
+  let g:menutrans_fileformat_dialog = "ѡļıʽ:"
+endif
+if !exists("g:menutrans_fileformat_choices")
+  let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nȡ(&C)"
+endif
+" }}}
+menutrans Show\ C&olor\ Schemes\ in\ Menu	ڲ˵ʾɫ(&O)
+menutrans C&olor\ Scheme					ɫ(&O)
+menutrans Show\ &Keymaps\ in\ Menu			ڲ˵ʾӳ(&K)
+menutrans &Keymap							ӳ(&K)
+menutrans Select\ Fo&nt\.\.\.				ѡ(&N)\.\.\.
+" }}}
 
 " Programming menu
-menutrans &Tools			(&T)
-menutrans &Jump\ to\ this\ tag<Tab>g^]	ת\ tag(&J)<Tab>g^]
-menutrans Jump\ &back<Tab>^T		ת(&B)<Tab>^T
-menutrans Build\ &Tags\ File		\ Tags\ ļ(&T)
+menutrans &Tools	(&T)
+" Tools menuitems {{{1
+menutrans &Jump\ to\ This\ Tag<Tab>g^]			ת(Tag)(&J)<Tab>g^]
+menutrans Jump\ &Back<Tab>^T					ת(&B)<Tab>^T
+menutrans Build\ &Tags\ File					ɱļ(Tags)(&T)
 
 " Tools.Spelling Menu
-menutrans &Spelling				ƴд(&S)
-menutrans &Spell\ Check\ On			ƴд(&S)
-menutrans Spell\ Check\ &Off			رƴд(&O)
-menutrans To\ &Next\ error<Tab>]s		һ(&N)<Tab>]s
-menutrans To\ &Previous\ error<Tab>[s		һ(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z=		(&C)<Tab>z=
-menutrans &Repeat\ correction<Tab>:spellrepall	ظ(&R)<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"		趨Ϊ\ "en"
-menutrans Set\ language\ to\ "en_au"		趨Ϊ\ "en_au"
-menutrans Set\ language\ to\ "en_ca"		趨Ϊ\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"		趨Ϊ\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"		趨Ϊ\ "en_nz"
-menutrans Set\ language\ to\ "en_us"		趨Ϊ\ "en_us"
-menutrans &Find\ More\ Languages		Ҹ(&F)
+menutrans &Spelling								ƴд(&S)
+" Tools.Spelling menuitems and dialog {{{2
+menutrans &Spell\ Check\ On						ƴд(&S)
+menutrans Spell\ Check\ &Off					رƴд(&O)
+menutrans To\ &Next\ Error<Tab>]s				һ(&N)<Tab>]s
+menutrans To\ &Previous\ Error<Tab>[s			һ(&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z=			(&C)<Tab>z=
+menutrans &Repeat\ Correction<Tab>:spellrepall	ȫͬ(&R)<Tab>:spellrepall
+menutrans Set\ Language\ to\ "en"				Ϊ\ "en"
+menutrans Set\ Language\ to\ "en_au"			Ϊ\ "en_au"
+menutrans Set\ Language\ to\ "en_ca"			Ϊ\ "en_ca"
+menutrans Set\ Language\ to\ "en_gb"			Ϊ\ "en_gb"
+menutrans Set\ Language\ to\ "en_nz"			Ϊ\ "en_nz"
+menutrans Set\ Language\ to\ "en_us"			Ϊ\ "en_us"
+menutrans &Find\ More\ Languages				Ҹ(&F)
+
+" func! s:SpellLang()
+if !exists("g:menutrans_set_lang_to")
+  let g:menutrans_set_lang_to = "Ϊ"
+endif
+" }}}
 
 " Tools.Fold Menu
+menutrans &Folding								۵(&F)
+" Tools.Fold menuitems {{{2
 " open close folds
-menutrans &Folding				۵(&F)
-menutrans &Enable/Disable\ folds<Tab>zi		/۵(&E)<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv		鿴(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	鿴(&W)<Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm		رո۵(&L)<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM		ر۵(&C)<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr		򿪸۵(&P)<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR		۵(&O)<Tab>zR
+menutrans &Enable/Disable\ Folds<Tab>zi			/۵(&E)<Tab>zi
+menutrans &View\ Cursor\ Line<Tab>zv			չ(&V)<Tab>zv
+menutrans Vie&w\ Cursor\ Line\ Only<Tab>zMzx	ֻչ(&W)<Tab>zMzx
+menutrans C&lose\ More\ Folds<Tab>zm			۵һ(&L)<Tab>zm
+menutrans &Close\ All\ Folds<Tab>zM				۵ȫ(&C)<Tab>zM
+menutrans O&pen\ More\ Folds<Tab>zr				չһ(&P)<Tab>zr
+menutrans &Open\ All\ Folds<Tab>zR				չȫ(&O)<Tab>zR
 " fold method
-menutrans Fold\ Met&hod			۵(&H)
-menutrans M&anual			ֹ(&A)
-menutrans I&ndent			(&N)
-menutrans E&xpression			ʽ(&X)
-menutrans S&yntax			﷨(&Y)
-menutrans &Diff				Ƚ(Diff)(&D)
-menutrans Ma&rker			(&R)
+menutrans Fold\ Met&hod							۵ʽ(&H)
+" Tools.Fold.Fold Method menuitems {{{3
+menutrans M&anual		ֶ(&A)
+menutrans I&ndent		(&N)
+menutrans E&xpression	ʽ(&X)
+menutrans S&yntax		﷨(&Y)
+menutrans &Diff			(Diff)(&D)
+menutrans Ma&rker		Ǻ(Marker)(&R)
+" }}}
 " create and delete folds
-menutrans Create\ &Fold<Tab>zf		۵(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		ɾ۵(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	ɾ۵(&A)<Tab>zD
+menutrans Create\ &Fold<Tab>zf					۵(&F)<Tab>zf
+menutrans &Delete\ Fold<Tab>zd					ɾ۵(&D)<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD			ɾȫ۵(&A)<Tab>zD
 " moving around in folds
-menutrans Fold\ column\ &width		۵(&W)
+menutrans Fold\ Col&umn\ Width					۵(&W)
+" }}}
 
 " Tools.Diff Menu
-menutrans &Diff				Ƚ(Diff)(&D)
-menutrans &Update			(&U)
-menutrans &Get\ Block			õ(&G)
-menutrans &Put\ Block			ÿ(&P)
+menutrans &Diff									(Diff)(&D)
+" Tools.Diff menuitems {{{2
+menutrans &Update		ˢ(&U)
+menutrans &Get\ Block	öԲı(&G)
+menutrans &Put\ Block	ñı(&P)
+" }}}
 
-menutrans &Make<Tab>:make		Make(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl		г(&L)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!	гϢ(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn		һ(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp	һ(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold	ɵĴб(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew	µĴб(&E)<Tab>:cnew
-menutrans Error\ &Window		󴰿(&W)
-menutrans &Update<Tab>:cwin		(&U)<Tab>:cwin
+menutrans &Make<Tab>:make						(Make)(&M)<Tab>:make
+menutrans &List\ Errors<Tab>:cl					г(&L)<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl!				гϢ(&I)<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn					һ(&N)<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp				һ(&P)<Tab>:cp
+menutrans &Older\ List<Tab>:cold				ϾɵĴб(&O)<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew				µĴб(&E)<Tab>:cnew
+menutrans Error\ &Window						󴰿(&W)
+" Tools.Error Window menuitems {{{2
+menutrans &Update<Tab>:cwin		ˢ(&U)<Tab>:cwin
 menutrans &Open<Tab>:copen		(&O)<Tab>:copen
-menutrans &Close<Tab>:cclose		ر(&C)<Tab>:cclose
-menutrans &Convert\ to\ HEX<Tab>:%!xxd	תʮ<Tab>:%!xxd
-menutrans Conve&rt\ back<Tab>:%!xxd\ -r	ת<Tab>:%!xxd\ -r
-menutrans Se&T\ Compiler		趨(&T)
+menutrans &Close<Tab>:cclose	ر(&C)<Tab>:cclose
+" }}}
+menutrans Show\ Compiler\ Se&ttings\ in\ Menu	ڲ˵ʾ(&T)
+menutrans Se&t\ Compiler						ñ(&T)
+menutrans &Convert\ to\ HEX<Tab>:%!xxd			תʮ(&C)<Tab>:%!xxd
+menutrans Conve&rt\ Back<Tab>:%!xxd\ -r			ת(&R)<Tab>:%!xxd\ -r
+" }}}
 
-" Names for buffer menu.
-menutrans &Buffers		(&B)
-menutrans &Refresh\ menu	²˵(&R)
-menutrans &Delete		ɾ(&D)
-menutrans &Alternate		(&A)
-menutrans &Next			һ(&N)
-menutrans &Previous		һ(&P)
+" Buffer menu
+menutrans &Buffers	(&B)
+" Buffer menuitems and dialog {{{1
+menutrans &Refresh\ Menu	ˢ±˵(&R)
+menutrans &Delete			ɾ(&D)
+menutrans &Alternate		л(&A)
+menutrans &Next				һ(&N)
+menutrans &Previous			һ(&P)
+
+" func! s:BMMunge(fname, bnum) 
+if !exists("g:menutrans_no_file")
+  let g:menutrans_no_file = "[ļ]"
+endif
+" }}}
 
 " Window menu
-menutrans &Window			(&W)
-menutrans &New<Tab>^Wn			½(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws		ָ(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^	ָ\ #(&L)<Tab>^W^^
-menutrans Split\ &Vertically<Tab>^Wv	ֱָ(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer	ָļ(&X)
-menutrans &Close<Tab>^Wc		ر(&C)<Tab>^Wc
-menutrans Close\ &Other(s)<Tab>^Wo	ر(&O)<Tab>^Wo
-menutrans Move\ &To			ƶ(&T)
-menutrans &Top<Tab>^WK			(&T)<Tab>^WK
-menutrans &Bottom<Tab>^WJ		׶(&B)<Tab>^WJ
-menutrans &Left\ side<Tab>^WH		(&L)<Tab>^WH
-menutrans &Right\ side<Tab>^WL		ұ(&R)<Tab>^WL
-" menutrans Ne&xt<Tab>^Ww		һ(&X)<Tab>^Ww
-" menutrans P&revious<Tab>^WW		һ(&R)<Tab>^WW
-menutrans Rotate\ &Up<Tab>^WR		ֻ(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr		ֻ(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=		ȴ(&E)<Tab>^W=
-menutrans &Max\ Height<Tab>^W_		߶(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_		С߶(&I)<Tab>^W1_
-menutrans Max\ &Width<Tab>^W\|		(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|		С(&H)<Tab>^W1\|
-"
-" The popup menu
-menutrans &Undo			(&U)
-menutrans Cu&t			(&T)
-menutrans &Copy			(&C)
-menutrans &Paste		ճ(&P)
-menutrans &Delete		ɾ(&D)
-menutrans Select\ Blockwise	ѡ
-menutrans Select\ &Word		ѡ񵥴(&W)
-menutrans Select\ &Sentence	ѡ(&S)
-menutrans Select\ Pa&ragraph	ѡ(&R)
-menutrans Select\ &Line		ѡ(&L)
-menutrans Select\ &Block	ѡ(&B)
-menutrans Select\ &All		ȫѡ(&A)
-"
-" The GUI toolbar
+menutrans &Window	(&W)
+" Window menuitems {{{1
+menutrans &New<Tab>^Wn					½(&N)<Tab>^Wn
+menutrans S&plit<Tab>^Ws				(&P)<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^		ֲʾ\ #(&L)<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv	ֱ(&V)<Tab>^Wv
+menutrans Split\ File\ E&xplorer		ֲļ(&X)
+menutrans &Close<Tab>^Wc				ر(&C)<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo		֮ȫر(&O)<Tab>^Wo
+menutrans Move\ &To						ƶ(&T)
+menutrans &Top<Tab>^WK					(&T)<Tab>^WK
+menutrans &Bottom<Tab>^WJ				׶(&B)<Tab>^WJ
+menutrans &Left\ Side<Tab>^WH			(&L)<Tab>^WH
+menutrans &Right\ Side<Tab>^WL			ұ(&R)<Tab>^WL
+menutrans Rotate\ &Up<Tab>^WR			ֻ(&U)<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr			ֻ(&D)<Tab>^Wr
+menutrans &Equal\ Size<Tab>^W=			ƽֲ(&E)<Tab>^W=
+menutrans &Max\ Height<Tab>^W_			߶(&M)<Tab>^W
+menutrans M&in\ Height<Tab>^W1_			С߶(&I)<Tab>^W1_
+menutrans Max\ &Width<Tab>^W\|			(&W)<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\|			С(&H)<Tab>^W1\|
+" }}}
+
+" The popup menu {{{1
+menutrans &Undo					(&U)
+menutrans Cu&t					(&T)
+menutrans &Copy					(&C)
+menutrans &Paste				ճ(&P)
+menutrans &Delete				ɾ(&D)
+menutrans Select\ Blockwise		Ϊѡο
+menutrans Select\ &Word			ѡ(&W)
+menutrans Select\ &Sentence		ѡ(&S)
+menutrans Select\ Pa&ragraph	ѡ(&R)
+menutrans Select\ &Line			ѡ(&L)
+menutrans Select\ &Block		ѡο(&B)
+menutrans Select\ &All			ȫѡ(&A)
+
+" func! <SID>SpellPopup()
+if !exists("g:menutrans_spell_change_ARG_to")
+  let g:menutrans_spell_change_ARG_to = '\ "%s"\ Ϊ'
+endif
+if !exists("g:menutrans_spell_add_ARG_to_word_list")
+  let g:menutrans_spell_add_ARG_to_word_list = '\ "%s"\ ӵʵ'
+endif
+if !exists("g:menutrans_spell_ignore_ARG")
+  let g:menutrans_spell_ignore_ARG = '\ "%s"'
+endif
+" }}}
+
+" The GUI toolbar {{{1
 if has("toolbar")
   if exists("*Do_toolbar_tmenu")
     delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		ļ
-    tmenu ToolBar.Save		浱ǰļ
-    tmenu ToolBar.SaveAll	ȫļ
-    tmenu ToolBar.Print		ӡ
-    tmenu ToolBar.Undo		
-    tmenu ToolBar.Redo		
-    tmenu ToolBar.Cut		е
-    tmenu ToolBar.Copy		Ƶ
-    tmenu ToolBar.Paste		Ӽճ
-    tmenu ToolBar.Find		...
-    tmenu ToolBar.FindNext	һ
-    tmenu ToolBar.FindPrev	һ
-    tmenu ToolBar.Replace	Һ滻...
-    tmenu ToolBar.LoadSesn	ػỰ
-    tmenu ToolBar.SaveSesn	浱ǰỰ
-    tmenu ToolBar.RunScript	 Vim ű
-    tmenu ToolBar.Make		ִ Make (:make)
-    tmenu ToolBar.RunCtags	ڵǰĿ¼ tags (!ctags -R .)
-    tmenu ToolBar.TagJump	תλõ tag
-    tmenu ToolBar.Help		Vim 
-    tmenu ToolBar.FindHelp	 Vim 
+    let did_toolbar_tmenu = 1
+    tmenu ToolBar.Open			ļ
+    tmenu ToolBar.Save			浱ǰļ
+    tmenu ToolBar.SaveAll		ȫ
+    tmenu ToolBar.Print			ӡ
+    tmenu ToolBar.Undo			
+    tmenu ToolBar.Redo			ָ
+    tmenu ToolBar.Cut			е
+    tmenu ToolBar.Copy			Ƶ
+    tmenu ToolBar.Paste			Ӽճ
+    if !has("gui_athena")
+      tmenu ToolBar.Replace		Һ滻...
+      tmenu ToolBar.FindNext	һ
+      tmenu ToolBar.FindPrev	һ
+    endif
+    tmenu ToolBar.LoadSesn		ػỰ
+    tmenu ToolBar.SaveSesn		浱ǰỰ
+    tmenu ToolBar.RunScript		 Vim ű
+    tmenu ToolBar.Make			ɵǰĿ (:make)
+    tmenu ToolBar.RunCtags		ڵǰĿ¼ɱ(Tags) (!ctags -R .)
+    tmenu ToolBar.TagJump		תڱ(Tag)
+    tmenu ToolBar.Help			Vim 
+    tmenu ToolBar.FindHelp		 Vim в
   endfun
 endif
+" }}}
 
 " Syntax menu
-menutrans &Syntax			﷨(&S)
-menutrans &Show\ filetypes\ in\ menu	ڲ˵ʾļ(&S)
-menutrans &Off				ر(&O)
-menutrans &Manual			ֹ(&M)
-menutrans A&utomatic			Զ(&U)
-menutrans on/off\ for\ &This\ file	ļ/(&T)
-menutrans Co&lor\ test			ɫʲ(&L)
-menutrans &Highlight\ test		(&H)
-menutrans &Convert\ to\ HTML		ת\ HTML(&C)
-menutrans Set\ '&syntax'\ only		趨\ 'syntax'(&S)
-menutrans Set\ '&filetype'\ too		Ҳ趨\ 'filetype'(&F)
+menutrans &Syntax	﷨(&S)
+" Syntax menuitems {{{1
+menutrans &Show\ File\ Types\ in\ Menu	ڲ˵ʾļ(&S)
+menutrans &Off							ر(&O)
+menutrans &Manual						ֶ(&M)
+menutrans A&utomatic					Զ(&U)
+menutrans On/Off\ for\ &This\ File		ֻļ/(&T)
+menutrans Co&lor\ Test					ɫʲ(&L)
+menutrans &Highlight\ Test				(&H)
+menutrans &Convert\ to\ HTML			ת\ HTML(&C)
+" From synmenu.vim
+menutrans Set\ '&syntax'\ Only			ֻ\ 'syntax'(&S)
+menutrans Set\ '&filetype'\ Too			Ҳ\ 'filetype'(&F)
+" }}}
+
+" Netrw menu {{{1
+" Plugin loading may be after menu translation
+" So giveup testing if Netrw Plugin is loaded
+" if exists("g:loaded_netrwPlugin")
+  menutrans Help<tab><F1>					<tab><F1>
+  menutrans Bookmarks						ǩ
+  menutrans History							ʷ¼
+  menutrans Go\ Up\ Directory<tab>-			һ<tab>-
+  menutrans Apply\ Special\ Viewer<tab>x	Ĭϳ<tab>x
+  menutrans Bookmarks\ and\ History			ǩʷ¼
+  " Netrw.Bookmarks and History menuitems {{{2
+  menutrans Bookmark\ Current\ Directory<tab>mb		ǩ<tab>mb
+  menutrans Bookmark\ Delete						Ƴǩ
+  menutrans Goto\ Prev\ Dir\ (History)<tab>u		(ʷ¼)<tab>u
+  menutrans Goto\ Next\ Dir\ (History)<tab>U		ǰ(ʷ¼)<tab>U
+  menutrans List<tab>qb								б<tab>qb
+  " }}}
+  menutrans Browsing\ Control				
+  " Netrw.Browsing Control menuitems {{{2
+  menutrans Horizontal\ Split<tab>o					ڲִڴ<tab>o
+  menutrans Vertical\ Split<tab>v					ڴֱִڴ<tab>v
+  menutrans New\ Tab<tab>t							ڱǩҳ<tab>t	
+  menutrans Preview<tab>p							Ԥ<tab>p
+  menutrans Edit\ File\ Hiding\ List<tab><ctrl-h>	༭(Hiding\ List)<tab><ctrl-h>
+  menutrans Edit\ Sorting\ Sequence<tab>S			༭(Sorting\ Sequence)<tab>S
+  menutrans Quick\ Hide/Unhide\ Dot\ Files<tab>gh	/ʾ\.ͷļ<tab>gh
+  menutrans Refresh\ Listing<tab><ctrl-l>			ˢ<tab><ctrl-l>
+  menutrans Settings/Options<tab>:NetrwSettings		/ѡ<tab>:NetrwSettings
+  " }}}
+  menutrans Delete\ File/Directory<tab>D	ɾļ/Ŀ¼<tab>D
+  menutrans Edit\ File/Dir					༭ļ/Ŀ¼
+  " Netrw.Edit File menuitems {{{2
+  menutrans Create\ New\ File<tab>%				½ļ<tab>%
+  menutrans In\ Current\ Window<tab><cr>		ڵǰ<tab><cr>
+  menutrans Preview\ File/Directory<tab>p		Ԥļ/Ŀ¼<tab>p
+  menutrans In\ Previous\ Window<tab>P			һ<tab>P
+  menutrans In\ New\ Window<tab>o				´<tab>o
+  menutrans In\ New\ Tab<tab>t					±ǩҳ<tab>t
+  menutrans In\ New\ Vertical\ Window<tab>v		´ֱ<tab>v
+  " }}}
+  menutrans Explore							
+  " Netrw.Explore menuitems {{{2
+  menutrans Directory\ Name															ָĿ¼
+  menutrans Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */			ƥָļģʽ(ǰĿ¼)<tab>:Explore\ */
+  menutrans Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/				ƥָļģʽ(Ŀ¼)<tab>:Explore\ **/
+  menutrans Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *//	ݰַָģʽ(ǰĿ¼)<tab>:Explore\ *//
+  menutrans Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **//		ݰַָģʽ(Ŀ¼)<tab>:Explore\ **//
+  menutrans Next\ Match<tab>:Nexplore												һƥ<tab>:Nexplore
+  menutrans Prev\ Match<tab>:Pexplore												һƥ<tab>:Pexplore
+  " }}}
+  menutrans Make\ Subdirectory<tab>d		½Ŀ¼<tab>d
+  menutrans Marked\ Files					ѡ(Marked)ļ
+  " Netrw.Marked Files menuitems {{{2
+  menutrans Mark\ File<tab>mf						ѡ(Mark)/ȡ<tab>mf
+  menutrans Mark\ Files\ by\ Regexp<tab>mr			ʽ(Regexp)ѡ<tab>mr
+  menutrans Hide-Show-List\ Control<tab>a			/ʾ<tab>a
+  menutrans Copy\ To\ Target<tab>mc					ƵĿ<tab>mc
+  menutrans Delete<tab>D							ɾ<tab>D
+  menutrans Diff<tab>md								(Diff)<tab>md
+  menutrans Edit<tab>me								༭<tab>me
+  menutrans Exe\ Cmd<tab>mx							Ϊ<tab>mx
+  menutrans Move\ To\ Target<tab>mm					ƶĿ<tab>mm
+  menutrans Obtain<tab>O							ȡ<tab>O
+  menutrans Print<tab>mp							ӡ<tab>mp
+  menutrans Replace<tab>R							滻<tab>R
+  menutrans Set\ Target<tab>mt						Ŀ<tab>mt
+  menutrans Tag<tab>mT								ɱļ(Tags)<tab>mT
+  menutrans Zip/Unzip/Compress/Uncompress<tab>mz	ѹ/ѹ<tab>mz
+  " }}}
+  menutrans Obtain\ File<tab>O				ȡļ<tab>O
+  menutrans Style							ʾ
+  " Netrw.Style menuitems {{{2
+  menutrans Listing							бʽ
+  " Netrw.Style.Listing menuitems {{{3
+  menutrans thin<tab>i	<thin)<tab>i
+  menutrans long<tab>i	ϸ(long)<tab>i
+  menutrans wide<tab>i	(wide)<tab>i
+  menutrans tree<tab>i	״(tree)<tab>i
+  " }}}
+  menutrans Normal-Hide-Show				ʾ/
+  " Netrw.Style.Normal-Hide_show menuitems {{{3
+  menutrans Show\ All<tab>a		ʾȫ
+  menutrans Normal<tab>a		ʾļ
+  menutrans Hidden\ Only<tab>a	ֻʾļ
+  " }}}
+  menutrans Reverse\ Sorting\ Order<tab>r	/<tab>r
+  menutrans Sorting\ Method					ʽ
+  " Netrw.Style.Sorting Method menuitems {{{3
+  menutrans Name<tab>s		ļ<tab>s
+  menutrans Time<tab>s  	޸ʱ<tab>s
+  menutrans Size<tab>s  	С<tab>s
+  menutrans Exten<tab>s		չ<tab>s
+  " }}}
+  " }}}
+  menutrans Rename\ File/Directory<tab>R	ļ/Ŀ¼<tab>R
+  menutrans Set\ Current\ Directory<tab>c	\ Vim\ Ŀ¼<tab>c
+  menutrans Targets							Ŀ
+" endif
+" }}}
 
 let &cpo = s:keepcpo
 unlet s:keepcpo
+
+" vim: set nu ts=4 sw=4 noet fdm=marker fdc=4 :
--- a/runtime/lang/menu_zh_cn.gb2312.vim
+++ b/runtime/lang/menu_zh_cn.gb2312.vim
@@ -1,273 +1,13 @@
 " Menu Translations:    Simplified Chinese
 " Maintainer:           Shun Bai <baishunde@gmail.com>
 " Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2014 Oct 15
-
-" vim: ts=8 sw=8 noet
-
-" Quit when menu translations have already been done.
-if exists("did_menu_trans")
-  finish
-endif
-let did_menu_trans = 1
-let s:keepcpo= &cpo
-set cpo&vim
+" Last Change:          2019-09-09
 
 " This causes trouble for a broken iconv (symptom: last character is always
 " ??).  Without this it works fine anyway, because gbk/cp936 is a superset of
 " gb2312. (suggested by Edward L. Fox)
 " scriptencoding gb2312
 
-" Help menu
-menutrans &Help			(&H)
-menutrans &Overview<Tab><F1>	(&O)<Tab><F1>
-menutrans &User\ Manual		ûֲ(&U)
-menutrans &How-to\ links	How-to\ ָ(&H)
-menutrans &Find\.\.\.		(&F)\.\.\.
-menutrans &Credits		л(&C)
-menutrans Co&pying		Ȩ(&P)
-menutrans &Sponsor/Register	/ע(&S)
-menutrans O&rphans		¶(&R)
-menutrans &Version		汾(&V)
-menutrans &About		(&A)
-
-" File menu
-menutrans &File				ļ(&F)
-menutrans &Open\.\.\.<Tab>:e		(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp	ָ(&L)\.\.\.<Tab>:sp
-menutrans Open\ Tab\.\.\.<Tab>:tabnew	򿪱ǩ\.\.\.<Tab>:tabnew
-menutrans &New<Tab>:enew		½(&N)<Tab>:enew
-menutrans &Close<Tab>:close		ر(&C)<Tab>:close
-menutrans &Save<Tab>:w			(&S)<Tab>:w
-menutrans Save\ &As\.\.\.<Tab>:sav	Ϊ(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	ָȽ(Diff)(&D)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	ָ򲹶(Patch)(&B)\.\.\.
-menutrans &Print			ӡ(&P)
-menutrans Sa&ve-Exit<Tab>:wqa		沢˳(&V)<Tab>:wqa
-menutrans E&xit<Tab>:qa			˳(&X)<Tab>:qa
-
-" Edit menu
-menutrans &Edit				༭(&E)
-menutrans &Undo<Tab>u			(&U)<Tab>u
-menutrans &Redo<Tab>^R			(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.		ظϴβ(&E)<Tab>\.
-menutrans Cu&t<Tab>"+x			(&T)<Tab>"+x
-menutrans &Copy<Tab>"+y			(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP		ճ(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p		ճǰ(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p		ճ(&A)<Tab>]p
-menutrans &Delete<Tab>x			ɾ(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
-menutrans &Find\.\.\.			(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	Һ滻(&L)\.\.\.
-menutrans &Find<Tab>/			(&F)<Tab>/
-menutrans Find\ and\ Rep&lace<Tab>:%s	Һ滻(&L)<Tab>:%s
-menutrans Settings\ &Window		趨(&W)
-menutrans Startup\ &Settings		趨(&S)
-menutrans &Global\ Settings		ȫ趨(&G)
-
-" Edit/Global Settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	/ģʽ(&H)<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		/غԴСд(&I)<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm!		/ʾ(&S)<Tab>:set\ sm!
-menutrans &Context\ lines			(&C)
-
-menutrans &Virtual\ Edit			༭(&V)
-menutrans Never					Ӳ
-menutrans Block\ Selection			ѡ
-menutrans Insert\ mode				ģʽ
-menutrans Block\ and\ Insert			ѡͲģʽ
-menutrans Always				
-
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	/زģʽ(&M)<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	/\ Vi\ <Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.			·(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.			Tag\ ļ(&T)\.\.\.
-
-" GUI options
-menutrans Toggle\ &Toolbar			/ع(&T)
-menutrans Toggle\ &Bottom\ Scrollbar		/صײ(&B)
-menutrans Toggle\ &Left\ Scrollbar		/˹(&L)
-menutrans Toggle\ &Right\ Scrollbar		/Ҷ˹(&R)
-
-" Edit/File Settings
-menutrans F&ile\ Settings			ļ趨(&I)
-
-" Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	/ʾк(&N)<Tab>:set\ nu!
-menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! /к(&V)<Tab>:set\ rnu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!		/\ list\ ģʽ(&L)<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		/(&W)<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	/(&R)<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et!		/չ\ tab(&E)<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai!		/Զ(&A)<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin!		/\ C\ (&C)<Tab>:set\ cin!
-
-" other options
-menutrans &Shiftwidth			(&S)
-menutrans Soft\ &Tabstop		Soft\ Tab\ (&T)
-menutrans Te&xt\ Width\.\.\.		ı(&X)\.\.\.
-menutrans &File\ Format\.\.\.		ļʽ(&F)\.\.\.
-menutrans C&olor\ Scheme		ɫ(&O)
-menutrans Select\ Fo&nt\.\.\.		ѡ(&N)\.\.\.
-menutrans &Keymap			ӳ(&K)
-
-" Programming menu
-menutrans &Tools			(&T)
-menutrans &Jump\ to\ this\ tag<Tab>g^]	ת\ tag(&J)<Tab>g^]
-menutrans Jump\ &back<Tab>^T		ת(&B)<Tab>^T
-menutrans Build\ &Tags\ File		\ Tags\ ļ(&T)
-
-" Tools.Spelling Menu
-menutrans &Spelling				ƴд(&S)
-menutrans &Spell\ Check\ On			ƴд(&S)
-menutrans Spell\ Check\ &Off			رƴд(&O)
-menutrans To\ &Next\ error<Tab>]s		һ(&N)<Tab>]s
-menutrans To\ &Previous\ error<Tab>[s		һ(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z=		(&C)<Tab>z=
-menutrans &Repeat\ correction<Tab>:spellrepall	ظ(&R)<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"		趨Ϊ\ "en"
-menutrans Set\ language\ to\ "en_au"		趨Ϊ\ "en_au"
-menutrans Set\ language\ to\ "en_ca"		趨Ϊ\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"		趨Ϊ\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"		趨Ϊ\ "en_nz"
-menutrans Set\ language\ to\ "en_us"		趨Ϊ\ "en_us"
-menutrans &Find\ More\ Languages		Ҹ(&F)
-
-" Tools.Fold Menu
-" open close folds
-menutrans &Folding				۵(&F)
-menutrans &Enable/Disable\ folds<Tab>zi		/۵(&E)<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv		鿴(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	鿴(&W)<Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm		رո۵(&L)<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM		ر۵(&C)<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr		򿪸۵(&P)<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR		۵(&O)<Tab>zR
-" fold method
-menutrans Fold\ Met&hod			۵(&H)
-menutrans M&anual			ֹ(&A)
-menutrans I&ndent			(&N)
-menutrans E&xpression			ʽ(&X)
-menutrans S&yntax			﷨(&Y)
-menutrans &Diff				Ƚ(Diff)(&D)
-menutrans Ma&rker			(&R)
-" create and delete folds
-menutrans Create\ &Fold<Tab>zf		۵(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		ɾ۵(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	ɾ۵(&A)<Tab>zD
-" moving around in folds
-menutrans Fold\ column\ &width		۵(&W)
-
-" Tools.Diff Menu
-menutrans &Diff				Ƚ(Diff)(&D)
-menutrans &Update			(&U)
-menutrans &Get\ Block			õ(&G)
-menutrans &Put\ Block			ÿ(&P)
-
-menutrans &Make<Tab>:make		Make(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl		г(&L)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!	гϢ(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn		һ(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp	һ(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold	ɵĴб(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew	µĴб(&E)<Tab>:cnew
-menutrans Error\ &Window		󴰿(&W)
-menutrans &Update<Tab>:cwin		(&U)<Tab>:cwin
-menutrans &Open<Tab>:copen		(&O)<Tab>:copen
-menutrans &Close<Tab>:cclose		ر(&C)<Tab>:cclose
-menutrans &Convert\ to\ HEX<Tab>:%!xxd	תʮ<Tab>:%!xxd
-menutrans Conve&rt\ back<Tab>:%!xxd\ -r	ת<Tab>:%!xxd\ -r
-menutrans Se&T\ Compiler		趨(&T)
-
-" Names for buffer menu.
-menutrans &Buffers		(&B)
-menutrans &Refresh\ menu	²˵(&R)
-menutrans &Delete		ɾ(&D)
-menutrans &Alternate		(&A)
-menutrans &Next			һ(&N)
-menutrans &Previous		һ(&P)
-
-" Window menu
-menutrans &Window			(&W)
-menutrans &New<Tab>^Wn			½(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws		ָ(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^	ָ\ #(&L)<Tab>^W^^
-menutrans Split\ &Vertically<Tab>^Wv	ֱָ(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer	ָļ(&X)
-menutrans &Close<Tab>^Wc		ر(&C)<Tab>^Wc
-menutrans Close\ &Other(s)<Tab>^Wo	ر(&O)<Tab>^Wo
-menutrans Move\ &To			ƶ(&T)
-menutrans &Top<Tab>^WK			(&T)<Tab>^WK
-menutrans &Bottom<Tab>^WJ		׶(&B)<Tab>^WJ
-menutrans &Left\ side<Tab>^WH		(&L)<Tab>^WH
-menutrans &Right\ side<Tab>^WL		ұ(&R)<Tab>^WL
-" menutrans Ne&xt<Tab>^Ww		һ(&X)<Tab>^Ww
-" menutrans P&revious<Tab>^WW		һ(&R)<Tab>^WW
-menutrans Rotate\ &Up<Tab>^WR		ֻ(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr		ֻ(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=		ȴ(&E)<Tab>^W=
-menutrans &Max\ Height<Tab>^W_		߶(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_		С߶(&I)<Tab>^W1_
-menutrans Max\ &Width<Tab>^W\|		(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|		С(&H)<Tab>^W1\|
-"
-" The popup menu
-menutrans &Undo			(&U)
-menutrans Cu&t			(&T)
-menutrans &Copy			(&C)
-menutrans &Paste		ճ(&P)
-menutrans &Delete		ɾ(&D)
-menutrans Select\ Blockwise	ѡ
-menutrans Select\ &Word		ѡ񵥴(&W)
-menutrans Select\ &Sentence	ѡ(&S)
-menutrans Select\ Pa&ragraph	ѡ(&R)
-menutrans Select\ &Line		ѡ(&L)
-menutrans Select\ &Block	ѡ(&B)
-menutrans Select\ &All		ȫѡ(&A)
-"
-" The GUI toolbar
-if has("toolbar")
-  if exists("*Do_toolbar_tmenu")
-    delfun Do_toolbar_tmenu
-  endif
-  fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		ļ
-    tmenu ToolBar.Save		浱ǰļ
-    tmenu ToolBar.SaveAll	ȫļ
-    tmenu ToolBar.Print		ӡ
-    tmenu ToolBar.Undo		
-    tmenu ToolBar.Redo		
-    tmenu ToolBar.Cut		е
-    tmenu ToolBar.Copy		Ƶ
-    tmenu ToolBar.Paste		Ӽճ
-    tmenu ToolBar.Find		...
-    tmenu ToolBar.FindNext	һ
-    tmenu ToolBar.FindPrev	һ
-    tmenu ToolBar.Replace	Һ滻...
-    tmenu ToolBar.LoadSesn	ػỰ
-    tmenu ToolBar.SaveSesn	浱ǰỰ
-    tmenu ToolBar.RunScript	 Vim ű
-    tmenu ToolBar.Make		ִ Make (:make)
-    tmenu ToolBar.RunCtags	ڵǰĿ¼ tags (!ctags -R .)
-    tmenu ToolBar.TagJump	תλõ tag
-    tmenu ToolBar.Help		Vim 
-    tmenu ToolBar.FindHelp	 Vim 
-  endfun
-endif
-
-" Syntax menu
-menutrans &Syntax			﷨(&S)
-menutrans &Show\ filetypes\ in\ menu	ڲ˵ʾļ(&S)
-menutrans &Off				ر(&O)
-menutrans &Manual			ֹ(&M)
-menutrans A&utomatic			Զ(&U)
-menutrans on/off\ for\ &This\ file	ļ/(&T)
-menutrans Co&lor\ test			ɫʲ(&L)
-menutrans &Highlight\ test		(&H)
-menutrans &Convert\ to\ HTML		ת\ HTML(&C)
-menutrans Set\ '&syntax'\ only		趨\ 'syntax'(&S)
-menutrans Set\ '&filetype'\ too		Ҳ趨\ 'filetype'(&F)
-
-let &cpo = s:keepcpo
-unlet s:keepcpo
+" As mentioned above, gbk/cp936 is a superset of (and backward compatible with)
+" gb2312, then source the translation encoded in cp936 should be ok. -- Shun
+source <sfile>:p:h/menu_zh_cn.cp936.vim
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -1,270 +1,452 @@
 " Menu Translations:    Simplified Chinese
 " Maintainer:           Shun Bai <baishunde@gmail.com>
 " Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2014 Oct 15
-
-" vim: ts=8 sw=8 noet
+" Last Change:          2019 Sep 11
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 scriptencoding utf-8
 
 " Help menu
-menutrans &Help			帮助(&H)
-menutrans &Overview<Tab><F1>	纵览(&O)<Tab><F1>
-menutrans &User\ Manual		用户手册(&U)
-menutrans &How-to\ links	How-to\ 指引(&H)
-menutrans &Find\.\.\.		查找(&F)\.\.\.
-menutrans &Credits		致谢(&C)
-menutrans Co&pying		版权(&P)
-menutrans &Sponsor/Register	赞助/注册(&S)
-menutrans O&rphans		孤儿(&R)
-menutrans &Version		版本(&V)
-menutrans &About		关于(&A)
+menutrans &Help		帮助(&H)
+" Help menuitems and dialog {{{1
+menutrans &Overview<Tab><F1>	概述(&O)<Tab><F1>
+menutrans &User\ Manual			用户手册(&U)
+menutrans &How-to\ Links		如何使用(&H)
+menutrans &Find\.\.\.			查找(&F)\.\.\.
+menutrans &Credits				致谢(&C)
+menutrans Co&pying				版权(&P)
+menutrans &Sponsor/Register		赞助/注册(&S)
+menutrans O&rphans				拯救孤儿(&R)
+menutrans &Version				版本(&V)
+menutrans &About				关于(&A)
+
+" fun! s:Helpfind()
+if !exists("g:menutrans_help_dialog")
+  let g:menutrans_help_dialog = "输入命令或单词以获得帮助:\n\n前缀 i_ 表示输入模式下的命令(如: i_CTRL-X)\n前缀 c_ 表示命令行下的编辑命令(如: c_<Del>)\n前缀 ' 表示选项名(如: 'shiftwidth')"
+endif
+" }}}
 
 " File menu
-menutrans &File				文件(&F)
-menutrans &Open\.\.\.<Tab>:e		打开(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割并打开(&L)\.\.\.<Tab>:sp
-menutrans Open\ Tab\.\.\.<Tab>:tabnew	打开标签\.\.\.<Tab>:tabnew
-menutrans &New<Tab>:enew		新建(&N)<Tab>:enew
-menutrans &Close<Tab>:close		关闭(&C)<Tab>:close
-menutrans &Save<Tab>:w			保存(&S)<Tab>:w
-menutrans Save\ &As\.\.\.<Tab>:sav	另存为(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	分割比较(Diff)(&D)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	分割打补丁(Patch)(&B)\.\.\.
-menutrans &Print			打印(&P)
-menutrans Sa&ve-Exit<Tab>:wqa		保存并退出(&V)<Tab>:wqa
-menutrans E&xit<Tab>:qa			退出(&X)<Tab>:qa
+menutrans &File		文件(&F)
+" File menuitems {{{1
+menutrans &Open\.\.\.<Tab>:e			打开(&O)\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp		在拆分窗口打开(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	在标签页打开\.\.\.<Tab>:tabnew
+menutrans &New<Tab>:enew				新建(&N)<Tab>:enew
+menutrans &Close<Tab>:close				关闭(&C)<Tab>:close
+menutrans &Save<Tab>:w					保存(&S)<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav		另存为(&A)\.\.\.<Tab>:sav
+menutrans Split\ &Diff\ With\.\.\.		拆分窗口以对比差异(Diff)(&D)\.\.\.
+menutrans Split\ Patched\ &By\.\.\.		拆分窗口以进行修补(Patch)(&B)\.\.\.
+menutrans &Print						打印(&P)
+menutrans Sa&ve-Exit<Tab>:wqa			保存并退出(&V)<Tab>:wqa
+menutrans E&xit<Tab>:qa					退出(&X)<Tab>:qa
+" }}}
 
 " Edit menu
-menutrans &Edit				编辑(&E)
-menutrans &Undo<Tab>u			撤销(&U)<Tab>u
-menutrans &Redo<Tab>^R			重做(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.		重复上次操作(&E)<Tab>\.
-menutrans Cu&t<Tab>"+x			剪切(&T)<Tab>"+x
-menutrans &Copy<Tab>"+y			复制(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP		粘贴(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p		粘贴到光标前(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p		粘贴到光标后(&A)<Tab>]p
-menutrans &Delete<Tab>x			删除(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		全选(&S)<Tab>ggVG
-menutrans &Find\.\.\.			查找(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	查找和替换(&L)\.\.\.
-menutrans &Find<Tab>/			查找(&F)<Tab>/
-menutrans Find\ and\ Rep&lace<Tab>:%s	查找和替换(&L)<Tab>:%s
-menutrans Settings\ &Window		设定窗口(&W)
-menutrans Startup\ &Settings		启动设定(&S)
-menutrans &Global\ Settings		全局设定(&G)
+menutrans &Edit		编辑(&E)
+" Edit menuitems {{{1
+menutrans &Undo<Tab>u						撤销(&U)<Tab>u
+menutrans &Redo<Tab>^R						恢复(&R)<Tab>^R
+menutrans Rep&eat<Tab>\.					重复(&E)<Tab>\.
+menutrans Cu&t<Tab>"+x						剪切(&T)<Tab>"+x
+menutrans &Copy<Tab>"+y						复制(&C)<Tab>"+y
+menutrans &Paste<Tab>"+gP					粘贴(&P)<Tab>"+gP
+menutrans Put\ &Before<Tab>[p				粘贴到光标前(&B)<Tab>[p
+menutrans Put\ &After<Tab>]p				粘贴到光标后(&A)<Tab>]p
+menutrans &Delete<Tab>x						删除(&D)<Tab>x
+menutrans &Select\ All<Tab>ggVG				全选(&S)<Tab>ggVG
+menutrans &Find\.\.\.						查找(&F)\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\.			查找和替换(&L)\.\.\.
+menutrans &Find<Tab>/						查找(&F)<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s		查找和替换(&L)<Tab>:%s
+menutrans Settings\ &Window					设置窗口(&W)
+menutrans Startup\ &Settings				启动设置(&S)
 
 " Edit/Global Settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	开/关模式高亮(&H)<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		开/关忽略大小写(&I)<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm!		开/关显示配对(&S)<Tab>:set\ sm!
-menutrans &Context\ lines			上下文行数(&C)
-
-menutrans &Virtual\ Edit			虚拟编辑(&V)
+menutrans &Global\ Settings					全局设置(&G)
+" Edit.Global Settings menuitems and dialogs {{{2
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!		开/关高亮查找内容(&H)<Tab>:set\ hls!
+menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!				开/关忽略大小写(&I)<Tab>:set\ ic!
+menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!	开/关显示括号匹配(&S)<Tab>:set\ sm!
+menutrans &Context\ Lines									上下文行数(&C)
+menutrans &Virtual\ Edit									虚拟编辑(&V)
+" Edit.Global Settings.Virtual Edit menuitems {{{3
 menutrans Never					从不
-menutrans Block\ Selection			块选择
-menutrans Insert\ mode				插入模式
-menutrans Block\ and\ Insert			块选择和插入模式
-menutrans Always				总是
-
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	开/关插入模式(&M)<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	开/关\ Vi\ 兼容<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.			查找路径(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.			Tag\ 文件(&T)\.\.\.
+menutrans Block\ Selection		只在选定矩形块时
+menutrans Insert\ Mode			只在插入模式时
+menutrans Block\ and\ Insert	在选定矩形块和插入模式时
+menutrans Always				始终
+" }}}
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!				开/关插入模式(&M)<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!			开/关\ Vi\ 兼容性(&O)<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\.								搜索路径(&P)\.\.\.
+menutrans Ta&g\ Files\.\.\.									标记文件(Tags)(&G)\.\.\.
 
 " GUI options
-menutrans Toggle\ &Toolbar			开/关工具栏(&T)
-menutrans Toggle\ &Bottom\ Scrollbar		开/关底部滚动条(&B)
-menutrans Toggle\ &Left\ Scrollbar		开/关左端滚动条(&L)
-menutrans Toggle\ &Right\ Scrollbar		开/关右端滚动条(&R)
+menutrans Toggle\ &Toolbar									开/关工具栏(&T)
+menutrans Toggle\ &Bottom\ Scrollbar						开/关底部滚动条(&B)
+menutrans Toggle\ &Left\ Scrollbar							开/关左侧滚动条(&L)
+menutrans Toggle\ &Right\ Scrollbar							开/关右侧滚动条(&R)
+
+" fun! s:SearchP()
+if !exists("g:menutrans_path_dialog")
+  let g:menutrans_path_dialog = "输入搜索路径。\n用逗号分隔目录名。"
+endif
+
+" fun! s:TagFiles()
+if !exists("g:menutrans_tags_dialog")
+  let g:menutrans_tags_dialog = "输入标记文件(Tags)名称。\n用逗号分隔文件名。"
+endif
+" }}}
 
 " Edit/File Settings
-menutrans F&ile\ Settings			文件设定(&I)
-
+menutrans F&ile\ Settings					文件设置(&I)
+" Edit.File Settings menuitems and dialogs {{{2
 " Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	开/关显示行号(&N)<Tab>:set\ nu!
-menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! 开/关相对行号(&V)<Tab>:set\ rnu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!		开/关\ list\ 模式(&L)<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		开/关折行(&W)<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	开/关整词折行(&R)<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et!		开/关扩展\ tab(&E)<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai!		开/关自动缩进(&A)<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin!		开/关\ C\ 缩进(&C)<Tab>:set\ cin!
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			开/关行号(&N)<Tab>:set\ nu!
+menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!	开/关相对行号(&V)<Tab>:set\ rnu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list!				开/关列表模式(&L)<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!			开/关换行(&W)<Tab>:set\ wrap!
+menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!		开/关词尾换行(&R)<Tab>:set\ lbr!
+menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!				开/关制表符扩展(&E)<Tab>:set\ et!
+menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!			开/关自动缩进(&A)<Tab>:set\ ai!
+menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!		开/关\ C\ 语言式缩进(&C)<Tab>:set\ cin!
 
 " other options
-menutrans &Shiftwidth			缩进宽度(&S)
-menutrans Soft\ &Tabstop		Soft\ Tab\ 宽度(&T)
-menutrans Te&xt\ Width\.\.\.		文本宽度(&X)\.\.\.
-menutrans &File\ Format\.\.\.		文件格式(&F)\.\.\.
-menutrans C&olor\ Scheme		配色方案(&O)
-menutrans Select\ Fo&nt\.\.\.		选择字体(&N)\.\.\.
-menutrans &Keymap			键盘映射(&K)
+menutrans &Shiftwidth										缩进宽度(&S)
+menutrans Soft\ &Tabstop									软制表位宽度(Soft Tabstop)(&T)
+menutrans Te&xt\ Width\.\.\.								文本宽度(&X)\.\.\.
+menutrans &File\ Format\.\.\.								文件格式(&F)\.\.\.
+
+" fun! s:TextWidth()
+if !exists("g:menutrans_textwidth_dialog")
+  let g:menutrans_textwidth_dialog = "输入文本宽度(每行最大字符数,0 表示禁用):"
+endif
+
+" fun! s:FileFormat()
+if !exists("g:menutrans_fileformat_dialog")
+  let g:menutrans_fileformat_dialog = "选择文件的保存格式:"
+endif
+if !exists("g:menutrans_fileformat_choices")
+  let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n取消(&C)"
+endif
+" }}}
+menutrans Show\ C&olor\ Schemes\ in\ Menu	在菜单中显示配色方案(&O)
+menutrans C&olor\ Scheme					配色方案(&O)
+menutrans Show\ &Keymaps\ in\ Menu			在菜单中显示键盘映射(&K)
+menutrans &Keymap							键盘映射(&K)
+menutrans Select\ Fo&nt\.\.\.				选择字体(&N)\.\.\.
+" }}}
 
 " Programming menu
-menutrans &Tools			工具(&T)
-menutrans &Jump\ to\ this\ tag<Tab>g^]	跳转到这个\ tag(&J)<Tab>g^]
-menutrans Jump\ &back<Tab>^T		跳转返回(&B)<Tab>^T
-menutrans Build\ &Tags\ File		建立\ Tags\ 文件(&T)
+menutrans &Tools	工具(&T)
+" Tools menuitems {{{1
+menutrans &Jump\ to\ This\ Tag<Tab>g^]			跳转到这个标记(Tag)(&J)<Tab>g^]
+menutrans Jump\ &Back<Tab>^T					跳转回(&B)<Tab>^T
+menutrans Build\ &Tags\ File					生成标记文件(Tags)(&T)
 
 " Tools.Spelling Menu
-menutrans &Spelling				拼写检查(&S)
-menutrans &Spell\ Check\ On			打开拼写检查(&S)
-menutrans Spell\ Check\ &Off			关闭拼写检查(&O)
-menutrans To\ &Next\ error<Tab>]s		上一个错误(&N)<Tab>]s
-menutrans To\ &Previous\ error<Tab>[s		下一个错误(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z=		修正建议(&C)<Tab>z=
-menutrans &Repeat\ correction<Tab>:spellrepall	重复修正(&R)<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"		设定语言为\ "en"
-menutrans Set\ language\ to\ "en_au"		设定语言为\ "en_au"
-menutrans Set\ language\ to\ "en_ca"		设定语言为\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"		设定语言为\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"		设定语言为\ "en_nz"
-menutrans Set\ language\ to\ "en_us"		设定语言为\ "en_us"
-menutrans &Find\ More\ Languages		查找更多语言(&F)
+menutrans &Spelling								拼写检查(&S)
+" Tools.Spelling menuitems and dialog {{{2
+menutrans &Spell\ Check\ On						打开拼写检查(&S)
+menutrans Spell\ Check\ &Off					关闭拼写检查(&O)
+menutrans To\ &Next\ Error<Tab>]s				上一个错误(&N)<Tab>]s
+menutrans To\ &Previous\ Error<Tab>[s			下一个错误(&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z=			更正建议(&C)<Tab>z=
+menutrans &Repeat\ Correction<Tab>:spellrepall	更正全部同类错误(&R)<Tab>:spellrepall
+menutrans Set\ Language\ to\ "en"				设置语言为\ "en"
+menutrans Set\ Language\ to\ "en_au"			设置语言为\ "en_au"
+menutrans Set\ Language\ to\ "en_ca"			设置语言为\ "en_ca"
+menutrans Set\ Language\ to\ "en_gb"			设置语言为\ "en_gb"
+menutrans Set\ Language\ to\ "en_nz"			设置语言为\ "en_nz"
+menutrans Set\ Language\ to\ "en_us"			设置语言为\ "en_us"
+menutrans &Find\ More\ Languages				查找更多语言(&F)
+
+" func! s:SpellLang()
+if !exists("g:menutrans_set_lang_to")
+  let g:menutrans_set_lang_to = "设置语言为"
+endif
+" }}}
 
 " Tools.Fold Menu
+menutrans &Folding								折叠(&F)
+" Tools.Fold menuitems {{{2
 " open close folds
-menutrans &Folding				折叠(&F)
-menutrans &Enable/Disable\ folds<Tab>zi		启用/禁用折叠(&E)<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv		查看此行(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	仅查看此行(&W)<Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm		关闭更多折叠(&L)<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM		关闭所有折叠(&C)<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr		打开更多折叠(&P)<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR		打开所有折叠(&O)<Tab>zR
+menutrans &Enable/Disable\ Folds<Tab>zi			启用/禁用折叠(&E)<Tab>zi
+menutrans &View\ Cursor\ Line<Tab>zv			展开光标所在行(&V)<Tab>zv
+menutrans Vie&w\ Cursor\ Line\ Only<Tab>zMzx	只展开光标所在行(&W)<Tab>zMzx
+menutrans C&lose\ More\ Folds<Tab>zm			折叠一级(&L)<Tab>zm
+menutrans &Close\ All\ Folds<Tab>zM				折叠全部(&C)<Tab>zM
+menutrans O&pen\ More\ Folds<Tab>zr				展开一级(&P)<Tab>zr
+menutrans &Open\ All\ Folds<Tab>zR				展开全部(&O)<Tab>zR
 " fold method
-menutrans Fold\ Met&hod			折叠方法(&H)
-menutrans M&anual			手工(&A)
-menutrans I&ndent			缩进(&N)
-menutrans E&xpression			表达式(&X)
-menutrans S&yntax			语法(&Y)
-menutrans &Diff				比较(Diff)(&D)
-menutrans Ma&rker			标记(&R)
+menutrans Fold\ Met&hod							折叠方式(&H)
+" Tools.Fold.Fold Method menuitems {{{3
+menutrans M&anual		手动(&A)
+menutrans I&ndent		缩进(&N)
+menutrans E&xpression	表达式(&X)
+menutrans S&yntax		语法(&Y)
+menutrans &Diff			差异(Diff)(&D)
+menutrans Ma&rker		记号(Marker)(&R)
+" }}}
 " create and delete folds
-menutrans Create\ &Fold<Tab>zf		创建折叠(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		删除折叠(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	删除所有折叠(&A)<Tab>zD
+menutrans Create\ &Fold<Tab>zf					创建折叠(&F)<Tab>zf
+menutrans &Delete\ Fold<Tab>zd					删除折叠(&D)<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD			删除全部折叠(&A)<Tab>zD
 " moving around in folds
-menutrans Fold\ column\ &width		折叠栏宽度(&W)
+menutrans Fold\ Col&umn\ Width					折叠操作栏宽度(&W)
+" }}}
 
 " Tools.Diff Menu
-menutrans &Diff				比较(Diff)(&D)
-menutrans &Update			更新(&U)
-menutrans &Get\ Block			得到块(&G)
-menutrans &Put\ Block			放置块(&P)
+menutrans &Diff									差异(Diff)(&D)
+" Tools.Diff menuitems {{{2
+menutrans &Update		刷新(&U)
+menutrans &Get\ Block	采用对侧文本块(&G)
+menutrans &Put\ Block	采用本侧文本块(&P)
+" }}}
 
-menutrans &Make<Tab>:make		Make(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl		列出错误(&L)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!	列出消息(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn		下一个错误(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp	上一个错误(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold	更旧的错误列表(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew	更新的错误列表(&E)<Tab>:cnew
-menutrans Error\ &Window		错误窗口(&W)
-menutrans &Update<Tab>:cwin		更新(&U)<Tab>:cwin
+menutrans &Make<Tab>:make						生成(Make)(&M)<Tab>:make
+menutrans &List\ Errors<Tab>:cl					列出错误(&L)<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl!				列出消息(&I)<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn					下一个错误(&N)<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp				上一个错误(&P)<Tab>:cp
+menutrans &Older\ List<Tab>:cold				较旧的错误列表(&O)<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew				较新的错误列表(&E)<Tab>:cnew
+menutrans Error\ &Window						错误窗口(&W)
+" Tools.Error Window menuitems {{{2
+menutrans &Update<Tab>:cwin		刷新(&U)<Tab>:cwin
 menutrans &Open<Tab>:copen		打开(&O)<Tab>:copen
-menutrans &Close<Tab>:cclose		关闭(&C)<Tab>:cclose
-menutrans &Convert\ to\ HEX<Tab>:%!xxd	转换成十六进制<Tab>:%!xxd
-menutrans Conve&rt\ back<Tab>:%!xxd\ -r	转换返回<Tab>:%!xxd\ -r
-menutrans Se&T\ Compiler		设定编译器(&T)
+menutrans &Close<Tab>:cclose	关闭(&C)<Tab>:cclose
+" }}}
+menutrans Show\ Compiler\ Se&ttings\ in\ Menu	在菜单中显示编译器设置(&T)
+menutrans Se&t\ Compiler						设置编译器(&T)
+menutrans &Convert\ to\ HEX<Tab>:%!xxd			转换成十六进制(&C)<Tab>:%!xxd
+menutrans Conve&rt\ Back<Tab>:%!xxd\ -r			转换回(&R)<Tab>:%!xxd\ -r
+" }}}
 
-" Names for buffer menu.
-menutrans &Buffers		缓冲区(&B)
-menutrans &Refresh\ menu	更新菜单(&R)
-menutrans &Delete		删除(&D)
-menutrans &Alternate		交替(&A)
-menutrans &Next			下一个(&N)
-menutrans &Previous		上一个(&P)
+" Buffer menu
+menutrans &Buffers	缓冲区(&B)
+" Buffer menuitems and dialog {{{1
+menutrans &Refresh\ Menu	刷新本菜单(&R)
+menutrans &Delete			删除(&D)
+menutrans &Alternate		切换(&A)
+menutrans &Next				下一个(&N)
+menutrans &Previous			上一个(&P)
+
+" func! s:BMMunge(fname, bnum) 
+if !exists("g:menutrans_no_file")
+  let g:menutrans_no_file = "[无文件]"
+endif
+" }}}
 
 " Window menu
-menutrans &Window			窗口(&W)
-menutrans &New<Tab>^Wn			新建(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws		分割(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^	分割到\ #(&L)<Tab>^W^^
-menutrans Split\ &Vertically<Tab>^Wv	垂直分割(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer	分割文件浏览器(&X)
-menutrans &Close<Tab>^Wc		关闭(&C)<Tab>^Wc
-menutrans Close\ &Other(s)<Tab>^Wo	关闭其它窗口(&O)<Tab>^Wo
-menutrans Move\ &To			移动到(&T)
-menutrans &Top<Tab>^WK			顶端(&T)<Tab>^WK
-menutrans &Bottom<Tab>^WJ		底端(&B)<Tab>^WJ
-menutrans &Left\ side<Tab>^WH		左边(&L)<Tab>^WH
-menutrans &Right\ side<Tab>^WL		右边(&R)<Tab>^WL
-" menutrans Ne&xt<Tab>^Ww		下一个(&X)<Tab>^Ww
-" menutrans P&revious<Tab>^WW		上一个(&R)<Tab>^WW
-menutrans Rotate\ &Up<Tab>^WR		向上轮换(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr		向下轮换(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=		等大(&E)<Tab>^W=
-menutrans &Max\ Height<Tab>^W_		最大高度(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_		最小高度(&I)<Tab>^W1_
-menutrans Max\ &Width<Tab>^W\|		最大宽度(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|		最小宽度(&H)<Tab>^W1\|
-"
-" The popup menu
-menutrans &Undo			撤销(&U)
-menutrans Cu&t			剪切(&T)
-menutrans &Copy			复制(&C)
-menutrans &Paste		粘贴(&P)
-menutrans &Delete		删除(&D)
-menutrans Select\ Blockwise	选择块
-menutrans Select\ &Word		选择单词(&W)
-menutrans Select\ &Sentence	选择句子(&S)
-menutrans Select\ Pa&ragraph	选择段落(&R)
-menutrans Select\ &Line		选择行(&L)
-menutrans Select\ &Block	选择块(&B)
-menutrans Select\ &All		全选(&A)
-"
-" The GUI toolbar
+menutrans &Window	窗口(&W)
+" Window menuitems {{{1
+menutrans &New<Tab>^Wn					新建(&N)<Tab>^Wn
+menutrans S&plit<Tab>^Ws				拆分(&P)<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^		拆分并显示缓冲区\ #(&L)<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv	垂直拆分(&V)<Tab>^Wv
+menutrans Split\ File\ E&xplorer		拆分并打开文件浏览器(&X)
+menutrans &Close<Tab>^Wc				关闭(&C)<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo		除此之外全部关闭(&O)<Tab>^Wo
+menutrans Move\ &To						移动到(&T)
+menutrans &Top<Tab>^WK					顶端(&T)<Tab>^WK
+menutrans &Bottom<Tab>^WJ				底端(&B)<Tab>^WJ
+menutrans &Left\ Side<Tab>^WH			左边(&L)<Tab>^WH
+menutrans &Right\ Side<Tab>^WL			右边(&R)<Tab>^WL
+menutrans Rotate\ &Up<Tab>^WR			向上轮换(&U)<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr			向下轮换(&D)<Tab>^Wr
+menutrans &Equal\ Size<Tab>^W=			平均分布(&E)<Tab>^W=
+menutrans &Max\ Height<Tab>^W_			最大高度(&M)<Tab>^W
+menutrans M&in\ Height<Tab>^W1_			最小高度(&I)<Tab>^W1_
+menutrans Max\ &Width<Tab>^W\|			最大宽度(&W)<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\|			最小宽度(&H)<Tab>^W1\|
+" }}}
+
+" The popup menu {{{1
+menutrans &Undo					撤销(&U)
+menutrans Cu&t					剪切(&T)
+menutrans &Copy					复制(&C)
+menutrans &Paste				粘贴(&P)
+menutrans &Delete				删除(&D)
+menutrans Select\ Blockwise		改为选定矩形块
+menutrans Select\ &Word			选定单词(&W)
+menutrans Select\ &Sentence		选定句(&S)
+menutrans Select\ Pa&ragraph	选定段落(&R)
+menutrans Select\ &Line			选定行(&L)
+menutrans Select\ &Block		选定矩形块(&B)
+menutrans Select\ &All			全选(&A)
+
+" func! <SID>SpellPopup()
+if !exists("g:menutrans_spell_change_ARG_to")
+  let g:menutrans_spell_change_ARG_to = '将\ "%s"\ 更改为'
+endif
+if !exists("g:menutrans_spell_add_ARG_to_word_list")
+  let g:menutrans_spell_add_ARG_to_word_list = '将\ "%s"\ 添加到词典'
+endif
+if !exists("g:menutrans_spell_ignore_ARG")
+  let g:menutrans_spell_ignore_ARG = '忽略\ "%s"'
+endif
+" }}}
+
+" The GUI toolbar {{{1
 if has("toolbar")
   if exists("*Do_toolbar_tmenu")
     delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		打开文件
-    tmenu ToolBar.Save		保存当前文件
-    tmenu ToolBar.SaveAll	保存全部文件
-    tmenu ToolBar.Print		打印
-    tmenu ToolBar.Undo		撤销
-    tmenu ToolBar.Redo		重做
-    tmenu ToolBar.Cut		剪切到剪贴板
-    tmenu ToolBar.Copy		复制到剪贴板
-    tmenu ToolBar.Paste		从剪贴板粘贴
-    tmenu ToolBar.Find		查找...
-    tmenu ToolBar.FindNext	查找下一个
-    tmenu ToolBar.FindPrev	查找上一个
-    tmenu ToolBar.Replace	查找和替换...
-    tmenu ToolBar.LoadSesn	加载会话
-    tmenu ToolBar.SaveSesn	保存当前会话
-    tmenu ToolBar.RunScript	运行 Vim 脚本
-    tmenu ToolBar.Make		执行 Make (:make)
-    tmenu ToolBar.RunCtags	在当前目录建立 tags (!ctags -R .)
-    tmenu ToolBar.TagJump	跳转到光标位置的 tag
-    tmenu ToolBar.Help		Vim 帮助
-    tmenu ToolBar.FindHelp	查找 Vim 帮助
+    let did_toolbar_tmenu = 1
+    tmenu ToolBar.Open			打开文件
+    tmenu ToolBar.Save			保存当前文件
+    tmenu ToolBar.SaveAll		全部保存
+    tmenu ToolBar.Print			打印
+    tmenu ToolBar.Undo			撤销
+    tmenu ToolBar.Redo			恢复
+    tmenu ToolBar.Cut			剪切到剪贴板
+    tmenu ToolBar.Copy			复制到剪贴板
+    tmenu ToolBar.Paste			从剪贴板粘贴
+    if !has("gui_athena")
+      tmenu ToolBar.Replace		查找和替换...
+      tmenu ToolBar.FindNext	查找下一个
+      tmenu ToolBar.FindPrev	查找上一个
+    endif
+    tmenu ToolBar.LoadSesn		加载会话
+    tmenu ToolBar.SaveSesn		保存当前会话
+    tmenu ToolBar.RunScript		运行 Vim 脚本
+    tmenu ToolBar.Make			生成当前项目 (:make)
+    tmenu ToolBar.RunCtags		在当前目录生成标记(Tags) (!ctags -R .)
+    tmenu ToolBar.TagJump		跳转到光标所在标记(Tag)
+    tmenu ToolBar.Help			Vim 帮助
+    tmenu ToolBar.FindHelp		在 Vim 帮助中查找
   endfun
 endif
+" }}}
 
 " Syntax menu
-menutrans &Syntax			语法(&S)
-menutrans &Show\ filetypes\ in\ menu	在菜单中显示文件类型(&S)
-menutrans &Off				关闭(&O)
-menutrans &Manual			手工(&M)
-menutrans A&utomatic			自动(&U)
-menutrans on/off\ for\ &This\ file	仅对这个文件开/关(&T)
-menutrans Co&lor\ test			色彩测试(&L)
-menutrans &Highlight\ test		高亮测试(&H)
-menutrans &Convert\ to\ HTML		转换成\ HTML(&C)
-menutrans Set\ '&syntax'\ only		仅设定\ 'syntax'(&S)
-menutrans Set\ '&filetype'\ too		也设定\ 'filetype'(&F)
+menutrans &Syntax	语法(&S)
+" Syntax menuitems {{{1
+menutrans &Show\ File\ Types\ in\ Menu	在菜单中显示文件类型(&S)
+menutrans &Off							关闭(&O)
+menutrans &Manual						手动(&M)
+menutrans A&utomatic					自动(&U)
+menutrans On/Off\ for\ &This\ File		只对这个文件开/关(&T)
+menutrans Co&lor\ Test					色彩测试(&L)
+menutrans &Highlight\ Test				高亮测试(&H)
+menutrans &Convert\ to\ HTML			转换成\ HTML(&C)
+" From synmenu.vim
+menutrans Set\ '&syntax'\ Only			只设置\ 'syntax'(&S)
+menutrans Set\ '&filetype'\ Too			也设置\ 'filetype'(&F)
+" }}}
+
+" Netrw menu {{{1
+" Plugin loading may be after menu translation
+" So giveup testing if Netrw Plugin is loaded
+" if exists("g:loaded_netrwPlugin")
+  menutrans Help<tab><F1>					帮助<tab><F1>
+  menutrans Bookmarks						书签
+  menutrans History							历史记录
+  menutrans Go\ Up\ Directory<tab>-			向上一级<tab>-
+  menutrans Apply\ Special\ Viewer<tab>x	用默认程序打开<tab>x
+  menutrans Bookmarks\ and\ History			书签和历史记录
+  " Netrw.Bookmarks and History menuitems {{{2
+  menutrans Bookmark\ Current\ Directory<tab>mb		添加书签<tab>mb
+  menutrans Bookmark\ Delete						移除书签
+  menutrans Goto\ Prev\ Dir\ (History)<tab>u		后退(历史记录)<tab>u
+  menutrans Goto\ Next\ Dir\ (History)<tab>U		前进(历史记录)<tab>U
+  menutrans List<tab>qb								完整列表<tab>qb
+  " }}}
+  menutrans Browsing\ Control				控制
+  " Netrw.Browsing Control menuitems {{{2
+  menutrans Horizontal\ Split<tab>o					在拆分窗口打开<tab>o
+  menutrans Vertical\ Split<tab>v					在垂直拆分窗口打开<tab>v
+  menutrans New\ Tab<tab>t							在标签页打开<tab>t	
+  menutrans Preview<tab>p							预览<tab>p
+  menutrans Edit\ File\ Hiding\ List<tab><ctrl-h>	编辑隐藏条件(Hiding\ List)<tab><ctrl-h>
+  menutrans Edit\ Sorting\ Sequence<tab>S			编辑排序条件(Sorting\ Sequence)<tab>S
+  menutrans Quick\ Hide/Unhide\ Dot\ Files<tab>gh	快速隐藏/显示以\.开头的文件<tab>gh
+  menutrans Refresh\ Listing<tab><ctrl-l>			刷新<tab><ctrl-l>
+  menutrans Settings/Options<tab>:NetrwSettings		设置/选项<tab>:NetrwSettings
+  " }}}
+  menutrans Delete\ File/Directory<tab>D	删除文件/目录<tab>D
+  menutrans Edit\ File/Dir					编辑文件/目录
+  " Netrw.Edit File menuitems {{{2
+  menutrans Create\ New\ File<tab>%				新建文件<tab>%
+  menutrans In\ Current\ Window<tab><cr>		在当前窗口<tab><cr>
+  menutrans Preview\ File/Directory<tab>p		预览文件/目录<tab>p
+  menutrans In\ Previous\ Window<tab>P			在上一个窗口<tab>P
+  menutrans In\ New\ Window<tab>o				在新窗口<tab>o
+  menutrans In\ New\ Tab<tab>t					在新标签页<tab>t
+  menutrans In\ New\ Vertical\ Window<tab>v		在新垂直窗口<tab>v
+  " }}}
+  menutrans Explore							浏览
+  " Netrw.Explore menuitems {{{2
+  menutrans Directory\ Name															指定目录名
+  menutrans Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */			匹配指定文件名模式(当前目录)<tab>:Explore\ */
+  menutrans Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/				匹配指定文件名模式(含子目录)<tab>:Explore\ **/
+  menutrans Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *//	内容包含指定字符串模式(当前目录)<tab>:Explore\ *//
+  menutrans Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **//		内容包含指定字符串模式(含子目录)<tab>:Explore\ **//
+  menutrans Next\ Match<tab>:Nexplore												下一个匹配项<tab>:Nexplore
+  menutrans Prev\ Match<tab>:Pexplore												上一个匹配项<tab>:Pexplore
+  " }}}
+  menutrans Make\ Subdirectory<tab>d		新建子目录<tab>d
+  menutrans Marked\ Files					选定的(Marked)文件
+  " Netrw.Marked Files menuitems {{{2
+  menutrans Mark\ File<tab>mf						选定(Mark)/取消<tab>mf
+  menutrans Mark\ Files\ by\ Regexp<tab>mr			用正则表达式(Regexp)选定<tab>mr
+  menutrans Hide-Show-List\ Control<tab>a			隐藏/显示<tab>a
+  menutrans Copy\ To\ Target<tab>mc					复制到目标<tab>mc
+  menutrans Delete<tab>D							删除<tab>D
+  menutrans Diff<tab>md								差异(Diff)<tab>md
+  menutrans Edit<tab>me								编辑<tab>me
+  menutrans Exe\ Cmd<tab>mx							作为参数运行命令<tab>mx
+  menutrans Move\ To\ Target<tab>mm					移动到目标<tab>mm
+  menutrans Obtain<tab>O							获取<tab>O
+  menutrans Print<tab>mp							打印<tab>mp
+  menutrans Replace<tab>R							替换<tab>R
+  menutrans Set\ Target<tab>mt						设置目标<tab>mt
+  menutrans Tag<tab>mT								生成标记文件(Tags)<tab>mT
+  menutrans Zip/Unzip/Compress/Uncompress<tab>mz	压缩/解压缩<tab>mz
+  " }}}
+  menutrans Obtain\ File<tab>O				获取文件<tab>O
+  menutrans Style							显示风格
+  " Netrw.Style menuitems {{{2
+  menutrans Listing							列表形式
+  " Netrw.Style.Listing menuitems {{{3
+  menutrans thin<tab>i	紧凑<thin)<tab>i
+  menutrans long<tab>i	详细(long)<tab>i
+  menutrans wide<tab>i	多列(wide)<tab>i
+  menutrans tree<tab>i	树状(tree)<tab>i
+  " }}}
+  menutrans Normal-Hide-Show				显示/隐藏
+  " Netrw.Style.Normal-Hide_show menuitems {{{3
+  menutrans Show\ All<tab>a		显示全部
+  menutrans Normal<tab>a		不显示隐藏文件
+  menutrans Hidden\ Only<tab>a	只显示隐藏文件
+  " }}}
+  menutrans Reverse\ Sorting\ Order<tab>r	升序/降序<tab>r
+  menutrans Sorting\ Method					排序方式
+  " Netrw.Style.Sorting Method menuitems {{{3
+  menutrans Name<tab>s		文件名<tab>s
+  menutrans Time<tab>s  	修改时间<tab>s
+  menutrans Size<tab>s  	大小<tab>s
+  menutrans Exten<tab>s		扩展名<tab>s
+  " }}}
+  " }}}
+  menutrans Rename\ File/Directory<tab>R	重命名文件/目录<tab>R
+  menutrans Set\ Current\ Directory<tab>c	设置\ Vim\ 工作目录<tab>c
+  menutrans Targets							目标
+" endif
+" }}}
 
 let &cpo = s:keepcpo
 unlet s:keepcpo
+
+" vim: set ts=4 sw=4 noet fdm=marker fdc=4 :
--- a/runtime/syntax/debchangelog.vim
+++ b/runtime/syntax/debchangelog.vim
@@ -3,7 +3,7 @@
 " Maintainer:  Debian Vim Maintainers
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2019 Apr 21
+" Last Change: 2019 Sep 07
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
 
 " Standard syntax initialization
@@ -21,7 +21,7 @@ let s:binNMU='binary-only=yes'
 syn match debchangelogName	contained "^[[:alnum:]][[:alnum:].+-]\+ "
 exe 'syn match debchangelogFirstKV	contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
 exe 'syn match debchangelogOtherKV	contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
-syn match debchangelogTarget	contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(squeeze|wheezy|jessie)-%(backports%(-sloppy)=|lts|security)|stretch%(-backports%(-sloppy)=|-security)=|buster%(-backports|-security)=|bullseye|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic|disco|eoan)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
+syn match debchangelogTarget	contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(squeeze|wheezy|jessie)-%(backports%(-sloppy)=|lts|security)|stretch%(-backports%(-sloppy)=|-security)=|buster%(-backports|-security)=|bullseye|bookworm|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic|disco|eoan)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
 syn match debchangelogVersion	contained "(.\{-})"
 syn match debchangelogCloses	contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
 syn match debchangelogLP	contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
--- a/runtime/syntax/debcopyright.vim
+++ b/runtime/syntax/debcopyright.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:    Debian copyright file
 " Maintainer:  Debian Vim Maintainers
-" Last Change: 2018 Feb 05
+" Last Change: 2019 Sep 07
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcopyright.vim
 
 " Standard syntax initialization
@@ -15,7 +15,7 @@ set cpo&vim
 syn case match
 
 syn match debcopyrightUrl       "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
-syn match debcopyrightKey       "^\%(Format\|Upstream-Name\|Upstream-Contact\|Disclaimer\|Source\|Comment\|Files\|Copyright\|License\): *"
+syn match debcopyrightKey       "^\%(Format\|Upstream-Name\|Upstream-Contact\|Disclaimer\|Source\|Comment\|Files\|Copyright\|License\|Files-Excluded\%(-[-a-zA-Z0-9]\+\)\=\): *"
 syn match debcopyrightEmail     "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
 syn match debcopyrightEmail     "<.\{-}>"
 syn match debcopyrightComment   "^#.*$" contains=@Spell
--- a/runtime/syntax/debsources.vim
+++ b/runtime/syntax/debsources.vim
@@ -2,7 +2,7 @@
 " Language:     Debian sources.list
 " Maintainer:   Debian Vim Maintainers
 " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2019 Apr 21
+" Last Change: 2019 Sep 07
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
 
 " Standard syntax initialization
@@ -26,7 +26,7 @@ let s:supported = [
       \ 'wheezy', 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
       \ 'sid', 'rc-buggy',
       \
-      \ 'trusty', 'xenial', 'bionic', 'cosmic', 'disco', 'eoan', 'devel'
+      \ 'trusty', 'xenial', 'bionic', 'disco', 'eoan', 'devel'
       \ ]
 let s:unsupported = [
       \ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
@@ -35,7 +35,7 @@ let s:unsupported = [
       \ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
       \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
       \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
-      \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful'
+      \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic'
       \ ]
 let &cpo=s:cpo
 
--- a/runtime/syntax/freebasic.vim
+++ b/runtime/syntax/freebasic.vim
@@ -1,12 +1,13 @@
 " Vim syntax file
 " Language:    FreeBasic
-" Maintainer:  Mark Manning <markem@airmail.net>
-" Updated:     10/22/2006
+" Maintainer:  Mark Manning <markem@sim1.us>
+" Updated:     10/9/2019
+" Version:		7.0b
 "
 " Description:
 "
 "	Based originally on the work done by Allan Kelly <Allan.Kelly@ed.ac.uk>
-"	Updated by Mark Manning <markem@airmail.net>
+"	Updated by Mark Manning <markem@sim1.us>
 "	Applied FreeBasic support to the already excellent support
 "	for standard basic syntax (like QB).
 "
@@ -138,7 +139,7 @@ syn keyword	freebasicUserInput		GETJOYST
 "	types of identifiers like functions, basic commands and
 "	such. MEM 9/9/2006
 "
-syn match	freebasicIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
+syn match	freebasicIdentifier			"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
 syn match	freebasicGenericFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
 "
 "	Function list
@@ -154,9 +155,13 @@ syn cluster	freebasicParenGroup	contains
 "
 "	Integer number, or floating point number without a dot and with "f".
 "
-syn region	freebasicHex		start="&h" end="\W"
-syn region	freebasicHexError	start="&h\x*[g-zG-Z]" end="\W"
-syn match	freebasicInteger	"\<\d\+\(u\=l\=\|lu\|f\)\>"
+syn region	freebasicHex			start="&h" end="\W"
+syn region	freebasicHexError		start="&h\x*[g-zG-Z]" end="\W"
+syn region	freebasicOctal			start="&o" end="\W"
+syn region	freebasicOctalError		start="&o[0-7]*[89a-zA-Z]" end="\W"
+syn region	freebasicBinary			start="&b" end="\W"
+syn region	freebasicBinaryError	start="&b[01]*[2-9a-zA-Z]" end="\W"
+syn match	freebasicInteger		"\<\d\+\(u\=l\=\|lu\|f\)\>"
 "
 "	Floating point number, with dot, optional exponent
 "
@@ -170,11 +175,11 @@ syn match	freebasicFloat		"\.\d\+\(e[-+]
 "
 syn match	freebasicFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
 "
-"	Hex number
+"	Octal number
 "
 syn case match
-syn match	freebasicOctal		"\<0\o*\>"
-syn match	freebasicOctalError	"\<0\o*[89]"
+syn match	freebasicOctal2			"\<0\o*\>"
+syn match	freebasicOctal2Error	"\<0\o*[89a-zA-Z]"
 "
 "	String and Character contstants
 "
@@ -183,7 +188,7 @@ syn region	freebasicString		start="'" en
 "
 "	Comments
 "
-syn match	freebasicSpecial	contained "\\."
+syn match	freebasicSpecial	contained "\\\\."
 syn region	freebasicComment	start="^rem" end="$" contains=freebasicSpecial,freebasicTodo
 syn region	freebasicComment	start=":\s*rem" end="$" contains=freebasicSpecial,freebasicTodo
 syn region	freebasicComment	start="\s*'" end="$" contains=freebasicSpecial,freebasicTodo
@@ -197,12 +202,12 @@ syn region	freebasicLineNumber	start="^\
 "
 "	Create the clusters
 "
-syn cluster	freebasicNumber		contains=freebasicHex,freebasicOctal,freebasicInteger,freebasicFloat
-syn cluster	freebasicError		contains=freebasicHexError,freebasicOctalError
+syn cluster	freebasicNumber		contains=freebasicHex,freebasicOctal,freebasicOctal2,freebasicBinary,freebasicInteger,freebasicFloat
+syn cluster	freebasicError		contains=freebasicHexError,freebasicOctalError,freebasicOctal2,freebasicBinary
 "
 "	Used with OPEN statement
 "
-syn match	freebasicFilenumber	"#\d\+"
+syn match	freebasicFilenumber		"#\d\+"
 syn match	freebasicMathOperator	"[\+\-\=\|\*\/\>\<\%\()[\]]" contains=freebasicParen
 "
 "	The default methods for highlighting.  Can be overridden later
--- a/runtime/syntax/sshconfig.vim
+++ b/runtime/syntax/sshconfig.vim
@@ -5,7 +5,8 @@
 " Contributor:  Leonard Ehrenfried <leonard.ehrenfried@web.de>
 " Contributor:  Karsten Hopp <karsten@redhat.com>
 " Contributor:  Dean, Adam Kenneth <adam.ken.dean@hpe.com>
-" Last Change:	2016 Dec 28
+" Last Change:	2019 Sep 09
+"		Added RemoteCommand from pull request #4809
 " SSH Version:	7.4p1
 "
 
@@ -206,6 +207,7 @@ syn keyword sshconfigKeyword PubkeyAccep
 syn keyword sshconfigKeyword PubkeyAuthentication
 syn keyword sshconfigKeyword RSAAuthentication
 syn keyword sshconfigKeyword RekeyLimit
+syn keyword sshconfigKeyword RemoteCommand
 syn keyword sshconfigKeyword RemoteForward
 syn keyword sshconfigKeyword RequestTTY
 syn keyword sshconfigKeyword RhostsRSAAuthentication
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -28,6 +28,9 @@ syn keyword vimCommand contained	al[l] a
 syn match   vimCommand contained	"\<z[-+^.=]\=\>"
 syn keyword vimStdPlugin contained	Arguments Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Winbar XMLent XMLns
 
+" added later
+syn keyword vimCommand contained	eval
+
 " vimOptions are caught only when contained in a vimSet {{{2
 syn keyword vimOption contained	acd ambw arshape background ballooneval bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc def diffexpr ea ei ep eventignore fdi fenc fileformat fkmap foldexpr foldopen fsync gfw guicursor guitabtooltip hidden hlg imactivatefunc imi inc inex isident keymap langnoremap linespace loadplugins ma matchtime mef mle modelineexpr mousehide mps nu opendevice paste pex pmbcs printdevice printoptions pw qe relativenumber rightleft rs runtimepath scr sect sft shellredir shiftwidth showmatch signcolumn smarttab sp spf srr startofline suffixes switchbuf ta tagfunc tbi term termwintype tgc titlelen toolbariconsize ttimeout ttymouse twt undofile varsofttabstop verbosefile viminfofile wak weirdinvert wig wildoptions winheight wm wrapscan
 syn keyword vimOption contained	ai anti autochdir backspace balloonevalterm bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls imactivatekey iminsert include inf isk keymodel langremap lisp lpl macatsui maxcombine menc mls modelines mousem msm number operatorfunc pastetoggle pexpr pmbfn printencoding prompt pythondll quoteescape remap rightleftcmd rtp sb scroll sections sh shellslash shm showmode siso smc spc spl ss statusline suffixesadd sws tabline taglength tbidi termbidi terse tgst titleold top ttimeoutlen ttyscroll tx undolevels vartabstop vfile virtualedit warn wfh wildchar wim winminheight wmh write
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -3,6 +3,7 @@
 " Maintainer:       Nikolai Pavlov <zyx.vim@gmail.com>
 " First author:     Nikolai Weibull <now@bitwi.se>
 " Latest Revision:  2015-03-28
+" 		    removed duplicate yamlKeyValueDelimiter (pull #4799)
 
 if exists('b:current_syntax')
     finish
@@ -150,7 +151,6 @@ syn match yamlBlockMappingMerge /^\s*\zs
 syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained
 
 syn match   yamlKeyValueDelimiter /\s*:/ contained
-syn match   yamlKeyValueDelimiter /\s*:/ contained
 
 syn cluster yamlScalarWithSpecials contains=yamlPlainScalar,yamlBlockMappingKey,yamlFlowMappingKey
 
--- a/runtime/vim.desktop
+++ b/runtime/vim.desktop
@@ -19,6 +19,7 @@ Comment=Edit text files
 # be overwritten by the po file when generating the desktop.file.
 GenericName[da]=Teksteditor
 GenericName[pl]=Edytor tekstu
+GenericName[sr]=Едитор текста
 GenericName[is]=Ritvinnsluforrit
 Comment[af]=Redigeer tekslêers
 Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
--- a/src/po/de.po
+++ b/src/po/de.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-04-11 16:08+0200\n"
+"POT-Creation-Date: 2019-09-09 08:53+0200\n"
 "PO-Revision-Date: 2008-05-24 17:26+0200\n"
 "Last-Translator: Christian Brabandt <cb@256bit.org>\n"
 "Language-Team: German\n"
@@ -21,6 +21,18 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "E163: There is only one file to edit"
+msgstr "E163: Es gibt nur eine Datei zum Editieren."
+
+msgid "E164: Cannot go before first file"
+msgstr "E164: Kann nicht vor die erste Datei hinausgehen."
+
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: Kann nicht ber die letzte Datei hinausgehen"
+
+msgid "E249: window layout changed unexpectedly"
+msgstr "E249: Fensterlayout nderte sich unerwartet"
+
 msgid "--Deleted--"
 msgstr "--gelscht--"
 
@@ -115,8 +127,9 @@ msgstr "E83: Kann den Puffer nicht zuwei
 msgid "E931: Buffer cannot be registered"
 msgstr "E931: Puffer kann nicht registriert werden."
 
-msgid "E937: Attempt to delete a buffer that is in use"
-msgstr "E937: Versuch, Puffer zu lschen, der noch benutzt wird."
+#, c-format
+msgid "E937: Attempt to delete a buffer that is in use: %s"
+msgstr "E937: Versuch, Puffer %s zu lschen, der noch benutzt wird."
 
 msgid "E515: No buffers were unloaded"
 msgstr "E515: Kein Puffer wurde entladen."
@@ -248,22 +261,21 @@ msgstr "Ende"
 msgid "Top"
 msgstr "Anfang"
 
-msgid ""
-"\n"
-"# Buffer list:\n"
-msgstr ""
-"\n"
-"# Liste der Puffer:\n"
-
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr "E382: Kann nicht schreiben, 'buftype'-Option ist gesetzt"
 
 msgid "[Prompt]"
 msgstr "[Prompt]"
 
+msgid "[Popup]"
+msgstr "[Popup]"
+
 msgid "[Scratch]"
 msgstr "[Scratch]"
 
+msgid "W10: Warning: Changing a readonly file"
+msgstr "W10: Achtung: ndern einer schreibgeschtzten Datei"
+
 msgid "E902: Cannot connect to port"
 msgstr "E902: Kann keine Verbindung zu Port herstellen."
 
@@ -286,6 +298,9 @@ msgstr "E904: Drittes Argument fr call muss eine Liste sein."
 msgid "E905: received unknown command: %s"
 msgstr "E905: Unbekannter Befehl empfangen: %s."
 
+msgid "E906: not an open channel"
+msgstr "E906: Kein offener Channel"
+
 #, c-format
 msgid "E630: %s(): write while not connected"
 msgstr "E630: %s(): geschrieben ohne eine Verbindung hergestellt zu haben."
@@ -303,9 +318,6 @@ msgstr ""
 "E912: Kann ch_evalexpr()/ch_sendexpr() nicht mit einem Raw oder NL Channel "
 "benutzen."
 
-msgid "E906: not an open channel"
-msgstr "E906: Kein offener Channel"
-
 msgid "E920: _io file requires _name to be set"
 msgstr "E920: Fr _io Datei muss _name gesetzt ist."
 
@@ -316,6 +328,18 @@ msgstr "E915: Fr in_io Puffer muss in_buf oder in_name gesetzt sein."
 msgid "E918: buffer must be loaded: %s"
 msgstr "E918: Puffer muss geladen sein: %s."
 
+msgid "E916: not a valid job"
+msgstr "E916: kein gltiger Job"
+
+msgid "tagname"
+msgstr "Tag-Name"
+
+msgid " kind file\n"
+msgstr " Typ Datei\n"
+
+msgid "'history' option is zero"
+msgstr "Option 'history' ist Null"
+
 msgid "E821: File is encrypted with unknown method"
 msgstr "E821: Datei ist mit unbekannter Verschlsselungsart verschlsselt."
 
@@ -334,6 +358,51 @@ msgstr "Die Schlssel stimmen nicht berein!"
 msgid "[crypted]"
 msgstr "[verschlsselt]"
 
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "Debug-Modus. Geben Sie \"cont\" zum Fortsetzen ein."
+
+#, c-format
+msgid "Oldval = \"%s\""
+msgstr "Alter Wert = \"%s\""
+
+#, c-format
+msgid "Newval = \"%s\""
+msgstr "Neuer Wert = \"%s\""
+
+#, c-format
+msgid "line %ld: %s"
+msgstr "Zeile %ld: %s"
+
+#, c-format
+msgid "cmd: %s"
+msgstr "Befehl: %s"
+
+msgid "frame is zero"
+msgstr "Frame ist Null"
+
+#, c-format
+msgid "frame at highest level: %d"
+msgstr "Frame auf letzter Ebene: %d"
+
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "Haltepunkt in \"%s%s\" Zeile %ld"
+
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: Haltepunkt nicht gefunden: %s"
+
+msgid "No breakpoints defined"
+msgstr "Keine Haltepunkte definiert"
+
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s  Zeile %ld"
+
+#, c-format
+msgid "%3d  expr %s"
+msgstr "%3d expr %s"
+
 #, c-format
 msgid "E720: Missing colon in Dictionary: %s"
 msgstr "E720: Fehlender Doppelpunkt im Dictionary: %s"
@@ -498,45 +567,17 @@ msgstr "E105: :loadkeymap auerhalb einer eingelesenen Datei."
 msgid "E791: Empty keymap entry"
 msgstr "E791: Leerer keymap Eintrag"
 
-msgid "E18: Unexpected characters in :let"
-msgstr "E18: Unerwartete Zeichen in :let"
-
-#, c-format
-msgid "E121: Undefined variable: %s"
-msgstr "E121: Undefinierte Variable: %s"
-
 msgid "E111: Missing ']'"
 msgstr "E111: Fehlende ']'"
 
 msgid "E719: Cannot use [:] with a Dictionary"
 msgstr "E719: Kann [:] nicht mit einem Dictionary verwenden"
 
-#, c-format
-msgid "E734: Wrong variable type for %s="
-msgstr "E734: Falscher Variablentyp fr %s="
-
-#, c-format
-msgid "E461: Illegal variable name: %s"
-msgstr "E461: Unzulssiger Variablenname: %s"
-
 msgid "E806: using Float as a String"
 msgstr "E806: Float als String benutzt."
 
-msgid "E985: .= is not supported with script version 2"
-msgstr "E985: .= wird mit Scriptversion 2 nicht mehr untersttzt."
-
-msgid "E687: Less targets than List items"
-msgstr "E687: Weniger Ziele als Eintrge in der Liste."
-
-msgid "E688: More targets than List items"
-msgstr "E688: Mehr Ziele als Eintrge in der Liste."
-
-msgid "Double ; in list of variables"
-msgstr "Doppeltes ; in der Liste von Variablen"
-
-#, c-format
-msgid "E738: Can't list variables for %s"
-msgstr "E738: Kann Variablen nicht auflisten: %s"
+msgid "E274: No white space allowed before parenthesis"
+msgstr "E274: Keine Leerzeichen vor Klammern erlaubt"
 
 msgid "E689: Can only index a List, Dictionary or Blob"
 msgstr "E689: Kann nur Listen, Dictionary oder Blob indizieren"
@@ -550,26 +591,21 @@ msgstr "E709: [:] bentigt einen Listen- oder Blobwert"
 msgid "E972: Blob value does not have the right number of bytes"
 msgstr "E972: Blobwert hat nicht die richtige Anzahl an Bytes"
 
+msgid "E996: Cannot lock a range"
+msgstr "E996: Kann Bereich nicht sperren"
+
 msgid "E710: List value has more items than target"
 msgstr "E710: Listenwert hat mehr Eintrge als das Ziel."
 
 msgid "E711: List value has not enough items"
 msgstr "E711: Listenwert hat nicht gengend Eintrge."
 
+msgid "E996: Cannot lock a list or dict"
+msgstr "E996: Kann List oder Dictionary nicht sperren"
+
 msgid "E690: Missing \"in\" after :for"
 msgstr "E690: Fehlendes \"in\" nach :for"
 
-#, c-format
-msgid "E108: No such variable: \"%s\""
-msgstr "E108: Keine solche Variable: \"%s\""
-
-#, c-format
-msgid "E940: Cannot lock or unlock variable %s"
-msgstr "E940: Kann Variable \"%s\" nicht sperren bzw. entsperren."
-
-msgid "E743: variable nested too deep for (un)lock"
-msgstr "E743: Variable ist zu tief verschachtelt zum (ent)sperren."
-
 msgid "E109: Missing ':' after '?'"
 msgstr "E109: Fehlender ':' nach '?'"
 
@@ -582,6 +618,9 @@ msgstr "E973: Blob-Literal sollte eine g
 msgid "E110: Missing ')'"
 msgstr "E110: Fehlendes ')'"
 
+msgid "E260: Missing name after ->"
+msgstr "E260: Fehlende Name nach ->"
+
 msgid "E695: Cannot index a Funcref"
 msgstr "E695: Kann keine Funktionsreferenz indizieren."
 
@@ -672,46 +711,11 @@ msgstr "E976: Blob als String verwendet"
 msgid "E908: using an invalid value as a String"
 msgstr "E908: Ungltiger Wert als String verwendet."
 
-#, c-format
-msgid "E963: setting %s to value with wrong type"
-msgstr "E963: %s auf Wert mit falschem Typ gesetzt"
-
-#, c-format
-msgid "E795: Cannot delete variable %s"
-msgstr "E795: Kann Variable nicht lschen: %s"
-
-#, c-format
-msgid "E704: Funcref variable name must start with a capital: %s"
-msgstr ""
-"E704: Funktionsreferenz-Variable muss mit einem Grobuchstaben beginnen: %s"
-
-#, c-format
-msgid "E705: Variable name conflicts with existing function: %s"
-msgstr "E705: Konflikt eines Variablennamens mit bestehender Funktion: %s"
-
-#, c-format
-msgid "E741: Value is locked: %s"
-msgstr "E741: Wert ist gesperrt: %s"
-
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#, c-format
-msgid "E742: Cannot change value of %s"
-msgstr "E742: Kann Wert nicht ndern: %s"
-
 msgid "E698: variable nested too deep for making a copy"
 msgstr "E698: Variable ist zu tief verschachtelt fr eine Kopie"
 
 msgid ""
 "\n"
-"# global variables:\n"
-msgstr ""
-"\n"
-"# globale Variablen:\n"
-
-msgid ""
-"\n"
 "\tLast set from "
 msgstr ""
 "\n"
@@ -745,19 +749,9 @@ msgid "filter() argument"
 msgstr "filter() Argument"
 
 #, c-format
-msgid "E686: Argument of %s must be a List"
-msgstr "E686: Argument von %s muss eine Liste sein."
-
-#, c-format
 msgid "E899: Argument of %s must be a List or Blob"
 msgstr "E899: Argument von %s muss eine Liste oder ein Blob sein."
 
-msgid "E928: String required"
-msgstr "E928: String wird bentigt."
-
-msgid "E957: Invalid window number"
-msgstr "E957: Ungltige Fensternummer"
-
 msgid "E808: Number or Float required"
 msgstr "E808: Zahl oder Float bentigt."
 
@@ -768,9 +762,6 @@ msgstr "add() Argument"
 msgid "E158: Invalid buffer name: %s"
 msgstr "E158: ungltige Puffernummer: %s"
 
-msgid "E785: complete() can only be used in Insert mode"
-msgstr "E785: complete() kann nur im Einfge-Modus verwendet werden."
-
 msgid "&Ok"
 msgstr "&Ok"
 
@@ -778,12 +769,6 @@ msgid "E980: lowlevel input not supporte
 msgstr "E980: Low-Level Eingabe wird nicht untersttzt"
 
 #, c-format
-msgid "+-%s%3ld line: "
-msgid_plural "+-%s%3ld lines: "
-msgstr[0] "+-%s%3ld Zeile: "
-msgstr[1] "+-%s%3ld Zeilen: "
-
-#, c-format
 msgid "E700: Unknown function: %s"
 msgstr "E700: Unbekannte Funktion: %s"
 
@@ -811,16 +796,9 @@ msgstr "insert() Argument"
 msgid "E786: Range not allowed"
 msgstr "E786: Bereich nicht erlaubt"
 
-msgid "E916: not a valid job"
-msgstr "E916: kein gltiger Job"
-
 msgid "E701: Invalid type for len()"
 msgstr "E701: Unzulssiger Typ fr len()"
 
-#, c-format
-msgid "E798: ID is reserved for \":match\": %d"
-msgstr "E798: ID ist fr \":match\" reserviert: %d"
-
 msgid "E726: Stride is zero"
 msgstr "E726: Stride ist Null"
 
@@ -859,25 +837,9 @@ msgid "E258: Unable to send to client"
 msgstr "E258: Kann nicht zum Client senden."
 
 #, c-format
-msgid "E927: Invalid action: '%s'"
-msgstr "E927: Ungltige Aktion '%s'"
-
-#, c-format
 msgid "E962: Invalid action: '%s'"
 msgstr "E962: Ungltige Aktion '%s'"
 
-msgid "sort() argument"
-msgstr "sort() Argument"
-
-msgid "uniq() argument"
-msgstr "uniq() Argument"
-
-msgid "E702: Sort compare function failed"
-msgstr "E702: Die Vergleichsfunktion der Sortierung ist fehlgeschlagen."
-
-msgid "E882: Uniq compare function failed"
-msgstr "E882: Die Uniq Vergleichsfunktion ist fehlgeschlagen."
-
 msgid "(Invalid)"
 msgstr "(Ungltig)"
 
@@ -891,6 +853,86 @@ msgstr "E677: Fehler beim Schreiben einer temporren Datei"
 msgid "E921: Invalid callback argument"
 msgstr "E921: Unglgltiges Callback Argument"
 
+msgid "E18: Unexpected characters in :let"
+msgstr "E18: Unerwartete Zeichen in :let"
+
+msgid "E991: cannot use =<< here"
+msgstr "E991: =<< kann hier nicht genutzt werden"
+
+msgid "E221: Marker cannot start with lower case letter"
+msgstr "E221: Markierung darf nicht mit Kleinbuchstaben beginnen."
+
+msgid "E172: Missing marker"
+msgstr "E172: Fehlende Markierung"
+
+#, c-format
+msgid "E990: Missing end marker '%s'"
+msgstr "E990: Fehlende Endmarkierung nach '%s'"
+
+msgid "E985: .= is not supported with script version 2"
+msgstr "E985: .= wird mit Scriptversion 2 nicht mehr untersttzt."
+
+msgid "E687: Less targets than List items"
+msgstr "E687: Weniger Ziele als Eintrge in der Liste."
+
+msgid "E688: More targets than List items"
+msgstr "E688: Mehr Ziele als Eintrge in der Liste."
+
+msgid "Double ; in list of variables"
+msgstr "Doppeltes ; in der Liste von Variablen"
+
+#, c-format
+msgid "E738: Can't list variables for %s"
+msgstr "E738: Kann Variablen nicht auflisten: %s"
+
+msgid "E996: Cannot lock an environment variable"
+msgstr "E996: Kann Umgebungsvariable nicht sperren"
+
+msgid "E996: Cannot lock an option"
+msgstr "E996: Kann Option nicht sperren"
+
+msgid "E996: Cannot lock a register"
+msgstr "E996: Kann Register nicht sperren"
+
+#, c-format
+msgid "E108: No such variable: \"%s\""
+msgstr "E108: Keine solche Variable: \"%s\""
+
+#, c-format
+msgid "E940: Cannot lock or unlock variable %s"
+msgstr "E940: Kann Variable \"%s\" nicht sperren bzw. entsperren."
+
+msgid "E743: variable nested too deep for (un)lock"
+msgstr "E743: Variable ist zu tief verschachtelt zum (ent)sperren."
+
+#, c-format
+msgid "E963: setting %s to value with wrong type"
+msgstr "E963: %s auf Wert mit falschem Typ gesetzt"
+
+#, c-format
+msgid "E795: Cannot delete variable %s"
+msgstr "E795: Kann Variable nicht lschen: %s"
+
+#, c-format
+msgid "E704: Funcref variable name must start with a capital: %s"
+msgstr ""
+"E704: Funktionsreferenz-Variable muss mit einem Grobuchstaben beginnen: %s"
+
+#, c-format
+msgid "E705: Variable name conflicts with existing function: %s"
+msgstr "E705: Konflikt eines Variablennamens mit bestehender Funktion: %s"
+
+#, c-format
+msgid "E741: Value is locked: %s"
+msgstr "E741: Wert ist gesperrt: %s"
+
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#, c-format
+msgid "E742: Cannot change value of %s"
+msgstr "E742: Kann Wert nicht ndern: %s"
+
 #, c-format
 msgid "<%s>%s%s  %d,  Hex %02x,  Oct %03o, Digr %s"
 msgstr "<%s>%s%s  %d,  Hex %02x,  Oktal %03o, Digr %s"
@@ -934,73 +976,6 @@ msgstr "E135: *Filter*-Autokommandos drfen den aktuellen Puffer nicht ndern"
 msgid "[No write since last change]\n"
 msgstr "[Nicht geschrieben seit der letzten nderung]\n"
 
-#, c-format
-msgid "%sviminfo: %s in line: "
-msgstr "%sviminfo: %s in Zeile: "
-
-msgid "E136: viminfo: Too many errors, skipping rest of file"
-msgstr "E136: viminfo: Zu viele Fehler; berspringe Rest der Datei"
-
-#, c-format
-msgid "Reading viminfo file \"%s\"%s%s%s"
-msgstr "Lesen der viminfo-Datei \"%s\"%s%s%s"
-
-msgid " info"
-msgstr " Information"
-
-msgid " marks"
-msgstr " Markierungen"
-
-msgid " oldfiles"
-msgstr " oldfiles"
-
-msgid " FAILED"
-msgstr " FEHLGESCHLAGEN"
-
-#, c-format
-msgid "E137: Viminfo file is not writable: %s"
-msgstr "E137: Viminfo-Datei ist nicht schreibbar: %s"
-
-#, c-format
-msgid "E929: Too many viminfo temp files, like %s!"
-msgstr "E929: Zu viele temporre viminfo Dateien (wie %s)!"
-
-#, c-format
-msgid "E138: Can't write viminfo file %s!"
-msgstr "E138: Schreiben der viminfo-Datei %s ist nicht mglich!"
-
-#, c-format
-msgid "Writing viminfo file \"%s\""
-msgstr "Schreiben der viminfo-Datei \"%s\""
-
-#, c-format
-msgid "E886: Can't rename viminfo file to %s!"
-msgstr "E886: Kann viminfo Datei nicht in %s umbenennen!"
-
-#, c-format
-msgid "# This viminfo file was generated by Vim %s.\n"
-msgstr "# Diese viminfo-Datei wurde von Vim %s generiert.\n"
-
-msgid ""
-"# You may edit it if you're careful!\n"
-"\n"
-msgstr ""
-"# Sie knnen sie verndern, wenn Sie vorsichtig vorgehen!\n"
-"\n"
-
-msgid "# Value of 'encoding' when this file was written\n"
-msgstr "# Wert von 'encoding', als diese Datei geschrieben wurde\n"
-
-msgid "Illegal starting char"
-msgstr "Unzulssiges Zeichen am Anfang"
-
-msgid ""
-"\n"
-"# Bar lines, copied verbatim:\n"
-msgstr ""
-"\n"
-"# |-Zeilen, wortwrtlich kopiert:\n"
-
 msgid "Save As"
 msgstr "Speichern als"
 
@@ -1064,7 +1039,8 @@ msgid "E144: non-numeric argument to :z"
 msgstr "E144: Nicht-numerisches Argument fr :z"
 
 msgid "E145: Shell commands and some functionality not allowed in rvim"
-msgstr "E145: Shell-Befehle und andere Funktionalitten sind in rvim nicht erlaubt."
+msgstr ""
+"E145: Shell-Befehle und andere Funktionalitten sind in rvim nicht erlaubt."
 
 msgid "E146: Regular expressions can't be delimited by letters"
 msgstr ""
@@ -1115,15 +1091,6 @@ msgstr "Muster in jeder Zeile gefunden: 
 msgid "Pattern not found: %s"
 msgstr "Muster nicht gefunden: %s"
 
-msgid ""
-"\n"
-"# Last Substitute String:\n"
-"$"
-msgstr ""
-"\n"
-"# Letzte ersetzte Zeichenkette:\n"
-"$"
-
 msgid "E478: Don't panic!"
 msgstr "E478: Nur keine Panik!"
 
@@ -1167,54 +1134,6 @@ msgstr "E150: Kein Verzeichnis: %s"
 msgid "No old files"
 msgstr "Keine Alt-Dateien"
 
-msgid "Entering Debug mode.  Type \"cont\" to continue."
-msgstr "Debug-Modus. Geben Sie \"cont\" zum Fortsetzen ein."
-
-#, c-format
-msgid "Oldval = \"%s\""
-msgstr "Alter Wert = \"%s\""
-
-#, c-format
-msgid "Newval = \"%s\""
-msgstr "Neuer Wert = \"%s\""
-
-#, c-format
-msgid "line %ld: %s"
-msgstr "Zeile %ld: %s"
-
-#, c-format
-msgid "cmd: %s"
-msgstr "Befehl: %s"
-
-msgid "frame is zero"
-msgstr "Frame ist Null"
-
-#, c-format
-msgid "frame at highest level: %d"
-msgstr "Frame auf letzter Ebene: %d"
-
-#, c-format
-msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "Haltepunkt in \"%s%s\" Zeile %ld"
-
-#, c-format
-msgid "E161: Breakpoint not found: %s"
-msgstr "E161: Haltepunkt nicht gefunden: %s"
-
-msgid "No breakpoints defined"
-msgstr "Keine Haltepunkte definiert"
-
-#, c-format
-msgid "%3d  %s %s  line %ld"
-msgstr "%3d  %s %s  Zeile %ld"
-
-#, c-format
-msgid "%3d  expr %s"
-msgstr "%3d expr %s"
-
-msgid "E750: First use \":profile start {fname}\""
-msgstr "E750: Benutze vorher :profile start <fname>"
-
 #, c-format
 msgid "Save changes to \"%s\"?"
 msgstr "nderungen in \"%s\" speichern?"
@@ -1232,32 +1151,11 @@ msgstr ""
 "Achtung: Unerwartetet einen andren Puffer geffnet (berprfen Sie die "
 "Autokommandos)"
 
-msgid "E163: There is only one file to edit"
-msgstr "E163: Es gibt nur eine Datei zum Editieren."
-
-msgid "E164: Cannot go before first file"
-msgstr "E164: Kann nicht vor die erste Datei hinausgehen."
-
-msgid "E165: Cannot go beyond last file"
-msgstr "E165: Kann nicht ber die letzte Datei hinausgehen"
-
 #, c-format
 msgid "E666: compiler not supported: %s"
 msgstr "E666: Compiler nicht untersttzt: %s"
 
 #, c-format
-msgid "Searching for \"%s\" in \"%s\""
-msgstr "Suche nach \"%s\" in \"%s\""
-
-#, c-format
-msgid "Searching for \"%s\""
-msgstr "Suche nach \"%s\""
-
-#, c-format
-msgid "not found in '%s': \"%s\""
-msgstr "in '%s' nicht gefunden: \"%s\""
-
-#, c-format
 msgid "W20: Required python version 2.x not supported, ignoring file: %s"
 msgstr ""
 "W20: Erforderliche Python Version 2.x nicht untersttzt, ignoriere Datei: %s"
@@ -1267,68 +1165,6 @@ msgid "W21: Required python version 3.x 
 msgstr ""
 "W21: Erforderliche Python Version 3.x nicht untersttzt, ignoriere Datei: %s"
 
-msgid "Source Vim script"
-msgstr "Lese Vim-Skript"
-
-#, c-format
-msgid "Cannot source a directory: \"%s\""
-msgstr "Kann kein Verzeichnis einlesen: \"%s\""
-
-#, c-format
-msgid "could not source \"%s\""
-msgstr "\"%s\" konnte nicht gelesen werden"
-
-#, c-format
-msgid "line %ld: could not source \"%s\""
-msgstr "Zeile %ld: \"%s\" konnte nicht gelesen werden"
-
-#, c-format
-msgid "sourcing \"%s\""
-msgstr "lese \"%s\""
-
-#, c-format
-msgid "line %ld: sourcing \"%s\""
-msgstr "Zeile %ld: lese \"%s\""
-
-#, c-format
-msgid "finished sourcing %s"
-msgstr "Lesen von %s beendet"
-
-#, c-format
-msgid "continuing in %s"
-msgstr "weiter in %s"
-
-msgid "modeline"
-msgstr "modeline"
-
-msgid "--cmd argument"
-msgstr "--cmd Argument"
-
-msgid "-c argument"
-msgstr "-c Argument"
-
-msgid "environment variable"
-msgstr "Umgebungsvariable"
-
-msgid "error handler"
-msgstr "Error-Handler"
-
-msgid "W15: Warning: Wrong line separator, ^M may be missing"
-msgstr "W15: Achtung: Falscher Zeilentrenner, vielleicht fehlt ein ^M"
-
-msgid "E167: :scriptencoding used outside of a sourced file"
-msgstr "E167: :scriptencoding auerhalb einer eingelesenen Datei"
-
-msgid "E984: :scriptversion used outside of a sourced file"
-msgstr "E984: :scriptversion auerhalb einer eingelesenen Datei"
-
-#, c-format
-msgid "E999: scriptversion not supported: %d"
-msgstr "E999: scriptversion nicht untersttzt: %d"
-
-msgid "E168: :finish used outside of a sourced file"
-msgstr "E168: :finish auerhalb einer eingelesenen Datei"
-
 #, c-format
 msgid "Current %slanguage: \"%s\""
 msgstr "Momentane %sSprache: \"%s\""
@@ -1375,6 +1211,12 @@ msgstr "Bereichsgrenzen rckwrts; vertauschen"
 msgid "E494: Use w or w>>"
 msgstr "E494: Verwenden Sie w oder w>>"
 
+msgid ""
+"INTERNAL: Cannot use EX_DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX"
+msgstr ""
+"INTERN: Kann EX_DFLALL nicht zusammen mit ADDR_NONE, ADDR_UNSIGNED "
+"oder ADDR_QUICKFIX nutzen"
+
 msgid "E943: Command table needs to be updated, run 'make cmdidxs'"
 msgstr ""
 "E943: Befehlstabelle muss aktualisiert werden, fhre 'make cmdidxs' aus"
@@ -1394,75 +1236,6 @@ msgid_plural "E173: %d more files to edi
 msgstr[0] "E173: %d weitere Datei zum Editieren"
 msgstr[1] "E173: %d weitere Dateien zum Editieren"
 
-#, c-format
-msgid "E174: Command already exists: add ! to replace it: %s"
-msgstr "E174: Befehl '%s' existiert bereits: ! zum Ersetzen hinzufgen"
-
-msgid ""
-"\n"
-"    Name        Args       Address   Complete  Definition"
-msgstr ""
-"\n"
-"    Name        Args       Adresse Vervollstndigung Definition"
-
-msgid "No user-defined commands found"
-msgstr "Keine vom Benutzer definierten Befehle gefunden"
-
-msgid "E175: No attribute specified"
-msgstr "E175: Kein Attribut angegeben"
-
-msgid "E176: Invalid number of arguments"
-msgstr "E176: Falsche Anzahl von Argumenten"
-
-msgid "E177: Count cannot be specified twice"
-msgstr "E177: Zhler kann nicht zweimal angegeben werden"
-
-msgid "E178: Invalid default value for count"
-msgstr "E178: Ungltige Voreinstellung fr den Zhler"
-
-msgid "E179: argument required for -complete"
-msgstr "E179: Argument bentigt fr -complete"
-
-msgid "E179: argument required for -addr"
-msgstr "E179: Argument bentigt fr -addr"
-
-#, c-format
-msgid "E181: Invalid attribute: %s"
-msgstr "E181: Ungltiges Attribut: %s"
-
-msgid "E182: Invalid command name"
-msgstr "E182: Ungltiger Befehls-Name"
-
-msgid "E183: User defined commands must start with an uppercase letter"
-msgstr "E183: Benutzerdefinierte Befehle mssen mit Grobuchstaben beginnen."
-
-msgid "E841: Reserved name, cannot be used for user defined command"
-msgstr ""
-"E841: Reservierter Name kann nicht fr benutzerdefinierten Befehl verwendet "
-"werden."
-
-#, c-format
-msgid "E184: No such user-defined command: %s"
-msgstr "E184: Unbekannter benutzerdefinierter Befehl: %s"
-
-#, c-format
-msgid "E180: Invalid address type value: %s"
-msgstr "E180: Ungltiger Adresstyp: %s"
-
-#, c-format
-msgid "E180: Invalid complete value: %s"
-msgstr "E180: Ungltiger Wert der Vervollstndigung: %s"
-
-msgid "E468: Completion argument only allowed for custom completion"
-msgstr ""
-"E468: Argument fr Vervollstndigung nur fr benutzerdefinierte "
-"Vervollstndigung erlaubt."
-
-msgid "E467: Custom completion requires a function argument"
-msgstr ""
-"E467: Benutzerdefinierte Vervollstndigung bentigt eine Funktion als "
-"Argument."
-
 msgid "unknown"
 msgstr "unbekannt"
 
@@ -1527,15 +1300,6 @@ msgstr "E930: Kann :redir nicht innerhal
 msgid "Save Redirection"
 msgstr "Umleitung Speichern"
 
-msgid "Save View"
-msgstr "Ansichten Speichern"
-
-msgid "Save Session"
-msgstr "Sitzung Speichern"
-
-msgid "Save Setup"
-msgstr "Einstellungen Speichern"
-
 #, c-format
 msgid "E739: Cannot create directory: %s"
 msgstr "E739: Kann Verzeichnis nicht erstellen: %s"
@@ -1588,9 +1352,6 @@ msgstr "E499: Leerer Dateiname fr '%' oder '#', funktioniert nur mit \":p:h\""
 msgid "E500: Evaluates to an empty string"
 msgstr "E500: Ergibt eine leere Zeichenkette"
 
-msgid "E195: Cannot open viminfo file for reading"
-msgstr "E195: viminfo kann nicht zum Lesen geffnet werden."
-
 msgid "Untitled"
 msgstr "Unbenannt"
 
@@ -1704,38 +1465,6 @@ msgstr "E788: Einen weiteren Puffer zu e
 msgid "E811: Not allowed to change buffer information now"
 msgstr "E811: Puffer Information darf momentan nicht gendert werden."
 
-msgid "tagname"
-msgstr "Tag-Name"
-
-msgid " kind file\n"
-msgstr " Typ Datei\n"
-
-msgid "'history' option is zero"
-msgstr "Option 'history' ist Null"
-
-#, c-format
-msgid ""
-"\n"
-"# %s History (newest to oldest):\n"
-msgstr ""
-"\n"
-"# %s Geschichte (neueste bis lteste):\n"
-
-msgid "Command Line"
-msgstr "Befehlszeile"
-
-msgid "Search String"
-msgstr "Suchausdruck"
-
-msgid "Expression"
-msgstr "Ausdruck"
-
-msgid "Input Line"
-msgstr "Eingabe-Zeile"
-
-msgid "Debug Line"
-msgstr "Debug-Zeile"
-
 msgid "E199: Active window or buffer deleted"
 msgstr "E199: Aktives Fenster oder Puffer gelscht"
 
@@ -2115,37 +1844,18 @@ msgid_plural "+--%3ld lines folded "
 msgstr[0] "%3ld Zeile gefaltet "
 msgstr[1] "%3ld Zeilen gefaltet "
 
+#, c-format
+msgid "+-%s%3ld line: "
+msgid_plural "+-%s%3ld lines: "
+msgstr[0] "+-%s%3ld Zeile: "
+msgstr[1] "+-%s%3ld Zeilen: "
+
 msgid "E222: Add to read buffer"
 msgstr "E222: Zum Lesepuffer hinzufgen"
 
 msgid "E223: recursive mapping"
 msgstr "E223: rekursives Mapping"
 
-#, c-format
-msgid "E224: global abbreviation already exists for %s"
-msgstr "E224: Globale Kurzform fr %s existiert bereits"
-
-#, c-format
-msgid "E225: global mapping already exists for %s"
-msgstr "E225: Globales Mapping fr %s existiert bereits"
-
-#, c-format
-msgid "E226: abbreviation already exists for %s"
-msgstr "E226: Kurzform %s existiert bereits"
-
-#, c-format
-msgid "E227: mapping already exists for %s"
-msgstr "E227: Mapping fr %s existiert bereits"
-
-msgid "No abbreviation found"
-msgstr "Keine Kurzform gefunden"
-
-msgid "No mapping found"
-msgstr "Kein Mapping gefunden"
-
-msgid "E228: makemap: Illegal mode"
-msgstr "E228: makemap: Unzulssiger Modus"
-
 msgid "E851: Failed to create a new process for the GUI"
 msgstr "E851: Erstellung des GUI-Prozesses fehlgeschlagen"
 
@@ -2352,6 +2062,9 @@ msgid "E243: Argument not supported: \"-
 msgstr ""
 "E243: Argument wird nicht untersttzt: \"-%s\"; verwende die OLE Version."
 
+msgid "E988: GUI cannot be used. Cannot execute gvim.exe."
+msgstr "E988: GUI kann nicht benutzt werden: Kann gvim.exe nicht ausfhren."
+
 msgid "E672: Unable to open window inside MDI application"
 msgstr "E672: Kann Fenster nicht innerhalb einer MDI Anwendung ffnen"
 
@@ -2524,6 +2237,93 @@ msgstr "E365: Druck der PostScript-Datei
 msgid "Print job sent."
 msgstr "Druckauftrag abgeschickt"
 
+msgid "E679: recursive loop loading syncolor.vim"
+msgstr "E679: Rekursive Schleife beim Laden von syncolor.vim"
+
+#, c-format
+msgid "E411: highlight group not found: %s"
+msgstr "E411: Hervorhebungsgruppe nicht gefunden: %s"
+
+#, c-format
+msgid "E412: Not enough arguments: \":highlight link %s\""
+msgstr "E412: Nicht gengend Argumente: \":highlight link %s\""
+
+#, c-format
+msgid "E413: Too many arguments: \":highlight link %s\""
+msgstr "E413: Zu viele Argumente: \":highlight link %s\""
+
+msgid "E414: group has settings, highlight link ignored"
+msgstr "E414: Gruppe hat Einstellungen, highlight link ignoriert"
+
+#, c-format
+msgid "E415: unexpected equal sign: %s"
+msgstr "E415: Unerwartetes Gleichheitszeichen: %s"
+
+#, c-format
+msgid "E416: missing equal sign: %s"
+msgstr "E416: fehlendes Gleichheitszeichen: %s"
+
+#, c-format
+msgid "E417: missing argument: %s"
+msgstr "E417: Fehlendes Argument: %s"
+
+#, c-format
+msgid "E418: Illegal value: %s"
+msgstr "E418: Unzulssiger Wert: %s"
+
+msgid "E419: FG color unknown"
+msgstr "E419: Vordergrundfarbe unbekannt"
+
+msgid "E420: BG color unknown"
+msgstr "E420: Hintergrundfarbe unbekannt"
+
+#, c-format
+msgid "E421: Color name or number not recognized: %s"
+msgstr "E421: Unbekannte Farbbezeichnung oder -Nummer: %s"
+
+#, c-format
+msgid "E422: terminal code too long: %s"
+msgstr "E422: Terminal-Code zu lang: %s"
+
+#, c-format
+msgid "E423: Illegal argument: %s"
+msgstr "E423: Unzulssiges Argument: %s"
+
+msgid "E424: Too many different highlighting attributes in use"
+msgstr "E424: Zu viele verschieden Hervorhebungsattribute in Gebrauch"
+
+msgid "E669: Unprintable character in group name"
+msgstr "E669: Nicht druckbare Zeichen im Namen der Gruppe"
+
+msgid "W18: Invalid character in group name"
+msgstr "W18: Ungltiges Zeichen im Namen der Gruppe"
+
+msgid "E849: Too many highlight and syntax groups"
+msgstr "E849: Zu viele Highlight- und Syntaxgruppen"
+
+#, c-format
+msgid "E799: Invalid ID: %d (must be greater than or equal to 1)"
+msgstr "E799: Ungltige ID: %d (muss grer gleich 1 sein)"
+
+#, c-format
+msgid "E801: ID already taken: %d"
+msgstr "E801: ID bereits benutzt: %d"
+
+msgid "List or number required"
+msgstr "Liste oder Nummer erforderlich"
+
+#, c-format
+msgid "E802: Invalid ID: %d (must be greater than or equal to 1)"
+msgstr "E802: Ungltige ID: %d (muss grer gleich 1 sein)"
+
+#, c-format
+msgid "E803: ID not found: %d"
+msgstr "E803: ID nicht gefunden: %d"
+
+#, c-format
+msgid "E798: ID is reserved for \":match\": %d"
+msgstr "E798: ID ist fr \":match\" reserviert: %d"
+
 msgid "Add a new database"
 msgstr "Eine neue Datenbank hinzufgen"
 
@@ -2963,6 +2763,9 @@ msgstr " (Einfgen) Scrollen (^E/^Y)"
 msgid " (replace) Scroll (^E/^Y)"
 msgstr " (Ersetzen) Scrollen (^E/^Y)"
 
+msgid "E785: complete() can only be used in Insert mode"
+msgstr "E785: complete() kann nur im Einfge-Modus verwendet werden."
+
 #, c-format
 msgid "Scanning: %s"
 msgstr "Durchsuche: %s"
@@ -3008,6 +2811,18 @@ msgstr "E696: Fehlendes Komma in der Lis
 msgid "E697: Missing end of List ']': %s"
 msgstr "E697: Fehlendes Ende der Liste ']': %s"
 
+msgid "sort() argument"
+msgstr "sort() Argument"
+
+msgid "uniq() argument"
+msgstr "uniq() Argument"
+
+msgid "E702: Sort compare function failed"
+msgstr "E702: Die Vergleichsfunktion der Sortierung ist fehlgeschlagen."
+
+msgid "E882: Uniq compare function failed"
+msgstr "E882: Die Uniq Vergleichsfunktion ist fehlgeschlagen."
+
 msgid "Unknown option argument"
 msgstr "Unbekanntes Optionsargument"
 
@@ -3459,6 +3274,39 @@ msgstr "Keine Anzeige: Versenden des Aus
 msgid ": Send expression failed.\n"
 msgstr ": Versenden des Ausdrucks fehlgeschlagen.\n"
 
+#, c-format
+msgid "E224: global abbreviation already exists for %s"
+msgstr "E224: Globale Kurzform fr %s existiert bereits"
+
+#, c-format
+msgid "E225: global mapping already exists for %s"
+msgstr "E225: Globales Mapping fr %s existiert bereits"
+
+#, c-format
+msgid "E226: abbreviation already exists for %s"
+msgstr "E226: Kurzform %s existiert bereits"
+
+#, c-format
+msgid "E227: mapping already exists for %s"
+msgstr "E227: Mapping fr %s existiert bereits"
+
+msgid "No abbreviation found"
+msgstr "Keine Kurzform gefunden"
+
+msgid "No mapping found"
+msgstr "Kein Mapping gefunden"
+
+msgid "E228: makemap: Illegal mode"
+msgstr "E228: makemap: Unzulssiger Modus"
+
+#, c-format
+msgid "E357: 'langmap': Matching character missing for %s"
+msgstr "E357: 'langmap': Passendes Zeichen fehlt fr %s"
+
+#, c-format
+msgid "E358: 'langmap': Extra characters after semicolon: %s"
+msgstr "E358: 'langmap': berschssige Zeichen nach dem Semikolon: %s"
+
 msgid "No marks set"
 msgstr "Keine Markierungen gesetzt"
 
@@ -3487,30 +3335,6 @@ msgstr ""
 "\n"
 "nder. Zeile Sp  Text"
 
-msgid ""
-"\n"
-"# File marks:\n"
-msgstr ""
-"\n"
-"# Datei-Markierungen:\n"
-
-msgid ""
-"\n"
-"# Jumplist (newest first):\n"
-msgstr ""
-"\n"
-"# Jumplist (neueste zuerst):\n"
-
-msgid ""
-"\n"
-"# History of marks within files (newest to oldest):\n"
-msgstr ""
-"\n"
-"# Geschichte der Markierungen innerhalb von Dateien (neueste zuerst):\n"
-
-msgid "Missing '>'"
-msgstr "'>' fehlt"
-
 msgid "E543: Not a valid codepage"
 msgstr "E543: Keine zulssige Codepage"
 
@@ -3768,6 +3592,10 @@ msgstr "   Im Verzeichnis "
 msgid "      -- none --\n"
 msgstr "      -- Nichts --\n"
 
+# no-c-format
+msgid "%a %b %d %H:%M:%S %Y"
+msgstr "%a, %d %b %Y %H:%M:%S"
+
 msgid "          owned by: "
 msgstr "      Eigentum von: "
 
@@ -3897,7 +3725,7 @@ msgid "E323: line count wrong in block %
 msgstr "E323: Zeilenanzahl falsch in Block %ld"
 
 msgid "Stack size increases"
-msgstr "Stapel Gre wchst"
+msgstr "Stack Gre wchst"
 
 msgid "E317: pointer block id wrong 2"
 msgstr "E317: Zeiger Block id falsch 2"
@@ -3961,6 +3789,9 @@ msgstr ""
 "\"\n"
 "    um diese Nachricht zu vermeiden.\n"
 
+msgid "Found a swap file that is not useful, deleting it"
+msgstr "Auslagerungsdatei gefunden, die nicht nutzbar ist. Lsche diese"
+
 msgid "Swap file \""
 msgstr "Auslagerungsdatei \""
 
@@ -4128,9 +3959,6 @@ msgstr "E807: Erwarte Float Argument fr printf()"
 msgid "E767: Too many arguments to printf()"
 msgstr "E767: Zu viele Argumente fr printf()"
 
-msgid "W10: Warning: Changing a readonly file"
-msgstr "W10: Achtung: ndern einer schreibgeschtzten Datei"
-
 msgid "Type number and <Enter> or click with mouse (empty cancels): "
 msgstr ""
 "Bitte Nummer und <Enter> eingeben oder mit der Maus auswhlen (abbrechen mit "
@@ -4177,12 +4005,8 @@ msgstr ""
 "[Aufrufe] gesamt re/malloc()s %lu, gesamt free()s %lu\n"
 "\n"
 
-msgid "E340: Line is becoming too long"
-msgstr "E340: Zeile wird zu lang"
-
-#, c-format
-msgid "E341: Internal error: lalloc(%ld, )"
-msgstr "E341: Interner Fehler: lalloc(%ld, )"
+msgid "E341: Internal error: lalloc(0, )"
+msgstr "E341: Interner Fehler: lalloc(0, )"
 
 #, c-format
 msgid "E342: Out of memory!  (allocating %lu bytes)"
@@ -4330,20 +4154,6 @@ msgstr ""
 "\n"
 "--- Register ---"
 
-msgid "Illegal register name"
-msgstr "Unzulssiger Register Name"
-
-msgid ""
-"\n"
-"# Registers:\n"
-msgstr ""
-"\n"
-"# Register:\n"
-
-#, c-format
-msgid "E574: Unknown register type %d"
-msgstr "E574: Unbekannter Register Typ %d"
-
 msgid ""
 "E883: search pattern and expression register may not contain two or more "
 "lines"
@@ -4397,6 +4207,11 @@ msgstr "E519: Option nicht untersttzt"
 msgid "E520: Not allowed in a modeline"
 msgstr "E520: Nicht erlaubt in einer Modeline"
 
+msgid "E992: Not allowed in a modeline when 'modelineexpr' is off"
+msgstr ""
+"E992: Nicht erlaubt innerhalb einer Modeline, da die Option 'modelineexpr' "
+"deaktiviert ist"
+
 msgid "E846: Key code not set"
 msgstr "E846: Tastencode nicht gesetzt"
 
@@ -4555,14 +4370,6 @@ msgstr ""
 msgid "E356: get_varp ERROR"
 msgstr "E356: get_varp FEHLER"
 
-#, c-format
-msgid "E357: 'langmap': Matching character missing for %s"
-msgstr "E357: 'langmap': Passendes Zeichen fehlt fr %s"
-
-#, c-format
-msgid "E358: 'langmap': Extra characters after semicolon: %s"
-msgstr "E358: 'langmap': berschssige Zeichen nach dem Semikolon: %s"
-
 msgid "cannot open "
 msgstr "kann nicht ffnen"
 
@@ -4656,6 +4463,10 @@ msgstr ""
 "\n"
 "Vim: ein X11 Fehler trat auf\n"
 
+#, c-format
+msgid "restoring display %s"
+msgstr "Wiederherstellen des Displays %s"
+
 msgid "Testing the X display failed"
 msgstr "Test des X-Displays schlug fehl"
 
@@ -4784,6 +4595,23 @@ msgstr "Vim Achtung"
 msgid "shell returned %d"
 msgstr "Shell gab %d zurck"
 
+#, c-format
+msgid "E997: Tabpage not found: %d"
+msgstr "E997: Konnte Reiter \"%d\" nicht finden"
+
+#, c-format
+msgid "E993: window %d is not a popup window"
+msgstr "E993: Fenster %d is kein Popup-Fenster"
+
+msgid "E994: Not allowed in a popup window"
+msgstr "E994: Nicht innerhalb eines Popup-Fensters erlaubt"
+
+msgid "E750: First use \":profile start {fname}\""
+msgstr "E750: Benutze vorher :profile start <fname>"
+
+msgid "E553: No more items"
+msgstr "E553: Keine weiteren Eintrge"
+
 msgid "E926: Current location list was changed"
 msgstr "E926: Aktuelle Positionsliste wurde gendert."
 
@@ -4816,9 +4644,6 @@ msgstr "E378: 'errorformat' enthlt kein Muster"
 msgid "E379: Missing or empty directory name"
 msgstr "E379: Fehlender oder leerer Verzeichnisname"
 
-msgid "E553: No more items"
-msgstr "E553: Keine weiteren Eintrge"
-
 msgid "E924: Current window was closed"
 msgstr "E924: Aktuelles Fenster wurde geschlossen."
 
@@ -4862,6 +4687,10 @@ msgid "E777: String or List expected"
 msgstr "E777: Zeichenkette oder Liste erwartet"
 
 #, c-format
+msgid "E927: Invalid action: '%s'"
+msgstr "E927: Ungltige Aktion '%s'"
+
+#, c-format
 msgid "E369: invalid item in %s%%[]"
 msgstr "E369: Ungltiges Element in %s%%[]"
 
@@ -4982,6 +4811,7 @@ msgstr "E865: (NFA) Regexp Ende verfrht aufgetreten"
 msgid "E866: (NFA regexp) Misplaced %c"
 msgstr "E866: (NFA regexp) Deplatziert %c"
 
+#, c-format
 msgid "E877: (NFA regexp) Invalid character class: %d"
 msgstr "E877: (NFA regexp) Ungltige Zeichenklasse: %d"
 
@@ -5091,6 +4921,80 @@ msgid "recording"
 msgstr "aufzeichnen"
 
 #, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "Suche nach \"%s\" in \"%s\""
+
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "Suche nach \"%s\""
+
+#, c-format
+msgid "not found in '%s': \"%s\""
+msgstr "in '%s' nicht gefunden: \"%s\""
+
+msgid "Source Vim script"
+msgstr "Lese Vim-Skript"
+
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "Kann kein Verzeichnis einlesen: \"%s\""
+
+#, c-format
+msgid "could not source \"%s\""
+msgstr "\"%s\" konnte nicht gelesen werden"
+
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "Zeile %ld: \"%s\" konnte nicht gelesen werden"
+
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "lese \"%s\""
+
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "Zeile %ld: lese \"%s\""
+
+#, c-format
+msgid "finished sourcing %s"
+msgstr "Lesen von %s beendet"
+
+#, c-format
+msgid "continuing in %s"
+msgstr "weiter in %s"
+
+msgid "modeline"
+msgstr "modeline"
+
+msgid "--cmd argument"
+msgstr "--cmd Argument"
+
+msgid "-c argument"
+msgstr "-c Argument"
+
+msgid "environment variable"
+msgstr "Umgebungsvariable"
+
+msgid "error handler"
+msgstr "Error-Handler"
+
+msgid "W15: Warning: Wrong line separator, ^M may be missing"
+msgstr "W15: Achtung: Falscher Zeilentrenner, vielleicht fehlt ein ^M"
+
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: :scriptencoding auerhalb einer eingelesenen Datei"
+
+msgid "E984: :scriptversion used outside of a sourced file"
+msgstr "E984: :scriptversion auerhalb einer eingelesenen Datei"
+
+#, c-format
+msgid "E999: scriptversion not supported: %d"
+msgstr "E999: scriptversion nicht untersttzt: %d"
+
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: :finish auerhalb einer eingelesenen Datei"
+
+#, c-format
 msgid "E383: Invalid search string: %s"
 msgstr "E383: Unzulssiges Suchmuster: %s"
 
@@ -5146,18 +5050,14 @@ msgstr "E388: Konnte Definition nicht fi
 msgid "E389: Couldn't find pattern"
 msgstr "E389: Konnte Muster nicht finden"
 
-msgid "Substitute "
-msgstr "Ersetze"
-
-#, c-format
-msgid ""
-"\n"
-"# Last %sSearch Pattern:\n"
-"~"
-msgstr ""
-"\n"
-"# Letztes %sSuchmuster:\n"
-"~"
+msgid "Save View"
+msgstr "Ansichten Speichern"
+
+msgid "Save Session"
+msgstr "Sitzung Speichern"
+
+msgid "Save Setup"
+msgstr "Einstellungen Speichern"
 
 msgid "[Deleted]"
 msgstr "[Gelscht]"
@@ -5764,76 +5664,18 @@ msgid ""
 msgstr ""
 "  TOTAL      ANZAHL MATCH   LANGSAMST   DURCHSCHN NAME               MUSTER"
 
-msgid "E679: recursive loop loading syncolor.vim"
-msgstr "E679: Rekursive Schleife beim Laden von syncolor.vim"
-
-#, c-format
-msgid "E411: highlight group not found: %s"
-msgstr "E411: Hervorhebungsgruppe nicht gefunden: %s"
-
-#, c-format
-msgid "E412: Not enough arguments: \":highlight link %s\""
-msgstr "E412: Nicht gengend Argumente: \":highlight link %s\""
-
-#, c-format
-msgid "E413: Too many arguments: \":highlight link %s\""
-msgstr "E413: Zu viele Argumente: \":highlight link %s\""
-
-msgid "E414: group has settings, highlight link ignored"
-msgstr "E414: Gruppe hat Einstellungen, highlight link ignoriert"
-
-#, c-format
-msgid "E415: unexpected equal sign: %s"
-msgstr "E415: Unerwartetes Gleichheitszeichen: %s"
-
-#, c-format
-msgid "E416: missing equal sign: %s"
-msgstr "E416: fehlendes Gleichheitszeichen: %s"
-
-#, c-format
-msgid "E417: missing argument: %s"
-msgstr "E417: Fehlendes Argument: %s"
-
-#, c-format
-msgid "E418: Illegal value: %s"
-msgstr "E418: Unzulssiger Wert: %s"
-
-msgid "E419: FG color unknown"
-msgstr "E419: Vordergrundfarbe unbekannt"
-
-msgid "E420: BG color unknown"
-msgstr "E420: Hintergrundfarbe unbekannt"
-
-#, c-format
-msgid "E421: Color name or number not recognized: %s"
-msgstr "E421: Unbekannte Farbbezeichnung oder -Nummer: %s"
-
-#, c-format
-msgid "E422: terminal code too long: %s"
-msgstr "E422: Terminal-Code zu lang: %s"
-
-#, c-format
-msgid "E423: Illegal argument: %s"
-msgstr "E423: Unzulssiges Argument: %s"
-
-msgid "E424: Too many different highlighting attributes in use"
-msgstr "E424: Zu viele verschieden Hervorhebungsattribute in Gebrauch"
-
-msgid "E669: Unprintable character in group name"
-msgstr "E669: Nicht druckbare Zeichen im Namen der Gruppe"
-
-msgid "W18: Invalid character in group name"
-msgstr "W18: Ungltiges Zeichen im Namen der Gruppe"
-
-msgid "E849: Too many highlight and syntax groups"
-msgstr "E849: Zu viele Highlight- und Syntaxgruppen"
-
 msgid "E555: at bottom of tag stack"
 msgstr "E555: Am Ende des Tag-Stacks"
 
 msgid "E556: at top of tag stack"
 msgstr "E556: Am Anfang des Tag-Stacks"
 
+msgid "E986: cannot modify the tag stack within tagfunc"
+msgstr "E986: Kann den Tag-Stack nicht innerhalb der tagfunc Funktion verndern"
+
+msgid "E987: invalid return value from tagfunc"
+msgstr "E987: Ungltiges Ergebnis der tagfunc Funktion"
+
 msgid "E425: Cannot go before first matching tag"
 msgstr "E425: Kann nicht vor den ersten passenden Tag hinausgehen"
 
@@ -5948,6 +5790,10 @@ msgid "Cannot open $VIMRUNTIME/rgb.txt"
 msgstr "Kann Datei $VIMRUNTIME/rgb.txt nicht ffnen."
 
 #, c-format
+msgid "E181: Invalid attribute: %s"
+msgstr "E181: Ungltiges Attribut: %s"
+
+#, c-format
 msgid "Kill job in \"%s\"?"
 msgstr "Beende job in \"%s\"?"
 
@@ -5994,6 +5840,9 @@ msgstr "E966: Ungltige Zeilennummer: %ld"
 msgid "E965: missing property type name"
 msgstr "E965: Fehlender Eigenschaften Typname"
 
+msgid "E275: Cannot add text property to unloaded buffer"
+msgstr "E275: Kann Texteigenschaft nicht einem entladenen Puffer hinzufgen"
+
 msgid "E967: text property info corrupted"
 msgstr "E967: Texteigenschaft-Info beschdigt"
 
@@ -6156,6 +6005,71 @@ msgstr "E439: Liste der Wiederherstellun
 msgid "E440: undo line missing"
 msgstr "E440: Wiederherstellungszeile fehlt"
 
+msgid ""
+"\n"
+"    Name              Args Address Complete    Definition"
+msgstr ""
+"\n"
+"    Name              Args Adresse Vervollstndigung Definition"
+
+msgid "No user-defined commands found"
+msgstr "Keine vom Benutzer definierten Befehle gefunden"
+
+#, c-format
+msgid "E180: Invalid address type value: %s"
+msgstr "E180: Ungltiger Adresstyp: %s"
+
+#, c-format
+msgid "E180: Invalid complete value: %s"
+msgstr "E180: Ungltiger Wert der Vervollstndigung: %s"
+
+msgid "E468: Completion argument only allowed for custom completion"
+msgstr ""
+"E468: Argument fr Vervollstndigung nur fr benutzerdefinierte "
+"Vervollstndigung erlaubt."
+
+msgid "E467: Custom completion requires a function argument"
+msgstr ""
+"E467: Benutzerdefinierte Vervollstndigung bentigt eine Funktion als "
+"Argument."
+
+msgid "E175: No attribute specified"
+msgstr "E175: Kein Attribut angegeben"
+
+msgid "E176: Invalid number of arguments"
+msgstr "E176: Falsche Anzahl von Argumenten"
+
+msgid "E177: Count cannot be specified twice"
+msgstr "E177: Zhler kann nicht zweimal angegeben werden"
+
+msgid "E178: Invalid default value for count"
+msgstr "E178: Ungltige Voreinstellung fr den Zhler"
+
+msgid "E179: argument required for -complete"
+msgstr "E179: Argument bentigt fr -complete"
+
+msgid "E179: argument required for -addr"
+msgstr "E179: Argument bentigt fr -addr"
+
+#, c-format
+msgid "E174: Command already exists: add ! to replace it: %s"
+msgstr "E174: Befehl '%s' existiert bereits: ! zum Ersetzen hinzufgen"
+
+msgid "E182: Invalid command name"
+msgstr "E182: Ungltiger Befehls-Name"
+
+msgid "E183: User defined commands must start with an uppercase letter"
+msgstr "E183: Benutzerdefinierte Befehle mssen mit Grobuchstaben beginnen."
+
+msgid "E841: Reserved name, cannot be used for user defined command"
+msgstr ""
+"E841: Reservierter Name kann nicht fr benutzerdefinierten Befehl verwendet "
+"werden."
+
+#, c-format
+msgid "E184: No such user-defined command: %s"
+msgstr "E184: Unbekannter benutzerdefinierter Befehl: %s"
+
 #, c-format
 msgid "E122: Function %s already exists, add ! to replace it"
 msgstr "E122: Funktion %s existiert bereits; zum Ersetzen ! hinzufgen"
@@ -6178,6 +6092,9 @@ msgstr "E125: Unzulssiges Argument: %s"
 msgid "E853: Duplicate argument name: %s"
 msgstr "E853: Doppelter Argumentname: %s"
 
+msgid "E989: Non-default argument follows default argument"
+msgstr "E989: Nicht-default Argument folgt auf default Argument"
+
 #, c-format
 msgid "E740: Too many arguments for function %s"
 msgstr "E740: Zu viele Argumente fr Funktion %s"
@@ -6213,6 +6130,10 @@ msgid "E117: Unknown function: %s"
 msgstr "E117: Unbekannte Funktion: %s"
 
 #, c-format
+msgid "E276: Cannot use function as a method: %s"
+msgstr "E276: Funktion %s kann nicht als Methode genutzt werden"
+
+#, c-format
 msgid "E933: Function was deleted: %s"
 msgstr "E933: Funktion wurde gelscht: %s"
 
@@ -6251,7 +6172,7 @@ msgid "E124: Missing '(': %s"
 msgstr "E124: Fehlendes '(': %s"
 
 msgid "E862: Cannot use g: here"
-msgstr "E862: g: kann hier nicht benutzt werden"
+msgstr "E862: g: kann hier nicht genutzt werden"
 
 #, c-format
 msgid "E932: Closure function should not be at top level: %s"
@@ -6286,15 +6207,25 @@ msgid "E133: :return not inside a functi
 msgstr "E133: :return auerhalb einer Funktion"
 
 #, c-format
-msgid "E107: Missing parentheses: %s"
-msgstr "E107: Fehlende Klammern: %s"
-
-#, c-format
 msgid "%s (%s, compiled %s)"
 msgstr "%s (%s kompiliert am %s)"
 
 msgid ""
 "\n"
+"MS-Windows 64-bit GUI/console version"
+msgstr ""
+"\n"
+"MS-Windows 64 Bit GUI/Konsolen-Version"
+
+msgid ""
+"\n"
+"MS-Windows 32-bit GUI/console version"
+msgstr ""
+"\n"
+"MS-Windows 32 Bit GUI/Konsolen-Version"
+
+msgid ""
+"\n"
 "MS-Windows 64-bit GUI version"
 msgstr ""
 "\n"
@@ -6568,6 +6499,173 @@ msgstr "Tippe  :help register<Enter>    fr mehr Informationen    "
 msgid "menu  Help->Sponsor/Register  for information    "
 msgstr "Men   Hilfe->Sponsor/Register  fr mehr Informationen    "
 
+msgid ""
+"\n"
+"# Buffer list:\n"
+msgstr ""
+"\n"
+"# Liste der Puffer:\n"
+
+#, c-format
+msgid ""
+"\n"
+"# %s History (newest to oldest):\n"
+msgstr ""
+"\n"
+"# %s Geschichte (neueste bis lteste):\n"
+
+msgid "Command Line"
+msgstr "Befehlszeile"
+
+msgid "Search String"
+msgstr "Suchausdruck"
+
+msgid "Expression"
+msgstr "Ausdruck"
+
+msgid "Input Line"
+msgstr "Eingabe-Zeile"
+
+msgid "Debug Line"
+msgstr "Debug-Zeile"
+
+msgid ""
+"\n"
+"# Bar lines, copied verbatim:\n"
+msgstr ""
+"\n"
+"# |-Zeilen, wortwrtlich kopiert:\n"
+
+#, c-format
+msgid "%sviminfo: %s in line: "
+msgstr "%sviminfo: %s in Zeile: "
+
+msgid "E136: viminfo: Too many errors, skipping rest of file"
+msgstr "E136: viminfo: Zu viele Fehler; berspringe Rest der Datei"
+
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# globale Variablen:\n"
+
+msgid ""
+"\n"
+"# Last Substitute String:\n"
+"$"
+msgstr ""
+"\n"
+"# Letzte ersetzte Zeichenkette:\n"
+"$"
+
+#, c-format
+msgid ""
+"\n"
+"# Last %sSearch Pattern:\n"
+"~"
+msgstr ""
+"\n"
+"# Letztes %sSuchmuster:\n"
+"~"
+
+msgid "Substitute "
+msgstr "Ersetze"
+
+msgid "Illegal register name"
+msgstr "Unzulssiger Register Name"
+
+msgid ""
+"\n"
+"# Registers:\n"
+msgstr ""
+"\n"
+"# Register:\n"
+
+#, c-format
+msgid "E574: Unknown register type %d"
+msgstr "E574: Unbekannter Register Typ %d"
+
+msgid ""
+"\n"
+"# History of marks within files (newest to oldest):\n"
+msgstr ""
+"\n"
+"# Geschichte der Markierungen innerhalb von Dateien (neueste zuerst):\n"
+
+msgid ""
+"\n"
+"# File marks:\n"
+msgstr ""
+"\n"
+"# Datei-Markierungen:\n"
+
+msgid ""
+"\n"
+"# Jumplist (newest first):\n"
+msgstr ""
+"\n"
+"# Jumplist (neueste zuerst):\n"
+
+msgid "Missing '>'"
+msgstr "'>' fehlt"
+
+msgid "Illegal starting char"
+msgstr "Unzulssiges Zeichen am Anfang"
+
+#, c-format
+msgid "# This viminfo file was generated by Vim %s.\n"
+msgstr "# Diese viminfo-Datei wurde von Vim %s generiert.\n"
+
+msgid ""
+"# You may edit it if you're careful!\n"
+"\n"
+msgstr ""
+"# Sie knnen sie verndern, wenn Sie vorsichtig vorgehen!\n"
+"\n"
+
+msgid "# Value of 'encoding' when this file was written\n"
+msgstr "# Wert von 'encoding', als diese Datei geschrieben wurde\n"
+
+#, c-format
+msgid "Reading viminfo file \"%s\"%s%s%s"
+msgstr "Lesen der viminfo-Datei \"%s\"%s%s%s"
+
+msgid " info"
+msgstr " Information"
+
+msgid " marks"
+msgstr " Markierungen"
+
+msgid " oldfiles"
+msgstr " oldfiles"
+
+msgid " FAILED"
+msgstr " FEHLGESCHLAGEN"
+
+#, c-format
+msgid "E137: Viminfo file is not writable: %s"
+msgstr "E137: Viminfo-Datei ist nicht schreibbar: %s"
+
+#, c-format
+msgid "E929: Too many viminfo temp files, like %s!"
+msgstr "E929: Zu viele temporre viminfo Dateien (wie %s)!"
+
+#, c-format
+msgid "E138: Can't write viminfo file %s!"
+msgstr "E138: Schreiben der viminfo-Datei %s ist nicht mglich!"
+
+#, c-format
+msgid "Writing viminfo file \"%s\""
+msgstr "Schreiben der viminfo-Datei \"%s\""
+
+#, c-format
+msgid "E886: Can't rename viminfo file to %s!"
+msgstr "E886: Kann viminfo Datei nicht in %s umbenennen!"
+
+msgid "E195: Cannot open viminfo file for reading"
+msgstr "E195: viminfo kann nicht zum Lesen geffnet werden."
+
 msgid "Already only one window"
 msgstr "Bereits nur ein Fenster"
 
@@ -6578,6 +6676,9 @@ msgstr "E92: Puffer %ld nicht gefunden."
 msgid "E441: There is no preview window"
 msgstr "E441: Es gibt kein Vorschaufenster"
 
+msgid "E242: Can't split a window while closing another"
+msgstr "E242: Kann Fenster nicht teilen whrend anderes geschlossen wird"
+
 # should read: topleft / botright
 msgid "E442: Can't split topleft and botright at the same time"
 msgstr "E442: topleft und botright knnen nicht gleichzeitig verwendet werden"
@@ -6588,8 +6689,8 @@ msgstr "E443: Rotieren nicht mglich wenn ein anderes Fenster geteilt ist"
 msgid "E444: Cannot close last window"
 msgstr "E444: Letztes Fenster kann nicht geschlossen werden"
 
-msgid "E813: Cannot close autocmd window"
-msgstr "E813: Autokommando-Fenster kann nicht geschlossen werden"
+msgid "E813: Cannot close autocmd or popup window"
+msgstr "E813: Autokommando-Fenster oder Popup-Fenster kann nicht geschlossen werden"
 
 msgid "E814: Cannot close window, only autocmd window would remain"
 msgstr ""
@@ -6600,25 +6701,6 @@ msgid "E445: Other window contains chang
 msgstr "E445: Anderes Fenster enthlt nderungen"
 
 #, c-format
-msgid "E799: Invalid ID: %d (must be greater than or equal to 1)"
-msgstr "E799: Ungltige ID: %d (muss grer gleich 1 sein)"
-
-#, c-format
-msgid "E801: ID already taken: %d"
-msgstr "E801: ID bereits benutzt: %d"
-
-msgid "List or number required"
-msgstr "Liste oder Nummer erforderlich"
-
-#, c-format
-msgid "E802: Invalid ID: %d (must be greater than or equal to 1)"
-msgstr "E802: Ungltige ID: %d (muss grer gleich 1 sein)"
-
-#, c-format
-msgid "E803: ID not found: %d"
-msgstr "E803: ID nicht gefunden: %d"
-
-#, c-format
 msgid "E370: Could not load library %s"
 msgstr "E370: Konnte Bibliothek %s nicht laden"
 
@@ -6728,9 +6810,6 @@ msgstr "E685: Interner Fehler: %s"
 msgid "Interrupted"
 msgstr "Unterbrochen"
 
-msgid "E14: Invalid address"
-msgstr "E14: Ungltige Adresse"
-
 msgid "E474: Invalid argument"
 msgstr "E474: Ungltiges Argument"
 
@@ -6916,6 +6995,21 @@ msgid "E45: 'readonly' option is set (ad
 msgstr "E45: Die Option 'readonly' ist gesetzt (erzwinge mit !)"
 
 #, c-format
+msgid "E121: Undefined variable: %s"
+msgstr "E121: Undefinierte Variable: %s"
+
+#, c-format
+msgid "E734: Wrong variable type for %s="
+msgstr "E734: Falscher Variablentyp fr %s="
+
+#, c-format
+msgid "E461: Illegal variable name: %s"
+msgstr "E461: Unzulssiger Variablenname: %s"
+
+msgid "E995: Cannot modify existing variable"
+msgstr "E995: Kann existierende Variable nicht ndern"
+
+#, c-format
 msgid "E46: Cannot change read-only variable \"%s\""
 msgstr "E46: Variable \"%s\" kann nur gelesen werden"
 
@@ -6923,6 +7017,9 @@ msgstr "E46: Variable \"%s\" kann nur ge
 msgid "E794: Cannot set variable in the sandbox: \"%s\""
 msgstr "E794: Variable kann nicht in der Sandbox gesetzt werden: \"%s\""
 
+msgid "E928: String required"
+msgstr "E928: String wird bentigt."
+
 msgid "E713: Cannot use empty key for Dictionary"
 msgstr "E713: Der Schlssel fr das Dictionary darf nicht leer sein"
 
@@ -6987,7 +7084,7 @@ msgid "E72: Close error on swap file"
 msgstr "E72: Fehler beim Schlieen der Auslagerungsdatei"
 
 msgid "E73: tag stack empty"
-msgstr "E73: Tag Stapel leer."
+msgstr "E73: Tag Stack leer."
 
 msgid "E74: Command too complex"
 msgstr "E74: Befehl zu komplex"
@@ -7025,6 +7122,10 @@ msgstr "E939: Positive Zahl bentigt"
 msgid "E81: Using <SID> not in a script context"
 msgstr "E81: <SID> wurde nicht in einer Skript-Umgebung benutzt"
 
+#, c-format
+msgid "E107: Missing parentheses: %s"
+msgstr "E107: Fehlende Klammern: %s"
+
 msgid "E449: Invalid expression received"
 msgstr "E449: Ungltiger Ausdruck"
 
@@ -7067,6 +7168,13 @@ msgstr "E952: Autokommando verursachten 
 msgid "E328: Menu only exists in another mode"
 msgstr "E328: Men existiert nur in anderen Modi"
 
+msgid "E957: Invalid window number"
+msgstr "E957: Ungltige Fensternummer"
+
+#, c-format
+msgid "E686: Argument of %s must be a List"
+msgstr "E686: Argument von %s muss eine Liste sein."
+
 msgid "search hit TOP, continuing at BOTTOM"
 msgstr "Suche erreichte den ANFANG und wurde am ENDE fortgesetzt"
 
@@ -7402,5 +7510,3 @@ msgstr "gvim"
 
 msgid "Vim"
 msgstr "Vim"
-
-
--- a/src/po/gvim.desktop.in
+++ b/src/po/gvim.desktop.in
@@ -12,6 +12,7 @@ Comment=Edit text files
 GenericName[da]=Teksteditor
 GenericName[fr]=Éditeur de texte
 GenericName[pl]=Edytor tekstu
+GenericName[sr]=Едитор текста
 GenericName[is]=Ritvinnsluforrit
 Comment[af]=Redigeer tekslêers
 Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
--- a/src/po/sr.po
+++ b/src/po/sr.po
@@ -3324,21 +3324,21 @@ msgid ""
 "mark line  col file/text"
 msgstr ""
 "\n"
-"линија маркера  кол фајл/текст"
+"марк лин   кол фајл/текст"
 
 msgid ""
 "\n"
 " jump line  col file/text"
 msgstr ""
 "\n"
-"  линија скока  кол фајл/текст"
+" скок лин   кол фајл/текст"
 
 msgid ""
 "\n"
 "change line  col text"
 msgstr ""
 "\n"
-"линија промене кол текст"
+"измена лин   кол текст"
 
 msgid ""
 "\n"
@@ -3969,7 +3969,7 @@ msgid "E767: Too many arguments to print
 msgstr "E767: Сувише аргумената за printf()"
 
 msgid "W10: Warning: Changing a readonly file"
-msgstr "W10: Упозорење: Мења се фајл која може само да се чита"
+msgstr "W10: Упозорење: Мења се фајл који може само да се чита"
 
 msgid "Type number and <Enter> or click with mouse (empty cancels): "
 msgstr "Унесите број и <Ентер> или кликните мишем (ништа за отказ): "
@@ -6716,7 +6716,7 @@ msgid "E255: Couldn't read in sign data!
 msgstr "E255: Подаци за знак нису могли да се прочитају!"
 
 msgid "E72: Close error on swap file"
-msgstr "E72: Грешка код затвањара swap фајла"
+msgstr "E72: Грешка код затварања swap фајла"
 
 msgid "E73: tag stack empty"
 msgstr "E73: стек ознака је празан"