Update runtime files
diff --git a/runtime/lang/menu_chinese_gb.936.vim b/runtime/lang/menu_chinese_gb.936.vim
index b3276b5..d96ab37 100644
--- a/runtime/lang/menu_chinese_gb.936.vim
+++ b/runtime/lang/menu_chinese_gb.936.vim
@@ -1,270 +1,452 @@
 " Menu Translations:    Simplified Chinese
 " Maintainer:           Shun Bai <baishunde@gmail.com>
 " Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2014 Oct 15
-
-" vim: ts=8 sw=8 noet
+" Last Change:          2019-09-10
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 scriptencoding cp936
 
 " Help menu
-menutrans &Help			°ïÖú(&H)
-menutrans &Overview<Tab><F1>	×ÝÀÀ(&O)<Tab><F1>
-menutrans &User\ Manual		Óû§ÊÖ²á(&U)
-menutrans &How-to\ links	How-to\ Ö¸Òý(&H)
-menutrans &Find\.\.\.		²éÕÒ(&F)\.\.\.
-menutrans &Credits		ÖÂл(&C)
-menutrans Co&pying		°æÈ¨(&P)
-menutrans &Sponsor/Register	ÔÞÖú/×¢²á(&S)
-menutrans O&rphans		¹Â¶ù(&R)
-menutrans &Version		°æ±¾(&V)
-menutrans &About		¹ØÓÚ(&A)
+menutrans &Help		°ïÖú(&H)
+" Help menuitems and dialog {{{1
+menutrans &Overview<Tab><F1>	¸ÅÊö(&O)<Tab><F1>
+menutrans &User\ Manual			Óû§ÊÖ²á(&U)
+menutrans &How-to\ Links		ÈçºÎʹÓÃ(&H)
+menutrans &Find\.\.\.			²éÕÒ(&F)\.\.\.
+menutrans &Credits				ÖÂл(&C)
+menutrans Co&pying				°æÈ¨(&P)
+menutrans &Sponsor/Register		ÔÞÖú/×¢²á(&S)
+menutrans O&rphans				Õü¾È¹Â¶ù(&R)
+menutrans &Version				°æ±¾(&V)
+menutrans &About				¹ØÓÚ(&A)
+
+" fun! s:Helpfind()
+if !exists("g:menutrans_help_dialog")
+  let g:menutrans_help_dialog = "ÊäÈëÃüÁî»òµ¥´ÊÒÔ»ñµÃ°ïÖú:\n\nǰ׺ i_ ±íʾÊäÈëģʽϵÄÃüÁî(Èç: i_CTRL-X)\nǰ׺ c_ ±íʾÃüÁîÐÐϵı༭ÃüÁî(Èç: c_<Del>)\nǰ׺ ' ±íʾѡÏîÃû(Èç: 'shiftwidth')"
+endif
+" }}}
 
 " File menu
-menutrans &File				Îļþ(&F)
-menutrans &Open\.\.\.<Tab>:e		´ò¿ª(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp	·Ö¸î²¢´ò¿ª(&L)\.\.\.<Tab>:sp
-menutrans Open\ Tab\.\.\.<Tab>:tabnew	´ò¿ª±êÇ©\.\.\.<Tab>:tabnew
-menutrans &New<Tab>:enew		н¨(&N)<Tab>:enew
-menutrans &Close<Tab>:close		¹Ø±Õ(&C)<Tab>:close
-menutrans &Save<Tab>:w			±£´æ(&S)<Tab>:w
-menutrans Save\ &As\.\.\.<Tab>:sav	Áí´æÎª(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	·Ö¸î±È½Ï(Diff)(&D)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	·Ö¸î´ò²¹¶¡(Patch)(&B)\.\.\.
-menutrans &Print			´òÓ¡(&P)
-menutrans Sa&ve-Exit<Tab>:wqa		±£´æ²¢Í˳ö(&V)<Tab>:wqa
-menutrans E&xit<Tab>:qa			Í˳ö(&X)<Tab>:qa
+menutrans &File		Îļþ(&F)
+" File menuitems {{{1
+menutrans &Open\.\.\.<Tab>:e			´ò¿ª(&O)\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp		ÔÚ²ð·Ö´°¿Ú´ò¿ª(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	ÔÚ±êǩҳ´ò¿ª\.\.\.<Tab>:tabnew
+menutrans &New<Tab>:enew				н¨(&N)<Tab>:enew
+menutrans &Close<Tab>:close				¹Ø±Õ(&C)<Tab>:close
+menutrans &Save<Tab>:w					±£´æ(&S)<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav		Áí´æÎª(&A)\.\.\.<Tab>:sav
+menutrans Split\ &Diff\ With\.\.\.		²ð·Ö´°¿ÚÒԶԱȲîÒì(Diff)(&D)\.\.\.
+menutrans Split\ Patched\ &By\.\.\.		²ð·Ö´°¿ÚÒÔ½øÐÐÐÞ²¹(Patch)(&B)\.\.\.
+menutrans &Print						´òÓ¡(&P)
+menutrans Sa&ve-Exit<Tab>:wqa			±£´æ²¢Í˳ö(&V)<Tab>:wqa
+menutrans E&xit<Tab>:qa					Í˳ö(&X)<Tab>:qa
+" }}}
 
 " Edit menu
-menutrans &Edit				±à¼­(&E)
-menutrans &Undo<Tab>u			³·Ïú(&U)<Tab>u
-menutrans &Redo<Tab>^R			ÖØ×ö(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.		ÖØ¸´ÉϴβÙ×÷(&E)<Tab>\.
-menutrans Cu&t<Tab>"+x			¼ôÇÐ(&T)<Tab>"+x
-menutrans &Copy<Tab>"+y			¸´ÖÆ(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP		Õ³Ìù(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p		Õ³Ìùµ½¹â±êǰ(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p		Õ³Ìùµ½¹â±êºó(&A)<Tab>]p
-menutrans &Delete<Tab>x			ɾ³ý(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		ȫѡ(&S)<Tab>ggVG
-menutrans &Find\.\.\.			²éÕÒ(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	²éÕÒºÍÌæ»»(&L)\.\.\.
-menutrans &Find<Tab>/			²éÕÒ(&F)<Tab>/
-menutrans Find\ and\ Rep&lace<Tab>:%s	²éÕÒºÍÌæ»»(&L)<Tab>:%s
-menutrans Settings\ &Window		É趨´°¿Ú(&W)
-menutrans Startup\ &Settings		Æô¶¯É趨(&S)
-menutrans &Global\ Settings		È«¾ÖÉ趨(&G)
+menutrans &Edit		±à¼­(&E)
+" Edit menuitems {{{1
+menutrans &Undo<Tab>u						³·Ïú(&U)<Tab>u
+menutrans &Redo<Tab>^R						»Ö¸´(&R)<Tab>^R
+menutrans Rep&eat<Tab>\.					ÖØ¸´(&E)<Tab>\.
+menutrans Cu&t<Tab>"+x						¼ôÇÐ(&T)<Tab>"+x
+menutrans &Copy<Tab>"+y						¸´ÖÆ(&C)<Tab>"+y
+menutrans &Paste<Tab>"+gP					Õ³Ìù(&P)<Tab>"+gP
+menutrans Put\ &Before<Tab>[p				Õ³Ìùµ½¹â±êǰ(&B)<Tab>[p
+menutrans Put\ &After<Tab>]p				Õ³Ìùµ½¹â±êºó(&A)<Tab>]p
+menutrans &Delete<Tab>x						ɾ³ý(&D)<Tab>x
+menutrans &Select\ All<Tab>ggVG				ȫѡ(&S)<Tab>ggVG
+menutrans &Find\.\.\.						²éÕÒ(&F)\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\.			²éÕÒºÍÌæ»»(&L)\.\.\.
+menutrans &Find<Tab>/						²éÕÒ(&F)<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s		²éÕÒºÍÌæ»»(&L)<Tab>:%s
+menutrans Settings\ &Window					ÉèÖô°¿Ú(&W)
+menutrans Startup\ &Settings				Æô¶¯ÉèÖÃ(&S)
 
 " Edit/Global Settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	¿ª/¹ØÄ£Ê½¸ßÁÁ(&H)<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		¿ª/¹ØºöÂÔ´óСд(&I)<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm!		¿ª/¹ØÏÔʾÅä¶Ô(&S)<Tab>:set\ sm!
-menutrans &Context\ lines			ÉÏÏÂÎÄÐÐÊý(&C)
-
-menutrans &Virtual\ Edit			ÐéÄâ±à¼­(&V)
+menutrans &Global\ Settings					È«¾ÖÉèÖÃ(&G)
+" Edit.Global Settings menuitems and dialogs {{{2
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!		¿ª/¹Ø¸ßÁÁ²éÕÒÄÚÈÝ(&H)<Tab>:set\ hls!
+menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!				¿ª/¹ØºöÂÔ´óСд(&I)<Tab>:set\ ic!
+menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!	¿ª/¹ØÏÔʾÀ¨ºÅÆ¥Åä(&S)<Tab>:set\ sm!
+menutrans &Context\ Lines									ÉÏÏÂÎÄÐÐÊý(&C)
+menutrans &Virtual\ Edit									ÐéÄâ±à¼­(&V)
+" Edit.Global Settings.Virtual Edit menuitems {{{3
 menutrans Never					´Ó²»
-menutrans Block\ Selection			¿éÑ¡Ôñ
-menutrans Insert\ mode				²åÈëģʽ
-menutrans Block\ and\ Insert			¿éÑ¡ÔñºÍ²åÈëģʽ
-menutrans Always				×ÜÊÇ
-
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	¿ª/¹Ø²åÈëģʽ(&M)<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	¿ª/¹Ø\ Vi\ ¼æÈÝ<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.			²éÕÒ·¾¶(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.			Tag\ Îļþ(&T)\.\.\.
+menutrans Block\ Selection		Ö»ÔÚÑ¡¶¨¾ØÐοéʱ
+menutrans Insert\ Mode			Ö»ÔÚ²åÈëģʽʱ
+menutrans Block\ and\ Insert	ÔÚÑ¡¶¨¾ØÐοéºÍ²åÈëģʽʱ
+menutrans Always				ʼÖÕ
+" }}}
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!				¿ª/¹Ø²åÈëģʽ(&M)<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!			¿ª/¹Ø\ Vi\ ¼æÈÝÐÔ(&O)<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\.								ËÑË÷·¾¶(&P)\.\.\.
+menutrans Ta&g\ Files\.\.\.									±ê¼ÇÎļþ(Tags)(&G)\.\.\.
 
 " GUI options
-menutrans Toggle\ &Toolbar			¿ª/¹Ø¹¤¾ßÀ¸(&T)
-menutrans Toggle\ &Bottom\ Scrollbar		¿ª/¹Øµ×²¿¹ö¶¯Ìõ(&B)
-menutrans Toggle\ &Left\ Scrollbar		¿ª/¹Ø×ó¶Ë¹ö¶¯Ìõ(&L)
-menutrans Toggle\ &Right\ Scrollbar		¿ª/¹ØÓҶ˹ö¶¯Ìõ(&R)
+menutrans Toggle\ &Toolbar									¿ª/¹Ø¹¤¾ßÀ¸(&T)
+menutrans Toggle\ &Bottom\ Scrollbar						¿ª/¹Øµ×²¿¹ö¶¯Ìõ(&B)
+menutrans Toggle\ &Left\ Scrollbar							¿ª/¹Ø×ó²à¹ö¶¯Ìõ(&L)
+menutrans Toggle\ &Right\ Scrollbar							¿ª/¹ØÓÒ²à¹ö¶¯Ìõ(&R)
+
+" fun! s:SearchP()
+if !exists("g:menutrans_path_dialog")
+  let g:menutrans_path_dialog = "ÊäÈëËÑË÷·¾¶¡£\nÓöººÅ·Ö¸ôĿ¼Ãû¡£"
+endif
+
+" fun! s:TagFiles()
+if !exists("g:menutrans_tags_dialog")
+  let g:menutrans_tags_dialog = "ÊäÈë±ê¼ÇÎļþ(Tags)Ãû³Æ¡£\nÓöººÅ·Ö¸ôÎļþÃû¡£"
+endif
+" }}}
 
 " Edit/File Settings
-menutrans F&ile\ Settings			ÎļþÉ趨(&I)
-
+menutrans F&ile\ Settings					ÎļþÉèÖÃ(&I)
+" Edit.File Settings menuitems and dialogs {{{2
 " Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!		¿ª/¹ØÏÔʾÐкÅ(&N)<Tab>:set\ nu!
-menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu!	¿ª/¹ØÏà¶ÔÐкÅ(&V)<Tab>:set\ rnu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!			¿ª/¹Ø\ list\ ģʽ(&L)<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!			¿ª/¹ØÕÛÐÐ(&W)<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!		¿ª/¹ØÕû´ÊÕÛÐÐ(&R)<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et!			¿ª/¹ØÀ©Õ¹\ tab(&E)<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai!			¿ª/¹Ø×Ô¶¯Ëõ½ø(&A)<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin!			¿ª/¹Ø\ C\ Ëõ½ø(&C)<Tab>:set\ cin!
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			¿ª/¹ØÐкÅ(&N)<Tab>:set\ nu!
+menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!	¿ª/¹ØÏà¶ÔÐкÅ(&V)<Tab>:set\ rnu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list!				¿ª/¹ØÁбíģʽ(&L)<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!			¿ª/¹Ø»»ÐÐ(&W)<Tab>:set\ wrap!
+menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!		¿ª/¹Ø´Êβ»»ÐÐ(&R)<Tab>:set\ lbr!
+menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!				¿ª/¹ØÖƱí·ûÀ©Õ¹(&E)<Tab>:set\ et!
+menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!			¿ª/¹Ø×Ô¶¯Ëõ½ø(&A)<Tab>:set\ ai!
+menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!		¿ª/¹Ø\ C\ ÓïÑÔʽËõ½ø(&C)<Tab>:set\ cin!
 
 " other options
-menutrans &Shiftwidth			Ëõ½ø¿í¶È(&S)
-menutrans Soft\ &Tabstop		Soft\ Tab\ ¿í¶È(&T)
-menutrans Te&xt\ Width\.\.\.		Îı¾¿í¶È(&X)\.\.\.
-menutrans &File\ Format\.\.\.		Îļþ¸ñʽ(&F)\.\.\.
-menutrans C&olor\ Scheme		ÅäÉ«·½°¸(&O)
-menutrans Select\ Fo&nt\.\.\.		Ñ¡Ôñ×ÖÌå(&N)\.\.\.
-menutrans &Keymap			¼üÅÌÓ³Éä(&K)
+menutrans &Shiftwidth										Ëõ½ø¿í¶È(&S)
+menutrans Soft\ &Tabstop									ÈíÖÆ±íλ¿í¶È(Soft Tabstop)(&T)
+menutrans Te&xt\ Width\.\.\.								Îı¾¿í¶È(&X)\.\.\.
+menutrans &File\ Format\.\.\.								Îļþ¸ñʽ(&F)\.\.\.
+
+" fun! s:TextWidth()
+if !exists("g:menutrans_textwidth_dialog")
+  let g:menutrans_textwidth_dialog = "ÊäÈëÎı¾¿í¶È(ÿÐÐ×î´ó×Ö·ûÊý£¬0 ±íʾ½ûÓÃ):"
+endif
+
+" fun! s:FileFormat()
+if !exists("g:menutrans_fileformat_dialog")
+  let g:menutrans_fileformat_dialog = "Ñ¡ÔñÎļþµÄ±£´æ¸ñʽ:"
+endif
+if !exists("g:menutrans_fileformat_choices")
+  let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nÈ¡Ïû(&C)"
+endif
+" }}}
+menutrans Show\ C&olor\ Schemes\ in\ Menu	Ôڲ˵¥ÖÐÏÔʾÅäÉ«·½°¸(&O)
+menutrans C&olor\ Scheme					ÅäÉ«·½°¸(&O)
+menutrans Show\ &Keymaps\ in\ Menu			Ôڲ˵¥ÖÐÏÔʾ¼üÅÌÓ³Éä(&K)
+menutrans &Keymap							¼üÅÌÓ³Éä(&K)
+menutrans Select\ Fo&nt\.\.\.				Ñ¡Ôñ×ÖÌå(&N)\.\.\.
+" }}}
 
 " Programming menu
-menutrans &Tools			¹¤¾ß(&T)
-menutrans &Jump\ to\ this\ tag<Tab>g^]	Ìø×ªµ½Õâ¸ö\ tag(&J)<Tab>g^]
-menutrans Jump\ &back<Tab>^T		Ìø×ª·µ»Ø(&B)<Tab>^T
-menutrans Build\ &Tags\ File		½¨Á¢\ Tags\ Îļþ(&T)
+menutrans &Tools	¹¤¾ß(&T)
+" Tools menuitems {{{1
+menutrans &Jump\ to\ This\ Tag<Tab>g^]			Ìø×ªµ½Õâ¸ö±ê¼Ç(Tag)(&J)<Tab>g^]
+menutrans Jump\ &Back<Tab>^T					Ìø×ª»Ø(&B)<Tab>^T
+menutrans Build\ &Tags\ File					Éú³É±ê¼ÇÎļþ(Tags)(&T)
 
 " Tools.Spelling Menu
-menutrans &Spelling				ƴд¼ì²é(&S)
-menutrans &Spell\ Check\ On			´ò¿ªÆ´Ð´¼ì²é(&S)
-menutrans Spell\ Check\ &Off			¹Ø±Õƴд¼ì²é(&O)
-menutrans To\ &Next\ error<Tab>]s		ÉÏÒ»¸ö´íÎó(&N)<Tab>]s
-menutrans To\ &Previous\ error<Tab>[s		ÏÂÒ»¸ö´íÎó(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z=		ÐÞÕý½¨Òé(&C)<Tab>z=
-menutrans &Repeat\ correction<Tab>:spellrepall	ÖØ¸´ÐÞÕý(&R)<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"		É趨ÓïÑÔΪ\ "en"
-menutrans Set\ language\ to\ "en_au"		É趨ÓïÑÔΪ\ "en_au"
-menutrans Set\ language\ to\ "en_ca"		É趨ÓïÑÔΪ\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"		É趨ÓïÑÔΪ\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"		É趨ÓïÑÔΪ\ "en_nz"
-menutrans Set\ language\ to\ "en_us"		É趨ÓïÑÔΪ\ "en_us"
-menutrans &Find\ More\ Languages		²éÕÒ¸ü¶àÓïÑÔ(&F)
+menutrans &Spelling								ƴд¼ì²é(&S)
+" Tools.Spelling menuitems and dialog {{{2
+menutrans &Spell\ Check\ On						´ò¿ªÆ´Ð´¼ì²é(&S)
+menutrans Spell\ Check\ &Off					¹Ø±Õƴд¼ì²é(&O)
+menutrans To\ &Next\ Error<Tab>]s				ÉÏÒ»¸ö´íÎó(&N)<Tab>]s
+menutrans To\ &Previous\ Error<Tab>[s			ÏÂÒ»¸ö´íÎó(&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z=			¸üÕý½¨Òé(&C)<Tab>z=
+menutrans &Repeat\ Correction<Tab>:spellrepall	¸üÕýÈ«²¿Í¬Àà´íÎó(&R)<Tab>:spellrepall
+menutrans Set\ Language\ to\ "en"				ÉèÖÃÓïÑÔΪ\ "en"
+menutrans Set\ Language\ to\ "en_au"			ÉèÖÃÓïÑÔΪ\ "en_au"
+menutrans Set\ Language\ to\ "en_ca"			ÉèÖÃÓïÑÔΪ\ "en_ca"
+menutrans Set\ Language\ to\ "en_gb"			ÉèÖÃÓïÑÔΪ\ "en_gb"
+menutrans Set\ Language\ to\ "en_nz"			ÉèÖÃÓïÑÔΪ\ "en_nz"
+menutrans Set\ Language\ to\ "en_us"			ÉèÖÃÓïÑÔΪ\ "en_us"
+menutrans &Find\ More\ Languages				²éÕÒ¸ü¶àÓïÑÔ(&F)
+
+" func! s:SpellLang()
+if !exists("g:menutrans_set_lang_to")
+  let g:menutrans_set_lang_to = "ÉèÖÃÓïÑÔΪ"
+endif
+" }}}
 
 " Tools.Fold Menu
+menutrans &Folding								ÕÛµþ(&F)
+" Tools.Fold menuitems {{{2
 " open close folds
-menutrans &Folding				ÕÛµþ(&F)
-menutrans &Enable/Disable\ folds<Tab>zi		ÆôÓÃ/½ûÓÃÕÛµþ(&E)<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv		²é¿´´ËÐÐ(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	½ö²é¿´´ËÐÐ(&W)<Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm		¹Ø±Õ¸ü¶àÕÛµþ(&L)<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM		¹Ø±ÕËùÓÐÕÛµþ(&C)<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr		´ò¿ª¸ü¶àÕÛµþ(&P)<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR		´ò¿ªËùÓÐÕÛµþ(&O)<Tab>zR
+menutrans &Enable/Disable\ Folds<Tab>zi			ÆôÓÃ/½ûÓÃÕÛµþ(&E)<Tab>zi
+menutrans &View\ Cursor\ Line<Tab>zv			Õ¹¿ª¹â±êËùÔÚÐÐ(&V)<Tab>zv
+menutrans Vie&w\ Cursor\ Line\ Only<Tab>zMzx	Ö»Õ¹¿ª¹â±êËùÔÚÐÐ(&W)<Tab>zMzx
+menutrans C&lose\ More\ Folds<Tab>zm			ÕÛµþÒ»¼¶(&L)<Tab>zm
+menutrans &Close\ All\ Folds<Tab>zM				ÕÛµþÈ«²¿(&C)<Tab>zM
+menutrans O&pen\ More\ Folds<Tab>zr				Õ¹¿ªÒ»¼¶(&P)<Tab>zr
+menutrans &Open\ All\ Folds<Tab>zR				Õ¹¿ªÈ«²¿(&O)<Tab>zR
 " fold method
-menutrans Fold\ Met&hod			ÕÛµþ·½·¨(&H)
-menutrans M&anual			ÊÖ¹¤(&A)
-menutrans I&ndent			Ëõ½ø(&N)
-menutrans E&xpression			±í´ïʽ(&X)
-menutrans S&yntax			Óï·¨(&Y)
-menutrans &Diff				±È½Ï(Diff)(&D)
-menutrans Ma&rker			񈬀(&R)
+menutrans Fold\ Met&hod							ÕÛµþ·½Ê½(&H)
+" Tools.Fold.Fold Method menuitems {{{3
+menutrans M&anual		ÊÖ¶¯(&A)
+menutrans I&ndent		Ëõ½ø(&N)
+menutrans E&xpression	±í´ïʽ(&X)
+menutrans S&yntax		Óï·¨(&Y)
+menutrans &Diff			²îÒì(Diff)(&D)
+menutrans Ma&rker		¼ÇºÅ(Marker)(&R)
+" }}}
 " create and delete folds
-menutrans Create\ &Fold<Tab>zf		´´½¨ÕÛµþ(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		ɾ³ýÕÛµþ(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	ɾ³ýËùÓÐÕÛµþ(&A)<Tab>zD
+menutrans Create\ &Fold<Tab>zf					´´½¨ÕÛµþ(&F)<Tab>zf
+menutrans &Delete\ Fold<Tab>zd					ɾ³ýÕÛµþ(&D)<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD			ɾ³ýÈ«²¿ÕÛµþ(&A)<Tab>zD
 " moving around in folds
-menutrans Fold\ column\ &width		ÕÛµþÀ¸¿í¶È(&W)
+menutrans Fold\ Col&umn\ Width					ÕÛµþ²Ù×÷À¸¿í¶È(&W)
+" }}}
 
 " Tools.Diff Menu
-menutrans &Diff				±È½Ï(Diff)(&D)
-menutrans &Update			¸üÐÂ(&U)
-menutrans &Get\ Block			µÃµ½¿é(&G)
-menutrans &Put\ Block			·ÅÖÿé(&P)
+menutrans &Diff									²îÒì(Diff)(&D)
+" Tools.Diff menuitems {{{2
+menutrans &Update		Ë¢ÐÂ(&U)
+menutrans &Get\ Block	²ÉÓöԲàÎı¾¿é(&G)
+menutrans &Put\ Block	²ÉÓñ¾²àÎı¾¿é(&P)
+" }}}
 
-menutrans &Make<Tab>:make		Make(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl		Áгö´íÎó(&L)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!	ÁгöÏûÏ¢(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn		ÏÂÒ»¸ö´íÎó(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp	ÉÏÒ»¸ö´íÎó(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold	¸ü¾ÉµÄ´íÎóÁбí(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew	¸üеĴíÎóÁбí(&E)<Tab>:cnew
-menutrans Error\ &Window		´íÎó´°¿Ú(&W)
-menutrans &Update<Tab>:cwin		¸üÐÂ(&U)<Tab>:cwin
+menutrans &Make<Tab>:make						Éú³É(Make)(&M)<Tab>:make
+menutrans &List\ Errors<Tab>:cl					Áгö´íÎó(&L)<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl!				ÁгöÏûÏ¢(&I)<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn					ÏÂÒ»¸ö´íÎó(&N)<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp				ÉÏÒ»¸ö´íÎó(&P)<Tab>:cp
+menutrans &Older\ List<Tab>:cold				½Ï¾ÉµÄ´íÎóÁбí(&O)<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew				½ÏеĴíÎóÁбí(&E)<Tab>:cnew
+menutrans Error\ &Window						´íÎó´°¿Ú(&W)
+" Tools.Error Window menuitems {{{2
+menutrans &Update<Tab>:cwin		Ë¢ÐÂ(&U)<Tab>:cwin
 menutrans &Open<Tab>:copen		´ò¿ª(&O)<Tab>:copen
-menutrans &Close<Tab>:cclose		¹Ø±Õ(&C)<Tab>:cclose
-menutrans &Convert\ to\ HEX<Tab>:%!xxd	ת»»³ÉÊ®Áù½øÖÆ<Tab>:%!xxd
-menutrans Conve&rt\ back<Tab>:%!xxd\ -r	ת»»·µ»Ø<Tab>:%!xxd\ -r
-menutrans Se&T\ Compiler		É趨±àÒëÆ÷(&T)
+menutrans &Close<Tab>:cclose	¹Ø±Õ(&C)<Tab>:cclose
+" }}}
+menutrans Show\ Compiler\ Se&ttings\ in\ Menu	Ôڲ˵¥ÖÐÏÔʾ±àÒëÆ÷ÉèÖÃ(&T)
+menutrans Se&t\ Compiler						ÉèÖñàÒëÆ÷(&T)
+menutrans &Convert\ to\ HEX<Tab>:%!xxd			ת»»³ÉÊ®Áù½øÖÆ(&C)<Tab>:%!xxd
+menutrans Conve&rt\ Back<Tab>:%!xxd\ -r			ת»»»Ø(&R)<Tab>:%!xxd\ -r
+" }}}
 
-" Names for buffer menu.
-menutrans &Buffers		»º³åÇø(&B)
-menutrans &Refresh\ menu	¸üв˵¥(&R)
-menutrans &Delete		ɾ³ý(&D)
-menutrans &Alternate		½»Ìæ(&A)
-menutrans &Next			ÏÂÒ»¸ö(&N)
-menutrans &Previous		ÉÏÒ»¸ö(&P)
+" Buffer menu
+menutrans &Buffers	»º³åÇø(&B)
+" Buffer menuitems and dialog {{{1
+menutrans &Refresh\ Menu	ˢб¾²Ëµ¥(&R)
+menutrans &Delete			ɾ³ý(&D)
+menutrans &Alternate		Çл»(&A)
+menutrans &Next				ÏÂÒ»¸ö(&N)
+menutrans &Previous			ÉÏÒ»¸ö(&P)
+
+" func! s:BMMunge(fname, bnum) 
+if !exists("g:menutrans_no_file")
+  let g:menutrans_no_file = "[ÎÞÎļþ]"
+endif
+" }}}
 
 " Window menu
-menutrans &Window			´°¿Ú(&W)
-menutrans &New<Tab>^Wn			н¨(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws		·Ö¸î(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^	·Ö¸îµ½\ #(&L)<Tab>^W^^
-menutrans Split\ &Vertically<Tab>^Wv	´¹Ö±·Ö¸î(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer	·Ö¸îÎļþä¯ÀÀÆ÷(&X)
-menutrans &Close<Tab>^Wc		¹Ø±Õ(&C)<Tab>^Wc
-menutrans Close\ &Other(s)<Tab>^Wo	¹Ø±ÕÆäËü´°¿Ú(&O)<Tab>^Wo
-menutrans Move\ &To			ÒÆ¶¯µ½(&T)
-menutrans &Top<Tab>^WK			¶¥¶Ë(&T)<Tab>^WK
-menutrans &Bottom<Tab>^WJ		µ×¶Ë(&B)<Tab>^WJ
-menutrans &Left\ side<Tab>^WH		×ó±ß(&L)<Tab>^WH
-menutrans &Right\ side<Tab>^WL		ÓÒ±ß(&R)<Tab>^WL
-" menutrans Ne&xt<Tab>^Ww		ÏÂÒ»¸ö(&X)<Tab>^Ww
-" menutrans P&revious<Tab>^WW		ÉÏÒ»¸ö(&R)<Tab>^WW
-menutrans Rotate\ &Up<Tab>^WR		ÏòÉÏÂÖ»»(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr		ÏòÏÂÂÖ»»(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=		µÈ´ó(&E)<Tab>^W=
-menutrans &Max\ Height<Tab>^W_		×î´ó¸ß¶È(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_		×îС¸ß¶È(&I)<Tab>^W1_
-menutrans Max\ &Width<Tab>^W\|		×î´ó¿í¶È(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|		×îС¿í¶È(&H)<Tab>^W1\|
-"
-" The popup menu
-menutrans &Undo			³·Ïú(&U)
-menutrans Cu&t			¼ôÇÐ(&T)
-menutrans &Copy			¸´ÖÆ(&C)
-menutrans &Paste		Õ³Ìù(&P)
-menutrans &Delete		ɾ³ý(&D)
-menutrans Select\ Blockwise	Ñ¡Ôñ¿é
-menutrans Select\ &Word		Ñ¡Ôñµ¥´Ê(&W)
-menutrans Select\ &Sentence	Ñ¡Ôñ¾ä×Ó(&S)
-menutrans Select\ Pa&ragraph	Ñ¡Ôñ¶ÎÂä(&R)
-menutrans Select\ &Line		Ñ¡ÔñÐÐ(&L)
-menutrans Select\ &Block	Ñ¡Ôñ¿é(&B)
-menutrans Select\ &All		ȫѡ(&A)
-"
-" The GUI toolbar
+menutrans &Window	´°¿Ú(&W)
+" Window menuitems {{{1
+menutrans &New<Tab>^Wn					н¨(&N)<Tab>^Wn
+menutrans S&plit<Tab>^Ws				²ð·Ö(&P)<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^		²ð·Ö²¢ÏÔʾ»º³åÇø\ #(&L)<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv	´¹Ö±²ð·Ö(&V)<Tab>^Wv
+menutrans Split\ File\ E&xplorer		²ð·Ö²¢´ò¿ªÎļþä¯ÀÀÆ÷(&X)
+menutrans &Close<Tab>^Wc				¹Ø±Õ(&C)<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo		³ý´ËÖ®ÍâÈ«²¿¹Ø±Õ(&O)<Tab>^Wo
+menutrans Move\ &To						ÒÆ¶¯µ½(&T)
+menutrans &Top<Tab>^WK					¶¥¶Ë(&T)<Tab>^WK
+menutrans &Bottom<Tab>^WJ				µ×¶Ë(&B)<Tab>^WJ
+menutrans &Left\ Side<Tab>^WH			×ó±ß(&L)<Tab>^WH
+menutrans &Right\ Side<Tab>^WL			ÓÒ±ß(&R)<Tab>^WL
+menutrans Rotate\ &Up<Tab>^WR			ÏòÉÏÂÖ»»(&U)<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr			ÏòÏÂÂÖ»»(&D)<Tab>^Wr
+menutrans &Equal\ Size<Tab>^W=			ƽ¾ù·Ö²¼(&E)<Tab>^W=
+menutrans &Max\ Height<Tab>^W_			×î´ó¸ß¶È(&M)<Tab>^W
+menutrans M&in\ Height<Tab>^W1_			×îС¸ß¶È(&I)<Tab>^W1_
+menutrans Max\ &Width<Tab>^W\|			×î´ó¿í¶È(&W)<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\|			×îС¿í¶È(&H)<Tab>^W1\|
+" }}}
+
+" The popup menu {{{1
+menutrans &Undo					³·Ïú(&U)
+menutrans Cu&t					¼ôÇÐ(&T)
+menutrans &Copy					¸´ÖÆ(&C)
+menutrans &Paste				Õ³Ìù(&P)
+menutrans &Delete				ɾ³ý(&D)
+menutrans Select\ Blockwise		¸ÄΪѡ¶¨¾ØÐοé
+menutrans Select\ &Word			Ñ¡¶¨µ¥´Ê(&W)
+menutrans Select\ &Sentence		Ñ¡¶¨¾ä(&S)
+menutrans Select\ Pa&ragraph	Ñ¡¶¨¶ÎÂä(&R)
+menutrans Select\ &Line			Ñ¡¶¨ÐÐ(&L)
+menutrans Select\ &Block		Ñ¡¶¨¾ØÐοé(&B)
+menutrans Select\ &All			ȫѡ(&A)
+
+" func! <SID>SpellPopup()
+if !exists("g:menutrans_spell_change_ARG_to")
+  let g:menutrans_spell_change_ARG_to = '½«\ "%s"\ ¸ü¸ÄΪ'
+endif
+if !exists("g:menutrans_spell_add_ARG_to_word_list")
+  let g:menutrans_spell_add_ARG_to_word_list = '½«\ "%s"\ Ìí¼Óµ½´Êµä'
+endif
+if !exists("g:menutrans_spell_ignore_ARG")
+  let g:menutrans_spell_ignore_ARG = 'ºöÂÔ\ "%s"'
+endif
+" }}}
+
+" The GUI toolbar {{{1
 if has("toolbar")
   if exists("*Do_toolbar_tmenu")
     delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		´ò¿ªÎļþ
-    tmenu ToolBar.Save		±£´æµ±Ç°Îļþ
-    tmenu ToolBar.SaveAll	±£´æÈ«²¿Îļþ
-    tmenu ToolBar.Print		´òÓ¡
-    tmenu ToolBar.Undo		³·Ïú
-    tmenu ToolBar.Redo		ÖØ×ö
-    tmenu ToolBar.Cut		¼ôÇе½¼ôÌù°å
-    tmenu ToolBar.Copy		¸´ÖƵ½¼ôÌù°å
-    tmenu ToolBar.Paste		´Ó¼ôÌù°åÕ³Ìù
-    tmenu ToolBar.Find		²éÕÒ...
-    tmenu ToolBar.FindNext	²éÕÒÏÂÒ»¸ö
-    tmenu ToolBar.FindPrev	²éÕÒÉÏÒ»¸ö
-    tmenu ToolBar.Replace	²éÕÒºÍÌæ»»...
-    tmenu ToolBar.LoadSesn	¼ÓÔØ»á»°
-    tmenu ToolBar.SaveSesn	±£´æµ±Ç°»á»°
-    tmenu ToolBar.RunScript	ÔËÐÐ Vim ½Å±¾
-    tmenu ToolBar.Make		Ö´ÐÐ Make (:make)
-    tmenu ToolBar.RunCtags	ÔÚµ±Ç°Ä¿Â¼½¨Á¢ tags (!ctags -R .)
-    tmenu ToolBar.TagJump	Ìø×ªµ½¹â±êλÖÃµÄ tag
-    tmenu ToolBar.Help		Vim °ïÖú
-    tmenu ToolBar.FindHelp	²éÕÒ Vim °ïÖú
+    let did_toolbar_tmenu = 1
+    tmenu ToolBar.Open			´ò¿ªÎļþ
+    tmenu ToolBar.Save			±£´æµ±Ç°Îļþ
+    tmenu ToolBar.SaveAll		È«²¿±£´æ
+    tmenu ToolBar.Print			´òÓ¡
+    tmenu ToolBar.Undo			³·Ïú
+    tmenu ToolBar.Redo			»Ö¸´
+    tmenu ToolBar.Cut			¼ôÇе½¼ôÌù°å
+    tmenu ToolBar.Copy			¸´ÖƵ½¼ôÌù°å
+    tmenu ToolBar.Paste			´Ó¼ôÌù°åÕ³Ìù
+    if !has("gui_athena")
+      tmenu ToolBar.Replace		²éÕÒºÍÌæ»»...
+      tmenu ToolBar.FindNext	²éÕÒÏÂÒ»¸ö
+      tmenu ToolBar.FindPrev	²éÕÒÉÏÒ»¸ö
+    endif
+    tmenu ToolBar.LoadSesn		¼ÓÔØ»á»°
+    tmenu ToolBar.SaveSesn		±£´æµ±Ç°»á»°
+    tmenu ToolBar.RunScript		ÔËÐÐ Vim ½Å±¾
+    tmenu ToolBar.Make			Éú³Éµ±Ç°ÏîÄ¿ (:make)
+    tmenu ToolBar.RunCtags		ÔÚµ±Ç°Ä¿Â¼Éú³É±ê¼Ç(Tags) (!ctags -R .)
+    tmenu ToolBar.TagJump		Ìø×ªµ½¹â±êËùÔÚ±ê¼Ç(Tag)
+    tmenu ToolBar.Help			Vim °ïÖú
+    tmenu ToolBar.FindHelp		ÔÚ Vim °ïÖúÖвéÕÒ
   endfun
 endif
+" }}}
 
 " Syntax menu
-menutrans &Syntax			Óï·¨(&S)
-menutrans &Show\ filetypes\ in\ menu	Ôڲ˵¥ÖÐÏÔʾÎļþÀàÐÍ(&S)
-menutrans &Off				¹Ø±Õ(&O)
-menutrans &Manual			ÊÖ¹¤(&M)
-menutrans A&utomatic			×Ô¶¯(&U)
-menutrans on/off\ for\ &This\ file	½ö¶ÔÕâ¸öÎļþ¿ª/¹Ø(&T)
-menutrans Co&lor\ test			É«²Ê²âÊÔ(&L)
-menutrans &Highlight\ test		¸ßÁÁ²âÊÔ(&H)
-menutrans &Convert\ to\ HTML		ת»»³É\ HTML(&C)
-menutrans Set\ '&syntax'\ only		½öÉ趨\ 'syntax'(&S)
-menutrans Set\ '&filetype'\ too		Ò²É趨\ 'filetype'(&F)
+menutrans &Syntax	Óï·¨(&S)
+" Syntax menuitems {{{1
+menutrans &Show\ File\ Types\ in\ Menu	Ôڲ˵¥ÖÐÏÔʾÎļþÀàÐÍ(&S)
+menutrans &Off							¹Ø±Õ(&O)
+menutrans &Manual						ÊÖ¶¯(&M)
+menutrans A&utomatic					×Ô¶¯(&U)
+menutrans On/Off\ for\ &This\ File		Ö»¶ÔÕâ¸öÎļþ¿ª/¹Ø(&T)
+menutrans Co&lor\ Test					É«²Ê²âÊÔ(&L)
+menutrans &Highlight\ Test				¸ßÁÁ²âÊÔ(&H)
+menutrans &Convert\ to\ HTML			ת»»³É\ HTML(&C)
+" From synmenu.vim
+menutrans Set\ '&syntax'\ Only			Ö»ÉèÖÃ\ 'syntax'(&S)
+menutrans Set\ '&filetype'\ Too			Ò²ÉèÖÃ\ 'filetype'(&F)
+" }}}
+
+" Netrw menu {{{1
+" Plugin loading may be after menu translation
+" So giveup testing if Netrw Plugin is loaded
+" if exists("g:loaded_netrwPlugin")
+  menutrans Help<tab><F1>					°ïÖú<tab><F1>
+  menutrans Bookmarks						ÊéÇ©
+  menutrans History							ÀúÊ·¼Ç¼
+  menutrans Go\ Up\ Directory<tab>-			ÏòÉÏÒ»¼¶<tab>-
+  menutrans Apply\ Special\ Viewer<tab>x	ÓÃĬÈϳÌÐò´ò¿ª<tab>x
+  menutrans Bookmarks\ and\ History			ÊéÇ©ºÍÀúÊ·¼Ç¼
+  " Netrw.Bookmarks and History menuitems {{{2
+  menutrans Bookmark\ Current\ Directory<tab>mb		Ìí¼ÓÊéÇ©<tab>mb
+  menutrans Bookmark\ Delete						ÒÆ³ýÊéÇ©
+  menutrans Goto\ Prev\ Dir\ (History)<tab>u		ºóÍË(ÀúÊ·¼Ç¼)<tab>u
+  menutrans Goto\ Next\ Dir\ (History)<tab>U		ǰ½ø(ÀúÊ·¼Ç¼)<tab>U
+  menutrans List<tab>qb								ÍêÕûÁбí<tab>qb
+  " }}}
+  menutrans Browsing\ Control				¿ØÖÆ
+  " Netrw.Browsing Control menuitems {{{2
+  menutrans Horizontal\ Split<tab>o					ÔÚ²ð·Ö´°¿Ú´ò¿ª<tab>o
+  menutrans Vertical\ Split<tab>v					ÔÚ´¹Ö±²ð·Ö´°¿Ú´ò¿ª<tab>v
+  menutrans New\ Tab<tab>t							ÔÚ±êǩҳ´ò¿ª<tab>t	
+  menutrans Preview<tab>p							Ô¤ÀÀ<tab>p
+  menutrans Edit\ File\ Hiding\ List<tab><ctrl-h>	±à¼­Òþ²ØÌõ¼þ(Hiding\ List)<tab><ctrl-h>
+  menutrans Edit\ Sorting\ Sequence<tab>S			±à¼­ÅÅÐòÌõ¼þ(Sorting\ Sequence)<tab>S
+  menutrans Quick\ Hide/Unhide\ Dot\ Files<tab>gh	¿ìËÙÒþ²Ø/ÏÔʾÒÔ\.¿ªÍ·µÄÎļþ<tab>gh
+  menutrans Refresh\ Listing<tab><ctrl-l>			Ë¢ÐÂ<tab><ctrl-l>
+  menutrans Settings/Options<tab>:NetrwSettings		ÉèÖÃ/Ñ¡Ïî<tab>:NetrwSettings
+  " }}}
+  menutrans Delete\ File/Directory<tab>D	ɾ³ýÎļþ/Ŀ¼<tab>D
+  menutrans Edit\ File/Dir					±à¼­Îļþ/Ŀ¼
+  " Netrw.Edit File menuitems {{{2
+  menutrans Create\ New\ File<tab>%				н¨Îļþ<tab>%
+  menutrans In\ Current\ Window<tab><cr>		ÔÚµ±Ç°´°¿Ú<tab><cr>
+  menutrans Preview\ File/Directory<tab>p		Ô¤ÀÀÎļþ/Ŀ¼<tab>p
+  menutrans In\ Previous\ Window<tab>P			ÔÚÉÏÒ»¸ö´°¿Ú<tab>P
+  menutrans In\ New\ Window<tab>o				ÔÚд°¿Ú<tab>o
+  menutrans In\ New\ Tab<tab>t					ÔÚбêǩҳ<tab>t
+  menutrans In\ New\ Vertical\ Window<tab>v		ÔÚд¹Ö±´°¿Ú<tab>v
+  " }}}
+  menutrans Explore							ä¯ÀÀ
+  " Netrw.Explore menuitems {{{2
+  menutrans Directory\ Name															Ö¸¶¨Ä¿Â¼Ãû
+  menutrans Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */			Æ¥ÅäÖ¸¶¨ÎļþÃûģʽ(µ±Ç°Ä¿Â¼)<tab>:Explore\ */
+  menutrans Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/				Æ¥ÅäÖ¸¶¨ÎļþÃûģʽ(º¬×ÓĿ¼)<tab>:Explore\ **/
+  menutrans Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *//	ÄÚÈݰüº¬Ö¸¶¨×Ö·û´®Ä£Ê½(µ±Ç°Ä¿Â¼)<tab>:Explore\ *//
+  menutrans Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **//		ÄÚÈݰüº¬Ö¸¶¨×Ö·û´®Ä£Ê½(º¬×ÓĿ¼)<tab>:Explore\ **//
+  menutrans Next\ Match<tab>:Nexplore												ÏÂÒ»¸öÆ¥ÅäÏî<tab>:Nexplore
+  menutrans Prev\ Match<tab>:Pexplore												ÉÏÒ»¸öÆ¥ÅäÏî<tab>:Pexplore
+  " }}}
+  menutrans Make\ Subdirectory<tab>d		н¨×ÓĿ¼<tab>d
+  menutrans Marked\ Files					Ñ¡¶¨µÄ(Marked)Îļþ
+  " Netrw.Marked Files menuitems {{{2
+  menutrans Mark\ File<tab>mf						Ñ¡¶¨(Mark)/È¡Ïû<tab>mf
+  menutrans Mark\ Files\ by\ Regexp<tab>mr			ÓÃÕýÔò±í´ïʽ(Regexp)Ñ¡¶¨<tab>mr
+  menutrans Hide-Show-List\ Control<tab>a			Òþ²Ø/ÏÔʾ<tab>a
+  menutrans Copy\ To\ Target<tab>mc					¸´ÖƵ½Ä¿±ê<tab>mc
+  menutrans Delete<tab>D							ɾ³ý<tab>D
+  menutrans Diff<tab>md								²îÒì(Diff)<tab>md
+  menutrans Edit<tab>me								±à¼­<tab>me
+  menutrans Exe\ Cmd<tab>mx							×÷Ϊ²ÎÊýÔËÐÐÃüÁî<tab>mx
+  menutrans Move\ To\ Target<tab>mm					ÒÆ¶¯µ½Ä¿±ê<tab>mm
+  menutrans Obtain<tab>O							»ñÈ¡<tab>O
+  menutrans Print<tab>mp							´òÓ¡<tab>mp
+  menutrans Replace<tab>R							Ìæ»»<tab>R
+  menutrans Set\ Target<tab>mt						ÉèÖÃÄ¿±ê<tab>mt
+  menutrans Tag<tab>mT								Éú³É±ê¼ÇÎļþ(Tags)<tab>mT
+  menutrans Zip/Unzip/Compress/Uncompress<tab>mz	ѹËõ/½âѹËõ<tab>mz
+  " }}}
+  menutrans Obtain\ File<tab>O				»ñÈ¡Îļþ<tab>O
+  menutrans Style							ÏÔʾ·ç¸ñ
+  " Netrw.Style menuitems {{{2
+  menutrans Listing							ÁбíÐÎʽ
+  " Netrw.Style.Listing menuitems {{{3
+  menutrans thin<tab>i	½ô´Õ<thin)<tab>i
+  menutrans long<tab>i	Ïêϸ(long)<tab>i
+  menutrans wide<tab>i	¶àÁÐ(wide)<tab>i
+  menutrans tree<tab>i	Ê÷×´(tree)<tab>i
+  " }}}
+  menutrans Normal-Hide-Show				ÏÔʾ/Òþ²Ø
+  " Netrw.Style.Normal-Hide_show menuitems {{{3
+  menutrans Show\ All<tab>a		ÏÔʾȫ²¿
+  menutrans Normal<tab>a		²»ÏÔʾÒþ²ØÎļþ
+  menutrans Hidden\ Only<tab>a	Ö»ÏÔʾÒþ²ØÎļþ
+  " }}}
+  menutrans Reverse\ Sorting\ Order<tab>r	ÉýÐò/½µÐò<tab>r
+  menutrans Sorting\ Method					ÅÅÐò·½Ê½
+  " Netrw.Style.Sorting Method menuitems {{{3
+  menutrans Name<tab>s		ÎļþÃû<tab>s
+  menutrans Time<tab>s  	ÐÞ¸Äʱ¼ä<tab>s
+  menutrans Size<tab>s  	´óС<tab>s
+  menutrans Exten<tab>s		À©Õ¹Ãû<tab>s
+  " }}}
+  " }}}
+  menutrans Rename\ File/Directory<tab>R	ÖØÃüÃûÎļþ/Ŀ¼<tab>R
+  menutrans Set\ Current\ Directory<tab>c	ÉèÖÃ\ Vim\ ¹¤×÷Ŀ¼<tab>c
+  menutrans Targets							Ä¿±ê
+" endif
+" }}}
 
 let &cpo = s:keepcpo
 unlet s:keepcpo
+
+" vim: set nu ts=4 sw=4 noet fdm=marker fdc=4 :
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
diff --git a/runtime/lang/menu_zh_cn.utf-8.vim b/runtime/lang/menu_zh_cn.utf-8.vim
index cb1288f..c8e2eb3 100644
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -1,270 +1,452 @@
 " Menu Translations:    Simplified Chinese
 " Maintainer:           Shun Bai <baishunde@gmail.com>
 " Previous Maintainer:  Yuheng Xie <elephant@linux.net.cn>
-" Last Change:          2014 Oct 15
-
-" vim: ts=8 sw=8 noet
+" Last Change:          2019 Sep 11
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 scriptencoding utf-8
 
 " Help menu
-menutrans &Help			帮助(&H)
-menutrans &Overview<Tab><F1>	纵览(&O)<Tab><F1>
-menutrans &User\ Manual		用户手册(&U)
-menutrans &How-to\ links	How-to\ 指引(&H)
-menutrans &Find\.\.\.		查找(&F)\.\.\.
-menutrans &Credits		致谢(&C)
-menutrans Co&pying		版权(&P)
-menutrans &Sponsor/Register	赞助/注册(&S)
-menutrans O&rphans		孤儿(&R)
-menutrans &Version		版本(&V)
-menutrans &About		关于(&A)
+menutrans &Help		帮助(&H)
+" Help menuitems and dialog {{{1
+menutrans &Overview<Tab><F1>	概述(&O)<Tab><F1>
+menutrans &User\ Manual			用户手册(&U)
+menutrans &How-to\ Links		如何使用(&H)
+menutrans &Find\.\.\.			查找(&F)\.\.\.
+menutrans &Credits				致谢(&C)
+menutrans Co&pying				版权(&P)
+menutrans &Sponsor/Register		赞助/注册(&S)
+menutrans O&rphans				拯救孤儿(&R)
+menutrans &Version				版本(&V)
+menutrans &About				关于(&A)
+
+" fun! s:Helpfind()
+if !exists("g:menutrans_help_dialog")
+  let g:menutrans_help_dialog = "输入命令或单词以获得帮助:\n\n前缀 i_ 表示输入模式下的命令(如: i_CTRL-X)\n前缀 c_ 表示命令行下的编辑命令(如: c_<Del>)\n前缀 ' 表示选项名(如: 'shiftwidth')"
+endif
+" }}}
 
 " File menu
-menutrans &File				文件(&F)
-menutrans &Open\.\.\.<Tab>:e		打开(&O)\.\.\.<Tab>:e
-menutrans Sp&lit-Open\.\.\.<Tab>:sp	分割并打开(&L)\.\.\.<Tab>:sp
-menutrans Open\ Tab\.\.\.<Tab>:tabnew	打开标签\.\.\.<Tab>:tabnew
-menutrans &New<Tab>:enew		新建(&N)<Tab>:enew
-menutrans &Close<Tab>:close		关闭(&C)<Tab>:close
-menutrans &Save<Tab>:w			保存(&S)<Tab>:w
-menutrans Save\ &As\.\.\.<Tab>:sav	另存为(&A)\.\.\.<Tab>:sav
-menutrans Split\ &Diff\ with\.\.\.	分割比较(Diff)(&D)\.\.\.
-menutrans Split\ Patched\ &By\.\.\.	分割打补丁(Patch)(&B)\.\.\.
-menutrans &Print			打印(&P)
-menutrans Sa&ve-Exit<Tab>:wqa		保存并退出(&V)<Tab>:wqa
-menutrans E&xit<Tab>:qa			退出(&X)<Tab>:qa
+menutrans &File		文件(&F)
+" File menuitems {{{1
+menutrans &Open\.\.\.<Tab>:e			打开(&O)\.\.\.<Tab>:e
+menutrans Sp&lit-Open\.\.\.<Tab>:sp		在拆分窗口打开(&L)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew	在标签页打开\.\.\.<Tab>:tabnew
+menutrans &New<Tab>:enew				新建(&N)<Tab>:enew
+menutrans &Close<Tab>:close				关闭(&C)<Tab>:close
+menutrans &Save<Tab>:w					保存(&S)<Tab>:w
+menutrans Save\ &As\.\.\.<Tab>:sav		另存为(&A)\.\.\.<Tab>:sav
+menutrans Split\ &Diff\ With\.\.\.		拆分窗口以对比差异(Diff)(&D)\.\.\.
+menutrans Split\ Patched\ &By\.\.\.		拆分窗口以进行修补(Patch)(&B)\.\.\.
+menutrans &Print						打印(&P)
+menutrans Sa&ve-Exit<Tab>:wqa			保存并退出(&V)<Tab>:wqa
+menutrans E&xit<Tab>:qa					退出(&X)<Tab>:qa
+" }}}
 
 " Edit menu
-menutrans &Edit				编辑(&E)
-menutrans &Undo<Tab>u			撤销(&U)<Tab>u
-menutrans &Redo<Tab>^R			重做(&R)<Tab>^R
-menutrans Rep&eat<Tab>\.		重复上次操作(&E)<Tab>\.
-menutrans Cu&t<Tab>"+x			剪切(&T)<Tab>"+x
-menutrans &Copy<Tab>"+y			复制(&C)<Tab>"+y
-menutrans &Paste<Tab>"+gP		粘贴(&P)<Tab>"+gP
-menutrans Put\ &Before<Tab>[p		粘贴到光标前(&B)<Tab>[p
-menutrans Put\ &After<Tab>]p		粘贴到光标后(&A)<Tab>]p
-menutrans &Delete<Tab>x			删除(&D)<Tab>x
-menutrans &Select\ All<Tab>ggVG		全选(&S)<Tab>ggVG
-menutrans &Find\.\.\.			查找(&F)\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.	查找和替换(&L)\.\.\.
-menutrans &Find<Tab>/			查找(&F)<Tab>/
-menutrans Find\ and\ Rep&lace<Tab>:%s	查找和替换(&L)<Tab>:%s
-menutrans Settings\ &Window		设定窗口(&W)
-menutrans Startup\ &Settings		启动设定(&S)
-menutrans &Global\ Settings		全局设定(&G)
+menutrans &Edit		编辑(&E)
+" Edit menuitems {{{1
+menutrans &Undo<Tab>u						撤销(&U)<Tab>u
+menutrans &Redo<Tab>^R						恢复(&R)<Tab>^R
+menutrans Rep&eat<Tab>\.					重复(&E)<Tab>\.
+menutrans Cu&t<Tab>"+x						剪切(&T)<Tab>"+x
+menutrans &Copy<Tab>"+y						复制(&C)<Tab>"+y
+menutrans &Paste<Tab>"+gP					粘贴(&P)<Tab>"+gP
+menutrans Put\ &Before<Tab>[p				粘贴到光标前(&B)<Tab>[p
+menutrans Put\ &After<Tab>]p				粘贴到光标后(&A)<Tab>]p
+menutrans &Delete<Tab>x						删除(&D)<Tab>x
+menutrans &Select\ All<Tab>ggVG				全选(&S)<Tab>ggVG
+menutrans &Find\.\.\.						查找(&F)\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\.			查找和替换(&L)\.\.\.
+menutrans &Find<Tab>/						查找(&F)<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s		查找和替换(&L)<Tab>:%s
+menutrans Settings\ &Window					设置窗口(&W)
+menutrans Startup\ &Settings				启动设置(&S)
 
 " Edit/Global Settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!	开/关模式高亮(&H)<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic!		开/关忽略大小写(&I)<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm!		开/关显示配对(&S)<Tab>:set\ sm!
-menutrans &Context\ lines			上下文行数(&C)
-
-menutrans &Virtual\ Edit			虚拟编辑(&V)
+menutrans &Global\ Settings					全局设置(&G)
+" Edit.Global Settings menuitems and dialogs {{{2
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls!		开/关高亮查找内容(&H)<Tab>:set\ hls!
+menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic!				开/关忽略大小写(&I)<Tab>:set\ ic!
+menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm!	开/关显示括号匹配(&S)<Tab>:set\ sm!
+menutrans &Context\ Lines									上下文行数(&C)
+menutrans &Virtual\ Edit									虚拟编辑(&V)
+" Edit.Global Settings.Virtual Edit menuitems {{{3
 menutrans Never					从不
-menutrans Block\ Selection			块选择
-menutrans Insert\ mode				插入模式
-menutrans Block\ and\ Insert			块选择和插入模式
-menutrans Always				总是
-
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!	开/关插入模式(&M)<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp!	开/关\ Vi\ 兼容<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\.			查找路径(&P)\.\.\.
-menutrans Ta&g\ Files\.\.\.			Tag\ 文件(&T)\.\.\.
+menutrans Block\ Selection		只在选定矩形块时
+menutrans Insert\ Mode			只在插入模式时
+menutrans Block\ and\ Insert	在选定矩形块和插入模式时
+menutrans Always				始终
+" }}}
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im!				开/关插入模式(&M)<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp!			开/关\ Vi\ 兼容性(&O)<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\.								搜索路径(&P)\.\.\.
+menutrans Ta&g\ Files\.\.\.									标记文件(Tags)(&G)\.\.\.
 
 " GUI options
-menutrans Toggle\ &Toolbar			开/关工具栏(&T)
-menutrans Toggle\ &Bottom\ Scrollbar		开/关底部滚动条(&B)
-menutrans Toggle\ &Left\ Scrollbar		开/关左端滚动条(&L)
-menutrans Toggle\ &Right\ Scrollbar		开/关右端滚动条(&R)
+menutrans Toggle\ &Toolbar									开/关工具栏(&T)
+menutrans Toggle\ &Bottom\ Scrollbar						开/关底部滚动条(&B)
+menutrans Toggle\ &Left\ Scrollbar							开/关左侧滚动条(&L)
+menutrans Toggle\ &Right\ Scrollbar							开/关右侧滚动条(&R)
+
+" fun! s:SearchP()
+if !exists("g:menutrans_path_dialog")
+  let g:menutrans_path_dialog = "输入搜索路径。\n用逗号分隔目录名。"
+endif
+
+" fun! s:TagFiles()
+if !exists("g:menutrans_tags_dialog")
+  let g:menutrans_tags_dialog = "输入标记文件(Tags)名称。\n用逗号分隔文件名。"
+endif
+" }}}
 
 " Edit/File Settings
-menutrans F&ile\ Settings			文件设定(&I)
-
+menutrans F&ile\ Settings					文件设置(&I)
+" Edit.File Settings menuitems and dialogs {{{2
 " Boolean options
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!	开/关显示行号(&N)<Tab>:set\ nu!
-menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! 开/关相对行号(&V)<Tab>:set\ rnu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list!		开/关\ list\ 模式(&L)<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap!		开/关折行(&W)<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr!	开/关整词折行(&R)<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et!		开/关扩展\ tab(&E)<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai!		开/关自动缩进(&A)<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin!		开/关\ C\ 缩进(&C)<Tab>:set\ cin!
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu!			开/关行号(&N)<Tab>:set\ nu!
+menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu!	开/关相对行号(&V)<Tab>:set\ rnu!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list!				开/关列表模式(&L)<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap!			开/关换行(&W)<Tab>:set\ wrap!
+menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr!		开/关词尾换行(&R)<Tab>:set\ lbr!
+menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et!				开/关制表符扩展(&E)<Tab>:set\ et!
+menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai!			开/关自动缩进(&A)<Tab>:set\ ai!
+menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin!		开/关\ C\ 语言式缩进(&C)<Tab>:set\ cin!
 
 " other options
-menutrans &Shiftwidth			缩进宽度(&S)
-menutrans Soft\ &Tabstop		Soft\ Tab\ 宽度(&T)
-menutrans Te&xt\ Width\.\.\.		文本宽度(&X)\.\.\.
-menutrans &File\ Format\.\.\.		文件格式(&F)\.\.\.
-menutrans C&olor\ Scheme		配色方案(&O)
-menutrans Select\ Fo&nt\.\.\.		选择字体(&N)\.\.\.
-menutrans &Keymap			键盘映射(&K)
+menutrans &Shiftwidth										缩进宽度(&S)
+menutrans Soft\ &Tabstop									软制表位宽度(Soft Tabstop)(&T)
+menutrans Te&xt\ Width\.\.\.								文本宽度(&X)\.\.\.
+menutrans &File\ Format\.\.\.								文件格式(&F)\.\.\.
+
+" fun! s:TextWidth()
+if !exists("g:menutrans_textwidth_dialog")
+  let g:menutrans_textwidth_dialog = "输入文本宽度(每行最大字符数,0 表示禁用):"
+endif
+
+" fun! s:FileFormat()
+if !exists("g:menutrans_fileformat_dialog")
+  let g:menutrans_fileformat_dialog = "选择文件的保存格式:"
+endif
+if !exists("g:menutrans_fileformat_choices")
+  let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n取消(&C)"
+endif
+" }}}
+menutrans Show\ C&olor\ Schemes\ in\ Menu	在菜单中显示配色方案(&O)
+menutrans C&olor\ Scheme					配色方案(&O)
+menutrans Show\ &Keymaps\ in\ Menu			在菜单中显示键盘映射(&K)
+menutrans &Keymap							键盘映射(&K)
+menutrans Select\ Fo&nt\.\.\.				选择字体(&N)\.\.\.
+" }}}
 
 " Programming menu
-menutrans &Tools			工具(&T)
-menutrans &Jump\ to\ this\ tag<Tab>g^]	跳转到这个\ tag(&J)<Tab>g^]
-menutrans Jump\ &back<Tab>^T		跳转返回(&B)<Tab>^T
-menutrans Build\ &Tags\ File		建立\ Tags\ 文件(&T)
+menutrans &Tools	工具(&T)
+" Tools menuitems {{{1
+menutrans &Jump\ to\ This\ Tag<Tab>g^]			跳转到这个标记(Tag)(&J)<Tab>g^]
+menutrans Jump\ &Back<Tab>^T					跳转回(&B)<Tab>^T
+menutrans Build\ &Tags\ File					生成标记文件(Tags)(&T)
 
 " Tools.Spelling Menu
-menutrans &Spelling				拼写检查(&S)
-menutrans &Spell\ Check\ On			打开拼写检查(&S)
-menutrans Spell\ Check\ &Off			关闭拼写检查(&O)
-menutrans To\ &Next\ error<Tab>]s		上一个错误(&N)<Tab>]s
-menutrans To\ &Previous\ error<Tab>[s		下一个错误(&P)<Tab>[s
-menutrans Suggest\ &Corrections<Tab>z=		修正建议(&C)<Tab>z=
-menutrans &Repeat\ correction<Tab>:spellrepall	重复修正(&R)<Tab>:spellrepall
-menutrans Set\ language\ to\ "en"		设定语言为\ "en"
-menutrans Set\ language\ to\ "en_au"		设定语言为\ "en_au"
-menutrans Set\ language\ to\ "en_ca"		设定语言为\ "en_ca"
-menutrans Set\ language\ to\ "en_gb"		设定语言为\ "en_gb"
-menutrans Set\ language\ to\ "en_nz"		设定语言为\ "en_nz"
-menutrans Set\ language\ to\ "en_us"		设定语言为\ "en_us"
-menutrans &Find\ More\ Languages		查找更多语言(&F)
+menutrans &Spelling								拼写检查(&S)
+" Tools.Spelling menuitems and dialog {{{2
+menutrans &Spell\ Check\ On						打开拼写检查(&S)
+menutrans Spell\ Check\ &Off					关闭拼写检查(&O)
+menutrans To\ &Next\ Error<Tab>]s				上一个错误(&N)<Tab>]s
+menutrans To\ &Previous\ Error<Tab>[s			下一个错误(&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z=			更正建议(&C)<Tab>z=
+menutrans &Repeat\ Correction<Tab>:spellrepall	更正全部同类错误(&R)<Tab>:spellrepall
+menutrans Set\ Language\ to\ "en"				设置语言为\ "en"
+menutrans Set\ Language\ to\ "en_au"			设置语言为\ "en_au"
+menutrans Set\ Language\ to\ "en_ca"			设置语言为\ "en_ca"
+menutrans Set\ Language\ to\ "en_gb"			设置语言为\ "en_gb"
+menutrans Set\ Language\ to\ "en_nz"			设置语言为\ "en_nz"
+menutrans Set\ Language\ to\ "en_us"			设置语言为\ "en_us"
+menutrans &Find\ More\ Languages				查找更多语言(&F)
+
+" func! s:SpellLang()
+if !exists("g:menutrans_set_lang_to")
+  let g:menutrans_set_lang_to = "设置语言为"
+endif
+" }}}
 
 " Tools.Fold Menu
+menutrans &Folding								折叠(&F)
+" Tools.Fold menuitems {{{2
 " open close folds
-menutrans &Folding				折叠(&F)
-menutrans &Enable/Disable\ folds<Tab>zi		启用/禁用折叠(&E)<Tab>zi
-menutrans &View\ Cursor\ Line<Tab>zv		查看此行(&V)<Tab>zv
-menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx	仅查看此行(&W)<Tab>zMzx
-menutrans C&lose\ more\ folds<Tab>zm		关闭更多折叠(&L)<Tab>zm
-menutrans &Close\ all\ folds<Tab>zM		关闭所有折叠(&C)<Tab>zM
-menutrans O&pen\ more\ folds<Tab>zr		打开更多折叠(&P)<Tab>zr
-menutrans &Open\ all\ folds<Tab>zR		打开所有折叠(&O)<Tab>zR
+menutrans &Enable/Disable\ Folds<Tab>zi			启用/禁用折叠(&E)<Tab>zi
+menutrans &View\ Cursor\ Line<Tab>zv			展开光标所在行(&V)<Tab>zv
+menutrans Vie&w\ Cursor\ Line\ Only<Tab>zMzx	只展开光标所在行(&W)<Tab>zMzx
+menutrans C&lose\ More\ Folds<Tab>zm			折叠一级(&L)<Tab>zm
+menutrans &Close\ All\ Folds<Tab>zM				折叠全部(&C)<Tab>zM
+menutrans O&pen\ More\ Folds<Tab>zr				展开一级(&P)<Tab>zr
+menutrans &Open\ All\ Folds<Tab>zR				展开全部(&O)<Tab>zR
 " fold method
-menutrans Fold\ Met&hod			折叠方法(&H)
-menutrans M&anual			手工(&A)
-menutrans I&ndent			缩进(&N)
-menutrans E&xpression			表达式(&X)
-menutrans S&yntax			语法(&Y)
-menutrans &Diff				比较(Diff)(&D)
-menutrans Ma&rker			标记(&R)
+menutrans Fold\ Met&hod							折叠方式(&H)
+" Tools.Fold.Fold Method menuitems {{{3
+menutrans M&anual		手动(&A)
+menutrans I&ndent		缩进(&N)
+menutrans E&xpression	表达式(&X)
+menutrans S&yntax		语法(&Y)
+menutrans &Diff			差异(Diff)(&D)
+menutrans Ma&rker		记号(Marker)(&R)
+" }}}
 " create and delete folds
-menutrans Create\ &Fold<Tab>zf		创建折叠(&F)<Tab>zf
-menutrans &Delete\ Fold<Tab>zd		删除折叠(&D)<Tab>zd
-menutrans Delete\ &All\ Folds<Tab>zD	删除所有折叠(&A)<Tab>zD
+menutrans Create\ &Fold<Tab>zf					创建折叠(&F)<Tab>zf
+menutrans &Delete\ Fold<Tab>zd					删除折叠(&D)<Tab>zd
+menutrans Delete\ &All\ Folds<Tab>zD			删除全部折叠(&A)<Tab>zD
 " moving around in folds
-menutrans Fold\ column\ &width		折叠栏宽度(&W)
+menutrans Fold\ Col&umn\ Width					折叠操作栏宽度(&W)
+" }}}
 
 " Tools.Diff Menu
-menutrans &Diff				比较(Diff)(&D)
-menutrans &Update			更新(&U)
-menutrans &Get\ Block			得到块(&G)
-menutrans &Put\ Block			放置块(&P)
+menutrans &Diff									差异(Diff)(&D)
+" Tools.Diff menuitems {{{2
+menutrans &Update		刷新(&U)
+menutrans &Get\ Block	采用对侧文本块(&G)
+menutrans &Put\ Block	采用本侧文本块(&P)
+" }}}
 
-menutrans &Make<Tab>:make		Make(&M)<Tab>:make
-menutrans &List\ Errors<Tab>:cl		列出错误(&L)<Tab>:cl
-menutrans L&ist\ Messages<Tab>:cl!	列出消息(&I)<Tab>:cl!
-menutrans &Next\ Error<Tab>:cn		下一个错误(&N)<Tab>:cn
-menutrans &Previous\ Error<Tab>:cp	上一个错误(&P)<Tab>:cp
-menutrans &Older\ List<Tab>:cold	更旧的错误列表(&O)<Tab>:cold
-menutrans N&ewer\ List<Tab>:cnew	更新的错误列表(&E)<Tab>:cnew
-menutrans Error\ &Window		错误窗口(&W)
-menutrans &Update<Tab>:cwin		更新(&U)<Tab>:cwin
+menutrans &Make<Tab>:make						生成(Make)(&M)<Tab>:make
+menutrans &List\ Errors<Tab>:cl					列出错误(&L)<Tab>:cl
+menutrans L&ist\ Messages<Tab>:cl!				列出消息(&I)<Tab>:cl!
+menutrans &Next\ Error<Tab>:cn					下一个错误(&N)<Tab>:cn
+menutrans &Previous\ Error<Tab>:cp				上一个错误(&P)<Tab>:cp
+menutrans &Older\ List<Tab>:cold				较旧的错误列表(&O)<Tab>:cold
+menutrans N&ewer\ List<Tab>:cnew				较新的错误列表(&E)<Tab>:cnew
+menutrans Error\ &Window						错误窗口(&W)
+" Tools.Error Window menuitems {{{2
+menutrans &Update<Tab>:cwin		刷新(&U)<Tab>:cwin
 menutrans &Open<Tab>:copen		打开(&O)<Tab>:copen
-menutrans &Close<Tab>:cclose		关闭(&C)<Tab>:cclose
-menutrans &Convert\ to\ HEX<Tab>:%!xxd	转换成十六进制<Tab>:%!xxd
-menutrans Conve&rt\ back<Tab>:%!xxd\ -r	转换返回<Tab>:%!xxd\ -r
-menutrans Se&T\ Compiler		设定编译器(&T)
+menutrans &Close<Tab>:cclose	关闭(&C)<Tab>:cclose
+" }}}
+menutrans Show\ Compiler\ Se&ttings\ in\ Menu	在菜单中显示编译器设置(&T)
+menutrans Se&t\ Compiler						设置编译器(&T)
+menutrans &Convert\ to\ HEX<Tab>:%!xxd			转换成十六进制(&C)<Tab>:%!xxd
+menutrans Conve&rt\ Back<Tab>:%!xxd\ -r			转换回(&R)<Tab>:%!xxd\ -r
+" }}}
 
-" Names for buffer menu.
-menutrans &Buffers		缓冲区(&B)
-menutrans &Refresh\ menu	更新菜单(&R)
-menutrans &Delete		删除(&D)
-menutrans &Alternate		交替(&A)
-menutrans &Next			下一个(&N)
-menutrans &Previous		上一个(&P)
+" Buffer menu
+menutrans &Buffers	缓冲区(&B)
+" Buffer menuitems and dialog {{{1
+menutrans &Refresh\ Menu	刷新本菜单(&R)
+menutrans &Delete			删除(&D)
+menutrans &Alternate		切换(&A)
+menutrans &Next				下一个(&N)
+menutrans &Previous			上一个(&P)
+
+" func! s:BMMunge(fname, bnum) 
+if !exists("g:menutrans_no_file")
+  let g:menutrans_no_file = "[无文件]"
+endif
+" }}}
 
 " Window menu
-menutrans &Window			窗口(&W)
-menutrans &New<Tab>^Wn			新建(&N)<Tab>^Wn
-menutrans S&plit<Tab>^Ws		分割(&P)<Tab>^Ws
-menutrans Sp&lit\ To\ #<Tab>^W^^	分割到\ #(&L)<Tab>^W^^
-menutrans Split\ &Vertically<Tab>^Wv	垂直分割(&V)<Tab>^Wv
-menutrans Split\ File\ E&xplorer	分割文件浏览器(&X)
-menutrans &Close<Tab>^Wc		关闭(&C)<Tab>^Wc
-menutrans Close\ &Other(s)<Tab>^Wo	关闭其它窗口(&O)<Tab>^Wo
-menutrans Move\ &To			移动到(&T)
-menutrans &Top<Tab>^WK			顶端(&T)<Tab>^WK
-menutrans &Bottom<Tab>^WJ		底端(&B)<Tab>^WJ
-menutrans &Left\ side<Tab>^WH		左边(&L)<Tab>^WH
-menutrans &Right\ side<Tab>^WL		右边(&R)<Tab>^WL
-" menutrans Ne&xt<Tab>^Ww		下一个(&X)<Tab>^Ww
-" menutrans P&revious<Tab>^WW		上一个(&R)<Tab>^WW
-menutrans Rotate\ &Up<Tab>^WR		向上轮换(&U)<Tab>^WR
-menutrans Rotate\ &Down<Tab>^Wr		向下轮换(&D)<Tab>^Wr
-menutrans &Equal\ Size<Tab>^W=		等大(&E)<Tab>^W=
-menutrans &Max\ Height<Tab>^W_		最大高度(&M)<Tab>^W
-menutrans M&in\ Height<Tab>^W1_		最小高度(&I)<Tab>^W1_
-menutrans Max\ &Width<Tab>^W\|		最大宽度(&W)<Tab>^W\|
-menutrans Min\ Widt&h<Tab>^W1\|		最小宽度(&H)<Tab>^W1\|
-"
-" The popup menu
-menutrans &Undo			撤销(&U)
-menutrans Cu&t			剪切(&T)
-menutrans &Copy			复制(&C)
-menutrans &Paste		粘贴(&P)
-menutrans &Delete		删除(&D)
-menutrans Select\ Blockwise	选择块
-menutrans Select\ &Word		选择单词(&W)
-menutrans Select\ &Sentence	选择句子(&S)
-menutrans Select\ Pa&ragraph	选择段落(&R)
-menutrans Select\ &Line		选择行(&L)
-menutrans Select\ &Block	选择块(&B)
-menutrans Select\ &All		全选(&A)
-"
-" The GUI toolbar
+menutrans &Window	窗口(&W)
+" Window menuitems {{{1
+menutrans &New<Tab>^Wn					新建(&N)<Tab>^Wn
+menutrans S&plit<Tab>^Ws				拆分(&P)<Tab>^Ws
+menutrans Sp&lit\ To\ #<Tab>^W^^		拆分并显示缓冲区\ #(&L)<Tab>^W^^
+menutrans Split\ &Vertically<Tab>^Wv	垂直拆分(&V)<Tab>^Wv
+menutrans Split\ File\ E&xplorer		拆分并打开文件浏览器(&X)
+menutrans &Close<Tab>^Wc				关闭(&C)<Tab>^Wc
+menutrans Close\ &Other(s)<Tab>^Wo		除此之外全部关闭(&O)<Tab>^Wo
+menutrans Move\ &To						移动到(&T)
+menutrans &Top<Tab>^WK					顶端(&T)<Tab>^WK
+menutrans &Bottom<Tab>^WJ				底端(&B)<Tab>^WJ
+menutrans &Left\ Side<Tab>^WH			左边(&L)<Tab>^WH
+menutrans &Right\ Side<Tab>^WL			右边(&R)<Tab>^WL
+menutrans Rotate\ &Up<Tab>^WR			向上轮换(&U)<Tab>^WR
+menutrans Rotate\ &Down<Tab>^Wr			向下轮换(&D)<Tab>^Wr
+menutrans &Equal\ Size<Tab>^W=			平均分布(&E)<Tab>^W=
+menutrans &Max\ Height<Tab>^W_			最大高度(&M)<Tab>^W
+menutrans M&in\ Height<Tab>^W1_			最小高度(&I)<Tab>^W1_
+menutrans Max\ &Width<Tab>^W\|			最大宽度(&W)<Tab>^W\|
+menutrans Min\ Widt&h<Tab>^W1\|			最小宽度(&H)<Tab>^W1\|
+" }}}
+
+" The popup menu {{{1
+menutrans &Undo					撤销(&U)
+menutrans Cu&t					剪切(&T)
+menutrans &Copy					复制(&C)
+menutrans &Paste				粘贴(&P)
+menutrans &Delete				删除(&D)
+menutrans Select\ Blockwise		改为选定矩形块
+menutrans Select\ &Word			选定单词(&W)
+menutrans Select\ &Sentence		选定句(&S)
+menutrans Select\ Pa&ragraph	选定段落(&R)
+menutrans Select\ &Line			选定行(&L)
+menutrans Select\ &Block		选定矩形块(&B)
+menutrans Select\ &All			全选(&A)
+
+" func! <SID>SpellPopup()
+if !exists("g:menutrans_spell_change_ARG_to")
+  let g:menutrans_spell_change_ARG_to = '将\ "%s"\ 更改为'
+endif
+if !exists("g:menutrans_spell_add_ARG_to_word_list")
+  let g:menutrans_spell_add_ARG_to_word_list = '将\ "%s"\ 添加到词典'
+endif
+if !exists("g:menutrans_spell_ignore_ARG")
+  let g:menutrans_spell_ignore_ARG = '忽略\ "%s"'
+endif
+" }}}
+
+" The GUI toolbar {{{1
 if has("toolbar")
   if exists("*Do_toolbar_tmenu")
     delfun Do_toolbar_tmenu
   endif
   fun Do_toolbar_tmenu()
-    tmenu ToolBar.Open		打开文件
-    tmenu ToolBar.Save		保存当前文件
-    tmenu ToolBar.SaveAll	保存全部文件
-    tmenu ToolBar.Print		打印
-    tmenu ToolBar.Undo		撤销
-    tmenu ToolBar.Redo		重做
-    tmenu ToolBar.Cut		剪切到剪贴板
-    tmenu ToolBar.Copy		复制到剪贴板
-    tmenu ToolBar.Paste		从剪贴板粘贴
-    tmenu ToolBar.Find		查找...
-    tmenu ToolBar.FindNext	查找下一个
-    tmenu ToolBar.FindPrev	查找上一个
-    tmenu ToolBar.Replace	查找和替换...
-    tmenu ToolBar.LoadSesn	加载会话
-    tmenu ToolBar.SaveSesn	保存当前会话
-    tmenu ToolBar.RunScript	运行 Vim 脚本
-    tmenu ToolBar.Make		执行 Make (:make)
-    tmenu ToolBar.RunCtags	在当前目录建立 tags (!ctags -R .)
-    tmenu ToolBar.TagJump	跳转到光标位置的 tag
-    tmenu ToolBar.Help		Vim 帮助
-    tmenu ToolBar.FindHelp	查找 Vim 帮助
+    let did_toolbar_tmenu = 1
+    tmenu ToolBar.Open			打开文件
+    tmenu ToolBar.Save			保存当前文件
+    tmenu ToolBar.SaveAll		全部保存
+    tmenu ToolBar.Print			打印
+    tmenu ToolBar.Undo			撤销
+    tmenu ToolBar.Redo			恢复
+    tmenu ToolBar.Cut			剪切到剪贴板
+    tmenu ToolBar.Copy			复制到剪贴板
+    tmenu ToolBar.Paste			从剪贴板粘贴
+    if !has("gui_athena")
+      tmenu ToolBar.Replace		查找和替换...
+      tmenu ToolBar.FindNext	查找下一个
+      tmenu ToolBar.FindPrev	查找上一个
+    endif
+    tmenu ToolBar.LoadSesn		加载会话
+    tmenu ToolBar.SaveSesn		保存当前会话
+    tmenu ToolBar.RunScript		运行 Vim 脚本
+    tmenu ToolBar.Make			生成当前项目 (:make)
+    tmenu ToolBar.RunCtags		在当前目录生成标记(Tags) (!ctags -R .)
+    tmenu ToolBar.TagJump		跳转到光标所在标记(Tag)
+    tmenu ToolBar.Help			Vim 帮助
+    tmenu ToolBar.FindHelp		在 Vim 帮助中查找
   endfun
 endif
+" }}}
 
 " Syntax menu
-menutrans &Syntax			语法(&S)
-menutrans &Show\ filetypes\ in\ menu	在菜单中显示文件类型(&S)
-menutrans &Off				关闭(&O)
-menutrans &Manual			手工(&M)
-menutrans A&utomatic			自动(&U)
-menutrans on/off\ for\ &This\ file	仅对这个文件开/关(&T)
-menutrans Co&lor\ test			色彩测试(&L)
-menutrans &Highlight\ test		高亮测试(&H)
-menutrans &Convert\ to\ HTML		转换成\ HTML(&C)
-menutrans Set\ '&syntax'\ only		仅设定\ 'syntax'(&S)
-menutrans Set\ '&filetype'\ too		也设定\ 'filetype'(&F)
+menutrans &Syntax	语法(&S)
+" Syntax menuitems {{{1
+menutrans &Show\ File\ Types\ in\ Menu	在菜单中显示文件类型(&S)
+menutrans &Off							关闭(&O)
+menutrans &Manual						手动(&M)
+menutrans A&utomatic					自动(&U)
+menutrans On/Off\ for\ &This\ File		只对这个文件开/关(&T)
+menutrans Co&lor\ Test					色彩测试(&L)
+menutrans &Highlight\ Test				高亮测试(&H)
+menutrans &Convert\ to\ HTML			转换成\ HTML(&C)
+" From synmenu.vim
+menutrans Set\ '&syntax'\ Only			只设置\ 'syntax'(&S)
+menutrans Set\ '&filetype'\ Too			也设置\ 'filetype'(&F)
+" }}}
+
+" Netrw menu {{{1
+" Plugin loading may be after menu translation
+" So giveup testing if Netrw Plugin is loaded
+" if exists("g:loaded_netrwPlugin")
+  menutrans Help<tab><F1>					帮助<tab><F1>
+  menutrans Bookmarks						书签
+  menutrans History							历史记录
+  menutrans Go\ Up\ Directory<tab>-			向上一级<tab>-
+  menutrans Apply\ Special\ Viewer<tab>x	用默认程序打开<tab>x
+  menutrans Bookmarks\ and\ History			书签和历史记录
+  " Netrw.Bookmarks and History menuitems {{{2
+  menutrans Bookmark\ Current\ Directory<tab>mb		添加书签<tab>mb
+  menutrans Bookmark\ Delete						移除书签
+  menutrans Goto\ Prev\ Dir\ (History)<tab>u		后退(历史记录)<tab>u
+  menutrans Goto\ Next\ Dir\ (History)<tab>U		前进(历史记录)<tab>U
+  menutrans List<tab>qb								完整列表<tab>qb
+  " }}}
+  menutrans Browsing\ Control				控制
+  " Netrw.Browsing Control menuitems {{{2
+  menutrans Horizontal\ Split<tab>o					在拆分窗口打开<tab>o
+  menutrans Vertical\ Split<tab>v					在垂直拆分窗口打开<tab>v
+  menutrans New\ Tab<tab>t							在标签页打开<tab>t	
+  menutrans Preview<tab>p							预览<tab>p
+  menutrans Edit\ File\ Hiding\ List<tab><ctrl-h>	编辑隐藏条件(Hiding\ List)<tab><ctrl-h>
+  menutrans Edit\ Sorting\ Sequence<tab>S			编辑排序条件(Sorting\ Sequence)<tab>S
+  menutrans Quick\ Hide/Unhide\ Dot\ Files<tab>gh	快速隐藏/显示以\.开头的文件<tab>gh
+  menutrans Refresh\ Listing<tab><ctrl-l>			刷新<tab><ctrl-l>
+  menutrans Settings/Options<tab>:NetrwSettings		设置/选项<tab>:NetrwSettings
+  " }}}
+  menutrans Delete\ File/Directory<tab>D	删除文件/目录<tab>D
+  menutrans Edit\ File/Dir					编辑文件/目录
+  " Netrw.Edit File menuitems {{{2
+  menutrans Create\ New\ File<tab>%				新建文件<tab>%
+  menutrans In\ Current\ Window<tab><cr>		在当前窗口<tab><cr>
+  menutrans Preview\ File/Directory<tab>p		预览文件/目录<tab>p
+  menutrans In\ Previous\ Window<tab>P			在上一个窗口<tab>P
+  menutrans In\ New\ Window<tab>o				在新窗口<tab>o
+  menutrans In\ New\ Tab<tab>t					在新标签页<tab>t
+  menutrans In\ New\ Vertical\ Window<tab>v		在新垂直窗口<tab>v
+  " }}}
+  menutrans Explore							浏览
+  " Netrw.Explore menuitems {{{2
+  menutrans Directory\ Name															指定目录名
+  menutrans Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */			匹配指定文件名模式(当前目录)<tab>:Explore\ */
+  menutrans Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/				匹配指定文件名模式(含子目录)<tab>:Explore\ **/
+  menutrans Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *//	内容包含指定字符串模式(当前目录)<tab>:Explore\ *//
+  menutrans Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **//		内容包含指定字符串模式(含子目录)<tab>:Explore\ **//
+  menutrans Next\ Match<tab>:Nexplore												下一个匹配项<tab>:Nexplore
+  menutrans Prev\ Match<tab>:Pexplore												上一个匹配项<tab>:Pexplore
+  " }}}
+  menutrans Make\ Subdirectory<tab>d		新建子目录<tab>d
+  menutrans Marked\ Files					选定的(Marked)文件
+  " Netrw.Marked Files menuitems {{{2
+  menutrans Mark\ File<tab>mf						选定(Mark)/取消<tab>mf
+  menutrans Mark\ Files\ by\ Regexp<tab>mr			用正则表达式(Regexp)选定<tab>mr
+  menutrans Hide-Show-List\ Control<tab>a			隐藏/显示<tab>a
+  menutrans Copy\ To\ Target<tab>mc					复制到目标<tab>mc
+  menutrans Delete<tab>D							删除<tab>D
+  menutrans Diff<tab>md								差异(Diff)<tab>md
+  menutrans Edit<tab>me								编辑<tab>me
+  menutrans Exe\ Cmd<tab>mx							作为参数运行命令<tab>mx
+  menutrans Move\ To\ Target<tab>mm					移动到目标<tab>mm
+  menutrans Obtain<tab>O							获取<tab>O
+  menutrans Print<tab>mp							打印<tab>mp
+  menutrans Replace<tab>R							替换<tab>R
+  menutrans Set\ Target<tab>mt						设置目标<tab>mt
+  menutrans Tag<tab>mT								生成标记文件(Tags)<tab>mT
+  menutrans Zip/Unzip/Compress/Uncompress<tab>mz	压缩/解压缩<tab>mz
+  " }}}
+  menutrans Obtain\ File<tab>O				获取文件<tab>O
+  menutrans Style							显示风格
+  " Netrw.Style menuitems {{{2
+  menutrans Listing							列表形式
+  " Netrw.Style.Listing menuitems {{{3
+  menutrans thin<tab>i	紧凑<thin)<tab>i
+  menutrans long<tab>i	详细(long)<tab>i
+  menutrans wide<tab>i	多列(wide)<tab>i
+  menutrans tree<tab>i	树状(tree)<tab>i
+  " }}}
+  menutrans Normal-Hide-Show				显示/隐藏
+  " Netrw.Style.Normal-Hide_show menuitems {{{3
+  menutrans Show\ All<tab>a		显示全部
+  menutrans Normal<tab>a		不显示隐藏文件
+  menutrans Hidden\ Only<tab>a	只显示隐藏文件
+  " }}}
+  menutrans Reverse\ Sorting\ Order<tab>r	升序/降序<tab>r
+  menutrans Sorting\ Method					排序方式
+  " Netrw.Style.Sorting Method menuitems {{{3
+  menutrans Name<tab>s		文件名<tab>s
+  menutrans Time<tab>s  	修改时间<tab>s
+  menutrans Size<tab>s  	大小<tab>s
+  menutrans Exten<tab>s		扩展名<tab>s
+  " }}}
+  " }}}
+  menutrans Rename\ File/Directory<tab>R	重命名文件/目录<tab>R
+  menutrans Set\ Current\ Directory<tab>c	设置\ Vim\ 工作目录<tab>c
+  menutrans Targets							目标
+" endif
+" }}}
 
 let &cpo = s:keepcpo
 unlet s:keepcpo
+
+" vim: set ts=4 sw=4 noet fdm=marker fdc=4 :