Update runtime files
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4918d5a..90c5f75 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -65,9 +65,6 @@
 
 # Translations
 
-Translations of this CONTRIBUTING file:
-[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/CONTRIBUTING_ko.md)
-
 Translating messages and runtime files is very much appreciated!  These things
 can be translated:
 *   Messages in Vim, see [src/po/README.txt][1]
diff --git a/README.md b/README.md
index 2a78adc..10d868e 100644
--- a/README.md
+++ b/README.md
@@ -128,6 +128,8 @@
 
 ## Information ##
 
+If you are on macOS, you can use [Macvim](https://macvim-dev.github.io/macvim/).
+
 The latest news about Vim can be found on the Vim home page:
 	https://www.vim.org/
 
@@ -150,8 +152,3 @@
 
 
 This is `README.md` for version 9.0 of Vim: Vi IMproved.
-
-
-## Translations of this README ##
-
-[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/README_ko.md)
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index d182f47..f700d4e 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -5775,8 +5775,8 @@
 		message will appear and the match will not be added.  An ID
 		is specified as a positive integer (zero excluded).  IDs 1, 2
 		and 3 are reserved for |:match|, |:2match| and |:3match|,
-		respectively.  3 is reserved for use by the
-		|matchparen|polugin.
+		respectively.  3 is reserved for use by the |matchparen|
+		plugin.
 		If the {id} argument is not specified or -1, |matchadd()|
 		automatically chooses a free ID.
 
@@ -7387,7 +7387,7 @@
 <		When {stopline} is used and it is not zero this also implies
 		that the search does not wrap around the end of the file.
 		A zero value is equal to not giving the argument.
-
+				*E1285* *E1286* *E1287* *E1288* *E1289*
 		When the {timeout} argument is given the search stops when
 		more than this many milliseconds have passed.  Thus when
 		{timeout} is 500 the search stops after half a second.
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 89a2491..5ac2f63 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -802,6 +802,8 @@
 |sub-replace-expression|.  You can use that for complex replacement or special
 characters.
 
+The substitution is limited in recursion to 4 levels. *E1290*
+
 Otherwise these characters in {string} have a special meaning:
 								*:s%*
 When {string} is equal to "%" and '/' is included with the 'cpoptions' option,
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index 65dbd30..5b4ea2b 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -27,6 +27,7 @@
 14. Using a prompt buffer		|prompt-buffer|
 15. Language Server Protocol		|language-server-protocol|
 
+							*E1277*
 {only when compiled with the |+channel| feature for channel stuff}
 	You can check this with: `has('channel')`
 {only when compiled with the |+job| feature for job stuff}
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index ffb0832..e09ec39 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1147,6 +1147,8 @@
 
 Vim will be in Normal mode when the editor is opened, except when 'insertmode'
 is set.
+								*E1292*
+Once a command-line window is open it is not possible to open another one.
 
 The height of the window is specified with 'cmdwinheight' (or smaller if there
 is no room).  The window is always full width and is positioned just above the
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 3dfacf7..9a35461 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1399,7 +1399,7 @@
 	base->alist[idx](args)
 	base->(getFuncRef())(args)
 Note that in the last call the base is passed to the function resulting from
-"(getFuncRef())", inserted before "args".
+"(getFuncRef())", inserted before "args".  *E1275*
 
 							*E274*
 "->name(" must not contain white space.  There can be white space before the
@@ -1559,7 +1559,7 @@
 expression returning a value can be enclosed between curly braces.  The value
 is converted to a string.  All the text and results of the expressions
 are concatenated to make a new string.
-								*E1278*
+							*E1278* *E1279*
 To include an opening brace '{' or closing brace '}' in the string content
 double it.  For double quoted strings using a backslash also works.  A single
 closing brace '}' will result in an error.
@@ -2682,7 +2682,7 @@
 			Define a new function by the name {name}.  The body of
 			the function follows in the next lines, until the
 			matching |:endfunction|.
-
+								*E1267*
 			The name must be made of alphanumeric characters and
 			'_', and must start with a capital or "s:" (see
 			above).  Note that using "b:" or "g:" is not allowed.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index d5e9915..7700d26 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -928,7 +928,7 @@
 	becomes invalid.  Vim doesn't automatically update the matches.
 	Similar to moving the cursor for "\%#" |/\%#|.
 
-					*/\%l* */\%>l* */\%<l* *E951* *E1204*
+				*/\%l* */\%>l* */\%<l* *E951* *E1204* *E1273*
 \%23l	Matches in a specific line.
 \%<23l	Matches above a specific line (lower line number).
 \%>23l	Matches below a specific line (higher line number).
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 6a2471a..d11557c 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -591,7 +591,7 @@
 
 The first argument of |popup_create()| (and the second argument to
 |popup_settext()|) specifies the text to be displayed, and optionally text
-properties.  It is in one of four forms:
+properties.  It is in one of four forms:  *E1284*
 - a buffer number
 - a string
 - a list of strings
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index a7e0e7e..f15d3b1 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -103,7 +103,7 @@
 zuG			Undo |zW| and |zG|, remove the word from the internal
 			word list.  Count used as with |zg|.
 
-							*:spe* *:spellgood*
+						*:spe* *:spellgood* *E1280*
 :[count]spe[llgood] {word}
 			Add {word} as a good word to 'spellfile', like with
 			|zg|.  Without count the first name is used, with a
diff --git a/runtime/doc/tags b/runtime/doc/tags
index df1a64f..5daad6a 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4068,10 +4068,12 @@
 E108	eval.txt	/*E108*
 E1080	vim9.txt	/*E1080*
 E1081	eval.txt	/*E1081*
+E1082	vim9.txt	/*E1082*
 E1083	editing.txt	/*E1083*
 E1084	eval.txt	/*E1084*
 E1085	eval.txt	/*E1085*
 E1087	vim9.txt	/*E1087*
+E1088	vim9.txt	/*E1088*
 E1089	eval.txt	/*E1089*
 E109	eval.txt	/*E109*
 E1090	eval.txt	/*E1090*
@@ -4269,17 +4271,36 @@
 E1264	vim9.txt	/*E1264*
 E1265	eval.txt	/*E1265*
 E1266	if_pyth.txt	/*E1266*
+E1267	eval.txt	/*E1267*
+E1268	vim9.txt	/*E1268*
+E1269	vim9.txt	/*E1269*
 E127	eval.txt	/*E127*
 E1270	change.txt	/*E1270*
 E1271	vim9.txt	/*E1271*
+E1272	vim9.txt	/*E1272*
+E1273	pattern.txt	/*E1273*
 E1274	cmdline.txt	/*E1274*
+E1275	eval.txt	/*E1275*
 E1276	builtin.txt	/*E1276*
+E1277	channel.txt	/*E1277*
 E1278	eval.txt	/*E1278*
+E1279	eval.txt	/*E1279*
 E128	eval.txt	/*E128*
+E1280	spell.txt	/*E1280*
 E1281	pattern.txt	/*E1281*
 E1282	eval.txt	/*E1282*
 E1283	eval.txt	/*E1283*
+E1284	popup.txt	/*E1284*
+E1285	builtin.txt	/*E1285*
+E1286	builtin.txt	/*E1286*
+E1287	builtin.txt	/*E1287*
+E1288	builtin.txt	/*E1288*
+E1289	builtin.txt	/*E1289*
 E129	eval.txt	/*E129*
+E1290	change.txt	/*E1290*
+E1291	testing.txt	/*E1291*
+E1292	cmdline.txt	/*E1292*
+E1293	textprop.txt	/*E1293*
 E13	message.txt	/*E13*
 E131	eval.txt	/*E131*
 E132	eval.txt	/*E132*
@@ -10694,6 +10715,7 @@
 vimtutor	usr_01.txt	/*vimtutor*
 virtcol()	builtin.txt	/*virtcol()*
 virtcol2col()	builtin.txt	/*virtcol2col()*
+virtual-text	textprop.txt	/*virtual-text*
 visual-block	visual.txt	/*visual-block*
 visual-change	visual.txt	/*visual-change*
 visual-examples	visual.txt	/*visual-examples*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 7e8e8b9..f251781 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -186,6 +186,7 @@
 				    keyup   generate a keyup event
 				    keydown generate a keydown event
 		    keycode:    Keycode to use for a keyup or a keydown event.
+								*E1291*
 
 		"tabline":
 		  Inject a mouse click event on the tabline to select a
diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt
index 6b4c023..d231082 100644
--- a/runtime/doc/textprop.txt
+++ b/runtime/doc/textprop.txt
@@ -171,7 +171,8 @@
 		the text.
 		A negative "id" will be chosen and is returned.  Once a
 		property with "text" has been added for a buffer then using a
-		negative "id" for any other property will give an error.
+		negative "id" for any other property will give an error:
+		*E1293*
 
 		Can also be used as a |method|: >
 			GetLnum()->prop_add(col, props)
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 20dbce9..7156df7 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -39,18 +39,24 @@
 -------------------- Known bugs and current work -----------------------
 
 PR to consider:
-- Fix CTRL-[ for Win32 on Belgian keyboard  #10687 (closes #10454)
 - stricter parsing for has('patch-x.y.z')  #10752
 - cmdheight=0  #10675  Does it work properly?
 - add splitscroll  #10682  Useful?  Any trouble? Null Chilly says it's OK.
     suggestion: names instead of numbers for the option value
+    problem depending on whether window is focused or not
 
-Support virtual text:
-- clear b_textprop_text when buffer is cleared
+Support virtual text:  #7553
 - Remove and free text when textprop is removed with negative ID.
 - "gj" does not work correctly
+- no virtual text when 'signcolumn' is set to "yes"  #10794
 - placement at the end of the line: after the text (text_align: "end"), right
-  aligned (text_align: "right")
+  aligned (text_align: "right"); choice: truncate when not enough space or
+  wrap to next line (text_wrap: "yes"); Also: fill with space to text wraps to
+  start of next screen line (text_align: "below")
+  Also consider an empty line, should fix #10786.  Also check inserting text.
+- win_lbr_chartabsize() TODO item: count screen cells
+- wrong cursor position (Yegappan, July 27)
+- many tests
 
 Further Vim9 improvements, possibly after launch:
 - Use Vim9 for more runtime files.
@@ -238,6 +244,9 @@
 Multiplexers (screen, tmux) can request it to the underlying terminal, and
 pass it on with modifications.
 
+Using "A" and "o" in manually created fold (in empty buffer) does not behave
+consistenly (James McCoy, #10698)
+
 When scheme can't be found by configure there is no clear "not found" message:
     configure:5769: checking MzScheme install prefix
     configure:5781: result: 
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 4b54f18..ce1b182 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -281,7 +281,7 @@
 script "s:funcref" could be used, because it could not be referred to with
 "funcref".  In Vim9 script it can, therefore "s:Funcref" must be used to avoid
 that the name interferes with builtin functions.
-							*vim9-s-namespace*
+						*vim9-s-namespace* *E1268*
 The use of the "s:" prefix is not supported at the Vim9 script level.  All
 functions and variables without a prefix are script-local.
 
@@ -857,6 +857,8 @@
 Command modifiers are not ignored ~
 								*E1176*
 Using a command modifier for a command that does not use it gives an error.
+								*E1082*
+Also, using a command modifier without a following command is now an error.
 
 
 Dictionary literals ~
@@ -1234,6 +1236,9 @@
 before the function is compiled.  If the script the function is defined in is
 legacy script, then script-local variables must be accessed with the "s:"
 prefix if they do not exist at the time of compiling.
+							*E1269*
+Script-local variables in a |Vim9| script must be declared at the script
+level.  They cannot be created in a function, also not in a legacy function.
 
 						*:defc* *:defcompile*
 :defc[ompile]		Compile functions defined in the current script that
@@ -1492,6 +1497,8 @@
 it to a string, use the |string()| function.  Or use |str2nr()| to convert a
 string to a number.
 
+If a type is given where it is not expected you can get *E1272* .
+
 
 Type inference ~
 							*type-inference*
@@ -1696,8 +1703,8 @@
 
 
 Import ~
-					*:import* *:imp* *E1094* *E1047* *E1262*
-					*E1048* *E1049* *E1053* *E1071* *E1236*
+				*:import* *:imp* *E1094* *E1047* *E1262*
+				*E1048* *E1049* *E1053* *E1071* *E1088* *E1236*
 The exported items can be imported in another script. The import syntax has
 two forms. The simple form: >
 	import {filename}
diff --git a/runtime/ftplugin/debchangelog.vim b/runtime/ftplugin/debchangelog.vim
index a78f781..cf8dd17 100644
--- a/runtime/ftplugin/debchangelog.vim
+++ b/runtime/ftplugin/debchangelog.vim
@@ -1,9 +1,9 @@
 " Vim filetype plugin file (GUI menu, folding and completion)
 " Language:     Debian Changelog
-" Maintainer:   Debian Vim Maintainers
+" Maintainer:   Debian Vim Maintainers <team+vim@tracker.debian.org>
 " Former Maintainers:   Michael Piefel <piefel@informatik.hu-berlin.de>
 "                       Stefano Zacchiroli <zack@debian.org>
-" Last Change:  2018-01-28
+" Last Change:  2022 Jul 25
 " License:      Vim License
 " URL:          https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim
 
@@ -35,6 +35,11 @@
   finish
 endif
 
+" Make sure the '<' and 'C' flags are not included in 'cpoptions', otherwise
+" <CR> would not be recognized.  See ":help 'cpoptions'".
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Don't load another plugin (this is global)
 let g:did_changelog_ftplugin = 1
 
@@ -101,13 +106,13 @@
 " These functions implement the menus
 function NewVersion()
     " The new entry is unfinalised and shall be changed
-    amenu disable Changelog.New\ Version
-    amenu enable Changelog.Add\ Entry
-    amenu enable Changelog.Close\ Bug
-    amenu enable Changelog.Set\ Distribution
-    amenu enable Changelog.Set\ Urgency
-    amenu disable Changelog.Unfinalise
-    amenu enable Changelog.Finalise
+    amenu disable &Changelog.&New\ Version
+    amenu enable &Changelog.&Add\ Entry
+    amenu enable &Changelog.&Close\ Bug
+    amenu enable &Changelog.Set\ &Distribution
+    amenu enable &Changelog.Set\ &Urgency
+    amenu disable &Changelog.U&nfinalise
+    amenu enable &Changelog.&Finalise
     call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', ''))
     call append(1, '')
     call append(2, '')
@@ -117,7 +122,9 @@
     normal! 1G0
     call search(')')
     normal! h
-    normal! 
+    " ':normal' doens't support key annotation (<c-a>) directly.
+    " Vim's manual recommends using ':exe' to use key annotation indirectly (backslash-escaping needed though).
+    exe "normal! \<c-a>"
     call setline(1, substitute(getline(1), '-\$\$', '-', ''))
     if exists('g:debchangelog_fold_enable')
         foldopen
@@ -161,13 +168,13 @@
 
 function <SID>UnfinaliseMenu()
     " This means the entry shall be changed
-    amenu disable Changelog.New\ Version
-    amenu enable Changelog.Add\ Entry
-    amenu enable Changelog.Close\ Bug
-    amenu enable Changelog.Set\ Distribution
-    amenu enable Changelog.Set\ Urgency
-    amenu disable Changelog.Unfinalise
-    amenu enable Changelog.Finalise
+    amenu disable &Changelog.&New\ Version
+    amenu enable &Changelog.&Add\ Entry
+    amenu enable &Changelog.&Close\ Bug
+    amenu enable &Changelog.Set\ &Distribution
+    amenu enable &Changelog.Set\ &Urgency
+    amenu disable &Changelog.U&nfinalise
+    amenu enable &Changelog.&Finalise
 endfunction
 
 function Unfinalise()
@@ -179,13 +186,13 @@
 
 function <SID>FinaliseMenu()
     " This means the entry should not be changed anymore
-    amenu enable Changelog.New\ Version
-    amenu disable Changelog.Add\ Entry
-    amenu disable Changelog.Close\ Bug
-    amenu disable Changelog.Set\ Distribution
-    amenu disable Changelog.Set\ Urgency
-    amenu enable Changelog.Unfinalise
-    amenu disable Changelog.Finalise
+    amenu enable &Changelog.&New\ Version
+    amenu disable &Changelog.&Add\ Entry
+    amenu disable &Changelog.&Close\ Bug
+    amenu disable &Changelog.Set\ &Distribution
+    amenu disable &Changelog.Set\ &Urgency
+    amenu enable &Changelog.U&nfinalise
+    amenu disable &Changelog.&Finalise
 endfunction
 
 function Finalise()
@@ -198,26 +205,26 @@
 
 function <SID>MakeMenu()
     amenu &Changelog.&New\ Version			:call NewVersion()<CR>
-    amenu Changelog.&Add\ Entry				:call AddEntry()<CR>
-    amenu Changelog.&Close\ Bug				:call CloseBug()<CR>
-    menu Changelog.-sep-				<nul>
+    amenu &Changelog.&Add\ Entry				:call AddEntry()<CR>
+    amenu &Changelog.&Close\ Bug				:call CloseBug()<CR>
+    menu &Changelog.-sep-				<nul>
 
-    amenu Changelog.Set\ &Distribution.&unstable	:call Distribution("unstable")<CR>
-    amenu Changelog.Set\ Distribution.&frozen		:call Distribution("frozen")<CR>
-    amenu Changelog.Set\ Distribution.&stable		:call Distribution("stable")<CR>
-    menu Changelog.Set\ Distribution.-sep-		<nul>
-    amenu Changelog.Set\ Distribution.frozen\ unstable	:call Distribution("frozen unstable")<CR>
-    amenu Changelog.Set\ Distribution.stable\ unstable	:call Distribution("stable unstable")<CR>
-    amenu Changelog.Set\ Distribution.stable\ frozen	:call Distribution("stable frozen")<CR>
-    amenu Changelog.Set\ Distribution.stable\ frozen\ unstable	:call Distribution("stable frozen unstable")<CR>
+    amenu &Changelog.Set\ &Distribution.&unstable	:call Distribution("unstable")<CR>
+    amenu &Changelog.Set\ &Distribution.&frozen		:call Distribution("frozen")<CR>
+    amenu &Changelog.Set\ &Distribution.&stable		:call Distribution("stable")<CR>
+    menu &Changelog.Set\ &Distribution.-sep-		<nul>
+    amenu &Changelog.Set\ &Distribution.frozen\ unstable	:call Distribution("frozen unstable")<CR>
+    amenu &Changelog.Set\ &Distribution.stable\ unstable	:call Distribution("stable unstable")<CR>
+    amenu &Changelog.Set\ &Distribution.stable\ frozen	:call Distribution("stable frozen")<CR>
+    amenu &Changelog.Set\ &Distribution.stable\ frozen\ unstable	:call Distribution("stable frozen unstable")<CR>
 
-    amenu Changelog.Set\ &Urgency.&low			:call Urgency("low")<CR>
-    amenu Changelog.Set\ Urgency.&medium		:call Urgency("medium")<CR>
-    amenu Changelog.Set\ Urgency.&high			:call Urgency("high")<CR>
+    amenu &Changelog.Set\ &Urgency.&low			:call Urgency("low")<CR>
+    amenu &Changelog.Set\ &Urgency.&medium		:call Urgency("medium")<CR>
+    amenu &Changelog.Set\ &Urgency.&high			:call Urgency("high")<CR>
 
-    menu Changelog.-sep-				<nul>
-    amenu Changelog.U&nfinalise				:call Unfinalise()<CR>
-    amenu Changelog.&Finalise				:call Finalise()<CR>
+    menu &Changelog.-sep-				<nul>
+    amenu &Changelog.U&nfinalise				:call Unfinalise()<CR>
+    amenu &Changelog.&Finalise				:call Finalise()<CR>
 
     if <SID>Finalised()
 	call <SID>FinaliseMenu()
@@ -228,7 +235,7 @@
 
 augroup changelogMenu
 au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif
-au BufLeave * if &filetype == "debchangelog" | silent! aunmenu Changelog | endif
+au BufLeave * if &filetype == "debchangelog" | silent! aunmenu &Changelog | endif
 augroup END
 
 " }}}
@@ -380,4 +387,8 @@
 
 " }}}
 
+" Restore the previous value of 'cpoptions'.
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: set foldmethod=marker:
diff --git a/runtime/ftplugin/desktop.vim b/runtime/ftplugin/desktop.vim
new file mode 100644
index 0000000..bd6fd70
--- /dev/null
+++ b/runtime/ftplugin/desktop.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: XDG desktop entry
+" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
+" Last Change: 2022-07-26
+
+if exists('b:did_ftplugin')
+  finish
+endif
+let b:did_ftplugin = v:true
+
+setl comments=:#
+setl commentstring=#%s
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/swayconfig.vim b/runtime/ftplugin/swayconfig.vim
new file mode 100644
index 0000000..45d6bdb
--- /dev/null
+++ b/runtime/ftplugin/swayconfig.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin file
+" Language: sway config file
+" Original Author: James Eapen <james.eapen@vai.org>
+" Maintainer: James Eapen <james.eapen@vai.org>
+" Version: 0.1
+" Last Change: 2022 June 07
+
+if exists("b:did_ftplugin")
+  finish
+endif
+
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setlocal cms<"
+
+setlocal commentstring=#\ %s
diff --git a/runtime/indent/html.vim b/runtime/indent/html.vim
index a3c32d6..65e0ffc 100644
--- a/runtime/indent/html.vim
+++ b/runtime/indent/html.vim
@@ -600,7 +600,7 @@
   endif
   if b:hi_indent.scripttype == "javascript"
     " indent for further lines
-    return eval(b:hi_js1indent) + GetJavascriptIndent()
+    return GetJavascriptIndent()
   else
     return -1
   endif
diff --git a/runtime/indent/javascript.vim b/runtime/indent/javascript.vim
index f3bf96a..8077442 100644
--- a/runtime/indent/javascript.vim
+++ b/runtime/indent/javascript.vim
@@ -473,6 +473,12 @@
   elseif num
     return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
   endif
+
+  let nest = get(get(b:, 'hi_indent', {}), 'blocklnr')
+  if nest
+    return indent(nextnonblank(nest + 1)) + b_l + is_op
+  endif
+
   return b_l + is_op
 endfunction
 
diff --git a/runtime/lang/Makefile b/runtime/lang/Makefile
index 4a122cb..901c4eb 100644
--- a/runtime/lang/Makefile
+++ b/runtime/lang/Makefile
@@ -22,6 +22,9 @@
 		menu_sr_rs.iso_8859-2.vim \
 		menu_sr_rs.ascii.vim \
 		menu_czech_czech_republic.ascii.vim \
+		menu_hu_hu.iso_8859-2.vim \
+		menu_sk_sk.iso_8859-2.vim \
+
 
 # Convert menu_zh_cn.utf-8.vim to create menu_chinese_gb.936.vim.
 menu_chinese_gb.936.vim: menu_zh_cn.utf-8.vim
@@ -39,7 +42,7 @@
 menu_cs_cz.iso_8859-2.vim: menu_cs_cz.utf-8.vim
 	rm -f menu_cs_cz.iso_8859-2.vim
 	iconv -f utf-8 -t iso8859-2 menu_cs_cz.utf-8.vim | \
-		sed -e 's/scriptencoding utf-8/scriptencoding iso8859-2/' \
+		sed -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' \
 			-e 's/" Original translations/" Generated from menu_cs_cz.utf-8.vim, DO NOT EDIT/' \
 			-e 's/\(" Menu Translations:.*\)(.*)/\1(ISO8859-2)/'  \
 			> menu_cs_cz.iso_8859-2.vim
@@ -95,7 +98,7 @@
 menu_pl_pl.iso_8859-2.vim: menu_pl_pl.utf-8.vim
 	rm -f menu_pl_pl.iso_8859-2.vim
 	iconv -f utf-8 -t iso8859-2 menu_pl_pl.utf-8.vim | \
-		sed -e 's/scriptencoding utf-8/scriptencoding iso8859-2/' -e 's/" Original translations/" Generated from menu_pl_pl.utf-8.vim, DO NOT EDIT/' > menu_pl_pl.iso_8859-2.vim
+		sed -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' -e 's/" Original translations/" Generated from menu_pl_pl.utf-8.vim, DO NOT EDIT/' > menu_pl_pl.iso_8859-2.vim
 
 # Convert menu_pl_pl.utf-8.vim to create menu_polish_poland.1250.vim.
 menu_polish_poland.1250.vim: menu_pl_pl.utf-8.vim
@@ -194,3 +197,15 @@
 	rm -f menu_uk_ua.koi8-u.vim
 	iconv -f utf-8 -t koi8-u menu_uk_ua.utf-8.vim | \
 		sed -e 's/scriptencoding utf-8/scriptencoding koi8-u/' -e 's/" Original translations/" Generated from menu_uk_ua.utf-8.vim, DO NOT EDIT/' > menu_uk_ua.koi8-u.vim
+
+# Convert menu_hu_hu.utf-8.vim to create menu_hu_hu.iso_8859-2.vim.
+menu_hu_hu.iso_8859-2.vim: menu_hu_hu.utf-8.vim
+	rm -f menu_hu_hu.iso_8859-2.vim
+	iconv -f utf-8 -t iso8859-2 menu_hu_hu.utf-8.vim | \
+		sed -e 's/scriptencoding utf-8/scriptencoding iso-8859-2/' -e 's/" Original translations/" Generated from menu_hu_hu.utf-8.vim, DO NOT EDIT/' > menu_hu_hu.iso_8859-2.vim
+
+# Convert menu_slovak_slovak_republic.1250.vim to create menu_sk_sk.iso_8859-2.vim.
+menu_sk_sk.iso_8859-2.vim: menu_slovak_slovak_republic.1250.vim
+	rm -f menu_sk_sk.iso_8859-2.vim
+	iconv -f cp1250 -t iso8859-2 menu_slovak_slovak_republic.1250.vim | \
+		sed -e 's/scriptencoding cp1250/scriptencoding iso-8859-2/' -e 's/" Original translations/" Generated from menu_slovak_slovak_republic.1250.vim, DO NOT EDIT/' > menu_sk_sk.iso_8859-2.vim
diff --git a/runtime/lang/menu_chinese_gb.936.vim b/runtime/lang/menu_chinese_gb.936.vim
index a58ec9c..915cd80 100644
--- a/runtime/lang/menu_chinese_gb.936.vim
+++ b/runtime/lang/menu_chinese_gb.936.vim
@@ -1,10 +1,15 @@
 " Menu Translations:    Simplified Chinese
-" Maintainer:           Shun Bai <baishunde@gmail.com>
-" Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2022 Feb 19
+" Maintainer:           Ada (Haowen) Yu <me@yuhaowen.com>
+" Previous Maintainer:  Shun Bai <baishunde@gmail.com>, Yuheng Xie <elephant@linux.net.cn>
+" Last Change:          2022 July 9
 " Generated from menu_zh_cn.utf-8.vim, DO NOT EDIT
+"
+" Generated with the scripts from:
+"
+"       https://github.com/adaext/vim-menutrans-helper
 
 " Quit when menu translations have already been done.
+
 if exists("did_menu_trans")
   finish
 endif
@@ -15,18 +20,18 @@
 scriptencoding cp936
 
 " Help menu
-menutrans &Help		°ïÖú(&H)
+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)
+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")
@@ -35,67 +40,68 @@
 " }}}
 
 " File menu
-menutrans &File		Îļþ(&F)
+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
+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 &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)
+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 Find\ and\ Rep&lace<Tab>:s ²éÕÒºÍÌæ»»(&L)<Tab>:s
+menutrans Settings\ &Window ÉèÖô°¿Ú(&W)
+menutrans Startup\ &Settings Æô¶¯ÉèÖÃ(&S)
 
 " Edit/Global Settings
-menutrans &Global\ Settings					È«¾ÖÉèÖÃ(&G)
+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)
+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 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&ompatibility<Tab>:set\ cp!			¿ª/¹Ø\ Vi\ ¼æÈÝÐÔ(&O)<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.								ËÑË÷·¾¶(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.									±ê¼ÇÎļþ(Tags)(&G)\.\.\.
+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")
@@ -109,23 +115,23 @@
 " }}}
 
 " 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!				¿ª/¹ØÁбíģʽ(&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!
+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\ Tabstop)(&T)
-menutrans Te&xt\ Width\.\.\.								Îı¾¿í¶È(&X)\.\.\.
-menutrans &File\ Format\.\.\.								Îļþ¸ñʽ(&F)\.\.\.
+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")
@@ -140,36 +146,36 @@
   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)\.\.\.
+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 &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)
+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 &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)
+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")
@@ -178,113 +184,113 @@
 " }}}
 
 " Tools.Fold Menu
-menutrans &Folding								ÕÛµþ(&F)
+menutrans &Folding ÕÛµþ(&F)
 " Tools.Fold menuitems {{{2
 " open close folds
-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 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)
+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\ Col&umn\ Width					ÕÛµþ²Ù×÷À¸¿í¶È(&W)
+menutrans Fold\ Col&umn\ Width ÕÛµþ²Ù×÷À¸¿í¶È(&W)
 " }}}
 
 " Tools.Diff Menu
-menutrans &Diff									²îÒì(Diff)(&D)
+menutrans &Diff ²îÒì(Diff)(&D)
 " Tools.Diff menuitems {{{2
-menutrans &Update		Ë¢ÐÂ(&U)
-menutrans &Get\ Block	²ÉÓöԲàÎı¾¿é(&G)
-menutrans &Put\ Block	²ÉÓñ¾²àÎı¾¿é(&P)
+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 &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 &Update<Tab>:cwin Ë¢ÐÂ(&U)<Tab>:cwin
+menutrans &Open<Tab>:copen ´ò¿ª(&O)<Tab>:copen
+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
+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
 " }}}
 
 " Buffer menu
-menutrans &Buffers	»º³åÇø(&B)
+menutrans &Buffers »º³åÇø(&B)
 " Buffer menuitems and dialog {{{1
-menutrans &Refresh\ Menu	ˢб¾²Ëµ¥(&R)
-menutrans &Delete			ɾ³ý(&D)
-menutrans &Alternate		Çл»(&A)
-menutrans &Next				ÏÂÒ»¸ö(&N)
-menutrans &Previous			ÉÏÒ»¸ö(&P)
+menutrans &Refresh\ Menu ˢб¾²Ëµ¥(&R)
+menutrans &Delete ɾ³ý(&D)
+menutrans &Alternate Çл»(&A)
+menutrans &Next ÏÂÒ»¸ö(&N)
+menutrans &Previous ÉÏÒ»¸ö(&P)
 
-" func! s:BMMunge(fname, bnum) 
+" func! s:BMMunge(fname, bnum)
 if !exists("g:menutrans_no_file")
   let g:menutrans_no_file = "[ÎÞÎļþ]"
 endif
 " }}}
 
 " Window menu
-menutrans &Window	´°¿Ú(&W)
+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\|
+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)
+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")
@@ -305,148 +311,260 @@
   endif
   fun Do_toolbar_tmenu()
     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			´Ó¼ôÌù°åÕ³Ìù
+    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	²éÕÒÉÏÒ»¸ö
+      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 °ïÖúÖвéÕÒ
+    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 &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)
+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)
+menutrans Set\ '&syntax'\ Only Ö»ÉèÖÃ\ 'syntax'(&S)
+menutrans Set\ '&filetype'\ Too Ò²ÉèÖÃ\ 'filetype'(&F)
+menutrans Oracle\ config Oracle\ ÅäÖÃÎļþ
+menutrans Vim\ help\ file Vim\ °ïÖúÎļþ
+menutrans Vim\ script Vim\ ½Å±¾
+menutrans Viminfo\ file Vim\ ÐÅÏ¢Îļþ
+menutrans Virata\ config Virata\ ÅäÖÃÎļþ
+menutrans Whitespace\ (add) Ôö¼Ó¼ÓÁÁ¿Õ¸ñ
 " }}}
 
 " 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			ÊéÇ©ºÍÀúÊ·¼Ç¼
+  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 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				¿ØÖÆ
+  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 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					±à¼­Îļþ/Ŀ¼
+  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 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							ä¯ÀÀ
+  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 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)Îļþ
+  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 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							ÏÔʾ·ç¸ñ
+  menutrans Obtain\ File<tab>O »ñÈ¡Îļþ<tab>O
+  menutrans Style ÏÔʾ·ç¸ñ
   " Netrw.Style menuitems {{{2
-  menutrans Listing							ÁбíÐÎʽ
+  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 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				ÏÔʾ/Òþ²Ø
+  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 Show\ All<tab>a ÏÔʾȫ²¿
+  menutrans Normal<tab>a ²»ÏÔʾÒþ²ØÎļþ
+  menutrans Hidden\ Only<tab>a Ö»ÏÔʾÒþ²ØÎļþ
   " }}}
-  menutrans Reverse\ Sorting\ Order<tab>r	ÉýÐò/½µÐò<tab>r
-  menutrans Sorting\ Method					ÅÅÐò·½Ê½
+  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 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							Ä¿±ê
+  menutrans Rename\ File/Directory<tab>R ÖØÃüÃûÎļþ/Ŀ¼<tab>R
+  menutrans Set\ Current\ Directory<tab>c ÉèÖÃ\ Vim\ ¹¤×÷Ŀ¼<tab>c
+  menutrans Targets Ä¿±ê
 " endif
 " }}}
 
+" Shellmenu menu
+" Shellmenu menuitems {{{1
+" From shellmenu.vim
+menutrans ShellMenu Shell\ ²Ëµ¥
+menutrans Statements Óï¾ä
+menutrans Test ²âÊÔ
+menutrans Existence ´æÔÚ
+menutrans Existence\ -\ file ´æÔÚ\ -\ Îļþ
+menutrans Existence\ -\ file\ (not\ empty) ´æÔÚ\ -\ Îļþ(·Ç¿Õ)
+menutrans Existence\ -\ directory ´æÔÚ\ -\ Ŀ¼
+menutrans Existence\ -\ executable ´æÔÚ\ -\ ¿ÉÖ´ÐÐ
+menutrans Existence\ -\ readable ´æÔÚ\ -\ ¿É¶Á
+menutrans Existence\ -\ writable ´æÔÚ\ -\ ¿Éд
+menutrans String\ is\ empty ×Ö·û´®Îª¿Õ
+menutrans String\ is\ not\ empty ×Ö·û´®·Ç¿Õ
+menutrans Strings\ are\ equal ×Ö·û´®ÖµÏàµÈ
+menutrans Strings\ are\ not\ equal ×Ö·û´®Öµ²»ÏàµÈ
+menutrans Value\ is\ greater\ than Öµ´óÓÚ
+menutrans Value\ is\ greater\ equal Öµ´óÓÚµÈÓÚ
+menutrans Values\ are\ equal ÖµÏàµÈ
+menutrans Values\ are\ not\ equal Öµ²»ÏàµÈ
+menutrans Value\ is\ less\ than ֵСÓÚ
+menutrans Value\ is\ less\ equal ֵСÓÚµÈÓÚ
+menutrans ParmSub ²ÎÊýÌæ»»
+menutrans Substitute\ word\ if\ parm\ not\ set Èç¹û²ÎÊýûÉèÖþÍÌæ»»¸Ã´Ê
+menutrans Set\ parm\ to\ word\ if\ not\ set ²ÎÊýδÉèÖþÍÉèΪ¸Ã´Ê
+menutrans Substitute\ word\ if\ parm\ set\ else\ nothing Èç¹û²ÎÊýÉèÖþÍÌæ»»¸Ã´Ê£¬·ñÔòʲô¶¼²»×ö
+menutrans If\ parm\ not\ set\ print\ word\ and\ exit Èç¹û²ÎÊýûÓÐÉèÖþʹòÓ¡¸Ã´Ê²¢Í˳ö
+menutrans SpShVars Shell\ ÌØÊâ±äÁ¿
+menutrans Number\ of\ positional\ parameters λÖòÎÊýµÄÊýÄ¿
+menutrans All\ positional\ parameters\ (quoted\ spaces) ËùÓÐλÖòÎÊý(quoted\ spaces)
+menutrans All\ positional\ parameters\ (unquoted\ spaces) ËùÓÐλÖòÎÊý(unquoted\ spaces)
+menutrans Flags\ set ÉèÖñêÖ¾
+menutrans Return\ code\ of\ last\ command ·µ»ØÇ°Ò»ÌõÃüÁîµÄ´úÂë
+menutrans Process\ number\ of\ this\ shell shell\ ×ÔÉí½ø³ÌºÅ
+menutrans Process\ number\ of\ last\ background\ command ǰһÌõºǫ́ÃüÁîµÄ½ø³ÌºÅ
+menutrans Environ »·¾³±äÁ¿
+menutrans Mark\ created\ or\ modified\ variables\ for\ export ±ê¼ÇÐ޸ĵĻòÕß´´½¨µÄ±äÁ¿Îªµ¼³ö
+menutrans Exit\ when\ command\ returns\ non-zero\ status µ±ÃüÁî·µ»Ø·ÇÁã״̬ʱÍ˳ö
+menutrans Disable\ file\ name\ expansion ½ûÓÃÎļþÃûÍØÕ¹
+menutrans Locate\ and\ remember\ commands\ when\ being\ looked\ up µ±²éѯÃüÁîʱ¶¨Î»²¢¼Çס¸ÃÃüÁî
+menutrans All\ assignment\ statements\ are\ placed\ in\ the\ environment\ for\ a\ command ËùÓеĸ³Öµ²ÎÊý±»·ÅÔÚÃüÁîµÄ»·¾³ÖÐ
+menutrans Read\ commands\ but\ do\ not\ execute\ them ¶ÁÃüÁÊDz»ÒªÖ´ÐÐ
+menutrans Exit\ after\ reading\ and\ executing\ one\ command ¶Á²¢Ö´ÐÐÒ»¸öÃüÁîÖ®ºóÍ˳ö
+menutrans Treat\ unset\ variables\ as\ an\ error\ when\ substituting Ìæ»»Ê±°ÑδÉèÖÃÃüÁîÊÓΪ´íÎó
+menutrans Print\ shell\ input\ lines\ as\ they\ are\ read ¶Á\ shell\ ÊäÈëÐеÄʱºò´òÓ¡
+menutrans Print\ commands\ and\ their\ arguments\ as\ they\ are\ executed ±»Ö´ÐÐʱ´òÓ¡ÃüÁîºÍ²ÎÊý
+" }}}
+
+" termdebug menu
+" termdebug menuitems {{{1
+" From termdebug.vim
+menutrans Set\ breakpoint ÉèÖöϵã
+menutrans Clear\ breakpoint Çå³ý¶Ïµã
+menutrans Run\ until ÔËÐе½
+menutrans Evaluate ÇóÖµ
+menutrans WinBar ¹¤¾ßÌõ
+menutrans Step µ¥²½
+menutrans Next ÏÂÒ»¸ö
+menutrans Finish ½áÊø
+menutrans Cont ¼ÌÐø
+menutrans Stop ֹͣ
+" }}}
+
+" debchangelog menu
+" debchangelog menuitems {{{1
+" From debchangelog.vim
+menutrans &Changelog ¸üÐÂÈÕÖ¾(&C)
+menutrans &New\ Version а汾(&N)
+menutrans &Add\ Entry Ìí¼ÓÌõÄ¿(&A)
+menutrans &Close\ Bug ¹Ø±Õ\ Bug(&C)
+menutrans Set\ &Distribution ÉèÖ÷¢Ðаæ(&D)
+menutrans &unstable ²»Îȶ¨(&U)
+menutrans Set\ &Urgency ÉèÖýô¼±(&U)
+menutrans &low µÍ(&L)
+menutrans &medium ÖÐ(&M)
+menutrans &high ¸ß(&H)
+menutrans U&nfinalise δÍê³É(&N)
+menutrans &Finalise Íê³É(&F)
+" }}}
+
+" ada menu
+" ada menuitems {{{1
+" From ada.vim
+menutrans Tag ±êÇ©
+menutrans List Áбí
+menutrans Jump Ìø×ª
+menutrans Create\ File ´´½¨Îļþ
+menutrans Create\ Dir ´´½¨Ä¿Â¼
+menutrans Highlight ¸ßÁÁ
+menutrans Toggle\ Space\ Errors Çл»¿Õ¸ñ´íÎó
+menutrans Toggle\ Lines\ Errors Çл»ÐдíÎó
+menutrans Toggle\ Rainbow\ Color Çл»²ÊºçÑÕÉ«
+menutrans Toggle\ Standard\ Types Çл»±ê×¼ÀàÐÍ
+" }}}
+
+" gnat menu
+" gnat menuitems {{{1
+" From gnat.vim
+menutrans Build ¹¹½¨
+menutrans Pretty\ Print ÖØÐ¸ñʽ»¯´úÂë
+menutrans Find ²éÕÒ
+menutrans Set\ Projectfile\.\.\. ÉèÖÃÏîÄ¿Îļþ\.\.\.
+" }}}
+
 let &cpo = s:keepcpo
 unlet s:keepcpo
 
diff --git a/runtime/lang/menu_hu_hu.iso_8859-2.vim b/runtime/lang/menu_hu_hu.iso_8859-2.vim
index 262f044..6917417 100644
--- a/runtime/lang/menu_hu_hu.iso_8859-2.vim
+++ b/runtime/lang/menu_hu_hu.iso_8859-2.vim
@@ -2,26 +2,10 @@
 " Original Translation:	Zoltán Árpádffy
 " Maintained By:	Kontra Gergely <kgergely@mcl.hu>
 " Last Change:		2020 Apr 23
-" Original translations
-" I'm working on defining (unaccented) hotkeys for everything.
-" I want to remove y and z hotkeys, because on the hungarian keymap they're at
-" a differrent place.
-" I also want to avoid g and j shortcuts, because you cannot see, wheter
-" they're underlined or not.
-" If the hotkeys are not uniq (pressing the hotkey doesn't executes the menu,
-" just one menupoint is selected), or you find any other undesired behaviour,
-" please report it to me.
-" All kind of feedback is welcome.
 "
-" Igyekeztem mindenhez gyorsbillentyût rendelni, lehetõleg nem ékezeteset.
-" További tennivaló az y és z gyorsbillentyûk kiirtása, ezenkívül a g, j
-" billentyûk irtása is, mivel ez utóbbiak aláhúzott változatát nem könnyû
-" felismerni.
-" Amennyiben valahol nem egyértelmûk a gyorsbillentyûk (a gyorsbillentyût
-" leütve nem hajtódik végre a kiszemelt menüpont, hanem csak kiválasztódik,
-" vagy másik menüpont választódik ki), vagy egyéb hibát találsz, kérlek jelezd
-" nekem a fenti email címen.
-" Mindennemû visszajelzést szívesen fogadok.
+" This file was converted from menu_hu_hu.iso_8859-2.vim.  See there for
+" remarks.
+" Generated from menu_hu_hu.utf-8.vim, DO NOT EDIT
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
diff --git a/runtime/lang/menu_sk_sk.iso_8859-2.vim b/runtime/lang/menu_sk_sk.iso_8859-2.vim
index c2ff90a..29e6fb9 100644
--- a/runtime/lang/menu_sk_sk.iso_8859-2.vim
+++ b/runtime/lang/menu_sk_sk.iso_8859-2.vim
@@ -1,7 +1,7 @@
 " Menu Translations:	Slovak
 " Translated By:	Martin Lacko <lacko@host.sk>
 " Last Change:		2020 Apr 23
-" Original translations
+" Generated from menu_slovak_slovak_republic.1250.vim, DO NOT EDIT
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
diff --git a/runtime/lang/menu_zh_cn.utf-8.vim b/runtime/lang/menu_zh_cn.utf-8.vim
index d19945c..baf56cb 100644
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -1,7 +1,7 @@
 " Menu Translations:    Simplified Chinese
 " Maintainer:           Ada (Haowen) Yu <me@yuhaowen.com>
 " Previous Maintainer:  Shun Bai <baishunde@gmail.com>, Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2022 July 6
+" Last Change:          2022 July 9
 " Original translations
 "
 " Generated with the scripts from:
@@ -357,6 +357,7 @@
 menutrans Vim\ script Vim\ 脚本
 menutrans Viminfo\ file Vim\ 信息文件
 menutrans Virata\ config Virata\ 配置文件
+menutrans Whitespace\ (add) 增加加亮空格
 " }}}
 
 " Netrw menu {{{1
@@ -462,25 +463,26 @@
 " Shellmenu menu
 " Shellmenu menuitems {{{1
 " From shellmenu.vim
-menutrans Stmts 语句
+menutrans ShellMenu Shell\ 菜单
+menutrans Statements 语句
 menutrans Test 测试
-menutrans existence 存在
-menutrans existence\ -\ file 存在\ -\ 文件
-menutrans existence\ -\ file\ (not\ empty) 存在\ -\ 文件(非空)
-menutrans existence\ -\ directory 存在\ -\ 目录
-menutrans existence\ -\ executable 存在\ -\ 可执行
-menutrans existence\ -\ readable 存在\ -\ 可读
-menutrans existence\ -\ writable 存在\ -\ 可写
+menutrans Existence 存在
+menutrans Existence\ -\ file 存在\ -\ 文件
+menutrans Existence\ -\ file\ (not\ empty) 存在\ -\ 文件(非空)
+menutrans Existence\ -\ directory 存在\ -\ 目录
+menutrans Existence\ -\ executable 存在\ -\ 可执行
+menutrans Existence\ -\ readable 存在\ -\ 可读
+menutrans Existence\ -\ writable 存在\ -\ 可写
 menutrans String\ is\ empty 字符串为空
 menutrans String\ is\ not\ empty 字符串非空
-menutrans Strings\ is\ equal 字符串值相等
-menutrans Strings\ is\ not\ equal 字符串值不相等
-menutrans Values\ is\ greater\ than 值大于
-menutrans Values\ is\ greater\ equal 值大于等于
-menutrans Values\ is\ equal 值相等
-menutrans Values\ is\ not\ equal 值不相等
-menutrans Values\ is\ less\ than 值小于
-menutrans Values\ is\ less\ equal 值小于等于
+menutrans Strings\ are\ equal 字符串值相等
+menutrans Strings\ are\ not\ equal 字符串值不相等
+menutrans Value\ is\ greater\ than 值大于
+menutrans Value\ is\ greater\ equal 值大于等于
+menutrans Values\ are\ equal 值相等
+menutrans Values\ are\ not\ equal 值不相等
+menutrans Value\ is\ less\ than 值小于
+menutrans Value\ is\ less\ equal 值小于等于
 menutrans ParmSub 参数替换
 menutrans Substitute\ word\ if\ parm\ not\ set 如果参数没设置就替换该词
 menutrans Set\ parm\ to\ word\ if\ not\ set 参数未设置就设为该词
@@ -495,8 +497,11 @@
 menutrans Process\ number\ of\ this\ shell shell\ 自身进程号
 menutrans Process\ number\ of\ last\ background\ command 前一条后台命令的进程号
 menutrans Environ 环境变量
-menutrans exit\ when\ command\ returns\ non-zero\ exit\ code 当命令返回非零代码时退出
-menutrans Disable\ file\ name\ generation 禁用文件名生成
+menutrans Mark\ created\ or\ modified\ variables\ for\ export 标记修改的或者创建的变量为导出
+menutrans Exit\ when\ command\ returns\ non-zero\ status 当命令返回非零状态时退出
+menutrans Disable\ file\ name\ expansion 禁用文件名拓展
+menutrans Locate\ and\ remember\ commands\ when\ being\ looked\ up 当查询命令时定位并记住该命令
+menutrans All\ assignment\ statements\ are\ placed\ in\ the\ environment\ for\ a\ command 所有的赋值参数被放在命令的环境中
 menutrans Read\ commands\ but\ do\ not\ execute\ them 读命令但是不要执行
 menutrans Exit\ after\ reading\ and\ executing\ one\ command 读并执行一个命令之后退出
 menutrans Treat\ unset\ variables\ as\ an\ error\ when\ substituting 替换时把未设置命令视为错误
diff --git a/runtime/syntax/autohotkey.vim b/runtime/syntax/autohotkey.vim
index c6a68f7..a888394 100644
--- a/runtime/syntax/autohotkey.vim
+++ b/runtime/syntax/autohotkey.vim
@@ -2,7 +2,7 @@
 " Language:         AutoHotkey script file
 " Maintainer:       Michael Wong
 "                   https://github.com/mmikeww/autohotkey.vim
-" Latest Revision:  2017-04-03
+" Latest Revision:  2022-07-25
 " Previous Maintainers:       SungHyun Nam <goweol@gmail.com>
 "                             Nikolai Weibull <now@bitwi.se>
 
@@ -31,7 +31,7 @@
       \ matchgroup=autohotkeyStringDelimiter
       \ start=+"+
       \ end=+"+
-      \ contains=autohotkeyEscape
+      \ contains=autohotkeyEscape,autohotkeyMatchClass
 
 syn match autohotkeyVariable
       \ display
@@ -49,9 +49,9 @@
       \ A_Sec A_MSec A_Now A_NowUTC A_TickCount
       \ A_IsSuspended A_IsPaused A_IsCritical A_BatchLines A_TitleMatchMode A_TitleMatchModeSpeed
       \ A_DetectHiddenWindows A_DetectHiddenText A_AutoTrim A_StringCaseSense
-      \ A_FileEncoding A_FormatInteger A_FormatFloat A_KeyDelay A_WinDelay A_ControlDelay
-      \ A_SendMode A_SendLevel A_StoreCapsLockMode A_KeyDelay A_KeyDelayDuration
-      \ A_KeyDelayPlay A_KeyDelayPlayDuration A_MouseDelayPlay
+      \ A_FileEncoding A_FormatInteger A_FormatFloat A_WinDelay A_ControlDelay
+      \ A_SendMode A_SendLevel A_StoreCapsLockMode A_KeyDelay A_KeyDuration
+      \ A_KeyDelayPlay A_KeyDurationPlay A_MouseDelayPlay
       \ A_MouseDelay A_DefaultMouseSpeed A_RegView A_IconHidden A_IconTip A_IconFile
       \ A_CoordModeToolTip A_CoordModePixel A_CoordModeMouse A_CoordModeCaret A_CoordModeMenu
       \ A_IconNumber
@@ -73,6 +73,7 @@
       \ A_LoopFileShortName A_LoopFileDir A_LoopFileTimeModified A_LoopFileTimeCreated
       \ A_LoopFileTimeAccessed A_LoopFileAttrib A_LoopFileSize A_LoopFileSizeKB A_LoopFileSizeMB
       \ A_LoopRegType A_LoopRegKey A_LoopRegSubKey A_LoopRegTimeModified
+      \ A_TimeIdleKeyboard A_TimeIdleMouse A_ListLines A_ComSpec A_LoopFilePath A_Args
 
 syn match   autohotkeyBuiltinVariable
       \ contained
@@ -118,6 +119,7 @@
       \ WinMinimizeAll WinMinimizeAllUndo WinMove WinRestore WinSet
       \ WinSetTitle WinShow WinWait WinWaitActive WinWaitNotActive WinWaitClose
       \ SetCapsLockState SetNumLockState SetScrollLockState
+      \ Hotstring LoadPicture MenuGetHandle MenuGetName OnError OnClipboardChange
 
 syn keyword autohotkeyFunction
       \ InStr RegExMatch RegExReplace StrLen SubStr Asc Chr Func
@@ -127,7 +129,7 @@
       \ IsFunc Trim LTrim RTrim IsObject Object Array FileOpen
       \ ComObjActive ComObjArray ComObjConnect ComObjCreate ComObjGet
       \ ComObjError ComObjFlags ComObjQuery ComObjType ComObjValue ComObject
-      \ Format Exception
+      \ Format Exception Ord InputHook
 
 syn keyword autohotkeyStatement
       \ Break Continue Exit ExitApp Gosub Goto OnExit Pause Return
@@ -140,7 +142,8 @@
       \ IfExist IfNotExist If IfEqual IfLess IfGreater Else
       \ IfWinExist IfWinNotExist IfWinActive IfWinNotActive
       \ IfNotEqual IfLessOrEqual IfGreaterOrEqual
-      \ while until for in try catch finally
+      \ while until for in try catch finally not
+      \ switch case default
 
 syn match   autohotkeyPreProcStart
       \ nextgroup=
diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim
index 2efd919..9bd8368 100644
--- 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: 2022 May 01
+" Last Change: 2022 Jul 25
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
 
 " Standard syntax initialization
@@ -20,22 +20,22 @@
 let s:cpo = &cpo
 set cpo-=C
 let s:supported = [
-      \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
-      \ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
-      \ 'trixie', 'sid', 'rc-buggy',
+      \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental', 'sid', 'rc-buggy',
+      \ 'buster', 'bullseye', 'bookworm', 'trixie',
       \
-      \ 'trusty', 'xenial', 'bionic', 'focal', 'impish', 'jammy', 'kinetic',
+      \ 'trusty', 'xenial', 'bionic', 'focal', 'jammy', 'kinetic',
       \ 'devel'
       \ ]
 let s:unsupported = [
       \ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
       \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy',
+      \ 'jessie', 'stretch',
       \
       \ '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', 'cosmic',
-      \ 'disco', 'eoan', 'hirsute', 'groovy'
+      \ 'disco', 'eoan', 'hirsute', 'impish', 'groovy'
       \ ]
 let &cpo=s:cpo
 
diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim
index e3ec6e6..ea9e59e 100644
--- 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: 2022 May 01
+" Last Change: 2022 Jul 25
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
 
 " Standard syntax initialization
@@ -22,22 +22,22 @@
 let s:cpo = &cpo
 set cpo-=C
 let s:supported = [
-      \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
-      \ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
-      \ 'trixie', 'sid', 'rc-buggy',
+      \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental', 'sid', 'rc-buggy',
+      \ 'buster', 'bullseye', 'bookworm', 'trixie',
       \
-      \ 'trusty', 'xenial', 'bionic', 'focal', 'impish', 'jammy', 'kinetic',
+      \ 'trusty', 'xenial', 'bionic', 'focal', 'jammy', 'kinetic',
       \ 'devel'
       \ ]
 let s:unsupported = [
       \ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
       \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy',
+      \ 'jessie', 'stretch',
       \
       \ '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', 'cosmic',
-      \ 'disco', 'eoan', 'hirsute', 'groovy'
+      \ 'disco', 'eoan', 'hirsute', 'impish', 'groovy'
       \ ]
 let &cpo=s:cpo
 
diff --git a/runtime/syntax/i3config.vim b/runtime/syntax/i3config.vim
index 0018081..caef244 100644
--- a/runtime/syntax/i3config.vim
+++ b/runtime/syntax/i3config.vim
@@ -17,6 +17,9 @@
 
 scriptencoding utf-8
 
+" Error
+syn match i3ConfigError /.*/
+
 " Todo
 syn keyword i3ConfigTodo TODO FIXME XXX contained
 
@@ -54,8 +57,8 @@
 " Gaps
 syn keyword i3ConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle up down contained
 syn match i3ConfigGapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=i3ConfigGapStyleKeyword,i3ConfigNumber,i3ConfigVariable
-syn keyword i3ConfigSmartGapKeyword on inverse_outer contained
-syn match i3ConfigSmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\)\s\?$/ contains=i3ConfigSmartGapKeyword
+syn keyword i3ConfigSmartGapKeyword on inverse_outer off contained
+syn match i3ConfigSmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\|off\)\s\?$/ contains=i3ConfigSmartGapKeyword
 syn keyword i3ConfigSmartBorderKeyword on no_gaps contained
 syn match i3ConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\)\s\?$/ contains=i3ConfigSmartBorderKeyword
 
@@ -74,7 +77,7 @@
 syn keyword i3ConfigSizeSpecial x contained
 syn match i3ConfigNegativeSize /-/ contained
 syn match i3ConfigSize /-\?\d\+\s\?x\s\?-\?\d\+/ contained contains=i3ConfigSizeSpecial,i3ConfigNumber,i3ConfigNegativeSize
-syn match i3ConfigFloating /^\s*floating_modifier\s\+\$\w\+\d\?/ contains=i3ConfigVariable
+syn match i3ConfigFloatingModifier /^\s*floating_modifier\s\+\$\w\+\d\?/ contains=i3ConfigVariable
 syn match i3ConfigFloating /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=i3ConfigSize
 
 " Orientation
@@ -183,6 +186,7 @@
 syn region i3ConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
 
 " Define the highlighting.
+hi def link i3ConfigError                           Error
 hi def link i3ConfigTodo                            Todo
 hi def link i3ConfigComment                         Comment
 hi def link i3ConfigFontContent                     Type
@@ -213,6 +217,7 @@
 hi def link i3ConfigModifier                        Constant
 hi def link i3ConfigString                          Constant
 hi def link i3ConfigNegativeSize                    Constant
+hi def link i3ConfigInclude                         Constant
 hi def link i3ConfigFontSeparator                   Special
 hi def link i3ConfigVariableModifier                Special
 hi def link i3ConfigSizeSpecial                     Special
@@ -233,6 +238,7 @@
 hi def link i3ConfigBorderStyle                     Identifier
 hi def link i3ConfigEdge                            Identifier
 hi def link i3ConfigFloating                        Identifier
+hi def link i3ConfigFloatingModifier                Identifier
 hi def link i3ConfigCommandKeyword                  Identifier
 hi def link i3ConfigNoFocusKeyword                  Identifier
 hi def link i3ConfigInitializeKeyword               Identifier
diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim
index 3af54cc..e67bf58 100644
--- a/runtime/syntax/python.vim
+++ b/runtime/syntax/python.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Python
 " Maintainer:	Zvezdan Petkovic <zpetkovic@acm.org>
-" Last Change:	2021 Dec 10
+" Last Change:	2022 Jun 28
 " Credits:	Neil Schemenauer <nas@python.ca>
 "		Dmitry Vasiliev
 "
@@ -84,13 +84,19 @@
 syn keyword pythonStatement	lambda nonlocal pass return with yield
 syn keyword pythonStatement	class def nextgroup=pythonFunction skipwhite
 syn keyword pythonConditional	elif else if
-syn keyword pythonConditional	case match
 syn keyword pythonRepeat	for while
 syn keyword pythonOperator	and in is not or
 syn keyword pythonException	except finally raise try
 syn keyword pythonInclude	from import
 syn keyword pythonAsync		async await
 
+" Soft keywords
+" These keywords do not mean anything unless used in the right context
+" See https://docs.python.org/3/reference/lexical_analysis.html#soft-keywords 
+" for more on this.
+syn match   pythonConditional   "^\s*\zscase\%(\s\+.*:.*$\)\@="
+syn match   pythonConditional   "^\s*\zsmatch\%(\s\+.*:\s*\%(#.*\)\=$\)\@="
+
 " Decorators
 " A dot must be allowed because of @MyClass.myfunc decorators.
 syn match   pythonDecorator	"@" display contained
diff --git a/runtime/syntax/swayconfig.vim b/runtime/syntax/swayconfig.vim
new file mode 100644
index 0000000..2abfa38
--- /dev/null
+++ b/runtime/syntax/swayconfig.vim
@@ -0,0 +1,92 @@
+" Vim syntax file
+" Language: sway window manager config
+" Original Author: James Eapen <james.eapen@vai.org>
+" Maintainer: James Eapen <james.eapen@vai.org>
+" Version: 0.11.0
+" Last Change: 2022 Jun 07
+
+" References:
+" http://i3wm.org/docs/userguide.html#configuring
+" https://github.com/swaywm/sway/blob/b69d637f7a34e239e48a4267ae94a5e7087b5834/sway/sway.5.scd
+" http://vimdoc.sourceforge.net/htmldoc/syntax.html
+"
+"
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+runtime! syntax/i3config.vim
+
+scriptencoding utf-8
+
+" Error
+"syn match swayConfigError /.*/
+
+" Group mode/bar
+syn keyword swayConfigBlockKeyword set input contained
+syn region swayConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,swayConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
+
+" binding
+syn keyword swayConfigBindKeyword bindswitch bindgesture contained
+syn match swayConfigBind /^\s*\(bindswitch\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,swayConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigNumber,i3ConfigUnit,i3ConfigUnitOr,i3ConfigBindArgument,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword,i3ConfigBorderStyleKeyword
+
+" bindgestures
+syn keyword swayConfigBindGestureCommand swipe pinch hold contained
+syn keyword swayConfigBindGestureDirection up down left right next prev contained
+syn keyword swayConfigBindGesturePinchDirection inward outward clockwise counterclockwise contained
+syn match swayConfigBindGestureHold /^\s*\(bindgesture\)\s\+hold\(:[1-5]\)\?\s\+.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,i3ConfigWorkspaceKeyword,i3ConfigAction
+syn match swayConfigBindGestureSwipe /^\s*\(bindgesture\)\s\+swipe\(:[1-5]\)\?:\(up\|down\|left\|right\)\s\+.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,i3ConfigWorkspaceKeyword,i3ConfigAction
+syn match swayConfigBindGesturePinch /^\s*\(bindgesture\)\s\+\(pinch\):.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,swayConfigBindGesturePinchDirection,i3ConfigWorkspaceKeyword,i3ConfigAction
+
+" floating
+syn keyword swayConfigFloatingKeyword floating contained
+syn match swayConfigFloating /^\s*floating\s\+\(enable\|disable\|toggle\)\s*$/ contains=swayConfigFloatingKeyword
+
+syn clear i3ConfigFloatingModifier
+syn keyword swayConfigFloatingModifier floating_modifier contained
+syn match swayConfigFloatingMouseAction /^\s\?.*floating_modifier\s.*\(normal\|inverted\)$/ contains=swayConfigFloatingModifier,i3ConfigVariable
+
+" Gaps
+syn clear i3ConfigSmartBorderKeyword
+syn clear i3ConfigSmartBorder
+syn keyword swayConfigSmartBorderKeyword on no_gaps off contained
+syn match swayConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\|off\)\s\?$/ contains=swayConfigSmartBorderKeyword
+
+" Changing colors
+syn keyword swayConfigClientColorKeyword focused_tab_title contained
+syn match swayConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=i3ConfigClientColorKeyword,i3ConfigColor,i3ConfigVariable,i3ConfigClientColorKeyword,swayConfigClientColorKeyword
+
+" set display outputs
+syn match swayConfigOutput /^\s*output\s\+.*$/ contains=i3ConfigOutput
+
+" set display focus 
+syn keyword swayConfigFocusKeyword focus contained
+syn keyword swayConfigFocusType output contained
+syn match swayConfigFocus /^\s*focus\soutput\s.*$/ contains=swayConfigFocusKeyword,swayConfigFocusType
+
+" xwayland 
+syn keyword swayConfigXwaylandKeyword xwayland contained
+syn match swayConfigXwaylandModifier /^\s*xwayland\s\+\(enable\|disable\|force\)\s\?$/ contains=swayConfigXwaylandKeyword
+
+"hi def link swayConfigError                         Error
+hi def link i3ConfigFloating                        Error
+hi def link swayConfigFloating                      Type
+hi def link swayConfigFloatingMouseAction           Type
+hi def link swayConfigFocusKeyword                  Type
+hi def link swayConfigSmartBorderKeyword            Type
+hi def link swayConfigBindGestureCommand            Identifier
+hi def link swayConfigBindGestureDirection          Constant
+hi def link swayConfigBindGesturePinchDirection     Constant
+hi def link swayConfigBindKeyword                   Identifier
+hi def link swayConfigBlockKeyword                  Identifier
+hi def link swayConfigClientColorKeyword            Identifier
+hi def link swayConfigFloatingKeyword               Identifier
+hi def link swayConfigFloatingModifier              Identifier
+hi def link swayConfigFocusType                     Identifier
+hi def link swayConfigSmartBorder                   Identifier
+hi def link swayConfigXwaylandKeyword               Identifier
+hi def link swayConfigXwaylandModifier              Type
+hi def link swayConfigBindGesture                   PreProc
+
+let b:current_syntax = "swayconfig"
diff --git a/runtime/tutor/tutor.zh_cn.utf-8 b/runtime/tutor/tutor.zh_cn.utf-8
index 65a766e..cc8e575 100644
--- a/runtime/tutor/tutor.zh_cn.utf-8
+++ b/runtime/tutor/tutor.zh_cn.utf-8
@@ -422,7 +422,7 @@
 
   2. 接着把光标放在单词 lubw 的字母 u 的位置那里。
 
-  3. 然后输入 cw 以及正确的单词(在本例中是输入 ine )。
+  3. 然后输入 ce 以及正确的单词(在本例中是输入 ine )。
 
   4. 最后按 <ESC> 键,然后光标定位到下一个错误第一个准备更改的字母处。
 
diff --git a/src/po/Makefile b/src/po/Makefile
index 47064fd..ee67303 100644
--- a/src/po/Makefile
+++ b/src/po/Makefile
@@ -220,7 +220,9 @@
 	if command -v desktop-file-validate; then desktop-file-validate tmp_vim.desktop; fi
 	mv tmp_vim.desktop vim.desktop
 
-gvim.desktop: gvim.desktop.in $(POFILES)
+# The dependency on vim.desktop is only to avoid the two targets are build at
+# the same time, which causes a race for the LINGUAS file.
+gvim.desktop: gvim.desktop.in $(POFILES) vim.desktop
 	echo $(LANGUAGES) | tr " " "\n" |sed -e '/\./d' | sort > LINGUAS
 	$(MSGFMT) --desktop -d . --template gvim.desktop.in -o tmp_gvim.desktop
 	rm -f LINGUAS
diff --git a/src/po/ru.cp1251.po b/src/po/ru.cp1251.po
index 01c79de..fdcb781 100644
--- a/src/po/ru.cp1251.po
+++ b/src/po/ru.cp1251.po
@@ -12,8 +12,8 @@
 msgstr ""
 "Project-Id-Version: vim_ru\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-29 13:47+0300\n"
-"PO-Revision-Date: 2022-07-06 17:23+0300\n"
+"POT-Creation-Date: 2022-07-24 18:31+0300\n"
+"PO-Revision-Date: 2022-07-24 18:35+0300\n"
 "Last-Translator: Matvey Tarasov <matthewtarasov@yandex.ru>\n"
 "Language-Team: \n"
 "Language: Russian\n"
@@ -47,7 +47,7 @@
 
 #, c-format
 msgid "auto-removing autocommand: %s <buffer=%d>"
-msgstr "àâòî-óäàëåíèå àâòîêîìàíäû: %s <áóôåð=%d>"
+msgstr "àâòîóäàëåíèå àâòîêîìàíäû: %s <áóôåð=%d>"
 
 msgid "W19: Deleting augroup that is still in use"
 msgstr "W19: Óäàëåíèå åù¸ èñïîëüçóåìîé ãðóïïû àâòîêîìàíä"
@@ -65,7 +65,7 @@
 
 #, c-format
 msgid "%s Autocommands for \"%s\""
-msgstr "%s Àâòîêîìàíäû äëÿ \"%s\""
+msgstr "%s àâòîêîìàíäà äëÿ øàáëîíà \"%s\""
 
 #, c-format
 msgid "Executing %s"
@@ -104,9 +104,9 @@
 #, c-format
 msgid "%d buffer wiped out"
 msgid_plural "%d buffers wiped out"
-msgstr[0] "Î÷èùåí %d áóôåð"
-msgstr[1] "Î÷èùåíî %d áóôåðà"
-msgstr[2] "Î÷èùåíî %d áóôåðîâ"
+msgstr[0] "Ñò¸ðò %d áóôåð"
+msgstr[1] "Ñò¸ðòî %d áóôåðà"
+msgstr[2] "Ñò¸ðòî %d áóôåðîâ"
 
 msgid "W14: Warning: List of file names overflow"
 msgstr "W14: Ïðåäóïðåæäåíèå: ïåðåïîëíåíèå ñïèñêà èì¸í ôàéëîâ"
@@ -163,7 +163,7 @@
 msgstr "Íàâåðõó"
 
 msgid "[Prompt]"
-msgstr "[Óâåäîìëåíèå]"
+msgstr "[Çàïðîñ]"
 
 msgid "[Popup]"
 msgstr "[Âñïëûâàþùèé]"
@@ -194,7 +194,7 @@
 msgstr "[ÁÅÇ ïðåîáðàçîâàíèé]"
 
 msgid "[converted]"
-msgstr "[ïåðåêîäèðîâàíî]"
+msgstr "[ïðåîáðàçîâàíî]"
 
 msgid "[Device]"
 msgstr "[Óñòðîéñòâî]"
@@ -231,14 +231,14 @@
 msgstr ": Îòïðàâêà íå óäàëàñü.\n"
 
 msgid ": Send failed. Trying to execute locally\n"
-msgstr ": Îòïðàâêà íå óäàëàñü. Ïîïûòêà ìåñòíîãî âûïîëíåíèÿ\n"
+msgstr ": Îòïðàâêà íå óäàëàñü. Ïîïûòêà âûïîëíèòü ëîêàëüíî\n"
 
 #, c-format
 msgid "%d of %d edited"
 msgstr "îòðåäàêòèðîâàíî %d èç %d"
 
 msgid "No display: Send expression failed.\n"
-msgstr "Íåò äèñïëåÿ: îòïðàâêà âûðàæåíèÿ íå óäàëàñü.\n"
+msgstr "Íåò äèñïëåÿ, îòïðàâêà âûðàæåíèÿ íå óäàëàñü.\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": Îòïðàâêà âûðàæåíèÿ íå óäàëàñü.\n"
@@ -303,10 +303,10 @@
 
 #, c-format
 msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "Òî÷êà îñòàíîâêè â \"%s%s\" ñòð. %ld"
+msgstr "Òî÷êà îñòàíîâà â \"%s%s\" ñòð. %ld"
 
 msgid "No breakpoints defined"
-msgstr "Òî÷êè îñòàíîâêè íå îïðåäåëåíû"
+msgstr "Òî÷êè îñòàíîâà íå îïðåäåëåíû"
 
 #, c-format
 msgid "%3d  %s %s  line %ld"
@@ -327,37 +327,37 @@
 msgstr "Ôàéë-çàïëàòêà"
 
 msgid "Custom"
-msgstr "Ñïåöèàëüíûå"
+msgstr "×àñòíàÿ îáëàñòü"
 
 msgid "Latin supplement"
-msgstr "Ëàòûíü äîïîëíåííàÿ"
+msgstr "Äîïîëíåíèå ê ëàòèíèöå"
 
 msgid "Greek and Coptic"
-msgstr "Ãðå÷åñêèé è Êîïòñêèé"
+msgstr "Ãðå÷åñêîå è êîïòñêîå ïèñüìî"
 
 msgid "Cyrillic"
 msgstr "Êèðèëëèöà"
 
 msgid "Hebrew"
-msgstr "Èâðèò"
+msgstr "Åâðåéñêîå ïèñüìî"
 
 msgid "Arabic"
-msgstr "Àðàáñêèé"
+msgstr "Àðàáñêîå ïèñüìî"
 
 msgid "Latin extended"
-msgstr "Ëàòûíü ðàñøèðåííàÿ"
+msgstr "Ðàñøèðåííàÿ ëàòèíèöà"
 
 msgid "Greek extended"
-msgstr "Ãðå÷åñêèé ðàñøèðåííûé"
+msgstr "Ðàñøèðåííîå ãðå÷åñêîå ïèñüìî"
 
 msgid "Punctuation"
-msgstr "Ïóíêòóàöèÿ"
+msgstr "Îñíîâíàÿ ïóíêòóàöèÿ"
 
 msgid "Super- and subscripts"
-msgstr "Íàä- è ïîäñòðî÷íûå"
+msgstr "Íàäñòðî÷íûå è ïîäñòðî÷íûå çíàêè"
 
 msgid "Currency"
-msgstr "Âàëþòà"
+msgstr "Çíàêè âàëþò"
 
 msgid "Other"
 msgstr "Ïðî÷åå"
@@ -372,7 +372,7 @@
 msgstr "Ìàòåìàòè÷åñêèå îïåðàòîðû"
 
 msgid "Technical"
-msgstr "Òåõíèêà"
+msgstr "Ðàçíûå òåõíè÷åñêèå çíàêè"
 
 msgid "Box drawing"
 msgstr "Ïñåâäîãðàôèêà"
@@ -384,13 +384,13 @@
 msgstr "Ãåîìåòðè÷åñêèå ôèãóðû"
 
 msgid "Symbols"
-msgstr "Ñèìâîëû"
+msgstr "Ðàçíûå ñèìâîëû"
 
 msgid "Dingbats"
-msgstr "Îðíàìåíò"
+msgstr "Äåêîðàòèâíûå ñèìâîëû"
 
 msgid "CJK symbols and punctuation"
-msgstr "Êèòàéñêèå, ßïîíñêèå è Êîðåéñêèå ñèìâîëû è ïóíêòóàöèÿ"
+msgstr "Êèòàéñêèå, êîðåéñêèå è ÿïîíñêèå ñèìâîëû è ïóíêòóàöèÿ"
 
 msgid "Hiragana"
 msgstr "Õèðàãàíà"
@@ -399,7 +399,7 @@
 msgstr "Êàòàêàíà"
 
 msgid "Bopomofo"
-msgstr "׿óèíü (áîïîìîôî)"
+msgstr "׿óèíü ôóõàî (áîïîìîôî)"
 
 msgid "Not enough memory to set references, garbage collection aborted!"
 msgstr "Íåäîñòàòî÷íî ïàìÿòè äëÿ óñòàíîâêè ññûëîê — ñáîðêà ìóñîðà ïðåêðàùåíà!"
@@ -647,7 +647,7 @@
 
 #, c-format
 msgid "%s made pending"
-msgstr "%s âûïîëíÿåò îæèäàíèå"
+msgstr "%s ïðèîñòàíîâëåíî"
 
 #, c-format
 msgid "%s resumed"
@@ -703,7 +703,7 @@
 msgstr "[fifo]"
 
 msgid "[socket]"
-msgstr "[ãíåçäî]"
+msgstr "[ñîêåò]"
 
 msgid "[character special]"
 msgstr "[ñïåöèàëüíûé ñèìâîëüíûé]"
@@ -726,7 +726,7 @@
 msgstr "[ÎØÈÁÊÈ ×ÒÅÍÈß]"
 
 msgid "Can't find temp file for conversion"
-msgstr "Âðåìåííûé ôàéë äëÿ ïåðåêîäèðîâàíèÿ íå íàéäåí"
+msgstr "Âðåìåííûé ôàéë äëÿ ïðåîáðàçîâàíèÿ íå íàéäåí"
 
 msgid "Conversion with 'charconvert' failed"
 msgstr "Ïðåîáðàçîâàíèå ñ ïîìîùüþ 'charconvert' íå âûïîëíåíî"
@@ -794,8 +794,8 @@
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
 msgstr ""
-"W16: Ïðåäóïðåæäåíèå: ðåæèì äîñòóïà ê ôàéëó \"%s\" áûë èçìåí¸í ïîñëå íà÷àëà "
-"ðåäàêòèðîâàíèÿ"
+"W16: Ïðåäóïðåæäåíèå: ðåæèì äîñòóïà ê ôàéëó \"%s\" áûë èçìåí¸í ïîñëå "
+"íà÷àëà ðåäàêòèðîâàíèÿ"
 
 msgid "See \":help W16\" for more info."
 msgstr "Ñì. \":help W16\" äëÿ äîïîëíèòåëüíîé èíôîðìàöèè."
@@ -1091,7 +1091,7 @@
 msgstr "Ïîêàçàòü ýòî ñîîáùåíèå"
 
 msgid "Kill a connection"
-msgstr "Óáèòü ñîåäèíåíèå"
+msgstr "Ðàçîðâàòü ñîåäèíåíèå"
 
 msgid "Reinit all connections"
 msgstr "Çàíîâî èíèöèàëèçèðîâàòü âñå ñîåäèíåíèÿ"
@@ -1264,7 +1264,7 @@
 msgstr "íåèçâåñòíàÿ vimOption"
 
 msgid "keyboard interrupt"
-msgstr "êëàâèàòóðíîå ïðåðûâàíèå"
+msgstr "ïðåðâàíî ñ êëàâèàòóðû"
 
 msgid "cannot create buffer/window command: object is being deleted"
 msgstr "íåâîçìîæíî ñîçäàòü êîìàíäó áóôåðà èëè îêíà: îáúåêò â ïðîöåññå óäàëåíèÿ"
@@ -1449,11 +1449,10 @@
 msgstr "NetBeans íå ïîääåðæèâàåòñÿ ñ ýòèì ãðàôè÷åñêèì èíòåðôåéñîì\n"
 
 msgid "'-nb' cannot be used: not enabled at compile time\n"
-msgstr "Íåâîçìîæíî èñïîëüçîâàòü '-nb': íå âêëþ÷åíî ïðè êîìïèëÿöèè\n"
+msgstr "Íåâîçìîæíî èñïîëüçîâàòü '-nb': âûêëþ÷åíî ïðè êîìïèëÿöèè\n"
 
 msgid "This Vim was not compiled with the diff feature."
-msgstr ""
-"Äàííûé Vim áûë ñêîìïèëèðîâàí ñ âûêëþ÷åííîé îñîáåííîñòüþ ïðîñìîòðà îòëè÷èé."
+msgstr "Ýòà âåðñèÿ Vim áûëà ñîáðàíà áåç îñîáåííîñòè ïðîñìîòðà îòëè÷èé."
 
 msgid "Attempt to open script file again: \""
 msgstr "Ïîïûòêà ïîâòîðíîãî îòêðûòèÿ ôàéëà ñöåíàðèÿ: \""
@@ -1552,7 +1551,7 @@
 msgstr "-g\t\t\tÇàïóñòèòü ñ ãðàôè÷åñêèì èíòåðôåéñîì (êàê \"gvim\")"
 
 msgid "-f  or  --nofork\tForeground: Don't fork when starting GUI"
-msgstr "-f  èëè --nofork\t àêòèâíîé çàäà÷å: Íå âûïîëíÿòü fork ïðè çàïóñêå GUI"
+msgstr "-f  èëè --nofork\t àêòèâíîé çàäà÷å: íå âûïîëíÿòü fork ïðè çàïóñêå GUI"
 
 msgid "-v\t\t\tVi mode (like \"vi\")"
 msgstr "-v\t\t\tÐåæèì Vi (êàê \"vi\")"
@@ -1624,10 +1623,10 @@
 msgstr "-dev <óñòðîéñòâî>\t\tÈñïîëüçîâàòü äëÿ I/O óêàçàííîå <óñòðîéñòâî>"
 
 msgid "-A\t\t\tStart in Arabic mode"
-msgstr "-A\t\t\tÇàïóñê â Àðàáñêîì ðåæèìå"
+msgstr "-A\t\t\tÇàïóñê ñ ïîääåðæêîé àðàáñêîãî ÿçûêà"
 
 msgid "-H\t\t\tStart in Hebrew mode"
-msgstr "-H\t\t\tÇàïóñê â ðåæèìå \"Èâðèò\""
+msgstr "-H\t\t\tÇàïóñê ñ ïîääåðæêîé èâðèòà"
 
 msgid "-T <terminal>\tSet terminal type to <terminal>"
 msgstr "-T <òåðìèíàë>\tÍàçíà÷èòü óêàçàííûé òèï <òåðìèíàëà>"
@@ -1653,13 +1652,13 @@
 # \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ
 msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
 msgstr ""
-"-p[N]\t\tÎòêðûòü N âêëàäîê (ïî óìîë÷àíèþ: ïî îäíîé\n"
+"-p[N]\t\tÎòêðûòü N âêëàäîê (ïî óìîë÷àíèþ ïî îäíîé\n"
 "\t\t\t\tíà êàæäûé ôàéë)"
 
 # \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr ""
-"-o[N]\t\tÎòêðûòü N îêîí (ïî óìîë÷àíèþ: ïî îäíîìó\n"
+"-o[N]\t\tÎòêðûòü N îêîí (ïî óìîë÷àíèþ ïî îäíîìó\n"
 "\t\t\t\tíà êàæäûé ôàéë)"
 
 msgid "-O[N]\t\tLike -o but split vertically"
@@ -1699,10 +1698,10 @@
 msgstr "-x\t\t\tÐåäàêòèðîâàíèå çàøèôðîâàííûõ ôàéëîâ"
 
 msgid "-display <display>\tConnect Vim to this particular X-server"
-msgstr "-display <ýêðàí>\tÏîäñîåäèíèòü Vim ê óêàçàííîìó X-ñåðâåðó"
+msgstr "-display <äèñïëåé>\tÑîåäèíèòü Vim ñ óêàçàííûì X-ñåðâåðîì"
 
 msgid "-X\t\t\tDo not connect to X server"
-msgstr "-X\t\t\tÍå âûïîëíÿòü ñîåäèíåíèå ñ ñåðâåðîì X"
+msgstr "-X\t\t\tÍå âûïîëíÿòü ñîåäèíåíèå ñ X-ñåðâåðîì"
 
 msgid "--remote <files>\tEdit <files> in a Vim server if possible"
 msgstr "--remote <ôàéëû>\tÏî âîçìîæíîñòè ðåäàêòèðîâàòü <ôàéëû> íà ñåðâåðå Vim"
@@ -1732,14 +1731,15 @@
 msgstr "--remote-expr <âûðàæ>\tÂû÷èñëèòü <âûðàæ> íà ñåðâåðå Vim è íàïå÷àòàòü"
 
 msgid "--serverlist\t\tList available Vim server names and exit"
-msgstr "--serverlist\t\tÏîêàçàòü ñïèñîê èì¸í ñåðâåðîâ Vim è çàâåðøèòü ðàáîòó"
+msgstr "--serverlist\t\tÏîêàçàòü ñïèñîê ñåðâåðîâ Vim è çàâåðøèòü ðàáîòó"
 
 msgid "--servername <name>\tSend to/become the Vim server <name>"
 msgstr ""
-"--servername <èìÿ>\tÎòïðàâèòü íà/ñòàòü ñåðâåðîì Vim ñ óêàçàííûì <èìåíåì>"
+"--servername <èìÿ>\tÎòïðàâèòü íà ñåðâåð èëè ñòàòü ñåðâåðîì Vim\n"
+"\t\t\t\tñ óêàçàííûì <èìåíåì>"
 
 msgid "--startuptime <file>\tWrite startup timing messages to <file>"
-msgstr "--startuptime <ôàéë>\tÇàïèñàòü âðåìåííóþ ìåòêó î çàïóñêå â <ôàéë>"
+msgstr "--startuptime <ôàéë>\tÇàïèñàòü âðåìåííûå ìåòêè çàïóñêà â <ôàéë>"
 
 msgid "--log <file>\tStart logging to <file> early"
 msgstr ""
@@ -1984,14 +1984,14 @@
 msgstr "ôàéëîì ïðè ïîìîùè ïðîãðàììû diff)"
 
 msgid "Recovery completed. Buffer contents equals file contents."
-msgstr "Âîññòàíîâëåíèå çàâåðøåíî. Ñîäåðæèìîå áóôåðîâ è ôàéëîâ ýêâèâàëåíòíî."
+msgstr "Âîññòàíîâëåíèå çàâåðøåíî. Ñîäåðæèìîå áóôåðà è ôàéëà ýêâèâàëåíòíî."
 
 msgid ""
 "\n"
 "You may want to delete the .swp file now."
 msgstr ""
 "\n"
-"Âåðîÿòíî, ñåé÷àñ âû çàõîòèòå óäàëèòü ôàéë .swp."
+"Ôàéë .swp òåïåðü ìîæíî óäàëèòü."
 
 msgid ""
 "\n"
@@ -2304,7 +2304,7 @@
 
 #, c-format
 msgid "Calling shell to execute: \"%s\""
-msgstr "Âûçîâ îáîëî÷êè äëÿ èñïîëíåíèÿ: \"%s\""
+msgstr "Âûçîâ îáîëî÷êè äëÿ âûïîëíåíèÿ \"%s\""
 
 msgid "Warning: terminal cannot highlight"
 msgstr "Ïðåäóïðåæäåíèå: òåðìèíàë íå ìîæåò âûïîëíÿòü ïîäñâåòêó"
@@ -2381,7 +2381,8 @@
 
 msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
 msgstr ""
-"W17: Àðàáñêèé òðåáóåò èñïîëüçîâàíèÿ UTF-8, ââåäèòå ':set encoding=utf-8'"
+"W17: Àðàáñêèé ÿçûê ïîääåðæèâàåòñÿ òîëüêî ñ UTF-8, ââåäèòå "
+"':set encoding=utf-8'"
 
 msgid ""
 "\n"
@@ -2532,7 +2533,7 @@
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"Íåâîçìîæíî ñîçäàòü òðóáû\n"
+"Íåâîçìîæíî ñîçäàòü êîíâåéåð\n"
 
 msgid ""
 "\n"
@@ -2695,10 +2696,10 @@
 msgstr " (âèðòóàëüíàÿ çàìåíà)"
 
 msgid " Hebrew"
-msgstr " Èâðèò"
+msgstr " èâðèò"
 
 msgid " Arabic"
-msgstr " Àðàáñêèé"
+msgstr " àðàáñêèé"
 
 msgid " (paste)"
 msgstr " (âêëåéêà)"
@@ -3113,7 +3114,7 @@
 msgstr "Îöåíêà èñïîëüçîâàíèÿ ïàìÿòè ïðè âûïîëíåíèè: %d áàéòîâ"
 
 msgid "Warning: both compounding and NOBREAK specified"
-msgstr "Ïðåäóïðåæäåíèå: ôëàãè \"ñîñòàâíîé\" è NOBREAK óêàçàíû âìåñòå"
+msgstr "Ïðåäóïðåæäåíèå: ïðàâèëî äëÿ ñîñòàâíûõ ñëîâ óêàçàíî âìåñòå ñ NOBREAK"
 
 #, c-format
 msgid "Writing spell file %s..."
@@ -3511,7 +3512,7 @@
 "Compiled "
 msgstr ""
 "\n"
-"Ñêîìïèëèðîâàíî: "
+"Ñêîìïèëèðîâàíî"
 
 msgid "by "
 msgstr " "
@@ -3751,7 +3752,7 @@
 "# Bar lines, copied verbatim:\n"
 msgstr ""
 "\n"
-"# Ñòðîê ñ '|', òî÷íî ñêîïèðîâàíî:\n"
+"# Ñòðîêè ñ '|' ñêîïèðîâàíû äîñëîâíî:\n"
 
 #, c-format
 msgid "%sviminfo: %s in line: "
@@ -3944,10 +3945,10 @@
 "êîìïèëÿöèè"
 
 msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-msgstr "E26: Èâðèò âûêëþ÷åí ïðè êîìïèëÿöèè\n"
+msgstr "E26: Ïîääåðæêà èâðèòà âûêëþ÷åíà ïðè êîìïèëÿöèè\n"
 
 msgid "E27: Farsi support has been removed\n"
-msgstr "E27: Ïîääåðæêà Ïåðñèäñêîãî áûëà óäàëåíà\n"
+msgstr "E27: Ïîääåðæêà ïåðñèäñêîãî ÿçûêà áûëà óäàëåíà\n"
 
 #, c-format
 msgid "E28: No such highlight group name: %s"
@@ -4052,7 +4053,7 @@
 
 #, c-format
 msgid "E60: Too many complex %s{...}s"
-msgstr "E60: Ñëèøêîì ìíîãî ñëîæíûõ êîíñòðóêöèé %s{...}"
+msgstr "E60: ×åðåñ÷óð ìíîãî ñëîæíûõ êâàíòèôèêàòîðîâ %s{...}"
 
 #, c-format
 msgid "E61: Nested %s*"
@@ -4076,7 +4077,7 @@
 msgstr "E66: \\z( íå ìîæåò áûòü èñïîëüçîâàíî çäåñü"
 
 msgid "E67: \\z1 - \\z9 not allowed here"
-msgstr "E67: \\z1 è ò.ï. íå ìîãóò áûòü èñïîëüçîâàíû çäåñü"
+msgstr "E67: \\z1 è ò.ï. çäåñü íå ðàçðåøåíû"
 
 msgid "E68: Invalid character after \\z"
 msgstr "E68: Íåäîïóñòèìûé ñèìâîë ïîñëå \\z"
@@ -4133,7 +4134,7 @@
 msgstr "E84: Èçìåí¸ííûõ áóôåðîâ íå îáíàðóæåíî"
 
 msgid "E85: There is no listed buffer"
-msgstr "E85: Áóôåðû â ñïèñêå îòñóòñòâóþò"
+msgstr "E85: Ñïèñîê áóôåðîâ ïóñò"
 
 #, c-format
 msgid "E86: Buffer %ld does not exist"
@@ -4154,7 +4155,7 @@
 msgstr "E90: Íåâîçìîæíî âûãðóçèòü èç ïàìÿòè ïîñëåäíèé áóôåð"
 
 msgid "E91: 'shell' option is empty"
-msgstr "E91: Çíà÷åíèåì îïöèè 'shell' ÿâëÿåòñÿ ïóñòàÿ ñòðîêà"
+msgstr "E91: Çíà÷åíèå îïöèè 'shell' íå çàäàíî"
 
 #, c-format
 msgid "E92: Buffer %d not found"
@@ -4338,7 +4339,7 @@
 
 #, c-format
 msgid "E143: Autocommands unexpectedly deleted new buffer %s"
-msgstr "E143: Àâòîêîìàíäû íåîæèäàííî óáèëè íîâûé áóôåð %s"
+msgstr "E143: Àâòîêîìàíäû íåîæèäàííî óäàëèëè íîâûé áóôåð %s"
 
 msgid "E144: Non-numeric argument to :z"
 msgstr "E144: Ïàðàìåòð êîìàíäû :z äîëæåí áûòü ÷èñëîì"
@@ -4405,7 +4406,7 @@
 
 #, c-format
 msgid "E161: Breakpoint not found: %s"
-msgstr "E161: Òî÷êà îñòàíîâêè íå íàéäåíà: %s"
+msgstr "E161: Òî÷êà îñòàíîâà íå íàéäåíà: %s"
 
 #, c-format
 msgid "E162: No write since last change for buffer \"%s\""
@@ -4421,7 +4422,7 @@
 msgstr "E165: Ýòî ïîñëåäíèé ôàéë"
 
 msgid "E166: Can't open linked file for writing"
-msgstr "E166: Íåâîçìîæíî îòêðûòü ôàéë ïî ññûëêå äëÿ çàïèñè"
+msgstr "E166: Ôàéë ïî ññûëêå íå äîñòóïåí äëÿ çàïèñè"
 
 msgid "E167: :scriptencoding used outside of a sourced file"
 msgstr "E167: Êîìàíäà :scriptencoding èñïîëüçóåòñÿ âíå ôàéëà ñöåíàðèÿ"
@@ -4547,7 +4548,7 @@
 msgstr "E201: Àâòîêîìàíäû *ReadPre íå äîëæíû èçìåíÿòü àêòèâíûé áóôåð"
 
 msgid "E202: Conversion made file unreadable!"
-msgstr "E202:  ðåçóëüòàòå ïðåîáðàçîâàíèÿ ôàéë ñòàë íå÷èòàåìûì!"
+msgstr "E202:  ðåçóëüòàòå ïðåîáðàçîâàíèÿ ôàéë ñòàë íå÷èòàåì!"
 
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
 msgstr ""
@@ -4586,7 +4587,7 @@
 
 msgid "E213: Cannot convert (add ! to write without conversion)"
 msgstr ""
-"E213: Ïåðåêîäèðîâêà íåâîçìîæíà (äîáàâüòå ! äëÿ çàïèñè áåç ïåðåêîäèðîâêè)"
+"E213: Ïðåîáðàçîâàíèå íåâîçìîæíî (äîáàâüòå ! äëÿ çàïèñè áåç ïðåîáðàçîâàíèÿ)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: Âðåìåííûé ôàéë äëÿ çàïèñè íå íàéäåí"
@@ -4718,7 +4719,7 @@
 msgstr "E248: Íå óäàëàñü îòïðàâêà êîìàíäû â äðóãóþ ïðîãðàììó"
 
 msgid "E249: Window layout changed unexpectedly"
-msgstr "E249: Íåîæèäàííî èçìåíèëîñü ðàñïîëîæåíèå îêíà"
+msgstr "E249: Íåîæèäàííî èçìåíèëîñü ðàñïîëîæåíèå îêîí"
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
@@ -4726,8 +4727,7 @@
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
 msgstr ""
-"E251: Íåïðàâèëüíî ñôîðìèðîâàíî çíà÷åíèå äàííîãî ïðîöåññà VIM â ðååñòðå. "
-"Óäàëåíî!"
+"E251: Íåïðàâèëüíî ñôîðìèðîâàíî çíà÷åíèå ïðîöåññà VIM â ðååñòðå. Óäàëåíî!"
 
 #, c-format
 msgid "E252: Fontset name: %s - Font '%s' is not fixed-width"
@@ -4763,7 +4763,7 @@
 
 #, c-format
 msgid "E262: Error reading cscope connection %d"
-msgstr "E262: Îøèáêà ÷òåíèÿ ñîåäèíåíèÿ cscope %d"
+msgstr "E262: Îøèáêà ÷òåíèÿ èç cscope, ñîåäèíåíèå %d"
 
 msgid ""
 "E263: Sorry, this command is disabled, the Python library could not be "
@@ -4826,8 +4826,8 @@
 "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
 "org"
 msgstr ""
-"E280: ÊÐÈÒÈ×ÅÑÊÀß ÎØÈÁÊÀ TCL: ïîâðåæä¸í ñïèñîê ññûëîê?! Ñîîáùèòå îá ýòîì ïî "
-"àäðåñó vim-dev@vim.org"
+"E280: ÊÐÈÒÈ×ÅÑÊÀß ÎØÈÁÊÀ TCL: âîçìîæíî, ïîâðåæä¸í ñïèñîê ññûëîê. "
+"Ïîæàëóéñòà, ñîîáùèòå îá ýòîì ïî àäðåñó vim-dev@vim.org"
 
 #, c-format
 msgid "E282: Cannot read from \"%s\""
@@ -5005,7 +5005,7 @@
 msgstr "E327: Êîìïîíåíò ïóòè ê ýëåìåíòó ìåíþ íå ÿâëÿåòñÿ ïîäìåíþ"
 
 msgid "E328: Menu only exists in another mode"
-msgstr "E328: Ìåíþ â ýòîì ðåæèìå íå ñóùåñòâóåò"
+msgstr "E328: Ìåíþ ñóùåñòâóåò òîëüêî â äðóãîì ðåæèìå"
 
 #, c-format
 msgid "E329: No menu \"%s\""
@@ -5131,7 +5131,7 @@
 
 #, c-format
 msgid "E364: Library call failed for \"%s()\""
-msgstr "E364: Íåóäà÷íûé âûçîâ ôóíêöèè \"%s()\" èç áèáëèîòåêè"
+msgstr "E364: Íåóäà÷íûé âûçîâ \"%s()\" èç ñòîðîííåé áèáëèîòåêè"
 
 msgid "E365: Failed to print PostScript file"
 msgstr "E365: Íå óäàëîñü âûïîëíèòü ïå÷àòü ôàéëà PostScript"
@@ -5195,7 +5195,7 @@
 
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr ""
-"E382: Çàïèñü íåâîçìîæíà: çíà÷åíèå îïöèè 'buftype' íå ÿâëÿåòñÿ ïóñòîé ñòðîêîé"
+"E382: Çàïèñü íåâîçìîæíà: îïöèÿ 'buftype' íå ïóñòà"
 
 #, c-format
 msgid "E383: Invalid search string: %s"
@@ -5310,7 +5310,7 @@
 msgstr "E413: Ñëèøêîì ìíîãî ïàðàìåòðîâ: \":highlight link %s\""
 
 msgid "E414: Group has settings, highlight link ignored"
-msgstr "E414: Ó ãðóïïû åñòü íàñòðîéêè — highlight link èãíîðèðóåòñÿ"
+msgstr "E414: Ó ãðóïïû åñòü íàñòðîéêè, highlight link èãíîðèðóåòñÿ"
 
 #, c-format
 msgid "E415: Unexpected equal sign: %s"
@@ -5336,7 +5336,7 @@
 
 #, c-format
 msgid "E421: Color name or number not recognized: %s"
-msgstr "E421: Èìÿ èëè íîìåð öâåòà íå èçâåñòíî: %s"
+msgstr "E421: Èìÿ èëè íîìåð öâåòà íåèçâåñòíî: %s"
 
 #, c-format
 msgid "E422: Terminal code too long: %s"
@@ -5440,7 +5440,7 @@
 msgstr "E451: Îæèäàëàñü ñêîáêà }: %s"
 
 msgid "E452: Double ; in list of variables"
-msgstr "E452: Äâîéíàÿ ; â ñïèñêå ïåðåìåííûõ"
+msgstr "E452: Äâå òî÷êè ñ çàïÿòîé â ñïèñêå ïåðåìåííûõ"
 
 msgid "E453: UL color unknown"
 msgstr "E453: Íåèçâåñòíûé öâåò ïîä÷¸ðêèâàíèÿ"
@@ -5465,7 +5465,7 @@
 
 msgid "E458: Cannot allocate colormap entry, some colors may be incorrect"
 msgstr ""
-"E458: Íåâîçìîæíî âûäåëèòü çàïèñü â òàáëèöå öâåòà — íåêîòîðûå öâåòà ìîãóò "
+"E458: Íåâîçìîæíî âûäåëèòü çàïèñü â òàáëèöå öâåòî⠗ íåêîòîðûå öâåòà ìîãóò "
 "îòîáðàæàòüñÿ íåïðàâèëüíî"
 
 msgid "E459: Cannot go back to previous directory"
@@ -5507,7 +5507,7 @@
 
 #, c-format
 msgid "E469: Invalid cscopequickfix flag %c for %c"
-msgstr "E469: Íåïðàâèëüíûé ôëàã cscopequickfix %c äëÿ %c"
+msgstr "E469: Íåïðàâèëüíûé ôëàã cscopequickfix %c ïîñëå %c"
 
 msgid "E470: Command aborted"
 msgstr "E470: Âûïîëíåíèå êîìàíäû ïðåðâàíî"
@@ -5627,7 +5627,7 @@
 msgstr "E499: Ïóñòîå èìÿ ôàéëà äëÿ '%' èëè '#' ðàáîòàåò òîëüêî c \":p:h\""
 
 msgid "E500: Evaluates to an empty string"
-msgstr "E500: Ðåçóëüòàòîì âûðàæåíèÿ ÿâëÿåòñÿ ïóñòàÿ ñòðîêà"
+msgstr "E500: Ðåçóëüòàòîì ÿâëÿåòñÿ ïóñòàÿ ñòðîêà"
 
 msgid "E501: At end-of-file"
 msgstr "E501: Â êîíöå ôàéëà"
@@ -5675,7 +5675,7 @@
 msgstr "E511: Óæå ñîåäèí¸í ñ NetBeans"
 
 msgid "E512: Close failed"
-msgstr "E512: Îïåðàöèÿ çàêðûòèÿ íå óäàëàñü"
+msgstr "E512: Íå óäàëîñü çàêðûòü ôàéë"
 
 msgid "E513: Write error, conversion failed (make 'fenc' empty to override)"
 msgstr ""
@@ -5687,7 +5687,7 @@
 "E513: Write error, conversion failed in line %ld (make 'fenc' empty to "
 "override)"
 msgstr ""
-"E513: Îøèáêà çàïèñè, ïðåîáðàçîâàíèå íå óäàëîñü íà ñòðîêå %ld (î÷èñòèòå "
+"E513: Îøèáêà çàïèñè, ïðåîáðàçîâàíèå íå óäàëîñü â ñòðîêå %ld (î÷èñòèòå "
 "'fenc', ÷òîáû îáîéòè)"
 
 msgid "E514: Write error (file system full?)"
@@ -5700,7 +5700,7 @@
 msgstr "E516: Íè îäèí áóôåð íå áûë óäàë¸í"
 
 msgid "E517: No buffers were wiped out"
-msgstr "E517: Íè îäèí áóôåð íå áûë î÷èùåí"
+msgstr "E517: Íè îäèí áóôåð íå áûë ñò¸ðò"
 
 msgid "E518: Unknown option"
 msgstr "E518: Íåèçâåñòíàÿ îïöèÿ"
@@ -5719,7 +5719,7 @@
 msgstr "E521: Òðåáóåòñÿ óêàçàòü ÷èñëî: &%s = '%s'"
 
 msgid "E522: Not found in termcap"
-msgstr "E522: Íå îáíàðóæåíî â termcap"
+msgstr "E522: Íå íàéäåíî â termcap"
 
 msgid "E523: Not allowed here"
 msgstr "E523: Çäåñü íå ðàçðåøåíî"
@@ -5778,7 +5778,7 @@
 msgstr "E539: Íåäîïóñòèìûé ñèìâîë <%s>"
 
 msgid "E540: Unclosed expression sequence"
-msgstr "E540: Íåçàêðûòàÿ ïîñëåäîâàòåëüíîñòü âûðàæåíèÿ"
+msgstr "E540: Íåçàêðûòîå âûðàæåíèå"
 
 msgid "E542: Unbalanced groups"
 msgstr "E542: Íåñáàëàíñèðîâàííûå ãðóïïû"
@@ -5857,7 +5857,7 @@
 msgstr "E565: Íå ðàçðåøàåòñÿ èçìåíÿòü òåêñò ëèáî ïåðåõîäèòü â äðóãîå îêíî"
 
 msgid "E566: Could not create cscope pipes"
-msgstr "E566: Íåâîçìîæíî ñîçäàòü òðóáó äëÿ cscope"
+msgstr "E566: Íå óäàëîñü ñîçäàòü êîíâåéåðíîå ïîäêëþ÷åíèå ê cscope"
 
 msgid "E567: No cscope connections"
 msgstr "E567: Ñîåäèíåíèé ñ cscope íå ñîçäàíî"
@@ -6034,7 +6034,7 @@
 msgstr "E621: Ôàéë ðåñóðñîâ \"%s\" íåèçâåñòíîé âåðñèè"
 
 msgid "E622: Could not fork for cscope"
-msgstr "E622: Íåâîçìîæíî âûïîëíèòü fork() äëÿ cscope"
+msgstr "E622: Íå óäàëîñü âûïîëíèòü fork() äëÿ cscope"
 
 msgid "E623: Could not spawn cscope process"
 msgstr "E623: Íå óäàëîñü çàïóñòèòü ïðîöåññ cscope"
@@ -6089,7 +6089,7 @@
 msgstr "E663: Â êîíöå ñïèñêà èçìåíåíèé"
 
 msgid "E664: Changelist is empty"
-msgstr "E664: Ñïèñîê èçìåíåíèé ïóñòîé"
+msgstr "E664: Ñïèñîê èçìåíåíèé ïóñò"
 
 msgid "E665: Cannot start GUI, no valid font found"
 msgstr ""
@@ -6105,7 +6105,8 @@
 #, c-format
 msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
 msgstr ""
-"E668: Íåïðàâèëüíûé ðåæèì äîñòóïà ê èíôîðìàöèè î ñîåäèíåíèè ñ NetBeans: \"%s\""
+"E668: Ôàéë èíôîðìàöèè î ñîåäèíåíèÿõ NetBeans èìååò íåïðàâèëüíûé ðåæèì "
+"äîñòóïà: \"%s\""
 
 msgid "E669: Unprintable character in group name"
 msgstr "E669: Íåïå÷àòíûé ñèìâîë â èìåíè ãðóïïû"
@@ -6169,10 +6170,10 @@
 msgstr "E686: Ïàðàìåòð %s äîëæåí áûòü ñïèñêîì"
 
 msgid "E687: Less targets than List items"
-msgstr "E687: Öåëåé ìåíüøå, ÷åì ýëåìåíòîâ ñïèñêà"
+msgstr "E687: Öåëåé ìåíüøå, ÷åì ýëåìåíòîâ â ñïèñêå"
 
 msgid "E688: More targets than List items"
-msgstr "E688: Öåëåé áîëüøå, ÷åì ýëåìåíòîâ ñïèñêà"
+msgstr "E688: Öåëåé áîëüøå, ÷åì ýëåìåíòîâ â ñïèñêå"
 
 msgid "E689: Can only index a List, Dictionary or Blob"
 msgstr "E689: Èíäåêñèðîâàòü ìîæíî òîëüêî ñïèñîê, ñëîâàðü èëè áëîá"
@@ -6234,7 +6235,7 @@
 msgstr "E707: Èìÿ ôóíêöèè êîíôëèêòóåò ñ ïåðåìåííîé: %s"
 
 msgid "E708: [:] must come last"
-msgstr "E708: [:] äîëæíî èäòè ïîñëåäíèì"
+msgstr "E708: [:] äîëæíî èäòè ïîñëå ïåðåìåííîé"
 
 msgid "E709: [:] requires a List or Blob value"
 msgstr "E709: [:] òðåáóåò óêàçàíèÿ ñïèñêà èëè áëîáà"
@@ -6330,7 +6331,7 @@
 
 #, c-format
 msgid "E737: Key already exists: %s"
-msgstr "E737: Êëþ÷ óæå ñóùåñòâóåò: %s"
+msgstr "E737: Êëþ÷ %s óæå ñóùåñòâóåò"
 
 #, c-format
 msgid "E738: Can't list variables for %s"
@@ -6380,13 +6381,13 @@
 msgstr "E748: Íåò ïðåäûäóùåãî èñïîëüçîâàííîãî ðåãèñòðà"
 
 msgid "E749: Empty buffer"
-msgstr "E749: Ïóñòîé áóôåð"
+msgstr "E749: Áóôåð ïóñò"
 
 msgid "E750: First use \":profile start {fname}\""
 msgstr "E750: Â ïåðâûé ðàç èñïîëüçóéòå \":profile start {èìÿ-ôàéëà}\""
 
 msgid "E751: Output file name must not have region name"
-msgstr "E751: Èìÿ âûõîäíîãî ôàéëà íå äîëæíî ñîäåðæàòü íàçâàíèÿ ðåãèîíà"
+msgstr "E751: Èìÿ âûõîäíîãî ôàéëà íå äîëæíî ñîäåðæàòü íàçâàíèå ðåãèîíà"
 
 msgid "E752: No previous spell replacement"
 msgstr "E752: Íåò ïðåäûäóùåé çàìåíû ïðàâîïèñàíèÿ"
@@ -6464,7 +6465,7 @@
 msgstr "E773: Ïåòëÿ ñèìâîëüíûõ ññûëîê äëÿ \"%s\""
 
 msgid "E774: 'operatorfunc' is empty"
-msgstr "E774: Çíà÷åíèåì îïöèè 'operatorfunc' ÿâëÿåòñÿ ïóñòàÿ ñòðîêà"
+msgstr "E774: Çíà÷åíèå îïöèè 'operatorfunc' íå çàäàíî"
 
 msgid "E775: Eval feature not available"
 msgstr "E775: Îñîáåííîñòü +eval íåäîñòóïíà"
@@ -6551,14 +6552,14 @@
 
 #, c-format
 msgid "E798: ID is reserved for \":match\": %d"
-msgstr "E798: Èäåíòèôèêàòîð çàðåçåðâèðîâàí äëÿ \":match\": %d"
+msgstr "E798: Èäåíòèôèêàòîð çàðåçåðâèðîâàí çà \":match\": %d"
 
 #, c-format
 msgid "E799: Invalid ID: %d (must be greater than or equal to 1)"
 msgstr "E799: Íåâåðíûé èäåíòèôèêàòîð: %d (äîëæåí áûòü áîëüøå èëè ðàâåí 1)"
 
 msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-msgstr "E800: Àðàáñêèé âûêëþ÷åí ïðè êîìïèëÿöèè\n"
+msgstr "E800: Ïîääåðæêà àðàáñêîãî ÿçûêà âûêëþ÷åíà ïðè êîìïèëÿöèè\n"
 
 #, c-format
 msgid "E801: ID already taken: %d"
@@ -6687,10 +6688,10 @@
 msgstr "E835: Êîíôëèêòóåò ñî çíà÷åíèåì 'fillchars'"
 
 msgid "E836: This Vim cannot execute :python after using :py3"
-msgstr "E836: Äàííûé Vim íå ìîæåò âûïîëíèòü :python ïîñëå èñïîëüçîâàíèÿ :py3"
+msgstr "E836: Â ýòîé âåðñèè Vim íåëüçÿ âûïîëíèòü :python ïîñëå :py3"
 
 msgid "E837: This Vim cannot execute :py3 after using :python"
-msgstr "E837: Äàííûé Vim íå ìîæåò âûïîëíèòü :py3 ïîñëå èñïîëüçîâàíèÿ :python"
+msgstr "E837: Â ýòîé âåðñèè Vim íåëüçÿ âûïîëíèòü :py3 ïîñëå :python"
 
 msgid "E838: NetBeans is not supported with this GUI"
 msgstr "E838: NetBeans íå ïîääåðæèâàåòñÿ ñ ýòèì ãðàôè÷åñêèì èíòåðôåéñîì"
@@ -6700,7 +6701,7 @@
 
 msgid "E841: Reserved name, cannot be used for user defined command"
 msgstr ""
-"E841: Çàðåçåðâèðîâàííîå èìÿ íå ìîæåò èñïîëüçîâàòüñÿ äëÿ êîìàíä ïîëüçîâàòåëÿ"
+"E841: Èìÿ çàðåçåðâèðîâàíî è íå ìîæåò èñïîëüçîâàòüñÿ äëÿ êîìàíäû ïîëüçîâàòåëÿ"
 
 msgid "E842: No line number to use for \"<slnum>\""
 msgstr "E842: Íåò íîìåðà ñòðîêè äëÿ çàìåíû \"<slnum>\""
@@ -6743,7 +6744,7 @@
 msgstr "E854: Ñëèøêîì áîëüøîé ïóòü äëÿ àâòîäîïîëíåíèÿ"
 
 msgid "E855: Autocommands caused command to abort"
-msgstr "E855: Àâòîêîìàíäû âûçâàëè ïðåêðàùåíèå êîìàíäû"
+msgstr "E855: Âûïîëíåíèå êîìàíäû ïðåðâàíî èç-çà àâòîêîìàíä"
 
 msgid ""
 "E856: \"assert_fails()\" second argument must be a string or a list with one "
@@ -6937,10 +6938,10 @@
 msgstr "E903: Ïîëó÷åíà êîìàíäà ñ íåñòðîêîâûì ïàðàìåòðîì"
 
 msgid "E904: Last argument for expr/call must be a number"
-msgstr "E904: Ïîñëåäíèé ïàðàìåòð äëÿ âûðàæåíèÿ èëè âûçîâà äîëæåí áûòü ÷èñëîì"
+msgstr "E904: Ïîñëåäíèé ïàðàìåòð êîìàíäû expr èëè call äîëæåí áûòü ÷èñëîì"
 
 msgid "E904: Third argument for call must be a list"
-msgstr "E904: Òðåòèé ïàðàìåòð äëÿ âûçîâà äîëæåí áûòü ñïèñêîì"
+msgstr "E904: Òðåòèé ïàðàìåòð êîìàíäû call äîëæåí áûòü ñïèñêîì"
 
 #, c-format
 msgid "E905: Received unknown command: %s"
@@ -6968,8 +6969,8 @@
 
 msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
 msgstr ""
-"E912: Íåâîçìîæíî èñïîëüçîâàòü ch_evalexpr() èëè ch_sendexpr() ñ êàíàëîì nl "
-"èëè raw"
+"E912: Íåâîçìîæíî èñïîëüçîâàòü ch_evalexpr() èëè ch_sendexpr() ñ êàíàëîì NL "
+"ëèáî RAW"
 
 msgid "E913: Using a Channel as a Number"
 msgstr "E913: Èñïîëüçîâàíèå êàíàëà âìåñòî ÷èñëà"
@@ -6978,7 +6979,9 @@
 msgstr "E914: Èñïîëüçîâàíèå êàíàëà âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé"
 
 msgid "E915: in_io buffer requires in_buf or in_name to be set"
-msgstr "E915: Áóôåð in_io òðåáóåò óñòàíîâëåííîãî in_buf èëè in_name"
+msgstr ""
+"E915: Åñëè in_io ðàâíî \"buffer\", òî íóæíî òàêæå óñòàíîâèòü "
+"in_buf ëèáî in_name"
 
 msgid "E916: Not a valid job"
 msgstr "E916: Íåäîïóñòèìîå çàäàíèå"
@@ -6996,7 +6999,8 @@
 msgstr "E919: Êàòàëîã íå íàéäåí â '%s': \"%s\""
 
 msgid "E920: _io file requires _name to be set"
-msgstr "E920: Ôàéë _io òðåáóåò óñòàíîâëåííîãî _name"
+msgstr ""
+"E920: Åñëè _io ðàâíî \"file\", òî íóæíî òàêæå óñòàíîâèòü _name"
 
 msgid "E921: Invalid callback argument"
 msgstr "E921: Íåäîïóñòèìûé ïàðàìåòð îáðàòíîãî âûçîâà"
@@ -7079,7 +7083,7 @@
 msgstr "E944: Îáðàòíûé äèàïàçîí â ñèìâîëüíîì êëàññå"
 
 msgid "E945: Range too large in character class"
-msgstr "E945: Äèàïàçîí ñëèøêîì âåëèê â ñèìâîëüíîì êëàññå"
+msgstr "E945: Ñëèøêîì áîëüøîé äèàïàçîí â ñèìâîëüíîì êëàññå"
 
 msgid "E946: Cannot make a terminal with running job modifiable"
 msgstr "E946: Òåðìèíàë ñ çàïóùåííûì çàäàíèåì íåëüçÿ ñäåëàòü èçìåíÿåìûì"
@@ -7178,7 +7182,7 @@
 
 msgid "E973: Blob literal should have an even number of hex characters"
 msgstr ""
-"E973: Áëîá-ëèòåðàë äîëæåí èìåòü ÷¸òíîå êîëè÷åñòâî øåñòíàäöàòåðè÷íûõ ñèìâîëîâ"
+"E973: Áëîá-ëèòåðàë äîëæåí èìåòü ÷¸òíîå êîëè÷åñòâî øåñòíàäöàòåðè÷íûõ ðàçðÿäîâ"
 
 msgid "E974: Using a Blob as a Number"
 msgstr "E974: Èñïîëüçîâàíèå áëîáà âìåñòî ÷èñëà"
@@ -7226,7 +7230,7 @@
 
 msgid "E988: GUI cannot be used. Cannot execute gvim.exe."
 msgstr ""
-"E988: Ãðàôè÷åñêèé èíòåðôåéñ íå ìîæåò áûòü èñïîëüçîâàí. Íåâîçìîæíî âûïîëíèòü "
+"E988: Ãðàôè÷åñêèé èíòåðôåéñ íå ìîæåò áûòü çàäåéñòâîâàí. Ñáîé ïðè çàïóñêå "
 "gvim.exe"
 
 msgid "E989: Non-default argument follows default argument"
@@ -7555,8 +7559,8 @@
 
 msgid "E1076: This Vim is not compiled with float support"
 msgstr ""
-"E1076: Äàííûé Vim áûë ñêîìïèëèðîâàí áåç ïîääåðæêè âû÷èñëåíèé ñ ïëàâàþùåé "
-"òî÷êîé"
+"E1076: Ýòà âåðñèÿ Vim áûëà ñîáðàíà áåç ïîääåðæêè âû÷èñëåíèé "
+"ñ ïëàâàþùåé òî÷êîé"
 
 #, c-format
 msgid "E1077: Missing argument type for %s"
@@ -7568,7 +7572,7 @@
 "\"++nested\"?"
 
 msgid "E1079: Cannot declare a variable on the command line"
-msgstr "E1079: Íåëüçÿ îáúÿâèòü ïåðåìåííóþ â êîìàíäíîé ñòðîêå"
+msgstr "E1079: Ïåðåìåííóþ íåëüçÿ îáúÿâèòü â êîìàíäíîé ñòðîêå"
 
 msgid "E1080: Invalid assignment"
 msgstr "E1080: Íåïðàâèëüíûé îïåðàòîð ïðèñâàèâàíèÿ"
@@ -7982,7 +7986,7 @@
 msgstr "E1192: Ïóñòîå èìÿ ôóíêöèè"
 
 msgid "E1193: cryptmethod xchacha20 not built into this Vim"
-msgstr "E1193: Àëãîðèòì øèôðîâàíèÿ xchacha20 íåäîñòóïåí â äàííîì Vim"
+msgstr "E1193: Àëãîðèòì øèôðîâàíèÿ xchacha20 íåäîñòóïåí â ýòîé âåðñèè Vim"
 
 msgid "E1194: Cannot encrypt header, not enough space"
 msgstr "E1194: Íåâîçìîæíî çàøèôðîâàòü çàãîëîâîê èç-çà íåõâàòêè ïàìÿòè"
@@ -8350,6 +8354,10 @@
 msgid "E1290: substitute nesting too deep"
 msgstr "E1290: Ñëèøêîì ãëóáîêî âëîæåííàÿ çàìåíà â ïîäñòàíîâêå"
 
+#, c-format
+msgid "E1291: Invalid argument: %ld"
+msgstr "E1291: Íåäîïóñòèìûé ïàðàìåòð: %ld"
+
 msgid "--No lines in buffer--"
 msgstr "-- Íåò ñòðîê â áóôåðå --"
 
@@ -8552,7 +8560,7 @@
 msgstr "Íåâîçìîæíî ïåðåèìåíîâàòü áóôåð"
 
 msgid "mark name must be a single character"
-msgstr "Íàçâàíèå îòìåòêè äîëæíî áûòü îäíèì ñèìâîëîì"
+msgstr "Èìÿ îòìåòêè äîëæíî ñîñòîÿòü èç îäíîãî ñèìâîëà"
 
 #, c-format
 msgid "expected vim.Buffer object, but got %s"
@@ -8608,7 +8616,7 @@
 msgstr ""
 "Îøèáêà ïðè óñòàíîâêå ïåðåõâàò÷èêà ïóòè: sys.path_hooks íå ÿâëÿåòñÿ ñïèñêîì\n"
 "Ñëåäóåò ñäåëàòü ñëåäóþùåå:\n"
-"— Äîáàâèòü vim.path_hook  â sys.path_hooks\n"
+"— Äîáàâèòü vim.path_hook â sys.path_hooks\n"
 "— Äîáàâèòü vim.VIM_SPECIAL_PATH â sys.path\n"
 
 msgid ""
@@ -8725,18 +8733,18 @@
 msgstr "ñäåëàòü ðåæèì Âñòàâêè ðåæèìîì ïî óìîë÷àíèþ"
 
 msgid "paste mode, insert typed text literally"
-msgstr "ðåæèì âêëåéêè — íàïå÷àòàííûé òåêñò âñòàâëÿåòñÿ áóêâàëüíî"
+msgstr "ðåæèì âêëåéêè: íàïå÷àòàííûé òåêñò âñòàâëÿåòñÿ áóêâàëüíî"
 
 msgid "key sequence to toggle paste mode"
 msgstr "ïîñëåäîâàòåëüíîñòü êëàâèø äëÿ ïåðåêëþ÷åíèÿ ðåæèìà âêëåéêè"
 
 msgid "list of directories used for runtime files and plugins"
 msgstr ""
-"ñïèñîê êàòàëîãîâ ñ ôàéëàìè ñðåäû èñïîëíåíèÿ è äîïîëíèòåëüíûìè\n"
+"ñïèñîê êàòàëîãîâ ñ ôàéëàìè ñðåäû âûïîëíåíèÿ è äîïîëíèòåëüíûìè\n"
 "ìîäóëÿìè"
 
 msgid "list of directories used for plugin packages"
-msgstr "ñïèñîê êàòàëîãîâ ñ êîìïëåêòàìè ìîäóëåé"
+msgstr "ñïèñîê êàòàëîãîâ ñ ïàêåòàìè ìîäóëåé"
 
 msgid "name of the main help file"
 msgstr "èìÿ îñíîâíîãî ôàéëà ïîìîùè"
@@ -8757,7 +8765,7 @@
 "íåïðîáåëüíûé ñèìâîë ñòðîêè"
 
 msgid "nroff macro names that separate paragraphs"
-msgstr "ìàêðîñû nroff, îòäåëÿþùèå ïàðàãðàôû"
+msgstr "ìàêðîñû nroff, îòäåëÿþùèå àáçàöû"
 
 msgid "nroff macro names that separate sections"
 msgstr "ìàêðîñû nroff, îòäåëÿþùèå ðàçäåëû"
@@ -8793,7 +8801,7 @@
 msgstr "èãíîðèðîâàòü ðåãèñòð áóêâ ïðè ïîèñêå ïî øàáëîíó"
 
 msgid "override 'ignorecase' when pattern has upper case characters"
-msgstr "îòìåíèòü 'ignorecase', åñëè â øàáëîíå åñòü ïðîïèñíûå áóêâû"
+msgstr "îòìåíèòü 'ignorecase', åñëè â øàáëîíå åñòü çàãëàâíûå áóêâû"
 
 msgid "what method to use for changing case of letters"
 msgstr "ñïîñîá èçìåíåíèÿ ðåãèñòðà áóêâ"
@@ -9234,7 +9242,7 @@
 msgstr "ñïèñîê øðèôòîâ äëÿ ñèìâîëîâ äâîéíîé øèðèíû"
 
 msgid "use smooth, antialiased fonts"
-msgstr "èñïîëüçîâàòü ñãëàæåííûå øðèôòû"
+msgstr "èñïîëüçîâàòü øðèôòû ñî ñãëàæèâàíèåì"
 
 msgid "list of flags that specify how the GUI works"
 msgstr "ñïèñîê ôëàãîâ äëÿ íàñòðîéêè ãðàô. èíòåðôåéñà"
@@ -9248,7 +9256,7 @@
 msgstr "ðàçìåð èêîíîê ïàíåëè èíñòðóìåíòîâ"
 
 msgid "room (in pixels) left above/below the window"
-msgstr "ïðîñòðàíñòâî (â ïèêñåëàõ) ñâåðõó èëè ñíèçó îò îêíà"
+msgstr "ïðîñòðàíñòâî â ïèêñåëàõ ñâåðõó èëè ñíèçó îò îêíà"
 
 msgid "list of ASCII characters that can be combined into complex shapes"
 msgstr ""
@@ -9256,7 +9264,7 @@
 "ñîñòàâíûå ôèãóðû"
 
 msgid "options for text rendering"
-msgstr "îïöèè äëÿ îòðèñîâêè òåêñòà"
+msgstr "îïöèè îòðèñîâêè òåêñòà"
 
 msgid "use a pseudo-tty for I/O to external commands"
 msgstr "èñïîëüçîâàòü ïñåâäîòåðìèíàë äëÿ ââîäà-âûâîäà âíåøíèõ êîìàíä"
@@ -9317,13 +9325,13 @@
 
 msgid "the CJK character set to be used for CJK output from :hardcopy"
 msgstr ""
-"íàáîð ñèìâîëîâ êèòàéñêîãî, ÿïîíñêîãî èëè êîðåéñêîãî ÿçûêîâ äëÿ\n"
+"íàáîð ñèìâîëîâ êèòàéñêîãî, êîðåéñêîãî èëè ÿïîíñêîãî ÿçûêîâ äëÿ\n"
 "âûâîäà êîìàíäîé :hardcopy"
 
 msgid "list of font names to be used for CJK output from :hardcopy"
 msgstr ""
-"ñïèñîê øðèôòîâ äëÿ âûâîäà ñèìâîëîâ êèòàéñêîãî, ÿïîíñêîãî èëè\n"
-"êîðåéñêîãî ÿçûêîâ êîìàíäîé :hardcopy"
+"ñïèñîê øðèôòîâ äëÿ âûâîäà ñèìâîëîâ êèòàéñêîãî, êîðåéñêîãî èëè\n"
+"ÿïîíñêîãî ÿçûêîâ êîìàíäîé :hardcopy"
 
 msgid "messages and info"
 msgstr "èíôîðìàöèÿ è ñîîáùåíèÿ"
@@ -9375,7 +9383,8 @@
 msgstr "íå çâåíåòü èç-çà ýòèõ ïðè÷èí"
 
 msgid "list of preferred languages for finding help"
-msgstr "ñïèñîê ïðåäïî÷òèòåëüíûõ ÿçûêîâ äëÿ ïîèñêà ñïðàâêè"
+msgstr ""
+"ñïèñîê ïðåäïî÷òèòåëüíûõ ÿçûêîâ äëÿ ïîèñêà âî âñòðîåííîé ñïðàâêå"
 
 msgid "selecting text"
 msgstr "âûäåëåíèå òåêñòà"
@@ -9436,7 +9445,7 @@
 msgstr "ïîëå ñïðàâà, â êîòîðîì ñòðîêà áóäåò ïåðåíåñåíà àâòîìàòè÷åñêè"
 
 msgid "specifies what <BS>, CTRL-W, etc. can do in Insert mode"
-msgstr "÷òî <BS>, CTRL-W è ò.ï. ìîæåò äåëàòü â ðåæèìå Âñòàâêè"
+msgstr "÷òî <BS>, CTRL-W è ò.ï. ìîãóò äåëàòü â ðåæèìå Âñòàâêè"
 
 msgid "definition of what comment lines look like"
 msgstr "êàê âûãëÿäÿò ñòðîêè êîììåíòàðèåâ"
@@ -9749,14 +9758,13 @@
 
 msgid "keep oldest version of a file; specifies file name extension"
 msgstr ""
-"ñîõðàíÿòü ñàìóþ ñòàðóþ âåðñèþ ôàéëà; óêàçûâàåò ðàñøèðåíèå èìåíè\n"
-"ôàéëà"
+"ñîõðàíèòü ïåðâóþ âåðñèþ ôàéëà; óêàçûâàåò ðàñøèðåíèå èìåíè ôàéëà"
 
 msgid "forcibly sync the file to disk after writing it"
 msgstr "ïðèíóäèòåëüíàÿ ñèíõðîíèçàöèÿ ïîñëå çàïèñè ôàéëà íà äèñê"
 
 msgid "use 8.3 file names"
-msgstr "èñïîëüçîâàòü èìåíà ôàéëîâ 8.3"
+msgstr "èñïîëüçîâàòü èìåíà ôàéëîâ â ôîðìàòå 8.3"
 
 msgid "encryption method for file writing: zip, blowfish or blowfish2"
 msgstr "ìåòîä øèôðîâàíèÿ ïðè çàïèñè ôàéëà: zip, blowfish èëè blowfish2"
@@ -9856,7 +9864,7 @@
 msgstr "èñïîëüçóåòñÿ äëÿ ïåðåíàïðàâëåíèÿ âûâîäà êîìàíäû â ôàéë"
 
 msgid "use a temp file for shell commands instead of using a pipe"
-msgstr "èñïîëüçîâàòü äëÿ êîìàíä îáîëî÷êè âðåìåííûé ôàéë, à íå òðóáó"
+msgstr "èñïîëüçîâàòü äëÿ êîìàíä îáîëî÷êè âðåìåííûé ôàéë, à íå êîíâåéåð"
 
 msgid "program used for \"=\" command"
 msgstr "ïðîãðàììà, èñïîëüçóåìàÿ êîìàíäîé \"=\""
@@ -9888,7 +9896,7 @@
 msgstr "ñòðîêà äëÿ ïåðåíàïðàâëåíèÿ âûâîäà \":make\" â ôàéë îøèáîê"
 
 msgid "name of the errorfile for the 'makeprg' command"
-msgstr "èìÿ ôàéëà îøèáîê äëÿ êîìàíäû 'makeprg'"
+msgstr "èìÿ ôàéëà îøèáîê äëÿ 'makeprg'"
 
 msgid "program used for the \":grep\" command"
 msgstr "ïðîãðàììà, èñïîëüçóåìàÿ êîìàíäîé \":grep\""
@@ -9980,9 +9988,7 @@
 msgstr "ïðèìåíÿòü 'langmap' ê ïðèâÿçàííûì ñèìâîëàì"
 
 msgid "when set never use IM; overrules following IM options"
-msgstr ""
-"åñëè óñòàíîâëåíî, òî ìåòîä ââîäà íèêîãäà íå èñïîëüçóåòñÿ;\n"
-"îòìåíÿåò íèæåñëåäóþùèå îïöèè"
+msgstr "çàáëîêèðîâàòü ìåòîä ââîäà, ñáðîñèòü íèæåñëåäóþùèå îïöèè"
 
 msgid "in Insert mode: 1: use :lmap; 2: use IM; 0: neither"
 msgstr ""
diff --git a/src/po/ru.po b/src/po/ru.po
index 2214c18..9cda3b0 100644
--- a/src/po/ru.po
+++ b/src/po/ru.po
@@ -12,8 +12,8 @@
 msgstr ""
 "Project-Id-Version: vim_ru\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-29 13:47+0300\n"
-"PO-Revision-Date: 2022-07-06 17:23+0300\n"
+"POT-Creation-Date: 2022-07-24 18:31+0300\n"
+"PO-Revision-Date: 2022-07-24 18:35+0300\n"
 "Last-Translator: Matvey Tarasov <matthewtarasov@yandex.ru>\n"
 "Language-Team: \n"
 "Language: Russian\n"
@@ -47,7 +47,7 @@
 
 #, c-format
 msgid "auto-removing autocommand: %s <buffer=%d>"
-msgstr "авто-удаление автокоманды: %s <буфер=%d>"
+msgstr "автоудаление автокоманды: %s <буфер=%d>"
 
 msgid "W19: Deleting augroup that is still in use"
 msgstr "W19: Удаление ещё используемой группы автокоманд"
@@ -65,7 +65,7 @@
 
 #, c-format
 msgid "%s Autocommands for \"%s\""
-msgstr "%s Автокоманды для \"%s\""
+msgstr "%s автокоманда для шаблона \"%s\""
 
 #, c-format
 msgid "Executing %s"
@@ -104,9 +104,9 @@
 #, c-format
 msgid "%d buffer wiped out"
 msgid_plural "%d buffers wiped out"
-msgstr[0] "Очищен %d буфер"
-msgstr[1] "Очищено %d буфера"
-msgstr[2] "Очищено %d буферов"
+msgstr[0] "Стёрт %d буфер"
+msgstr[1] "Стёрто %d буфера"
+msgstr[2] "Стёрто %d буферов"
 
 msgid "W14: Warning: List of file names overflow"
 msgstr "W14: Предупреждение: переполнение списка имён файлов"
@@ -163,7 +163,7 @@
 msgstr "Наверху"
 
 msgid "[Prompt]"
-msgstr "[Уведомление]"
+msgstr "[Запрос]"
 
 msgid "[Popup]"
 msgstr "[Всплывающий]"
@@ -194,7 +194,7 @@
 msgstr "[БЕЗ преобразований]"
 
 msgid "[converted]"
-msgstr "[перекодировано]"
+msgstr "[преобразовано]"
 
 msgid "[Device]"
 msgstr "[Устройство]"
@@ -231,14 +231,14 @@
 msgstr ": Отправка не удалась.\n"
 
 msgid ": Send failed. Trying to execute locally\n"
-msgstr ": Отправка не удалась. Попытка местного выполнения\n"
+msgstr ": Отправка не удалась. Попытка выполнить локально\n"
 
 #, c-format
 msgid "%d of %d edited"
 msgstr "отредактировано %d из %d"
 
 msgid "No display: Send expression failed.\n"
-msgstr "Нет дисплея: отправка выражения не удалась.\n"
+msgstr "Нет дисплея, отправка выражения не удалась.\n"
 
 msgid ": Send expression failed.\n"
 msgstr ": Отправка выражения не удалась.\n"
@@ -303,10 +303,10 @@
 
 #, c-format
 msgid "Breakpoint in \"%s%s\" line %ld"
-msgstr "Точка остановки в \"%s%s\" стр. %ld"
+msgstr "Точка останова в \"%s%s\" стр. %ld"
 
 msgid "No breakpoints defined"
-msgstr "Точки остановки не определены"
+msgstr "Точки останова не определены"
 
 #, c-format
 msgid "%3d  %s %s  line %ld"
@@ -327,37 +327,37 @@
 msgstr "Файл-заплатка"
 
 msgid "Custom"
-msgstr "Специальные"
+msgstr "Частная область"
 
 msgid "Latin supplement"
-msgstr "Латынь дополненная"
+msgstr "Дополнение к латинице"
 
 msgid "Greek and Coptic"
-msgstr "Греческий и Коптский"
+msgstr "Греческое и коптское письмо"
 
 msgid "Cyrillic"
 msgstr "Кириллица"
 
 msgid "Hebrew"
-msgstr "Иврит"
+msgstr "Еврейское письмо"
 
 msgid "Arabic"
-msgstr "Арабский"
+msgstr "Арабское письмо"
 
 msgid "Latin extended"
-msgstr "Латынь расширенная"
+msgstr "Расширенная латиница"
 
 msgid "Greek extended"
-msgstr "Греческий расширенный"
+msgstr "Расширенное греческое письмо"
 
 msgid "Punctuation"
-msgstr "Пунктуация"
+msgstr "Основная пунктуация"
 
 msgid "Super- and subscripts"
-msgstr "Над- и подстрочные"
+msgstr "Надстрочные и подстрочные знаки"
 
 msgid "Currency"
-msgstr "Валюта"
+msgstr "Знаки валют"
 
 msgid "Other"
 msgstr "Прочее"
@@ -372,7 +372,7 @@
 msgstr "Математические операторы"
 
 msgid "Technical"
-msgstr "Техника"
+msgstr "Разные технические знаки"
 
 msgid "Box drawing"
 msgstr "Псевдографика"
@@ -384,13 +384,13 @@
 msgstr "Геометрические фигуры"
 
 msgid "Symbols"
-msgstr "Символы"
+msgstr "Разные символы"
 
 msgid "Dingbats"
-msgstr "Орнамент"
+msgstr "Декоративные символы"
 
 msgid "CJK symbols and punctuation"
-msgstr "Китайские, Японские и Корейские символы и пунктуация"
+msgstr "Китайские, корейские и японские символы и пунктуация"
 
 msgid "Hiragana"
 msgstr "Хирагана"
@@ -399,7 +399,7 @@
 msgstr "Катакана"
 
 msgid "Bopomofo"
-msgstr "Чжуинь (бопомофо)"
+msgstr "Чжуинь фухао (бопомофо)"
 
 msgid "Not enough memory to set references, garbage collection aborted!"
 msgstr "Недостаточно памяти для установки ссылок — сборка мусора прекращена!"
@@ -647,7 +647,7 @@
 
 #, c-format
 msgid "%s made pending"
-msgstr "%s выполняет ожидание"
+msgstr "%s приостановлено"
 
 #, c-format
 msgid "%s resumed"
@@ -703,7 +703,7 @@
 msgstr "[fifo]"
 
 msgid "[socket]"
-msgstr "[гнездо]"
+msgstr "[сокет]"
 
 msgid "[character special]"
 msgstr "[специальный символьный]"
@@ -726,7 +726,7 @@
 msgstr "[ОШИБКИ ЧТЕНИЯ]"
 
 msgid "Can't find temp file for conversion"
-msgstr "Временный файл для перекодирования не найден"
+msgstr "Временный файл для преобразования не найден"
 
 msgid "Conversion with 'charconvert' failed"
 msgstr "Преобразование с помощью 'charconvert' не выполнено"
@@ -794,8 +794,8 @@
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
 msgstr ""
-"W16: Предупреждение: режим доступа к файлу \"%s\" был изменён после начала "
-"редактирования"
+"W16: Предупреждение: режим доступа к файлу \"%s\" был изменён после "
+"начала редактирования"
 
 msgid "See \":help W16\" for more info."
 msgstr "См. \":help W16\" для дополнительной информации."
@@ -1091,7 +1091,7 @@
 msgstr "Показать это сообщение"
 
 msgid "Kill a connection"
-msgstr "Убить соединение"
+msgstr "Разорвать соединение"
 
 msgid "Reinit all connections"
 msgstr "Заново инициализировать все соединения"
@@ -1264,7 +1264,7 @@
 msgstr "неизвестная vimOption"
 
 msgid "keyboard interrupt"
-msgstr "клавиатурное прерывание"
+msgstr "прервано с клавиатуры"
 
 msgid "cannot create buffer/window command: object is being deleted"
 msgstr "невозможно создать команду буфера или окна: объект в процессе удаления"
@@ -1449,11 +1449,10 @@
 msgstr "NetBeans не поддерживается с этим графическим интерфейсом\n"
 
 msgid "'-nb' cannot be used: not enabled at compile time\n"
-msgstr "Невозможно использовать '-nb': не включено при компиляции\n"
+msgstr "Невозможно использовать '-nb': выключено при компиляции\n"
 
 msgid "This Vim was not compiled with the diff feature."
-msgstr ""
-"Данный Vim был скомпилирован с выключенной особенностью просмотра отличий."
+msgstr "Эта версия Vim была собрана без особенности просмотра отличий."
 
 msgid "Attempt to open script file again: \""
 msgstr "Попытка повторного открытия файла сценария: \""
@@ -1552,7 +1551,7 @@
 msgstr "-g\t\t\tЗапустить с графическим интерфейсом (как \"gvim\")"
 
 msgid "-f  or  --nofork\tForeground: Don't fork when starting GUI"
-msgstr "-f  или --nofork\tВ активной задаче: Не выполнять fork при запуске GUI"
+msgstr "-f  или --nofork\tВ активной задаче: не выполнять fork при запуске GUI"
 
 msgid "-v\t\t\tVi mode (like \"vi\")"
 msgstr "-v\t\t\tРежим Vi (как \"vi\")"
@@ -1624,10 +1623,10 @@
 msgstr "-dev <устройство>\t\tИспользовать для I/O указанное <устройство>"
 
 msgid "-A\t\t\tStart in Arabic mode"
-msgstr "-A\t\t\tЗапуск в Арабском режиме"
+msgstr "-A\t\t\tЗапуск с поддержкой арабского языка"
 
 msgid "-H\t\t\tStart in Hebrew mode"
-msgstr "-H\t\t\tЗапуск в режиме \"Иврит\""
+msgstr "-H\t\t\tЗапуск с поддержкой иврита"
 
 msgid "-T <terminal>\tSet terminal type to <terminal>"
 msgstr "-T <терминал>\tНазначить указанный тип <терминала>"
@@ -1653,13 +1652,13 @@
 # \n\t\t.. для умещения в 80 столбцов
 msgid "-p[N]\t\tOpen N tab pages (default: one for each file)"
 msgstr ""
-"-p[N]\t\tОткрыть N вкладок (по умолчанию: по одной\n"
+"-p[N]\t\tОткрыть N вкладок (по умолчанию по одной\n"
 "\t\t\t\tна каждый файл)"
 
 # \n\t\t.. для умещения в 80 столбцов
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr ""
-"-o[N]\t\tОткрыть N окон (по умолчанию: по одному\n"
+"-o[N]\t\tОткрыть N окон (по умолчанию по одному\n"
 "\t\t\t\tна каждый файл)"
 
 msgid "-O[N]\t\tLike -o but split vertically"
@@ -1699,10 +1698,10 @@
 msgstr "-x\t\t\tРедактирование зашифрованных файлов"
 
 msgid "-display <display>\tConnect Vim to this particular X-server"
-msgstr "-display <экран>\tПодсоединить Vim к указанному X-серверу"
+msgstr "-display <дисплей>\tСоединить Vim с указанным X-сервером"
 
 msgid "-X\t\t\tDo not connect to X server"
-msgstr "-X\t\t\tНе выполнять соединение с сервером X"
+msgstr "-X\t\t\tНе выполнять соединение с X-сервером"
 
 msgid "--remote <files>\tEdit <files> in a Vim server if possible"
 msgstr "--remote <файлы>\tПо возможности редактировать <файлы> на сервере Vim"
@@ -1732,14 +1731,15 @@
 msgstr "--remote-expr <выраж>\tВычислить <выраж> на сервере Vim и напечатать"
 
 msgid "--serverlist\t\tList available Vim server names and exit"
-msgstr "--serverlist\t\tПоказать список имён серверов Vim и завершить работу"
+msgstr "--serverlist\t\tПоказать список серверов Vim и завершить работу"
 
 msgid "--servername <name>\tSend to/become the Vim server <name>"
 msgstr ""
-"--servername <имя>\tОтправить на/стать сервером Vim с указанным <именем>"
+"--servername <имя>\tОтправить на сервер или стать сервером Vim\n"
+"\t\t\t\tс указанным <именем>"
 
 msgid "--startuptime <file>\tWrite startup timing messages to <file>"
-msgstr "--startuptime <файл>\tЗаписать временную метку о запуске в <файл>"
+msgstr "--startuptime <файл>\tЗаписать временные метки запуска в <файл>"
 
 msgid "--log <file>\tStart logging to <file> early"
 msgstr ""
@@ -1984,14 +1984,14 @@
 msgstr "файлом при помощи программы diff)"
 
 msgid "Recovery completed. Buffer contents equals file contents."
-msgstr "Восстановление завершено. Содержимое буферов и файлов эквивалентно."
+msgstr "Восстановление завершено. Содержимое буфера и файла эквивалентно."
 
 msgid ""
 "\n"
 "You may want to delete the .swp file now."
 msgstr ""
 "\n"
-"Вероятно, сейчас вы захотите удалить файл .swp."
+"Файл .swp теперь можно удалить."
 
 msgid ""
 "\n"
@@ -2304,7 +2304,7 @@
 
 #, c-format
 msgid "Calling shell to execute: \"%s\""
-msgstr "Вызов оболочки для исполнения: \"%s\""
+msgstr "Вызов оболочки для выполнения \"%s\""
 
 msgid "Warning: terminal cannot highlight"
 msgstr "Предупреждение: терминал не может выполнять подсветку"
@@ -2381,7 +2381,8 @@
 
 msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
 msgstr ""
-"W17: Арабский требует использования UTF-8, введите ':set encoding=utf-8'"
+"W17: Арабский язык поддерживается только с UTF-8, введите "
+"':set encoding=utf-8'"
 
 msgid ""
 "\n"
@@ -2532,7 +2533,7 @@
 "Cannot create pipes\n"
 msgstr ""
 "\n"
-"Невозможно создать трубы\n"
+"Невозможно создать конвейер\n"
 
 msgid ""
 "\n"
@@ -2695,10 +2696,10 @@
 msgstr " (виртуальная замена)"
 
 msgid " Hebrew"
-msgstr " Иврит"
+msgstr " иврит"
 
 msgid " Arabic"
-msgstr " Арабский"
+msgstr " арабский"
 
 msgid " (paste)"
 msgstr " (вклейка)"
@@ -3113,7 +3114,7 @@
 msgstr "Оценка использования памяти при выполнении: %d байтов"
 
 msgid "Warning: both compounding and NOBREAK specified"
-msgstr "Предупреждение: флаги \"составной\" и NOBREAK указаны вместе"
+msgstr "Предупреждение: правило для составных слов указано вместе с NOBREAK"
 
 #, c-format
 msgid "Writing spell file %s..."
@@ -3511,7 +3512,7 @@
 "Compiled "
 msgstr ""
 "\n"
-"Скомпилировано: "
+"Скомпилировано"
 
 msgid "by "
 msgstr " "
@@ -3751,7 +3752,7 @@
 "# Bar lines, copied verbatim:\n"
 msgstr ""
 "\n"
-"# Строк с '|', точно скопировано:\n"
+"# Строки с '|' скопированы дословно:\n"
 
 #, c-format
 msgid "%sviminfo: %s in line: "
@@ -3944,10 +3945,10 @@
 "компиляции"
 
 msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-msgstr "E26: Иврит выключен при компиляции\n"
+msgstr "E26: Поддержка иврита выключена при компиляции\n"
 
 msgid "E27: Farsi support has been removed\n"
-msgstr "E27: Поддержка Персидского была удалена\n"
+msgstr "E27: Поддержка персидского языка была удалена\n"
 
 #, c-format
 msgid "E28: No such highlight group name: %s"
@@ -4052,7 +4053,7 @@
 
 #, c-format
 msgid "E60: Too many complex %s{...}s"
-msgstr "E60: Слишком много сложных конструкций %s{...}"
+msgstr "E60: Чересчур много сложных квантификаторов %s{...}"
 
 #, c-format
 msgid "E61: Nested %s*"
@@ -4076,7 +4077,7 @@
 msgstr "E66: \\z( не может быть использовано здесь"
 
 msgid "E67: \\z1 - \\z9 not allowed here"
-msgstr "E67: \\z1 и т.п. не могут быть использованы здесь"
+msgstr "E67: \\z1 и т.п. здесь не разрешены"
 
 msgid "E68: Invalid character after \\z"
 msgstr "E68: Недопустимый символ после \\z"
@@ -4133,7 +4134,7 @@
 msgstr "E84: Изменённых буферов не обнаружено"
 
 msgid "E85: There is no listed buffer"
-msgstr "E85: Буферы в списке отсутствуют"
+msgstr "E85: Список буферов пуст"
 
 #, c-format
 msgid "E86: Buffer %ld does not exist"
@@ -4154,7 +4155,7 @@
 msgstr "E90: Невозможно выгрузить из памяти последний буфер"
 
 msgid "E91: 'shell' option is empty"
-msgstr "E91: Значением опции 'shell' является пустая строка"
+msgstr "E91: Значение опции 'shell' не задано"
 
 #, c-format
 msgid "E92: Buffer %d not found"
@@ -4338,7 +4339,7 @@
 
 #, c-format
 msgid "E143: Autocommands unexpectedly deleted new buffer %s"
-msgstr "E143: Автокоманды неожиданно убили новый буфер %s"
+msgstr "E143: Автокоманды неожиданно удалили новый буфер %s"
 
 msgid "E144: Non-numeric argument to :z"
 msgstr "E144: Параметр команды :z должен быть числом"
@@ -4405,7 +4406,7 @@
 
 #, c-format
 msgid "E161: Breakpoint not found: %s"
-msgstr "E161: Точка остановки не найдена: %s"
+msgstr "E161: Точка останова не найдена: %s"
 
 #, c-format
 msgid "E162: No write since last change for buffer \"%s\""
@@ -4421,7 +4422,7 @@
 msgstr "E165: Это последний файл"
 
 msgid "E166: Can't open linked file for writing"
-msgstr "E166: Невозможно открыть файл по ссылке для записи"
+msgstr "E166: Файл по ссылке не доступен для записи"
 
 msgid "E167: :scriptencoding used outside of a sourced file"
 msgstr "E167: Команда :scriptencoding используется вне файла сценария"
@@ -4547,7 +4548,7 @@
 msgstr "E201: Автокоманды *ReadPre не должны изменять активный буфер"
 
 msgid "E202: Conversion made file unreadable!"
-msgstr "E202: В результате преобразования файл стал нечитаемым!"
+msgstr "E202: В результате преобразования файл стал нечитаем!"
 
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
 msgstr ""
@@ -4586,7 +4587,7 @@
 
 msgid "E213: Cannot convert (add ! to write without conversion)"
 msgstr ""
-"E213: Перекодировка невозможна (добавьте ! для записи без перекодировки)"
+"E213: Преобразование невозможно (добавьте ! для записи без преобразования)"
 
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: Временный файл для записи не найден"
@@ -4718,7 +4719,7 @@
 msgstr "E248: Не удалась отправка команды в другую программу"
 
 msgid "E249: Window layout changed unexpectedly"
-msgstr "E249: Неожиданно изменилось расположение окна"
+msgstr "E249: Неожиданно изменилось расположение окон"
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
@@ -4726,8 +4727,7 @@
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
 msgstr ""
-"E251: Неправильно сформировано значение данного процесса VIM в реестре. "
-"Удалено!"
+"E251: Неправильно сформировано значение процесса VIM в реестре. Удалено!"
 
 #, c-format
 msgid "E252: Fontset name: %s - Font '%s' is not fixed-width"
@@ -4763,7 +4763,7 @@
 
 #, c-format
 msgid "E262: Error reading cscope connection %d"
-msgstr "E262: Ошибка чтения соединения cscope %d"
+msgstr "E262: Ошибка чтения из cscope, соединение %d"
 
 msgid ""
 "E263: Sorry, this command is disabled, the Python library could not be "
@@ -4826,8 +4826,8 @@
 "E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
 "org"
 msgstr ""
-"E280: КРИТИЧЕСКАЯ ОШИБКА TCL: повреждён список ссылок?! Сообщите об этом по "
-"адресу vim-dev@vim.org"
+"E280: КРИТИЧЕСКАЯ ОШИБКА TCL: возможно, повреждён список ссылок. "
+"Пожалуйста, сообщите об этом по адресу vim-dev@vim.org"
 
 #, c-format
 msgid "E282: Cannot read from \"%s\""
@@ -5005,7 +5005,7 @@
 msgstr "E327: Компонент пути к элементу меню не является подменю"
 
 msgid "E328: Menu only exists in another mode"
-msgstr "E328: Меню в этом режиме не существует"
+msgstr "E328: Меню существует только в другом режиме"
 
 #, c-format
 msgid "E329: No menu \"%s\""
@@ -5131,7 +5131,7 @@
 
 #, c-format
 msgid "E364: Library call failed for \"%s()\""
-msgstr "E364: Неудачный вызов функции \"%s()\" из библиотеки"
+msgstr "E364: Неудачный вызов \"%s()\" из сторонней библиотеки"
 
 msgid "E365: Failed to print PostScript file"
 msgstr "E365: Не удалось выполнить печать файла PostScript"
@@ -5195,7 +5195,7 @@
 
 msgid "E382: Cannot write, 'buftype' option is set"
 msgstr ""
-"E382: Запись невозможна: значение опции 'buftype' не является пустой строкой"
+"E382: Запись невозможна: опция 'buftype' не пуста"
 
 #, c-format
 msgid "E383: Invalid search string: %s"
@@ -5310,7 +5310,7 @@
 msgstr "E413: Слишком много параметров: \":highlight link %s\""
 
 msgid "E414: Group has settings, highlight link ignored"
-msgstr "E414: У группы есть настройки — highlight link игнорируется"
+msgstr "E414: У группы есть настройки, highlight link игнорируется"
 
 #, c-format
 msgid "E415: Unexpected equal sign: %s"
@@ -5336,7 +5336,7 @@
 
 #, c-format
 msgid "E421: Color name or number not recognized: %s"
-msgstr "E421: Имя или номер цвета не известно: %s"
+msgstr "E421: Имя или номер цвета неизвестно: %s"
 
 #, c-format
 msgid "E422: Terminal code too long: %s"
@@ -5440,7 +5440,7 @@
 msgstr "E451: Ожидалась скобка }: %s"
 
 msgid "E452: Double ; in list of variables"
-msgstr "E452: Двойная ; в списке переменных"
+msgstr "E452: Две точки с запятой в списке переменных"
 
 msgid "E453: UL color unknown"
 msgstr "E453: Неизвестный цвет подчёркивания"
@@ -5465,7 +5465,7 @@
 
 msgid "E458: Cannot allocate colormap entry, some colors may be incorrect"
 msgstr ""
-"E458: Невозможно выделить запись в таблице цвета — некоторые цвета могут "
+"E458: Невозможно выделить запись в таблице цветов — некоторые цвета могут "
 "отображаться неправильно"
 
 msgid "E459: Cannot go back to previous directory"
@@ -5507,7 +5507,7 @@
 
 #, c-format
 msgid "E469: Invalid cscopequickfix flag %c for %c"
-msgstr "E469: Неправильный флаг cscopequickfix %c для %c"
+msgstr "E469: Неправильный флаг cscopequickfix %c после %c"
 
 msgid "E470: Command aborted"
 msgstr "E470: Выполнение команды прервано"
@@ -5627,7 +5627,7 @@
 msgstr "E499: Пустое имя файла для '%' или '#' работает только c \":p:h\""
 
 msgid "E500: Evaluates to an empty string"
-msgstr "E500: Результатом выражения является пустая строка"
+msgstr "E500: Результатом является пустая строка"
 
 msgid "E501: At end-of-file"
 msgstr "E501: В конце файла"
@@ -5675,7 +5675,7 @@
 msgstr "E511: Уже соединён с NetBeans"
 
 msgid "E512: Close failed"
-msgstr "E512: Операция закрытия не удалась"
+msgstr "E512: Не удалось закрыть файл"
 
 msgid "E513: Write error, conversion failed (make 'fenc' empty to override)"
 msgstr ""
@@ -5687,7 +5687,7 @@
 "E513: Write error, conversion failed in line %ld (make 'fenc' empty to "
 "override)"
 msgstr ""
-"E513: Ошибка записи, преобразование не удалось на строке %ld (очистите "
+"E513: Ошибка записи, преобразование не удалось в строке %ld (очистите "
 "'fenc', чтобы обойти)"
 
 msgid "E514: Write error (file system full?)"
@@ -5700,7 +5700,7 @@
 msgstr "E516: Ни один буфер не был удалён"
 
 msgid "E517: No buffers were wiped out"
-msgstr "E517: Ни один буфер не был очищен"
+msgstr "E517: Ни один буфер не был стёрт"
 
 msgid "E518: Unknown option"
 msgstr "E518: Неизвестная опция"
@@ -5719,7 +5719,7 @@
 msgstr "E521: Требуется указать число: &%s = '%s'"
 
 msgid "E522: Not found in termcap"
-msgstr "E522: Не обнаружено в termcap"
+msgstr "E522: Не найдено в termcap"
 
 msgid "E523: Not allowed here"
 msgstr "E523: Здесь не разрешено"
@@ -5778,7 +5778,7 @@
 msgstr "E539: Недопустимый символ <%s>"
 
 msgid "E540: Unclosed expression sequence"
-msgstr "E540: Незакрытая последовательность выражения"
+msgstr "E540: Незакрытое выражение"
 
 msgid "E542: Unbalanced groups"
 msgstr "E542: Несбалансированные группы"
@@ -5857,7 +5857,7 @@
 msgstr "E565: Не разрешается изменять текст либо переходить в другое окно"
 
 msgid "E566: Could not create cscope pipes"
-msgstr "E566: Невозможно создать трубу для cscope"
+msgstr "E566: Не удалось создать конвейерное подключение к cscope"
 
 msgid "E567: No cscope connections"
 msgstr "E567: Соединений с cscope не создано"
@@ -6034,7 +6034,7 @@
 msgstr "E621: Файл ресурсов \"%s\" неизвестной версии"
 
 msgid "E622: Could not fork for cscope"
-msgstr "E622: Невозможно выполнить fork() для cscope"
+msgstr "E622: Не удалось выполнить fork() для cscope"
 
 msgid "E623: Could not spawn cscope process"
 msgstr "E623: Не удалось запустить процесс cscope"
@@ -6089,7 +6089,7 @@
 msgstr "E663: В конце списка изменений"
 
 msgid "E664: Changelist is empty"
-msgstr "E664: Список изменений пустой"
+msgstr "E664: Список изменений пуст"
 
 msgid "E665: Cannot start GUI, no valid font found"
 msgstr ""
@@ -6105,7 +6105,8 @@
 #, c-format
 msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
 msgstr ""
-"E668: Неправильный режим доступа к информации о соединении с NetBeans: \"%s\""
+"E668: Файл информации о соединениях NetBeans имеет неправильный режим "
+"доступа: \"%s\""
 
 msgid "E669: Unprintable character in group name"
 msgstr "E669: Непечатный символ в имени группы"
@@ -6169,10 +6170,10 @@
 msgstr "E686: Параметр %s должен быть списком"
 
 msgid "E687: Less targets than List items"
-msgstr "E687: Целей меньше, чем элементов списка"
+msgstr "E687: Целей меньше, чем элементов в списке"
 
 msgid "E688: More targets than List items"
-msgstr "E688: Целей больше, чем элементов списка"
+msgstr "E688: Целей больше, чем элементов в списке"
 
 msgid "E689: Can only index a List, Dictionary or Blob"
 msgstr "E689: Индексировать можно только список, словарь или блоб"
@@ -6234,7 +6235,7 @@
 msgstr "E707: Имя функции конфликтует с переменной: %s"
 
 msgid "E708: [:] must come last"
-msgstr "E708: [:] должно идти последним"
+msgstr "E708: [:] должно идти после переменной"
 
 msgid "E709: [:] requires a List or Blob value"
 msgstr "E709: [:] требует указания списка или блоба"
@@ -6330,7 +6331,7 @@
 
 #, c-format
 msgid "E737: Key already exists: %s"
-msgstr "E737: Ключ уже существует: %s"
+msgstr "E737: Ключ %s уже существует"
 
 #, c-format
 msgid "E738: Can't list variables for %s"
@@ -6380,13 +6381,13 @@
 msgstr "E748: Нет предыдущего использованного регистра"
 
 msgid "E749: Empty buffer"
-msgstr "E749: Пустой буфер"
+msgstr "E749: Буфер пуст"
 
 msgid "E750: First use \":profile start {fname}\""
 msgstr "E750: В первый раз используйте \":profile start {имя-файла}\""
 
 msgid "E751: Output file name must not have region name"
-msgstr "E751: Имя выходного файла не должно содержать названия региона"
+msgstr "E751: Имя выходного файла не должно содержать название региона"
 
 msgid "E752: No previous spell replacement"
 msgstr "E752: Нет предыдущей замены правописания"
@@ -6464,7 +6465,7 @@
 msgstr "E773: Петля символьных ссылок для \"%s\""
 
 msgid "E774: 'operatorfunc' is empty"
-msgstr "E774: Значением опции 'operatorfunc' является пустая строка"
+msgstr "E774: Значение опции 'operatorfunc' не задано"
 
 msgid "E775: Eval feature not available"
 msgstr "E775: Особенность +eval недоступна"
@@ -6551,14 +6552,14 @@
 
 #, c-format
 msgid "E798: ID is reserved for \":match\": %d"
-msgstr "E798: Идентификатор зарезервирован для \":match\": %d"
+msgstr "E798: Идентификатор зарезервирован за \":match\": %d"
 
 #, c-format
 msgid "E799: Invalid ID: %d (must be greater than or equal to 1)"
 msgstr "E799: Неверный идентификатор: %d (должен быть больше или равен 1)"
 
 msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
-msgstr "E800: Арабский выключен при компиляции\n"
+msgstr "E800: Поддержка арабского языка выключена при компиляции\n"
 
 #, c-format
 msgid "E801: ID already taken: %d"
@@ -6687,10 +6688,10 @@
 msgstr "E835: Конфликтует со значением 'fillchars'"
 
 msgid "E836: This Vim cannot execute :python after using :py3"
-msgstr "E836: Данный Vim не может выполнить :python после использования :py3"
+msgstr "E836: В этой версии Vim нельзя выполнить :python после :py3"
 
 msgid "E837: This Vim cannot execute :py3 after using :python"
-msgstr "E837: Данный Vim не может выполнить :py3 после использования :python"
+msgstr "E837: В этой версии Vim нельзя выполнить :py3 после :python"
 
 msgid "E838: NetBeans is not supported with this GUI"
 msgstr "E838: NetBeans не поддерживается с этим графическим интерфейсом"
@@ -6700,7 +6701,7 @@
 
 msgid "E841: Reserved name, cannot be used for user defined command"
 msgstr ""
-"E841: Зарезервированное имя не может использоваться для команд пользователя"
+"E841: Имя зарезервировано и не может использоваться для команды пользователя"
 
 msgid "E842: No line number to use for \"<slnum>\""
 msgstr "E842: Нет номера строки для замены \"<slnum>\""
@@ -6743,7 +6744,7 @@
 msgstr "E854: Слишком большой путь для автодополнения"
 
 msgid "E855: Autocommands caused command to abort"
-msgstr "E855: Автокоманды вызвали прекращение команды"
+msgstr "E855: Выполнение команды прервано из-за автокоманд"
 
 msgid ""
 "E856: \"assert_fails()\" second argument must be a string or a list with one "
@@ -6937,10 +6938,10 @@
 msgstr "E903: Получена команда с нестроковым параметром"
 
 msgid "E904: Last argument for expr/call must be a number"
-msgstr "E904: Последний параметр для выражения или вызова должен быть числом"
+msgstr "E904: Последний параметр команды expr или call должен быть числом"
 
 msgid "E904: Third argument for call must be a list"
-msgstr "E904: Третий параметр для вызова должен быть списком"
+msgstr "E904: Третий параметр команды call должен быть списком"
 
 #, c-format
 msgid "E905: Received unknown command: %s"
@@ -6968,8 +6969,8 @@
 
 msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"
 msgstr ""
-"E912: Невозможно использовать ch_evalexpr() или ch_sendexpr() с каналом nl "
-"или raw"
+"E912: Невозможно использовать ch_evalexpr() или ch_sendexpr() с каналом NL "
+"либо RAW"
 
 msgid "E913: Using a Channel as a Number"
 msgstr "E913: Использование канала вместо числа"
@@ -6978,7 +6979,9 @@
 msgstr "E914: Использование канала вместо числа с плавающей точкой"
 
 msgid "E915: in_io buffer requires in_buf or in_name to be set"
-msgstr "E915: Буфер in_io требует установленного in_buf или in_name"
+msgstr ""
+"E915: Если in_io равно \"buffer\", то нужно также установить "
+"in_buf либо in_name"
 
 msgid "E916: Not a valid job"
 msgstr "E916: Недопустимое задание"
@@ -6996,7 +6999,8 @@
 msgstr "E919: Каталог не найден в '%s': \"%s\""
 
 msgid "E920: _io file requires _name to be set"
-msgstr "E920: Файл _io требует установленного _name"
+msgstr ""
+"E920: Если _io равно \"file\", то нужно также установить _name"
 
 msgid "E921: Invalid callback argument"
 msgstr "E921: Недопустимый параметр обратного вызова"
@@ -7079,7 +7083,7 @@
 msgstr "E944: Обратный диапазон в символьном классе"
 
 msgid "E945: Range too large in character class"
-msgstr "E945: Диапазон слишком велик в символьном классе"
+msgstr "E945: Слишком большой диапазон в символьном классе"
 
 msgid "E946: Cannot make a terminal with running job modifiable"
 msgstr "E946: Терминал с запущенным заданием нельзя сделать изменяемым"
@@ -7178,7 +7182,7 @@
 
 msgid "E973: Blob literal should have an even number of hex characters"
 msgstr ""
-"E973: Блоб-литерал должен иметь чётное количество шестнадцатеричных символов"
+"E973: Блоб-литерал должен иметь чётное количество шестнадцатеричных разрядов"
 
 msgid "E974: Using a Blob as a Number"
 msgstr "E974: Использование блоба вместо числа"
@@ -7226,7 +7230,7 @@
 
 msgid "E988: GUI cannot be used. Cannot execute gvim.exe."
 msgstr ""
-"E988: Графический интерфейс не может быть использован. Невозможно выполнить "
+"E988: Графический интерфейс не может быть задействован. Сбой при запуске "
 "gvim.exe"
 
 msgid "E989: Non-default argument follows default argument"
@@ -7555,8 +7559,8 @@
 
 msgid "E1076: This Vim is not compiled with float support"
 msgstr ""
-"E1076: Данный Vim был скомпилирован без поддержки вычислений с плавающей "
-"точкой"
+"E1076: Эта версия Vim была собрана без поддержки вычислений "
+"с плавающей точкой"
 
 #, c-format
 msgid "E1077: Missing argument type for %s"
@@ -7568,7 +7572,7 @@
 "\"++nested\"?"
 
 msgid "E1079: Cannot declare a variable on the command line"
-msgstr "E1079: Нельзя объявить переменную в командной строке"
+msgstr "E1079: Переменную нельзя объявить в командной строке"
 
 msgid "E1080: Invalid assignment"
 msgstr "E1080: Неправильный оператор присваивания"
@@ -7982,7 +7986,7 @@
 msgstr "E1192: Пустое имя функции"
 
 msgid "E1193: cryptmethod xchacha20 not built into this Vim"
-msgstr "E1193: Алгоритм шифрования xchacha20 недоступен в данном Vim"
+msgstr "E1193: Алгоритм шифрования xchacha20 недоступен в этой версии Vim"
 
 msgid "E1194: Cannot encrypt header, not enough space"
 msgstr "E1194: Невозможно зашифровать заголовок из-за нехватки памяти"
@@ -8350,6 +8354,10 @@
 msgid "E1290: substitute nesting too deep"
 msgstr "E1290: Слишком глубоко вложенная замена в подстановке"
 
+#, c-format
+msgid "E1291: Invalid argument: %ld"
+msgstr "E1291: Недопустимый параметр: %ld"
+
 msgid "--No lines in buffer--"
 msgstr "-- Нет строк в буфере --"
 
@@ -8552,7 +8560,7 @@
 msgstr "Невозможно переименовать буфер"
 
 msgid "mark name must be a single character"
-msgstr "Название отметки должно быть одним символом"
+msgstr "Имя отметки должно состоять из одного символа"
 
 #, c-format
 msgid "expected vim.Buffer object, but got %s"
@@ -8608,7 +8616,7 @@
 msgstr ""
 "Ошибка при установке перехватчика пути: sys.path_hooks не является списком\n"
 "Следует сделать следующее:\n"
-"— Добавить vim.path_hook  в sys.path_hooks\n"
+"— Добавить vim.path_hook в sys.path_hooks\n"
 "— Добавить vim.VIM_SPECIAL_PATH в sys.path\n"
 
 msgid ""
@@ -8725,18 +8733,18 @@
 msgstr "сделать режим Вставки режимом по умолчанию"
 
 msgid "paste mode, insert typed text literally"
-msgstr "режим вклейки — напечатанный текст вставляется буквально"
+msgstr "режим вклейки: напечатанный текст вставляется буквально"
 
 msgid "key sequence to toggle paste mode"
 msgstr "последовательность клавиш для переключения режима вклейки"
 
 msgid "list of directories used for runtime files and plugins"
 msgstr ""
-"список каталогов с файлами среды исполнения и дополнительными\n"
+"список каталогов с файлами среды выполнения и дополнительными\n"
 "модулями"
 
 msgid "list of directories used for plugin packages"
-msgstr "список каталогов с комплектами модулей"
+msgstr "список каталогов с пакетами модулей"
 
 msgid "name of the main help file"
 msgstr "имя основного файла помощи"
@@ -8757,7 +8765,7 @@
 "непробельный символ строки"
 
 msgid "nroff macro names that separate paragraphs"
-msgstr "макросы nroff, отделяющие параграфы"
+msgstr "макросы nroff, отделяющие абзацы"
 
 msgid "nroff macro names that separate sections"
 msgstr "макросы nroff, отделяющие разделы"
@@ -8793,7 +8801,7 @@
 msgstr "игнорировать регистр букв при поиске по шаблону"
 
 msgid "override 'ignorecase' when pattern has upper case characters"
-msgstr "отменить 'ignorecase', если в шаблоне есть прописные буквы"
+msgstr "отменить 'ignorecase', если в шаблоне есть заглавные буквы"
 
 msgid "what method to use for changing case of letters"
 msgstr "способ изменения регистра букв"
@@ -9234,7 +9242,7 @@
 msgstr "список шрифтов для символов двойной ширины"
 
 msgid "use smooth, antialiased fonts"
-msgstr "использовать сглаженные шрифты"
+msgstr "использовать шрифты со сглаживанием"
 
 msgid "list of flags that specify how the GUI works"
 msgstr "список флагов для настройки граф. интерфейса"
@@ -9248,7 +9256,7 @@
 msgstr "размер иконок панели инструментов"
 
 msgid "room (in pixels) left above/below the window"
-msgstr "пространство (в пикселах) сверху или снизу от окна"
+msgstr "пространство в пикселах сверху или снизу от окна"
 
 msgid "list of ASCII characters that can be combined into complex shapes"
 msgstr ""
@@ -9256,7 +9264,7 @@
 "составные фигуры"
 
 msgid "options for text rendering"
-msgstr "опции для отрисовки текста"
+msgstr "опции отрисовки текста"
 
 msgid "use a pseudo-tty for I/O to external commands"
 msgstr "использовать псевдотерминал для ввода-вывода внешних команд"
@@ -9317,13 +9325,13 @@
 
 msgid "the CJK character set to be used for CJK output from :hardcopy"
 msgstr ""
-"набор символов китайского, японского или корейского языков для\n"
+"набор символов китайского, корейского или японского языков для\n"
 "вывода командой :hardcopy"
 
 msgid "list of font names to be used for CJK output from :hardcopy"
 msgstr ""
-"список шрифтов для вывода символов китайского, японского или\n"
-"корейского языков командой :hardcopy"
+"список шрифтов для вывода символов китайского, корейского или\n"
+"японского языков командой :hardcopy"
 
 msgid "messages and info"
 msgstr "информация и сообщения"
@@ -9375,7 +9383,8 @@
 msgstr "не звенеть из-за этих причин"
 
 msgid "list of preferred languages for finding help"
-msgstr "список предпочтительных языков для поиска справки"
+msgstr ""
+"список предпочтительных языков для поиска во встроенной справке"
 
 msgid "selecting text"
 msgstr "выделение текста"
@@ -9436,7 +9445,7 @@
 msgstr "поле справа, в котором строка будет перенесена автоматически"
 
 msgid "specifies what <BS>, CTRL-W, etc. can do in Insert mode"
-msgstr "что <BS>, CTRL-W и т.п. может делать в режиме Вставки"
+msgstr "что <BS>, CTRL-W и т.п. могут делать в режиме Вставки"
 
 msgid "definition of what comment lines look like"
 msgstr "как выглядят строки комментариев"
@@ -9749,14 +9758,13 @@
 
 msgid "keep oldest version of a file; specifies file name extension"
 msgstr ""
-"сохранять самую старую версию файла; указывает расширение имени\n"
-"файла"
+"сохранить первую версию файла; указывает расширение имени файла"
 
 msgid "forcibly sync the file to disk after writing it"
 msgstr "принудительная синхронизация после записи файла на диск"
 
 msgid "use 8.3 file names"
-msgstr "использовать имена файлов 8.3"
+msgstr "использовать имена файлов в формате 8.3"
 
 msgid "encryption method for file writing: zip, blowfish or blowfish2"
 msgstr "метод шифрования при записи файла: zip, blowfish или blowfish2"
@@ -9856,7 +9864,7 @@
 msgstr "используется для перенаправления вывода команды в файл"
 
 msgid "use a temp file for shell commands instead of using a pipe"
-msgstr "использовать для команд оболочки временный файл, а не трубу"
+msgstr "использовать для команд оболочки временный файл, а не конвейер"
 
 msgid "program used for \"=\" command"
 msgstr "программа, используемая командой \"=\""
@@ -9888,7 +9896,7 @@
 msgstr "строка для перенаправления вывода \":make\" в файл ошибок"
 
 msgid "name of the errorfile for the 'makeprg' command"
-msgstr "имя файла ошибок для команды 'makeprg'"
+msgstr "имя файла ошибок для 'makeprg'"
 
 msgid "program used for the \":grep\" command"
 msgstr "программа, используемая командой \":grep\""
@@ -9980,9 +9988,7 @@
 msgstr "применять 'langmap' к привязанным символам"
 
 msgid "when set never use IM; overrules following IM options"
-msgstr ""
-"если установлено, то метод ввода никогда не используется;\n"
-"отменяет нижеследующие опции"
+msgstr "заблокировать метод ввода, сбросить нижеследующие опции"
 
 msgid "in Insert mode: 1: use :lmap; 2: use IM; 0: neither"
 msgstr ""