Update runtime files
diff --git a/runtime/lang/menu_zh_cn.gb2312.vim b/runtime/lang/menu_zh_cn.gb2312.vim
index 0df5188..f0d7cca 100644
--- a/runtime/lang/menu_zh_cn.gb2312.vim
+++ b/runtime/lang/menu_zh_cn.gb2312.vim
@@ -1,273 +1,13 @@
 " Menu Translations:    Simplified Chinese
 " Maintainer:           Shun Bai <baishunde@gmail.com>
 " Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2014 Oct 15
-
-" vim: ts=8 sw=8 noet
-
-" Quit when menu translations have already been done.
-if exists("did_menu_trans")
-  finish
-endif
-let did_menu_trans = 1
-let s:keepcpo= &cpo
-set cpo&vim
+" Last Change:          2019-09-09
 
 " This causes trouble for a broken iconv (symptom: last character is always
 " ??).  Without this it works fine anyway, because gbk/cp936 is a superset of
 " gb2312. (suggested by Edward L. Fox)
 " scriptencoding gb2312
 
-" Help menu
-menutrans &Help			°ïÖú(&H)
-menutrans &Overview<Tab><F1>	×ÝÀÀ(&O)<Tab><F1>
-menutrans &User\ Manual		Óû§ÊÖ²á(&U)
-menutrans &How-to\ links	How-to\ Ö¸Òý(&H)
-menutrans &Find\.\.\.		²éÕÒ(&F)\.\.\.
-menutrans &Credits		ÖÂл(&C)
-menutrans Co&pying		°æÈ¨(&P)
-menutrans &Sponsor/Register	ÔÞÖú/×¢²á(&S)
-menutrans O&rphans		¹Â¶ù(&R)
-menutrans &Version		°æ±¾(&V)
-menutrans &About		¹ØÓÚ(&A)
-
-" File menu
-menutrans &File				Îļþ(&F)
-menutrans &Open\.\.\.<Tab>:e		´ò¿ª(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp	·Ö¸î²¢´ò¿ª(&L)\.\.\.<Tab>:sp
-menutrans Open\ Tab\.\.\.<Tab>:tabnew	´ò¿ª±êÇ©\.\.\.<Tab>:tabnew
-menutrans &New<Tab>:enew		н¨(&N)<Tab>:enew
-menutrans &Close<Tab>:close		¹Ø±Õ(&C)<Tab>:close
-menutrans &Save<Tab>:w			±£´æ(&S)<Tab>:w
-menutrans Save\ &As\.\.\.<Tab>:sav	Áí´æÎª(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	·Ö¸î±È½Ï(Diff)(&D)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	·Ö¸î´ò²¹¶¡(Patch)(&B)\.\.\.
-menutrans &Print			´òÓ¡(&P)
-menutrans Sa&ve-Exit<Tab>:wqa		±£´æ²¢Í˳ö(&V)<Tab>:wqa
-menutrans E&xit<Tab>:qa			Í˳ö(&X)<Tab>:qa
-
-" Edit menu
-menutrans &Edit				±à¼­(&E)
-menutrans &Undo<Tab>u			³·Ïú(&U)<Tab>u
-menutrans &Redo<Tab>^R			ÖØ×ö(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.		ÖØ¸´ÉϴβÙ×÷(&E)<Tab>\.
-menutrans Cu&t<Tab>"+x			¼ôÇÐ(&T)<Tab>"+x
-menutrans &Copy<Tab>"+y			¸´ÖÆ(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP		Õ³Ìù(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p		Õ³Ìùµ½¹â±êǰ(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p		Õ³Ìùµ½¹â±êºó(&A)<Tab>]p
-menutrans &Delete<Tab>x			ɾ³ý(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
-menutrans &Find\.\.\.			²éÕÒ(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	²éÕÒºÍÌæ»»(&L)\.\.\.
-menutrans &Find<Tab>/			²éÕÒ(&F)<Tab>/
-menutrans Find\ and\ Rep&lace<Tab>:%s	²éÕÒºÍÌæ»»(&L)<Tab>:%s
-menutrans Settings\ &Window		É趨´°¿Ú(&W)
-menutrans Startup\ &Settings		Æô¶¯É趨(&S)
-menutrans &Global\ Settings		È«¾ÖÉ趨(&G)
-
-" Edit/Global Settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	¿ª/¹ØÄ£Ê½¸ßÁÁ(&H)<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		¿ª/¹ØºöÂÔ´óСд(&I)<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm!		¿ª/¹ØÏÔʾÅä¶Ô(&S)<Tab>:set\ sm!
-menutrans &Context\ lines			ÉÏÏÂÎÄÐÐÊý(&C)
-
-menutrans &Virtual\ Edit			ÐéÄâ±à¼­(&V)
-menutrans Never					´Ó²»
-menutrans Block\ Selection			¿éÑ¡Ôñ
-menutrans Insert\ mode				²åÈëģʽ
-menutrans Block\ and\ Insert			¿éÑ¡ÔñºÍ²åÈëģʽ
-menutrans Always				×ÜÊÇ
-
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	¿ª/¹Ø²åÈëģʽ(&M)<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	¿ª/¹Ø\ Vi\ ¼æÈÝ<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.			²éÕÒ·¾¶(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.			Tag\ Îļþ(&T)\.\.\.
-
-" GUI options
-menutrans Toggle\ &Toolbar			¿ª/¹Ø¹¤¾ßÀ¸(&T)
-menutrans Toggle\ &Bottom\ Scrollbar		¿ª/¹Øµ×²¿¹ö¶¯Ìõ(&B)
-menutrans Toggle\ &Left\ Scrollbar		¿ª/¹Ø×ó¶Ë¹ö¶¯Ìõ(&L)
-menutrans Toggle\ &Right\ Scrollbar		¿ª/¹ØÓҶ˹ö¶¯Ìõ(&R)
-
-" Edit/File Settings
-menutrans F&ile\ Settings			ÎļþÉ趨(&I)
-
-" Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	¿ª/¹ØÏÔʾÐкÅ(&N)<Tab>:set\ nu!
-menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! ¿ª/¹ØÏà¶ÔÐкÅ(&V)<Tab>:set\ rnu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!		¿ª/¹Ø\ list\ ģʽ(&L)<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		¿ª/¹ØÕÛÐÐ(&W)<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	¿ª/¹ØÕû´ÊÕÛÐÐ(&R)<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et!		¿ª/¹ØÀ©Õ¹\ tab(&E)<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai!		¿ª/¹Ø×Ô¶¯Ëõ½ø(&A)<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin!		¿ª/¹Ø\ C\ Ëõ½ø(&C)<Tab>:set\ cin!
-
-" other options
-menutrans &Shiftwidth			Ëõ½ø¿í¶È(&S)
-menutrans Soft\ &Tabstop		Soft\ Tab\ ¿í¶È(&T)
-menutrans Te&xt\ Width\.\.\.		Îı¾¿í¶È(&X)\.\.\.
-menutrans &File\ Format\.\.\.		Îļþ¸ñʽ(&F)\.\.\.
-menutrans C&olor\ Scheme		ÅäÉ«·½°¸(&O)
-menutrans Select\ Fo&nt\.\.\.		Ñ¡Ôñ×ÖÌå(&N)\.\.\.
-menutrans &Keymap			¼üÅÌÓ³Éä(&K)
-
-" Programming menu
-menutrans &Tools			¹¤¾ß(&T)
-menutrans &Jump\ to\ this\ tag<Tab>g^]	Ìø×ªµ½Õâ¸ö\ tag(&J)<Tab>g^]
-menutrans Jump\ &back<Tab>^T		Ìø×ª·µ»Ø(&B)<Tab>^T
-menutrans Build\ &Tags\ File		½¨Á¢\ Tags\ Îļþ(&T)
-
-" Tools.Spelling Menu
-menutrans &Spelling				ƴд¼ì²é(&S)
-menutrans &Spell\ Check\ On			´ò¿ªÆ´Ð´¼ì²é(&S)
-menutrans Spell\ Check\ &Off			¹Ø±Õƴд¼ì²é(&O)
-menutrans To\ &Next\ error<Tab>]s		ÉÏÒ»¸ö´íÎó(&N)<Tab>]s
-menutrans To\ &Previous\ error<Tab>[s		ÏÂÒ»¸ö´íÎó(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z=		ÐÞÕý½¨Òé(&C)<Tab>z=
-menutrans &Repeat\ correction<Tab>:spellrepall	ÖØ¸´ÐÞÕý(&R)<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"		É趨ÓïÑÔΪ\ "en"
-menutrans Set\ language\ to\ "en_au"		É趨ÓïÑÔΪ\ "en_au"
-menutrans Set\ language\ to\ "en_ca"		É趨ÓïÑÔΪ\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"		É趨ÓïÑÔΪ\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"		É趨ÓïÑÔΪ\ "en_nz"
-menutrans Set\ language\ to\ "en_us"		É趨ÓïÑÔΪ\ "en_us"
-menutrans &Find\ More\ Languages		²éÕÒ¸ü¶àÓïÑÔ(&F)
-
-" Tools.Fold Menu
-" open close folds
-menutrans &Folding				ÕÛµþ(&F)
-menutrans &Enable/Disable\ folds<Tab>zi		ÆôÓÃ/½ûÓÃÕÛµþ(&E)<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv		²é¿´´ËÐÐ(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	½ö²é¿´´ËÐÐ(&W)<Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm		¹Ø±Õ¸ü¶àÕÛµþ(&L)<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM		¹Ø±ÕËùÓÐÕÛµþ(&C)<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr		´ò¿ª¸ü¶àÕÛµþ(&P)<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR		´ò¿ªËùÓÐÕÛµþ(&O)<Tab>zR
-" fold method
-menutrans Fold\ Met&hod			ÕÛµþ·½·¨(&H)
-menutrans M&anual			ÊÖ¹¤(&A)
-menutrans I&ndent			Ëõ½ø(&N)
-menutrans E&xpression			±í´ïʽ(&X)
-menutrans S&yntax			Óï·¨(&Y)
-menutrans &Diff				±È½Ï(Diff)(&D)
-menutrans Ma&rker			񈬀(&R)
-" create and delete folds
-menutrans Create\ &Fold<Tab>zf		´´½¨ÕÛµþ(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		ɾ³ýÕÛµþ(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	ɾ³ýËùÓÐÕÛµþ(&A)<Tab>zD
-" moving around in folds
-menutrans Fold\ column\ &width		ÕÛµþÀ¸¿í¶È(&W)
-
-" Tools.Diff Menu
-menutrans &Diff				±È½Ï(Diff)(&D)
-menutrans &Update			¸üÐÂ(&U)
-menutrans &Get\ Block			µÃµ½¿é(&G)
-menutrans &Put\ Block			·ÅÖÿé(&P)
-
-menutrans &Make<Tab>:make		Make(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl		Áгö´íÎó(&L)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!	ÁгöÏûÏ¢(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn		ÏÂÒ»¸ö´íÎó(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp	ÉÏÒ»¸ö´íÎó(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold	¸ü¾ÉµÄ´íÎóÁбí(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew	¸üеĴíÎóÁбí(&E)<Tab>:cnew
-menutrans Error\ &Window		´íÎó´°¿Ú(&W)
-menutrans &Update<Tab>:cwin		¸üÐÂ(&U)<Tab>:cwin
-menutrans &Open<Tab>:copen		´ò¿ª(&O)<Tab>:copen
-menutrans &Close<Tab>:cclose		¹Ø±Õ(&C)<Tab>:cclose
-menutrans &Convert\ to\ HEX<Tab>:%!xxd	ת»»³ÉÊ®Áù½øÖÆ<Tab>:%!xxd
-menutrans Conve&rt\ back<Tab>:%!xxd\ -r	ת»»·µ»Ø<Tab>:%!xxd\ -r
-menutrans Se&T\ Compiler		É趨±àÒëÆ÷(&T)
-
-" Names for buffer menu.
-menutrans &Buffers		»º³åÇø(&B)
-menutrans &Refresh\ menu	¸üв˵¥(&R)
-menutrans &Delete		ɾ³ý(&D)
-menutrans &Alternate		½»Ìæ(&A)
-menutrans &Next			ÏÂÒ»¸ö(&N)
-menutrans &Previous		ÉÏÒ»¸ö(&P)
-
-" Window menu
-menutrans &Window			´°¿Ú(&W)
-menutrans &New<Tab>^Wn			н¨(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws		·Ö¸î(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^	·Ö¸îµ½\ #(&L)<Tab>^W^^
-menutrans Split\ &Vertically<Tab>^Wv	´¹Ö±·Ö¸î(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer	·Ö¸îÎļþä¯ÀÀÆ÷(&X)
-menutrans &Close<Tab>^Wc		¹Ø±Õ(&C)<Tab>^Wc
-menutrans Close\ &Other(s)<Tab>^Wo	¹Ø±ÕÆäËü´°¿Ú(&O)<Tab>^Wo
-menutrans Move\ &To			ÒÆ¶¯µ½(&T)
-menutrans &Top<Tab>^WK			¶¥¶Ë(&T)<Tab>^WK
-menutrans &Bottom<Tab>^WJ		µ×¶Ë(&B)<Tab>^WJ
-menutrans &Left\ side<Tab>^WH		×ó±ß(&L)<Tab>^WH
-menutrans &Right\ side<Tab>^WL		ÓÒ±ß(&R)<Tab>^WL
-" menutrans Ne&xt<Tab>^Ww		ÏÂÒ»¸ö(&X)<Tab>^Ww
-" menutrans P&revious<Tab>^WW		ÉÏÒ»¸ö(&R)<Tab>^WW
-menutrans Rotate\ &Up<Tab>^WR		ÏòÉÏÂÖ»»(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr		ÏòÏÂÂÖ»»(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=		µÈ´ó(&E)<Tab>^W=
-menutrans &Max\ Height<Tab>^W_		×î´ó¸ß¶È(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_		×îС¸ß¶È(&I)<Tab>^W1_
-menutrans Max\ &Width<Tab>^W\|		×î´ó¿í¶È(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|		×îС¿í¶È(&H)<Tab>^W1\|
-"
-" The popup menu
-menutrans &Undo			³·Ïú(&U)
-menutrans Cu&t			¼ôÇÐ(&T)
-menutrans &Copy			¸´ÖÆ(&C)
-menutrans &Paste		Õ³Ìù(&P)
-menutrans &Delete		ɾ³ý(&D)
-menutrans Select\ Blockwise	Ñ¡Ôñ¿é
-menutrans Select\ &Word		Ñ¡Ôñµ¥´Ê(&W)
-menutrans Select\ &Sentence	Ñ¡Ôñ¾ä×Ó(&S)
-menutrans Select\ Pa&ragraph	Ñ¡Ôñ¶ÎÂä(&R)
-menutrans Select\ &Line		Ñ¡ÔñÐÐ(&L)
-menutrans Select\ &Block	Ñ¡Ôñ¿é(&B)
-menutrans Select\ &All		ȫѡ(&A)
-"
-" The GUI toolbar
-if has("toolbar")
-  if exists("*Do_toolbar_tmenu")
-    delfun Do_toolbar_tmenu
-  endif
-  fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		´ò¿ªÎļþ
-    tmenu ToolBar.Save		±£´æµ±Ç°Îļþ
-    tmenu ToolBar.SaveAll	±£´æÈ«²¿Îļþ
-    tmenu ToolBar.Print		´òÓ¡
-    tmenu ToolBar.Undo		³·Ïú
-    tmenu ToolBar.Redo		ÖØ×ö
-    tmenu ToolBar.Cut		¼ôÇе½¼ôÌù°å
-    tmenu ToolBar.Copy		¸´ÖƵ½¼ôÌù°å
-    tmenu ToolBar.Paste		´Ó¼ôÌù°åÕ³Ìù
-    tmenu ToolBar.Find		²éÕÒ...
-    tmenu ToolBar.FindNext	²éÕÒÏÂÒ»¸ö
-    tmenu ToolBar.FindPrev	²éÕÒÉÏÒ»¸ö
-    tmenu ToolBar.Replace	²éÕÒºÍÌæ»»...
-    tmenu ToolBar.LoadSesn	¼ÓÔØ»á»°
-    tmenu ToolBar.SaveSesn	±£´æµ±Ç°»á»°
-    tmenu ToolBar.RunScript	ÔËÐÐ Vim ½Å±¾
-    tmenu ToolBar.Make		Ö´ÐÐ Make (:make)
-    tmenu ToolBar.RunCtags	ÔÚµ±Ç°Ä¿Â¼½¨Á¢ tags (!ctags -R .)
-    tmenu ToolBar.TagJump	Ìø×ªµ½¹â±êλÖÃµÄ tag
-    tmenu ToolBar.Help		Vim °ïÖú
-    tmenu ToolBar.FindHelp	²éÕÒ Vim °ïÖú
-  endfun
-endif
-
-" Syntax menu
-menutrans &Syntax			Óï·¨(&S)
-menutrans &Show\ filetypes\ in\ menu	Ôڲ˵¥ÖÐÏÔʾÎļþÀàÐÍ(&S)
-menutrans &Off				¹Ø±Õ(&O)
-menutrans &Manual			ÊÖ¹¤(&M)
-menutrans A&utomatic			×Ô¶¯(&U)
-menutrans on/off\ for\ &This\ file	½ö¶ÔÕâ¸öÎļþ¿ª/¹Ø(&T)
-menutrans Co&lor\ test			É«²Ê²âÊÔ(&L)
-menutrans &Highlight\ test		¸ßÁÁ²âÊÔ(&H)
-menutrans &Convert\ to\ HTML		ת»»³É\ HTML(&C)
-menutrans Set\ '&syntax'\ only		½öÉ趨\ 'syntax'(&S)
-menutrans Set\ '&filetype'\ too		Ò²É趨\ 'filetype'(&F)
-
-let &cpo = s:keepcpo
-unlet s:keepcpo
+" As mentioned above, gbk/cp936 is a superset of (and backward compatible with)
+" gb2312, then source the translation encoded in cp936 should be ok. -- Shun
+source <sfile>:p:h/menu_zh_cn.cp936.vim