diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index ab8d35c..4582217 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -224,1197 +224,1189 @@
 " List of all options, organized by function.
 " The text should be sufficient to know what the option is used for.
 
-call <SID>Header("important")
-call append("$", "compatible\tbehave very Vi compatible (not advisable)")
+call <SID>Header(gettext("important"))
+call <SID>AddOption("compatible", gettext("behave very Vi compatible (not advisable)"))
 call <SID>BinOptionG("cp", &cp)
-call append("$", "cpoptions\tlist of flags to specify Vi compatibility")
+call <SID>AddOption("cpoptions", gettext("list of flags to specify Vi compatibility"))
 call <SID>OptionG("cpo", &cpo)
-call append("$", "insertmode\tuse Insert mode as the default mode")
+call <SID>AddOption("insertmode", gettext("use Insert mode as the default mode"))
 call <SID>BinOptionG("im", &im)
-call append("$", "paste\tpaste mode, insert typed text literally")
+call <SID>AddOption("paste", gettext("paste mode, insert typed text literally"))
 call <SID>BinOptionG("paste", &paste)
-call append("$", "pastetoggle\tkey sequence to toggle paste mode")
+call <SID>AddOption("pastetoggle", gettext("key sequence to toggle paste mode"))
 if &pt =~ "\x80"
   call append("$", " \tset pt=" . <SID>PTvalue())
 else
   call <SID>OptionG("pt", &pt)
 endif
-call append("$", "runtimepath\tlist of directories used for runtime files and plugins")
+call <SID>AddOption("runtimepath", gettext("list of directories used for runtime files and plugins"))
 call <SID>OptionG("rtp", &rtp)
-call append("$", "packpath\tlist of directories used for plugin packages")
+call <SID>AddOption("packpath", gettext("list of directories used for plugin packages"))
 call <SID>OptionG("pp", &pp)
-call append("$", "helpfile\tname of the main help file")
+call <SID>AddOption("helpfile", gettext("name of the main help file"))
 call <SID>OptionG("hf", &hf)
 
 
-call <SID>Header("moving around, searching and patterns")
-call append("$", "whichwrap\tlist of flags specifying which commands wrap to another line")
+call <SID>Header(gettext("moving around, searching and patterns"))
+call <SID>AddOption("whichwrap", gettext("list of flags specifying which commands wrap to another line"))
 call <SID>OptionG("ww", &ww)
 call <SID>AddOption("startofline", gettext("many jump commands move the cursor to the first non-blank\ncharacter of a line"))
 call <SID>BinOptionG("sol", &sol)
-call append("$", "paragraphs\tnroff macro names that separate paragraphs")
+call <SID>AddOption("paragraphs", gettext("nroff macro names that separate paragraphs"))
 call <SID>OptionG("para", &para)
-call append("$", "sections\tnroff macro names that separate sections")
+call <SID>AddOption("sections", gettext("nroff macro names that separate sections"))
 call <SID>OptionG("sect", &sect)
-call append("$", "path\tlist of directory names used for file searching")
-call append("$", "\t(global or local to buffer)")
+call <SID>AddOption("path", gettext("list of directory names used for file searching"))
+call append("$", gettext("\t(global or local to buffer)"))
 call <SID>OptionG("pa", &pa)
-call append("$", "cdpath\tlist of directory names used for :cd")
+call <SID>AddOption("cdpath", gettext("list of directory names used for :cd"))
 call <SID>OptionG("cd", &cd)
 if exists("+autochdir")
-  call append("$", "autochdir\tchange to directory of file in buffer")
+  call <SID>AddOption("autochdir", gettext("change to directory of file in buffer"))
   call <SID>BinOptionG("acd", &acd)
 endif
-call append("$", "wrapscan\tsearch commands wrap around the end of the buffer")
+call <SID>AddOption("wrapscan", gettext("search commands wrap around the end of the buffer"))
 call <SID>BinOptionG("ws", &ws)
-call append("$", "incsearch\tshow match for partly typed search command")
+call <SID>AddOption("incsearch", gettext("show match for partly typed search command"))
 call <SID>BinOptionG("is", &is)
-call append("$", "magic\tchange the way backslashes are used in search patterns")
+call <SID>AddOption("magic", gettext("change the way backslashes are used in search patterns"))
 call <SID>BinOptionG("magic", &magic)
-call append("$", "regexpengine\tselect the default regexp engine used")
+call <SID>AddOption("regexpengine", gettext("select the default regexp engine used"))
 call <SID>OptionG("re", &re)
-call append("$", "ignorecase\tignore case when using a search pattern")
+call <SID>AddOption("ignorecase", gettext("ignore case when using a search pattern"))
 call <SID>BinOptionG("ic", &ic)
-call append("$", "smartcase\toverride 'ignorecase' when pattern has upper case characters")
+call <SID>AddOption("smartcase", gettext("override 'ignorecase' when pattern has upper case characters"))
 call <SID>BinOptionG("scs", &scs)
-call append("$", "casemap\twhat method to use for changing case of letters")
+call <SID>AddOption("casemap", gettext("what method to use for changing case of letters"))
 call <SID>OptionG("cmp", &cmp)
-call append("$", "maxmempattern\tmaximum amount of memory in Kbyte used for pattern matching")
+call <SID>AddOption("maxmempattern", gettext("maximum amount of memory in Kbyte used for pattern matching"))
 call append("$", " \tset mmp=" . &mmp)
-call append("$", "define\tpattern for a macro definition line")
-call append("$", "\t(global or local to buffer)")
+call <SID>AddOption("define", gettext("pattern for a macro definition line"))
+call append("$", gettext("\t(global or local to buffer)"))
 call <SID>OptionG("def", &def)
 if has("find_in_path")
-  call append("$", "include\tpattern for an include-file line")
+  call <SID>AddOption("include", gettext("pattern for an include-file line"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("inc")
-  call append("$", "includeexpr\texpression used to transform an include line to a file name")
+  call <SID>AddOption("includeexpr", gettext("expression used to transform an include line to a file name"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("inex")
 endif
 
 
-call <SID>Header("tags")
+call <SID>Header(gettext("tags"))
 call <SID>AddOption("tagbsearch", gettext("use binary searching in tags files"))
 call <SID>BinOptionG("tbs", &tbs)
-call append("$", "taglength\tnumber of significant characters in a tag name or zero")
+call <SID>AddOption("taglength", gettext("number of significant characters in a tag name or zero"))
 call append("$", " \tset tl=" . &tl)
-call append("$", "tags\tlist of file names to search for tags")
-call append("$", "\t(global or local to buffer)")
+call <SID>AddOption("tags", gettext("list of file names to search for tags"))
+call append("$", gettext("\t(global or local to buffer)"))
 call <SID>OptionG("tag", &tag)
 call <SID>AddOption("tagcase", gettext("how to handle case when searching in tags files:\n\"followic\" to follow 'ignorecase', \"ignore\" or \"match\""))
 call append("$", "\t(global or local to buffer)")
 call <SID>OptionG("tc", &tc)
-call append("$", "tagrelative\tfile names in a tags file are relative to the tags file")
+call <SID>AddOption("tagrelative", gettext("file names in a tags file are relative to the tags file"))
 call <SID>BinOptionG("tr", &tr)
-call append("$", "tagstack\ta :tag command will use the tagstack")
+call <SID>AddOption("tagstack", gettext("a :tag command will use the tagstack"))
 call <SID>BinOptionG("tgst", &tgst)
-call append("$", "showfulltag\twhen completing tags in Insert mode show more info")
+call <SID>AddOption("showfulltag", gettext("when completing tags in Insert mode show more info"))
 call <SID>BinOptionG("sft", &sft)
 if has("eval")
-  call append("$", "tagfunc\ta function to be used to perform tag searches")
+  call <SID>AddOption("tagfunc", gettext("a function to be used to perform tag searches"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("tfu")
 endif
 if has("cscope")
-  call append("$", "cscopeprg\tcommand for executing cscope")
+  call <SID>AddOption("cscopeprg", gettext("command for executing cscope"))
   call <SID>OptionG("csprg", &csprg)
-  call append("$", "cscopetag\tuse cscope for tag commands")
+  call <SID>AddOption("cscopetag", gettext("use cscope for tag commands"))
   call <SID>BinOptionG("cst", &cst)
-  call append("$", "cscopetagorder\t0 or 1; the order in which \":cstag\" performs a search")
+  call <SID>AddOption("cscopetagorder", gettext("0 or 1; the order in which \":cstag\" performs a search"))
   call append("$", " \tset csto=" . &csto)
-  call append("$", "cscopeverbose\tgive messages when adding a cscope database")
+  call <SID>AddOption("cscopeverbose", gettext("give messages when adding a cscope database"))
   call <SID>BinOptionG("csverb", &csverb)
-  call append("$", "cscopepathcomp\thow many components of the path to show")
+  call <SID>AddOption("cscopepathcomp", gettext("how many components of the path to show"))
   call append("$", " \tset cspc=" . &cspc)
-  call append("$", "cscopequickfix\twhen to open a quickfix window for cscope")
+  call <SID>AddOption("cscopequickfix", gettext("when to open a quickfix window for cscope"))
   call <SID>OptionG("csqf", &csqf)
-  call append("$", "cscoperelative\tfile names in a cscope file are relative to that file")
+  call <SID>AddOption("cscoperelative", gettext("file names in a cscope file are relative to that file"))
   call <SID>BinOptionG("csre", &csre)
 endif
 
 
-call <SID>Header("displaying text")
-call append("$", "scroll\tnumber of lines to scroll for CTRL-U and CTRL-D")
+call <SID>Header(gettext("displaying text"))
+call <SID>AddOption("scroll", gettext("number of lines to scroll for CTRL-U and CTRL-D"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>OptionL("scr")
-call append("$", "scrolloff\tnumber of screen lines to show around the cursor")
+call <SID>AddOption("scrolloff", gettext("number of screen lines to show around the cursor"))
 call append("$", " \tset so=" . &so)
-call append("$", "wrap\tlong lines wrap")
+call <SID>AddOption("wrap", gettext("long lines wrap"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("wrap")
-call append("$", "linebreak\twrap long lines at a character in 'breakat'")
+call <SID>AddOption("linebreak", gettext("wrap long lines at a character in 'breakat'"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("lbr")
-call append("$", "breakindent\tpreserve indentation in wrapped text")
+call <SID>AddOption("breakindent", gettext("preserve indentation in wrapped text"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("bri")
-call append("$", "breakindentopt\tadjust breakindent behaviour")
+call <SID>AddOption("breakindentopt", gettext("adjust breakindent behaviour"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>OptionL("briopt")
-call append("$", "breakat\twhich characters might cause a line break")
+call <SID>AddOption("breakat", gettext("which characters might cause a line break"))
 call <SID>OptionG("brk", &brk)
-call append("$", "showbreak\tstring to put before wrapped screen lines")
+call <SID>AddOption("showbreak", gettext("string to put before wrapped screen lines"))
 call <SID>OptionG("sbr", &sbr)
-call append("$", "sidescroll\tminimal number of columns to scroll horizontally")
+call <SID>AddOption("sidescroll", gettext("minimal number of columns to scroll horizontally"))
 call append("$", " \tset ss=" . &ss)
-call append("$", "sidescrolloff\tminimal number of columns to keep left and right of the cursor")
+call <SID>AddOption("sidescrolloff", gettext("minimal number of columns to keep left and right of the cursor"))
 call append("$", " \tset siso=" . &siso)
-call append("$", "display\tinclude \"lastline\" to show the last line even if it doesn't fit")
-call append("$", "\tinclude \"uhex\" to show unprintable characters as a hex number")
+call <SID>AddOption("display", gettext("include \"lastline\" to show the last line even if it doesn't fit\ninclude \"uhex\" to show unprintable characters as a hex number"))
 call <SID>OptionG("dy", &dy)
-call append("$", "fillchars\tcharacters to use for the status line, folds and filler lines")
+call <SID>AddOption("fillchars", gettext("characters to use for the status line, folds and filler lines"))
 call <SID>OptionG("fcs", &fcs)
-call append("$", "cmdheight\tnumber of lines used for the command-line")
+call <SID>AddOption("cmdheight", gettext("number of lines used for the command-line"))
 call append("$", " \tset ch=" . &ch)
-call append("$", "columns\twidth of the display")
+call <SID>AddOption("columns", gettext("width of the display"))
 call append("$", " \tset co=" . &co)
-call append("$", "lines\tnumber of lines in the display")
+call <SID>AddOption("lines", gettext("number of lines in the display"))
 call append("$", " \tset lines=" . &lines)
-call append("$", "window\tnumber of lines to scroll for CTRL-F and CTRL-B")
+call <SID>AddOption("window", gettext("number of lines to scroll for CTRL-F and CTRL-B"))
 call append("$", " \tset window=" . &window)
-call append("$", "lazyredraw\tdon't redraw while executing macros")
+call <SID>AddOption("lazyredraw", gettext("don't redraw while executing macros"))
 call <SID>BinOptionG("lz", &lz)
 if has("reltime")
-  call append("$", "redrawtime\ttimeout for 'hlsearch' and :match highlighting in msec")
+  call <SID>AddOption("redrawtime", gettext("timeout for 'hlsearch' and :match highlighting in msec"))
   call append("$", " \tset rdt=" . &rdt)
 endif
-call append("$", "writedelay\tdelay in msec for each char written to the display")
-call append("$", "\t(for debugging)")
+call <SID>AddOption("writedelay", gettext("delay in msec for each char written to the display\n(for debugging)"))
 call append("$", " \tset wd=" . &wd)
-call append("$", "list\tshow <Tab> as ^I and end-of-line as $")
+call <SID>AddOption("list", gettext("show <Tab> as ^I and end-of-line as $"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("list")
-call append("$", "listchars\tlist of strings used for list mode")
+call <SID>AddOption("listchars", gettext("list of strings used for list mode"))
 call <SID>OptionG("lcs", &lcs)
-call append("$", "number\tshow the line number for each line")
+call <SID>AddOption("number", gettext("show the line number for each line"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("nu")
-call append("$", "relativenumber\tshow the relative line number for each line")
+call <SID>AddOption("relativenumber", gettext("show the relative line number for each line"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("rnu")
 if has("linebreak")
-  call append("$", "numberwidth\tnumber of columns to use for the line number")
+  call <SID>AddOption("numberwidth", gettext("number of columns to use for the line number"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("nuw")
 endif
 if has("conceal")
-  call append("$", "conceallevel\tcontrols whether concealable text is hidden")
+  call <SID>AddOption("conceallevel", gettext("controls whether concealable text is hidden"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("cole")
-  call append("$", "concealcursor\tmodes in which text in the cursor line can be concealed")
+  call <SID>AddOption("concealcursor", gettext("modes in which text in the cursor line can be concealed"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("cocu")
 endif
 
 
-call <SID>Header("syntax, highlighting and spelling")
-call append("$", "background\t\"dark\" or \"light\"; the background color brightness")
+call <SID>Header(gettext("syntax, highlighting and spelling"))
+call <SID>AddOption("background", gettext("\"dark\" or \"light\"; the background color brightness"))
 call <SID>OptionG("bg", &bg)
-call append("$", "filetype\ttype of file; triggers the FileType event when set")
+call <SID>AddOption("filetype", gettext("type of file; triggers the FileType event when set"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("ft")
 if has("syntax")
-  call append("$", "syntax\tname of syntax highlighting used")
+  call <SID>AddOption("syntax", gettext("name of syntax highlighting used"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("syn")
-  call append("$", "synmaxcol\tmaximum column to look for syntax items")
+  call <SID>AddOption("synmaxcol", gettext("maximum column to look for syntax items"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("smc")
 endif
-call append("$", "highlight\twhich highlighting to use for various occasions")
+call <SID>AddOption("highlight", gettext("which highlighting to use for various occasions"))
 call <SID>OptionG("hl", &hl)
-call append("$", "hlsearch\thighlight all matches for the last used search pattern")
+call <SID>AddOption("hlsearch", gettext("highlight all matches for the last used search pattern"))
 call <SID>BinOptionG("hls", &hls)
-call append("$", "wincolor\thighlight group to use for the window")
+call <SID>AddOption("wincolor", gettext("highlight group to use for the window"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>OptionL("wcr")
 if has("termguicolors")
-  call append("$", "termguicolors\tuse GUI colors for the terminal")
+  call <SID>AddOption("termguicolors", gettext("use GUI colors for the terminal"))
   call <SID>BinOptionG("tgc", &tgc)
 endif
 if has("syntax")
-  call append("$", "cursorcolumn\thighlight the screen column of the cursor")
+  call <SID>AddOption("cursorcolumn", gettext("highlight the screen column of the cursor"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("cuc")
-  call append("$", "cursorline\thighlight the screen line of the cursor")
+  call <SID>AddOption("cursorline", gettext("highlight the screen line of the cursor"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("cul")
-  call append("$", "cursorlineopt\tspecifies which area 'cursorline' highlights")
+  call <SID>AddOption("cursorlineopt", gettext("specifies which area 'cursorline' highlights"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("culopt")
-  call append("$", "colorcolumn\tcolumns to highlight")
+  call <SID>AddOption("colorcolumn", gettext("columns to highlight"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("cc")
-  call append("$", "spell\thighlight spelling mistakes")
+  call <SID>AddOption("spell", gettext("highlight spelling mistakes"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("spell")
-  call append("$", "spelllang\tlist of accepted languages")
+  call <SID>AddOption("spelllang", gettext("list of accepted languages"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("spl")
-  call append("$", "spellfile\tfile that \"zg\" adds good words to")
+  call <SID>AddOption("spellfile", gettext("file that \"zg\" adds good words to"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("spf")
-  call append("$", "spellcapcheck\tpattern to locate the end of a sentence")
+  call <SID>AddOption("spellcapcheck", gettext("pattern to locate the end of a sentence"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("spc")
-  call append("$", "spelloptions\tflags to change how spell checking works")
+  call <SID>AddOption("spelloptions", gettext("flags to change how spell checking works"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("spo")
-  call append("$", "spellsuggest\tmethods used to suggest corrections")
+  call <SID>AddOption("spellsuggest", gettext("methods used to suggest corrections"))
   call <SID>OptionG("sps", &sps)
-  call append("$", "mkspellmem\tamount of memory used by :mkspell before compressing")
+  call <SID>AddOption("mkspellmem", gettext("amount of memory used by :mkspell before compressing"))
   call <SID>OptionG("msm", &msm)
 endif
 
 
-call <SID>Header("multiple windows")
-call append("$", "laststatus\t0, 1 or 2; when to use a status line for the last window")
+call <SID>Header(gettext("multiple windows"))
+call <SID>AddOption("laststatus", gettext("0, 1 or 2; when to use a status line for the last window"))
 call append("$", " \tset ls=" . &ls)
 if has("statusline")
-  call append("$", "statusline\talternate format to be used for a status line")
+  call <SID>AddOption("statusline", gettext("alternate format to be used for a status line"))
   call <SID>OptionG("stl", &stl)
 endif
-call append("$", "equalalways\tmake all windows the same size when adding/removing windows")
+call <SID>AddOption("equalalways", gettext("make all windows the same size when adding/removing windows"))
 call <SID>BinOptionG("ea", &ea)
-call append("$", "eadirection\tin which direction 'equalalways' works: \"ver\", \"hor\" or \"both\"")
+call <SID>AddOption("eadirection", gettext("in which direction 'equalalways' works: \"ver\", \"hor\" or \"both\""))
 call <SID>OptionG("ead", &ead)
-call append("$", "winheight\tminimal number of lines used for the current window")
+call <SID>AddOption("winheight", gettext("minimal number of lines used for the current window"))
 call append("$", " \tset wh=" . &wh)
-call append("$", "winminheight\tminimal number of lines used for any window")
+call <SID>AddOption("winminheight", gettext("minimal number of lines used for any window"))
 call append("$", " \tset wmh=" . &wmh)
-call append("$", "winfixheight\tkeep the height of the window")
+call <SID>AddOption("winfixheight", gettext("keep the height of the window"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("wfh")
-call append("$", "winfixwidth\tkeep the width of the window")
+call <SID>AddOption("winfixwidth", gettext("keep the width of the window"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("wfw")
-call append("$", "winwidth\tminimal number of columns used for the current window")
+call <SID>AddOption("winwidth", gettext("minimal number of columns used for the current window"))
 call append("$", " \tset wiw=" . &wiw)
-call append("$", "winminwidth\tminimal number of columns used for any window")
+call <SID>AddOption("winminwidth", gettext("minimal number of columns used for any window"))
 call append("$", " \tset wmw=" . &wmw)
-call append("$", "helpheight\tinitial height of the help window")
+call <SID>AddOption("helpheight", gettext("initial height of the help window"))
 call append("$", " \tset hh=" . &hh)
 if has("quickfix")
-  call append("$", "previewpopup\tuse a popup window for preview")
+  call <SID>AddOption("previewpopup", gettext("use a popup window for preview"))
   call append("$", " \tset pvp=" . &pvp)
-  call append("$", "previewheight\tdefault height for the preview window")
+  call <SID>AddOption("previewheight", gettext("default height for the preview window"))
   call append("$", " \tset pvh=" . &pvh)
-  call append("$", "previewwindow\tidentifies the preview window")
+  call <SID>AddOption("previewwindow", gettext("identifies the preview window"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("pvw")
 endif
-call append("$", "hidden\tdon't unload a buffer when no longer shown in a window")
+call <SID>AddOption("hidden", gettext("don't unload a buffer when no longer shown in a window"))
 call <SID>BinOptionG("hid", &hid)
-call append("$", "switchbuf\t\"useopen\" and/or \"split\"; which window to use when jumping")
-call append("$", "\tto a buffer")
+call <SID>AddOption("switchbuf", gettext("\"useopen\" and/or \"split\"; which window to use when jumping\nto a buffer"))
 call <SID>OptionG("swb", &swb)
-call append("$", "splitbelow\ta new window is put below the current one")
+call <SID>AddOption("splitbelow", gettext("a new window is put below the current one"))
 call <SID>BinOptionG("sb", &sb)
-call append("$", "splitright\ta new window is put right of the current one")
+call <SID>AddOption("splitright", gettext("a new window is put right of the current one"))
 call <SID>BinOptionG("spr", &spr)
-call append("$", "scrollbind\tthis window scrolls together with other bound windows")
+call <SID>AddOption("scrollbind", gettext("this window scrolls together with other bound windows"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("scb")
-call append("$", "scrollopt\t\"ver\", \"hor\" and/or \"jump\"; list of options for 'scrollbind'")
+call <SID>AddOption("scrollopt", gettext("\"ver\", \"hor\" and/or \"jump\"; list of options for 'scrollbind'"))
 call <SID>OptionG("sbo", &sbo)
-call append("$", "cursorbind\tthis window's cursor moves together with other bound windows")
+call <SID>AddOption("cursorbind", gettext("this window's cursor moves together with other bound windows"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>BinOptionL("crb")
 if has("terminal")
-  call append("$", "termwinsize\tsize of a terminal window")
+  call <SID>AddOption("termwinsize", gettext("size of a terminal window"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("tws")
-  call append("$", "termwinkey\tkey that precedes Vim commands in a terminal window")
+  call <SID>AddOption("termwinkey", gettext("key that precedes Vim commands in a terminal window"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("twk")
-  call append("$", "termwinscroll\tmax number of lines to keep for scrollback in a terminal window")
+  call <SID>AddOption("termwinscroll", gettext("max number of lines to keep for scrollback in a terminal window"))
   call append("$", "\t" .. s:local_to_window)
+  call <SID>OptionL("twsl")
   if has('win32')
-    call append("$", "termwintype\ttype of pty to use for a terminal window")
+    call <SID>AddOption("termwintype", gettext("type of pty to use for a terminal window"))
     call <SID>OptionG("twt", &twt)
   endif
-  call <SID>OptionL("twsl")
   if exists("&winptydll")
-    call append("$", "winptydll\tname of the winpty dynamic library")
+    call <SID>AddOption("winptydll", gettext("name of the winpty dynamic library"))
     call <SID>OptionG("winptydll", &winptydll)
   endif
 endif
 
 
-call <SID>Header("multiple tab pages")
-call append("$", "showtabline\t0, 1 or 2; when to use a tab pages line")
+call <SID>Header(gettext("multiple tab pages"))
+call <SID>AddOption("showtabline", gettext("0, 1 or 2; when to use a tab pages line"))
 call append("$", " \tset stal=" . &stal)
-call append("$", "tabpagemax\tmaximum number of tab pages to open for -p and \"tab all\"")
+call <SID>AddOption("tabpagemax", gettext("maximum number of tab pages to open for -p and \"tab all\""))
 call append("$", " \tset tpm=" . &tpm)
-call append("$", "tabline\tcustom tab pages line")
+call <SID>AddOption("tabline", gettext("custom tab pages line"))
 call <SID>OptionG("tal", &tal)
 if has("gui")
-  call append("$", "guitablabel\tcustom tab page label for the GUI")
+  call <SID>AddOption("guitablabel", gettext("custom tab page label for the GUI"))
   call <SID>OptionG("gtl", &gtl)
-  call append("$", "guitabtooltip\tcustom tab page tooltip for the GUI")
+  call <SID>AddOption("guitabtooltip", gettext("custom tab page tooltip for the GUI"))
   call <SID>OptionG("gtt", &gtt)
 endif
 
 
-call <SID>Header("terminal")
-call append("$", "term\tname of the used terminal")
+call <SID>Header(gettext("terminal"))
+call <SID>AddOption("term", gettext("name of the used terminal"))
 call <SID>OptionG("term", &term)
-call append("$", "ttytype\talias for 'term'")
+call <SID>AddOption("ttytype", gettext("alias for 'term'"))
 call <SID>OptionG("tty", &tty)
-call append("$", "ttybuiltin\tcheck built-in termcaps first")
+call <SID>AddOption("ttybuiltin", gettext("check built-in termcaps first"))
 call <SID>BinOptionG("tbi", &tbi)
-call append("$", "ttyfast\tterminal connection is fast")
+call <SID>AddOption("ttyfast", gettext("terminal connection is fast"))
 call <SID>BinOptionG("tf", &tf)
-call append("$", "weirdinvert\tterminal that requires extra redrawing")
+call <SID>AddOption("weirdinvert", gettext("terminal that requires extra redrawing"))
 call <SID>BinOptionG("wiv", &wiv)
-call append("$", "esckeys\trecognize keys that start with <Esc> in Insert mode")
+call <SID>AddOption("esckeys", gettext("recognize keys that start with <Esc> in Insert mode"))
 call <SID>BinOptionG("ek", &ek)
-call append("$", "scrolljump\tminimal number of lines to scroll at a time")
+call <SID>AddOption("scrolljump", gettext("minimal number of lines to scroll at a time"))
 call append("$", " \tset sj=" . &sj)
-call append("$", "ttyscroll\tmaximum number of lines to use scrolling instead of redrawing")
+call <SID>AddOption("ttyscroll", gettext("maximum number of lines to use scrolling instead of redrawing"))
 call append("$", " \tset tsl=" . &tsl)
 if has("gui") || has("win32")
-  call append("$", "guicursor\tspecifies what the cursor looks like in different modes")
+  call <SID>AddOption("guicursor", gettext("specifies what the cursor looks like in different modes"))
   call <SID>OptionG("gcr", &gcr)
 endif
 if has("title")
   let &title = s:old_title
-  call append("$", "title\tshow info in the window title")
+  call <SID>AddOption("title", gettext("show info in the window title"))
   call <SID>BinOptionG("title", &title)
   set notitle
-  call append("$", "titlelen\tpercentage of 'columns' used for the window title")
+  call <SID>AddOption("titlelen", gettext("percentage of 'columns' used for the window title"))
   call append("$", " \tset titlelen=" . &titlelen)
-  call append("$", "titlestring\twhen not empty, string to be used for the window title")
+  call <SID>AddOption("titlestring", gettext("when not empty, string to be used for the window title"))
   call <SID>OptionG("titlestring", &titlestring)
-  call append("$", "titleold\tstring to restore the title to when exiting Vim")
+  call <SID>AddOption("titleold", gettext("string to restore the title to when exiting Vim"))
   call <SID>OptionG("titleold", &titleold)
   let &icon = s:old_icon
-  call append("$", "icon\tset the text of the icon for this window")
+  call <SID>AddOption("icon", gettext("set the text of the icon for this window"))
   call <SID>BinOptionG("icon", &icon)
   set noicon
-  call append("$", "iconstring\twhen not empty, text for the icon of this window")
+  call <SID>AddOption("iconstring", gettext("when not empty, text for the icon of this window"))
   call <SID>OptionG("iconstring", &iconstring)
 endif
 if has("win32")
-  call append("$", "restorescreen\trestore the screen contents when exiting Vim")
+  call <SID>AddOption("restorescreen", gettext("restore the screen contents when exiting Vim"))
   call <SID>BinOptionG("rs", &rs)
 endif
 
 
-call <SID>Header("using the mouse")
-call append("$", "mouse\tlist of flags for using the mouse")
+call <SID>Header(gettext("using the mouse"))
+call <SID>AddOption("mouse", gettext("list of flags for using the mouse"))
 call <SID>OptionG("mouse", &mouse)
 if has("gui")
-  call append("$", "mousefocus\tthe window with the mouse pointer becomes the current one")
+  call <SID>AddOption("mousefocus", gettext("the window with the mouse pointer becomes the current one"))
   call <SID>BinOptionG("mousef", &mousef)
 endif
-call append("$", "scrollfocus\tthe window with the mouse pointer scrolls with the mouse wheel")
+call <SID>AddOption("scrollfocus", gettext("the window with the mouse pointer scrolls with the mouse wheel"))
 call <SID>BinOptionG("scf", &scf)
 if has("gui")
-  call append("$", "mousehide\thide the mouse pointer while typing")
+  call <SID>AddOption("mousehide", gettext("hide the mouse pointer while typing"))
   call <SID>BinOptionG("mh", &mh)
 endif
-call append("$", "mousemodel\t\"extend\", \"popup\" or \"popup_setpos\"; what the right")
-call append("$", "\tmouse button is used for")
+call <SID>AddOption("mousemodel", gettext("\"extend\", \"popup\" or \"popup_setpos\"; what the right\nmouse button is used for"))
 call <SID>OptionG("mousem", &mousem)
-call append("$", "mousetime\tmaximum time in msec to recognize a double-click")
+call <SID>AddOption("mousetime", gettext("maximum time in msec to recognize a double-click"))
 call append("$", " \tset mouset=" . &mouset)
-call append("$", "ttymouse\t\"xterm\", \"xterm2\", \"dec\" or \"netterm\"; type of mouse")
+call <SID>AddOption("ttymouse", gettext("\"xterm\", \"xterm2\", \"dec\" or \"netterm\"; type of mouse"))
 call <SID>OptionG("ttym", &ttym)
 if has("mouseshape")
-  call append("$", "mouseshape\twhat the mouse pointer looks like in different modes")
+  call <SID>AddOption("mouseshape", gettext("what the mouse pointer looks like in different modes"))
   call <SID>OptionG("mouses", &mouses)
 endif
 
 
 if has("gui")
-  call <SID>Header("GUI")
-  call append("$", "guifont\tlist of font names to be used in the GUI")
+  call <SID>Header(gettext("GUI"))
+  call <SID>AddOption("guifont", gettext("list of font names to be used in the GUI"))
   call <SID>OptionG("gfn", &gfn)
   if has("xfontset")
-    call append("$", "guifontset\tpair of fonts to be used, for multibyte editing")
+    call <SID>AddOption("guifontset", gettext("pair of fonts to be used, for multibyte editing"))
     call <SID>OptionG("gfs", &gfs)
   endif
-  call append("$", "guifontwide\tlist of font names to be used for double-wide characters")
+  call <SID>AddOption("guifontwide", gettext("list of font names to be used for double-wide characters"))
   call <SID>OptionG("gfw", &gfw)
   if has("mac")
-    call append("$", "antialias\tuse smooth, antialiased fonts")
+    call <SID>AddOption("antialias", gettext("use smooth, antialiased fonts"))
     call <SID>BinOptionG("anti", &anti)
   endif
-  call append("$", "guioptions\tlist of flags that specify how the GUI works")
+  call <SID>AddOption("guioptions", gettext("list of flags that specify how the GUI works"))
   call <SID>OptionG("go", &go)
   if has("gui_gtk")
-    call append("$", "toolbar\t\"icons\", \"text\" and/or \"tooltips\"; how to show the toolbar")
+    call <SID>AddOption("toolbar", gettext("\"icons\", \"text\" and/or \"tooltips\"; how to show the toolbar"))
     call <SID>OptionG("tb", &tb)
     if has("gui_gtk2")
-      call append("$", "toolbariconsize\tsize of toolbar icons")
+      call <SID>AddOption("toolbariconsize", gettext("size of toolbar icons"))
       call <SID>OptionG("tbis", &tbis)
     endif
-    call append("$", "guiheadroom\troom (in pixels) left above/below the window")
+    call <SID>AddOption("guiheadroom", gettext("room (in pixels) left above/below the window"))
     call append("$", " \tset ghr=" . &ghr)
   endif
   if has("directx")
-    call append("$", "renderoptions\toptions for text rendering")
+    call <SID>AddOption("renderoptions", gettext("options for text rendering"))
     call <SID>OptionG("rop", &rop)
   endif
-  call append("$", "guipty\tuse a pseudo-tty for I/O to external commands")
+  call <SID>AddOption("guipty", gettext("use a pseudo-tty for I/O to external commands"))
   call <SID>BinOptionG("guipty", &guipty)
   if has("browse")
-    call append("$", "browsedir\t\"last\", \"buffer\" or \"current\": which directory used for the file browser")
+    call <SID>AddOption("browsedir", gettext("\"last\", \"buffer\" or \"current\": which directory used for the file browser"))
     call <SID>OptionG("bsdir", &bsdir)
   endif
   if has("multi_lang")
-    call append("$", "langmenu\tlanguage to be used for the menus")
+    call <SID>AddOption("langmenu", gettext("language to be used for the menus"))
     call <SID>OptionG("langmenu", &lm)
   endif
-  call append("$", "menuitems\tmaximum number of items in one menu")
+  call <SID>AddOption("menuitems", gettext("maximum number of items in one menu"))
   call append("$", " \tset mis=" . &mis)
   if has("winaltkeys")
-    call append("$", "winaltkeys\t\"no\", \"yes\" or \"menu\"; how to use the ALT key")
+    call <SID>AddOption("winaltkeys", gettext("\"no\", \"yes\" or \"menu\"; how to use the ALT key"))
     call <SID>OptionG("wak", &wak)
   endif
-  call append("$", "linespace\tnumber of pixel lines to use between characters")
+  call <SID>AddOption("linespace", gettext("number of pixel lines to use between characters"))
   call append("$", " \tset lsp=" . &lsp)
   if has("balloon_eval") || has("balloon_eval_term")
-    call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up")
+    call <SID>AddOption("balloondelay", gettext("delay in milliseconds before a balloon may pop up"))
     call append("$", " \tset bdlay=" . &bdlay)
     if has("balloon_eval")
-      call append("$", "ballooneval\tuse balloon evaluation in the GUI")
+      call <SID>AddOption("ballooneval", gettext("use balloon evaluation in the GUI"))
       call <SID>BinOptionG("beval", &beval)
     endif
     if has("balloon_eval_term")
-      call append("$", "balloonevalterm\tuse balloon evaluation in the terminal")
+      call <SID>AddOption("balloonevalterm", gettext("use balloon evaluation in the terminal"))
       call <SID>BinOptionG("bevalterm", &beval)
     endif
     if has("eval")
-      call append("$", "balloonexpr\texpression to show in balloon eval")
+      call <SID>AddOption("balloonexpr", gettext("expression to show in balloon eval"))
       call append("$", " \tset bexpr=" . &bexpr)
     endif
   endif
   if exists("+macatsui")
-    call append("$", "macatsui\tuse ATSUI text drawing; disable to avoid display problems")
+    call <SID>AddOption("macatsui", gettext("use ATSUI text drawing; disable to avoid display problems"))
     call <SID>OptionG("macatsui", &macatsui)
   endif
 endif
 
 if has("printer")
-  call <SID>Header("printing")
-  call append("$", "printoptions\tlist of items that control the format of :hardcopy output")
+  call <SID>Header(gettext("printing"))
+  call <SID>AddOption("printoptions", gettext("list of items that control the format of :hardcopy output"))
   call <SID>OptionG("popt", &popt)
-  call append("$", "printdevice\tname of the printer to be used for :hardcopy")
+  call <SID>AddOption("printdevice", gettext("name of the printer to be used for :hardcopy"))
   call <SID>OptionG("pdev", &pdev)
   if has("postscript")
-    call append("$", "printexpr\texpression used to print the PostScript file for :hardcopy")
+    call <SID>AddOption("printexpr", gettext("expression used to print the PostScript file for :hardcopy"))
     call <SID>OptionG("pexpr", &pexpr)
   endif
-  call append("$", "printfont\tname of the font to be used for :hardcopy")
+  call <SID>AddOption("printfont", gettext("name of the font to be used for :hardcopy"))
   call <SID>OptionG("pfn", &pfn)
-  call append("$", "printheader\tformat of the header used for :hardcopy")
+  call <SID>AddOption("printheader", gettext("format of the header used for :hardcopy"))
   call <SID>OptionG("pheader", &pheader)
   if has("postscript")
-    call append("$", "printencoding\tencoding used to print the PostScript file for :hardcopy")
+    call <SID>AddOption("printencoding", gettext("encoding used to print the PostScript file for :hardcopy"))
     call <SID>OptionG("penc", &penc)
   endif
-  call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy")
+  call <SID>AddOption("printmbcharset", gettext("the CJK character set to be used for CJK output from :hardcopy"))
   call <SID>OptionG("pmbcs", &pmbcs)
-  call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy")
+  call <SID>AddOption("printmbfont", gettext("list of font names to be used for CJK output from :hardcopy"))
   call <SID>OptionG("pmbfn", &pmbfn)
 endif
 
-call <SID>Header("messages and info")
-call append("$", "terse\tadd 's' flag in 'shortmess' (don't show search message)")
+call <SID>Header(gettext("messages and info"))
+call <SID>AddOption("terse", gettext("add 's' flag in 'shortmess' (don't show search message)"))
 call <SID>BinOptionG("terse", &terse)
-call append("$", "shortmess\tlist of flags to make messages shorter")
+call <SID>AddOption("shortmess", gettext("list of flags to make messages shorter"))
 call <SID>OptionG("shm", &shm)
-call append("$", "showcmd\tshow (partial) command keys in the status line")
+call <SID>AddOption("showcmd", gettext("show (partial) command keys in the status line"))
 let &sc = s:old_sc
 call <SID>BinOptionG("sc", &sc)
 set nosc
-call append("$", "showmode\tdisplay the current mode in the status line")
+call <SID>AddOption("showmode", gettext("display the current mode in the status line"))
 call <SID>BinOptionG("smd", &smd)
-call append("$", "ruler\tshow cursor position below each window")
+call <SID>AddOption("ruler", gettext("show cursor position below each window"))
 let &ru = s:old_ru
 call <SID>BinOptionG("ru", &ru)
 set noru
 if has("statusline")
-  call append("$", "rulerformat\talternate format to be used for the ruler")
+  call <SID>AddOption("rulerformat", gettext("alternate format to be used for the ruler"))
   call <SID>OptionG("ruf", &ruf)
 endif
-call append("$", "report\tthreshold for reporting number of changed lines")
+call <SID>AddOption("report", gettext("threshold for reporting number of changed lines"))
 call append("$", " \tset report=" . &report)
-call append("$", "verbose\tthe higher the more messages are given")
+call <SID>AddOption("verbose", gettext("the higher the more messages are given"))
 call append("$", " \tset vbs=" . &vbs)
-call append("$", "verbosefile\tfile to write messages in")
+call <SID>AddOption("verbosefile", gettext("file to write messages in"))
 call <SID>OptionG("vfile", &vfile)
-call append("$", "more\tpause listings when the screen is full")
+call <SID>AddOption("more", gettext("pause listings when the screen is full"))
 call <SID>BinOptionG("more", &more)
 if has("dialog_con") || has("dialog_gui")
-  call append("$", "confirm\tstart a dialog when a command fails")
+  call <SID>AddOption("confirm", gettext("start a dialog when a command fails"))
   call <SID>BinOptionG("cf", &cf)
 endif
-call append("$", "errorbells\tring the bell for error messages")
+call <SID>AddOption("errorbells", gettext("ring the bell for error messages"))
 call <SID>BinOptionG("eb", &eb)
-call append("$", "visualbell\tuse a visual bell instead of beeping")
+call <SID>AddOption("visualbell", gettext("use a visual bell instead of beeping"))
 call <SID>BinOptionG("vb", &vb)
-call append("$", "belloff\tdo not ring the bell for these reasons")
+call <SID>AddOption("belloff", gettext("do not ring the bell for these reasons"))
 call <SID>OptionG("belloff", &belloff)
 if has("multi_lang")
-  call append("$", "helplang\tlist of preferred languages for finding help")
+  call <SID>AddOption("helplang", gettext("list of preferred languages for finding help"))
   call <SID>OptionG("hlg", &hlg)
 endif
 
 
-call <SID>Header("selecting text")
-call append("$", "selection\t\"old\", \"inclusive\" or \"exclusive\"; how selecting text behaves")
+call <SID>Header(gettext("selecting text"))
+call <SID>AddOption("selection", gettext("\"old\", \"inclusive\" or \"exclusive\"; how selecting text behaves"))
 call <SID>OptionG("sel", &sel)
-call append("$", "selectmode\t\"mouse\", \"key\" and/or \"cmd\"; when to start Select mode")
-call append("$", "\tinstead of Visual mode")
+call <SID>AddOption("selectmode", gettext("\"mouse\", \"key\" and/or \"cmd\"; when to start Select mode\ninstead of Visual mode"))
 call <SID>OptionG("slm", &slm)
 if has("clipboard")
-  call append("$", "clipboard\t\"unnamed\" to use the * register like unnamed register")
-  call append("$", "\t\"autoselect\" to always put selected text on the clipboard")
+  call <SID>AddOption("clipboard", gettext("\"unnamed\" to use the * register like unnamed register\n\"autoselect\" to always put selected text on the clipboard"))
   call <SID>OptionG("cb", &cb)
 endif
-call append("$", "keymodel\t\"startsel\" and/or \"stopsel\"; what special keys can do")
+call <SID>AddOption("keymodel", gettext("\"startsel\" and/or \"stopsel\"; what special keys can do"))
 call <SID>OptionG("km", &km)
 
 
-call <SID>Header("editing text")
-call append("$", "undolevels\tmaximum number of changes that can be undone")
-call append("$", "\t(global or local to buffer)")
+call <SID>Header(gettext("editing text"))
+call <SID>AddOption("undolevels", gettext("maximum number of changes that can be undone"))
+call append("$", gettext("\t(global or local to buffer)"))
 call append("$", " \tset ul=" . s:old_ul)
-call append("$", "undofile\tautomatically save and restore undo history")
+call <SID>AddOption("undofile", gettext("automatically save and restore undo history"))
 call <SID>BinOptionG("udf", &udf)
-call append("$", "undodir\tlist of directories for undo files")
+call <SID>AddOption("undodir", gettext("list of directories for undo files"))
 call <SID>OptionG("udir", &udir)
-call append("$", "undoreload\tmaximum number lines to save for undo on a buffer reload")
+call <SID>AddOption("undoreload", gettext("maximum number lines to save for undo on a buffer reload"))
 call append("$", " \tset ur=" . &ur)
-call append("$", "modified\tchanges have been made and not written to a file")
+call <SID>AddOption("modified", gettext("changes have been made and not written to a file"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("mod")
-call append("$", "readonly\tbuffer is not to be written")
+call <SID>AddOption("readonly", gettext("buffer is not to be written"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("ro")
-call append("$", "modifiable\tchanges to the text are not possible")
+call <SID>AddOption("modifiable", gettext("changes to the text are not possible"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("ma")
-call append("$", "textwidth\tline length above which to break a line")
+call <SID>AddOption("textwidth", gettext("line length above which to break a line"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("tw")
-call append("$", "wrapmargin\tmargin from the right in which to break a line")
+call <SID>AddOption("wrapmargin", gettext("margin from the right in which to break a line"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("wm")
-call append("$", "backspace\tspecifies what <BS>, CTRL-W, etc. can do in Insert mode")
+call <SID>AddOption("backspace", gettext("specifies what <BS>, CTRL-W, etc. can do in Insert mode"))
 call append("$", " \tset bs=" . &bs)
-call append("$", "comments\tdefinition of what comment lines look like")
+call <SID>AddOption("comments", gettext("definition of what comment lines look like"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("com")
-call append("$", "formatoptions\tlist of flags that tell how automatic formatting works")
+call <SID>AddOption("formatoptions", gettext("list of flags that tell how automatic formatting works"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("fo")
-call append("$", "formatlistpat\tpattern to recognize a numbered list")
+call <SID>AddOption("formatlistpat", gettext("pattern to recognize a numbered list"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("flp")
 if has("eval")
-  call append("$", "formatexpr\texpression used for \"gq\" to format lines")
+  call <SID>AddOption("formatexpr", gettext("expression used for \"gq\" to format lines"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("fex")
 endif
 if has("insert_expand")
-  call append("$", "complete\tspecifies how Insert mode completion works for CTRL-N and CTRL-P")
+  call <SID>AddOption("complete", gettext("specifies how Insert mode completion works for CTRL-N and CTRL-P"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("cpt")
-  call append("$", "completeopt\twhether to use a popup menu for Insert mode completion")
+  call <SID>AddOption("completeopt", gettext("whether to use a popup menu for Insert mode completion"))
   call <SID>OptionG("cot", &cot)
   if exists("+completepopup")
-    call append("$", "completepopup\toptions for the Insert mode completion info popup")
+    call <SID>AddOption("completepopup", gettext("options for the Insert mode completion info popup"))
     call <SID>OptionG("cpp", &cpp)
   endif
-  call append("$", "pumheight\tmaximum height of the popup menu")
+  call <SID>AddOption("pumheight", gettext("maximum height of the popup menu"))
   call <SID>OptionG("ph", &ph)
-  call append("$", "pumwidth\tminimum width of the popup menu")
+  call <SID>AddOption("pumwidth", gettext("minimum width of the popup menu"))
   call <SID>OptionG("pw", &pw)
-  call append("$", "completefunc\tuser defined function for Insert mode completion")
+  call <SID>AddOption("completefunc", gettext("user defined function for Insert mode completion"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("cfu")
-  call append("$", "omnifunc\tfunction for filetype-specific Insert mode completion")
+  call <SID>AddOption("omnifunc", gettext("function for filetype-specific Insert mode completion"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("ofu")
-  call append("$", "dictionary\tlist of dictionary files for keyword completion")
-  call append("$", "\t(global or local to buffer)")
+  call <SID>AddOption("dictionary", gettext("list of dictionary files for keyword completion"))
+  call append("$", gettext("\t(global or local to buffer)"))
   call <SID>OptionG("dict", &dict)
-  call append("$", "thesaurus\tlist of thesaurus files for keyword completion")
-  call append("$", "\t(global or local to buffer)")
+  call <SID>AddOption("thesaurus", gettext("list of thesaurus files for keyword completion"))
+  call append("$", gettext("\t(global or local to buffer)"))
   call <SID>OptionG("tsr", &tsr)
 endif
-call append("$", "infercase\tadjust case of a keyword completion match")
+call <SID>AddOption("infercase", gettext("adjust case of a keyword completion match"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("inf")
 if has("digraphs")
-  call append("$", "digraph\tenable entering digraphs with c1 <BS> c2")
+  call <SID>AddOption("digraph", gettext("enable entering digraphs with c1 <BS> c2"))
   call <SID>BinOptionG("dg", &dg)
 endif
-call append("$", "tildeop\tthe \"~\" command behaves like an operator")
+call <SID>AddOption("tildeop", gettext("the \"~\" command behaves like an operator"))
 call <SID>BinOptionG("top", &top)
-call append("$", "operatorfunc\tfunction called for the\"g@\"  operator")
+call <SID>AddOption("operatorfunc", gettext("function called for the\"g@\"  operator"))
 call <SID>OptionG("opfunc", &opfunc)
-call append("$", "showmatch\twhen inserting a bracket, briefly jump to its match")
+call <SID>AddOption("showmatch", gettext("when inserting a bracket, briefly jump to its match"))
 call <SID>BinOptionG("sm", &sm)
-call append("$", "matchtime\ttenth of a second to show a match for 'showmatch'")
+call <SID>AddOption("matchtime", gettext("tenth of a second to show a match for 'showmatch'"))
 call append("$", " \tset mat=" . &mat)
-call append("$", "matchpairs\tlist of pairs that match for the \"%\" command")
+call <SID>AddOption("matchpairs", gettext("list of pairs that match for the \"%\" command"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("mps")
-call append("$", "joinspaces\tuse two spaces after '.' when joining a line")
+call <SID>AddOption("joinspaces", gettext("use two spaces after '.' when joining a line"))
 call <SID>BinOptionG("js", &js)
-call append("$", "nrformats\t\"alpha\", \"octal\" and/or \"hex\"; number formats recognized for")
-call append("$", "\tCTRL-A and CTRL-X commands")
+call <SID>AddOption("nrformats", gettext("\"alpha\", \"octal\" and/or \"hex\"; number formats recognized for\nCTRL-A and CTRL-X commands"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("nf")
 
 
-call <SID>Header("tabs and indenting")
-call append("$", "tabstop\tnumber of spaces a <Tab> in the text stands for")
+call <SID>Header(gettext("tabs and indenting"))
+call <SID>AddOption("tabstop", gettext("number of spaces a <Tab> in the text stands for"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("ts")
-call append("$", "shiftwidth\tnumber of spaces used for each step of (auto)indent")
+call <SID>AddOption("shiftwidth", gettext("number of spaces used for each step of (auto)indent"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("sw")
 if has("vartabs")
-  call append("$", "vartabstop\tlist of number of spaces a tab counts for")
+  call <SID>AddOption("vartabstop", gettext("list of number of spaces a tab counts for"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("vts")
-  call append("$", "varsofttabstop\tlist of number of spaces a soft tabsstop counts for")
+  call <SID>AddOption("varsofttabstop", gettext("list of number of spaces a soft tabsstop counts for"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("vsts")
 endif
-call append("$", "smarttab\ta <Tab> in an indent inserts 'shiftwidth' spaces")
+call <SID>AddOption("smarttab", gettext("a <Tab> in an indent inserts 'shiftwidth' spaces"))
 call <SID>BinOptionG("sta", &sta)
-call append("$", "softtabstop\tif non-zero, number of spaces to insert for a <Tab>")
+call <SID>AddOption("softtabstop", gettext("if non-zero, number of spaces to insert for a <Tab>"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("sts")
-call append("$", "shiftround\tround to 'shiftwidth' for \"<<\" and \">>\"")
+call <SID>AddOption("shiftround", gettext("round to 'shiftwidth' for \"<<\" and \">>\""))
 call <SID>BinOptionG("sr", &sr)
-call append("$", "expandtab\texpand <Tab> to spaces in Insert mode")
+call <SID>AddOption("expandtab", gettext("expand <Tab> to spaces in Insert mode"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("et")
-call append("$", "autoindent\tautomatically set the indent of a new line")
+call <SID>AddOption("autoindent", gettext("automatically set the indent of a new line"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("ai")
 if has("smartindent")
-  call append("$", "smartindent\tdo clever autoindenting")
+  call <SID>AddOption("smartindent", gettext("do clever autoindenting"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>BinOptionL("si")
 endif
 if has("cindent")
-  call append("$", "cindent\tenable specific indenting for C code")
+  call <SID>AddOption("cindent", gettext("enable specific indenting for C code"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>BinOptionL("cin")
-  call append("$", "cinoptions\toptions for C-indenting")
+  call <SID>AddOption("cinoptions", gettext("options for C-indenting"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("cino")
-  call append("$", "cinkeys\tkeys that trigger C-indenting in Insert mode")
+  call <SID>AddOption("cinkeys", gettext("keys that trigger C-indenting in Insert mode"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("cink")
-  call append("$", "cinwords\tlist of words that cause more C-indent")
+  call <SID>AddOption("cinwords", gettext("list of words that cause more C-indent"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("cinw")
-  call append("$", "indentexpr\texpression used to obtain the indent of a line")
+  call <SID>AddOption("indentexpr", gettext("expression used to obtain the indent of a line"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("inde")
-  call append("$", "indentkeys\tkeys that trigger indenting with 'indentexpr' in Insert mode")
+  call <SID>AddOption("indentkeys", gettext("keys that trigger indenting with 'indentexpr' in Insert mode"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("indk")
 endif
-call append("$", "copyindent\tcopy whitespace for indenting from previous line")
+call <SID>AddOption("copyindent", gettext("copy whitespace for indenting from previous line"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("ci")
-call append("$", "preserveindent\tpreserve kind of whitespace when changing indent")
+call <SID>AddOption("preserveindent", gettext("preserve kind of whitespace when changing indent"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("pi")
 if has("lispindent")
-  call append("$", "lisp\tenable lisp mode")
+  call <SID>AddOption("lisp", gettext("enable lisp mode"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>BinOptionL("lisp")
-  call append("$", "lispwords\twords that change how lisp indenting works")
+  call <SID>AddOption("lispwords", gettext("words that change how lisp indenting works"))
   call <SID>OptionL("lw")
 endif
 
 
 if has("folding")
-  call <SID>Header("folding")
-  call append("$", "foldenable\tset to display all folds open")
+  call <SID>Header(gettext("folding"))
+  call <SID>AddOption("foldenable", gettext("set to display all folds open"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("fen")
-  call append("$", "foldlevel\tfolds with a level higher than this number will be closed")
+  call <SID>AddOption("foldlevel", gettext("folds with a level higher than this number will be closed"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fdl")
-  call append("$", "foldlevelstart\tvalue for 'foldlevel' when starting to edit a file")
+  call <SID>AddOption("foldlevelstart", gettext("value for 'foldlevel' when starting to edit a file"))
   call append("$", " \tset fdls=" . &fdls)
-  call append("$", "foldcolumn\twidth of the column used to indicate folds")
+  call <SID>AddOption("foldcolumn", gettext("width of the column used to indicate folds"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fdc")
-  call append("$", "foldtext\texpression used to display the text of a closed fold")
+  call <SID>AddOption("foldtext", gettext("expression used to display the text of a closed fold"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fdt")
-  call append("$", "foldclose\tset to \"all\" to close a fold when the cursor leaves it")
+  call <SID>AddOption("foldclose", gettext("set to \"all\" to close a fold when the cursor leaves it"))
   call <SID>OptionG("fcl", &fcl)
-  call append("$", "foldopen\tspecifies for which commands a fold will be opened")
+  call <SID>AddOption("foldopen", gettext("specifies for which commands a fold will be opened"))
   call <SID>OptionG("fdo", &fdo)
-  call append("$", "foldminlines\tminimum number of screen lines for a fold to be closed")
+  call <SID>AddOption("foldminlines", gettext("minimum number of screen lines for a fold to be closed"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fml")
-  call append("$", "commentstring\ttemplate for comments; used to put the marker in")
+  call <SID>AddOption("commentstring", gettext("template for comments; used to put the marker in"))
   call <SID>OptionL("cms")
-  call append("$", "foldmethod\tfolding type: \"manual\", \"indent\", \"expr\", \"marker\" or \"syntax\"")
+  call <SID>AddOption("foldmethod", gettext("folding type: \"manual\", \"indent\", \"expr\", \"marker\" or \"syntax\""))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fdm")
-  call append("$", "foldexpr\texpression used when 'foldmethod' is \"expr\"")
+  call <SID>AddOption("foldexpr", gettext("expression used when 'foldmethod' is \"expr\""))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fde")
-  call append("$", "foldignore\tused to ignore lines when 'foldmethod' is \"indent\"")
+  call <SID>AddOption("foldignore", gettext("used to ignore lines when 'foldmethod' is \"indent\""))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fdi")
-  call append("$", "foldmarker\tmarkers used when 'foldmethod' is \"marker\"")
+  call <SID>AddOption("foldmarker", gettext("markers used when 'foldmethod' is \"marker\""))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fmr")
-  call append("$", "foldnestmax\tmaximum fold depth for when 'foldmethod' is \"indent\" or \"syntax\"")
+  call <SID>AddOption("foldnestmax", gettext("maximum fold depth for when 'foldmethod' is \"indent\" or \"syntax\""))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("fdn")
 endif
 
 
 if has("diff")
-  call <SID>Header("diff mode")
-  call append("$", "diff\tuse diff mode for the current window")
+  call <SID>Header(gettext("diff mode"))
+  call <SID>AddOption("diff", gettext("use diff mode for the current window"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("diff")
-  call append("$", "diffopt\toptions for using diff mode")
+  call <SID>AddOption("diffopt", gettext("options for using diff mode"))
   call <SID>OptionG("dip", &dip)
-  call append("$", "diffexpr\texpression used to obtain a diff file")
+  call <SID>AddOption("diffexpr", gettext("expression used to obtain a diff file"))
   call <SID>OptionG("dex", &dex)
-  call append("$", "patchexpr\texpression used to patch a file")
+  call <SID>AddOption("patchexpr", gettext("expression used to patch a file"))
   call <SID>OptionG("pex", &pex)
 endif
 
 
-call <SID>Header("mapping")
-call append("$", "maxmapdepth\tmaximum depth of mapping")
+call <SID>Header(gettext("mapping"))
+call <SID>AddOption("maxmapdepth", gettext("maximum depth of mapping"))
 call append("$", " \tset mmd=" . &mmd)
-call append("$", "remap\trecognize mappings in mapped keys")
+call <SID>AddOption("remap", gettext("recognize mappings in mapped keys"))
 call <SID>BinOptionG("remap", &remap)
-call append("$", "timeout\tallow timing out halfway into a mapping")
+call <SID>AddOption("timeout", gettext("allow timing out halfway into a mapping"))
 call <SID>BinOptionG("to", &to)
-call append("$", "ttimeout\tallow timing out halfway into a key code")
+call <SID>AddOption("ttimeout", gettext("allow timing out halfway into a key code"))
 call <SID>BinOptionG("ttimeout", &ttimeout)
-call append("$", "timeoutlen\ttime in msec for 'timeout'")
+call <SID>AddOption("timeoutlen", gettext("time in msec for 'timeout'"))
 call append("$", " \tset tm=" . &tm)
-call append("$", "ttimeoutlen\ttime in msec for 'ttimeout'")
+call <SID>AddOption("ttimeoutlen", gettext("time in msec for 'ttimeout'"))
 call append("$", " \tset ttm=" . &ttm)
 
 
-call <SID>Header("reading and writing files")
-call append("$", "modeline\tenable using settings from modelines when reading a file")
+call <SID>Header(gettext("reading and writing files"))
+call <SID>AddOption("modeline", gettext("enable using settings from modelines when reading a file"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("ml")
-call append("$", "modelineexpr\tallow setting expression options from a modeline")
+call <SID>AddOption("modelineexpr", gettext("allow setting expression options from a modeline"))
 call <SID>BinOptionG("mle", &mle)
-call append("$", "modelines\tnumber of lines to check for modelines")
+call <SID>AddOption("modelines", gettext("number of lines to check for modelines"))
 call append("$", " \tset mls=" . &mls)
-call append("$", "binary\tbinary file editing")
+call <SID>AddOption("binary", gettext("binary file editing"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("bin")
-call append("$", "endofline\tlast line in the file has an end-of-line")
+call <SID>AddOption("endofline", gettext("last line in the file has an end-of-line"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("eol")
-call append("$", "fixendofline\tfixes missing end-of-line at end of text file")
+call <SID>AddOption("fixendofline", gettext("fixes missing end-of-line at end of text file"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("fixeol")
-call append("$", "bomb\tprepend a Byte Order Mark to the file")
+call <SID>AddOption("bomb", gettext("prepend a Byte Order Mark to the file"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("bomb")
-call append("$", "fileformat\tend-of-line format: \"dos\", \"unix\" or \"mac\"")
+call <SID>AddOption("fileformat", gettext("end-of-line format: \"dos\", \"unix\" or \"mac\""))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("ff")
-call append("$", "fileformats\tlist of file formats to look for when editing a file")
+call <SID>AddOption("fileformats", gettext("list of file formats to look for when editing a file"))
 call <SID>OptionG("ffs", &ffs)
-call append("$", "textmode\tobsolete, use 'fileformat'")
+call <SID>AddOption("textmode", gettext("obsolete, use 'fileformat'"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("tx")
-call append("$", "textauto\tobsolete, use 'fileformats'")
+call <SID>AddOption("textauto", gettext("obsolete, use 'fileformats'"))
 call <SID>BinOptionG("ta", &ta)
-call append("$", "write\twriting files is allowed")
+call <SID>AddOption("write", gettext("writing files is allowed"))
 call <SID>BinOptionG("write", &write)
-call append("$", "writebackup\twrite a backup file before overwriting a file")
+call <SID>AddOption("writebackup", gettext("write a backup file before overwriting a file"))
 call <SID>BinOptionG("wb", &wb)
-call append("$", "backup\tkeep a backup after overwriting a file")
+call <SID>AddOption("backup", gettext("keep a backup after overwriting a file"))
 call <SID>BinOptionG("bk", &bk)
-call append("$", "backupskip\tpatterns that specify for which files a backup is not made")
+call <SID>AddOption("backupskip", gettext("patterns that specify for which files a backup is not made"))
 call append("$", " \tset bsk=" . &bsk)
-call append("$", "backupcopy\twhether to make the backup as a copy or rename the existing file")
-call append("$", "\t(global or local to buffer)")
+call <SID>AddOption("backupcopy", gettext("whether to make the backup as a copy or rename the existing file"))
+call append("$", gettext("\t(global or local to buffer)"))
 call append("$", " \tset bkc=" . &bkc)
-call append("$", "backupdir\tlist of directories to put backup files in")
+call <SID>AddOption("backupdir", gettext("list of directories to put backup files in"))
 call <SID>OptionG("bdir", &bdir)
-call append("$", "backupext\tfile name extension for the backup file")
+call <SID>AddOption("backupext", gettext("file name extension for the backup file"))
 call <SID>OptionG("bex", &bex)
-call append("$", "autowrite\tautomatically write a file when leaving a modified buffer")
+call <SID>AddOption("autowrite", gettext("automatically write a file when leaving a modified buffer"))
 call <SID>BinOptionG("aw", &aw)
-call append("$", "autowriteall\tas 'autowrite', but works with more commands")
+call <SID>AddOption("autowriteall", gettext("as 'autowrite', but works with more commands"))
 call <SID>BinOptionG("awa", &awa)
-call append("$", "writeany\talways write without asking for confirmation")
+call <SID>AddOption("writeany", gettext("always write without asking for confirmation"))
 call <SID>BinOptionG("wa", &wa)
-call append("$", "autoread\tautomatically read a file when it was modified outside of Vim")
-call append("$", "\t(global or local to buffer)")
+call <SID>AddOption("autoread", gettext("automatically read a file when it was modified outside of Vim"))
+call append("$", gettext("\t(global or local to buffer)"))
 call <SID>BinOptionG("ar", &ar)
-call append("$", "patchmode\tkeep oldest version of a file; specifies file name extension")
+call <SID>AddOption("patchmode", gettext("keep oldest version of a file; specifies file name extension"))
 call <SID>OptionG("pm", &pm)
-call append("$", "fsync\tforcibly sync the file to disk after writing it")
+call <SID>AddOption("fsync", gettext("forcibly sync the file to disk after writing it"))
 call <SID>BinOptionG("fs", &fs)
-call append("$", "shortname\tuse 8.3 file names")
+call <SID>AddOption("shortname", gettext("use 8.3 file names"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("sn")
-call append("$", "cryptmethod\tencryption method for file writing: zip or blowfish")
+call <SID>AddOption("cryptmethod", gettext("encryption method for file writing: zip or blowfish"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("cm")
 
 
-call <SID>Header("the swap file")
-call append("$", "directory\tlist of directories for the swap file")
+call <SID>Header(gettext("the swap file"))
+call <SID>AddOption("directory", gettext("list of directories for the swap file"))
 call <SID>OptionG("dir", &dir)
-call append("$", "swapfile\tuse a swap file for this buffer")
+call <SID>AddOption("swapfile", gettext("use a swap file for this buffer"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("swf")
-call append("$", "swapsync\t\"sync\", \"fsync\" or empty; how to flush a swap file to disk")
+call <SID>AddOption("swapsync", gettext("\"sync\", \"fsync\" or empty; how to flush a swap file to disk"))
 call <SID>OptionG("sws", &sws)
-call append("$", "updatecount\tnumber of characters typed to cause a swap file update")
+call <SID>AddOption("updatecount", gettext("number of characters typed to cause a swap file update"))
 call append("$", " \tset uc=" . &uc)
-call append("$", "updatetime\ttime in msec after which the swap file will be updated")
+call <SID>AddOption("updatetime", gettext("time in msec after which the swap file will be updated"))
 call append("$", " \tset ut=" . &ut)
-call append("$", "maxmem\tmaximum amount of memory in Kbyte used for one buffer")
+call <SID>AddOption("maxmem", gettext("maximum amount of memory in Kbyte used for one buffer"))
 call append("$", " \tset mm=" . &mm)
-call append("$", "maxmemtot\tmaximum amount of memory in Kbyte used for all buffers")
+call <SID>AddOption("maxmemtot", gettext("maximum amount of memory in Kbyte used for all buffers"))
 call append("$", " \tset mmt=" . &mmt)
 
 
-call <SID>Header("command line editing")
-call append("$", "history\thow many command lines are remembered ")
+call <SID>Header(gettext("command line editing"))
+call <SID>AddOption("history", gettext("how many command lines are remembered "))
 call append("$", " \tset hi=" . &hi)
-call append("$", "wildchar\tkey that triggers command-line expansion")
+call <SID>AddOption("wildchar", gettext("key that triggers command-line expansion"))
 call append("$", " \tset wc=" . &wc)
-call append("$", "wildcharm\tlike 'wildchar' but can also be used in a mapping")
+call <SID>AddOption("wildcharm", gettext("like 'wildchar' but can also be used in a mapping"))
 call append("$", " \tset wcm=" . &wcm)
-call append("$", "wildmode\tspecifies how command line completion works")
+call <SID>AddOption("wildmode", gettext("specifies how command line completion works"))
 call <SID>OptionG("wim", &wim)
 if has("wildoptions")
-  call append("$", "wildoptions\tempty or \"tagfile\" to list file name of matching tags")
+  call <SID>AddOption("wildoptions", gettext("empty or \"tagfile\" to list file name of matching tags"))
   call <SID>OptionG("wop", &wop)
 endif
-call append("$", "suffixes\tlist of file name extensions that have a lower priority")
+call <SID>AddOption("suffixes", gettext("list of file name extensions that have a lower priority"))
 call <SID>OptionG("su", &su)
 if has("file_in_path")
-  call append("$", "suffixesadd\tlist of file name extensions added when searching for a file")
+  call <SID>AddOption("suffixesadd", gettext("list of file name extensions added when searching for a file"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("sua")
 endif
 if has("wildignore")
-  call append("$", "wildignore\tlist of patterns to ignore files for file name completion")
+  call <SID>AddOption("wildignore", gettext("list of patterns to ignore files for file name completion"))
   call <SID>OptionG("wig", &wig)
 endif
-call append("$", "fileignorecase\tignore case when using file names")
+call <SID>AddOption("fileignorecase", gettext("ignore case when using file names"))
 call <SID>BinOptionG("fic", &fic)
-call append("$", "wildignorecase\tignore case when completing file names")
+call <SID>AddOption("wildignorecase", gettext("ignore case when completing file names"))
 call <SID>BinOptionG("wic", &wic)
 if has("wildmenu")
-  call append("$", "wildmenu\tcommand-line completion shows a list of matches")
+  call <SID>AddOption("wildmenu", gettext("command-line completion shows a list of matches"))
   call <SID>BinOptionG("wmnu", &wmnu)
 endif
-call append("$", "cedit\tkey used to open the command-line window")
+call <SID>AddOption("cedit", gettext("key used to open the command-line window"))
 call <SID>OptionG("cedit", &cedit)
-call append("$", "cmdwinheight\theight of the command-line window")
+call <SID>AddOption("cmdwinheight", gettext("height of the command-line window"))
 call <SID>OptionG("cwh", &cwh)
 
 
-call <SID>Header("executing external commands")
-call append("$", "shell\tname of the shell program used for external commands")
+call <SID>Header(gettext("executing external commands"))
+call <SID>AddOption("shell", gettext("name of the shell program used for external commands"))
 call <SID>OptionG("sh", &sh)
 if has("amiga")
-  call append("$", "shelltype\twhen to use the shell or directly execute a command")
+  call <SID>AddOption("shelltype", gettext("when to use the shell or directly execute a command"))
   call append("$", " \tset st=" . &st)
 endif
-call append("$", "shellquote\tcharacter(s) to enclose a shell command in")
+call <SID>AddOption("shellquote", gettext("character(s) to enclose a shell command in"))
 call <SID>OptionG("shq", &shq)
-call append("$", "shellxquote\tlike 'shellquote' but include the redirection")
+call <SID>AddOption("shellxquote", gettext("like 'shellquote' but include the redirection"))
 call <SID>OptionG("sxq", &sxq)
-call append("$", "shellxescape\tcharacters to escape when 'shellxquote' is (")
+call <SID>AddOption("shellxescape", gettext("characters to escape when 'shellxquote' is ("))
 call <SID>OptionG("sxe", &sxe)
-call append("$", "shellcmdflag\targument for 'shell' to execute a command")
+call <SID>AddOption("shellcmdflag", gettext("argument for 'shell' to execute a command"))
 call <SID>OptionG("shcf", &shcf)
-call append("$", "shellredir\tused to redirect command output to a file")
+call <SID>AddOption("shellredir", gettext("used to redirect command output to a file"))
 call <SID>OptionG("srr", &srr)
-call append("$", "shelltemp\tuse a temp file for shell commands instead of using a pipe")
+call <SID>AddOption("shelltemp", gettext("use a temp file for shell commands instead of using a pipe"))
 call <SID>BinOptionG("stmp", &stmp)
-call append("$", "equalprg\tprogram used for \"=\" command")
-call append("$", "\t(global or local to buffer)")
+call <SID>AddOption("equalprg", gettext("program used for \"=\" command"))
+call append("$", gettext("\t(global or local to buffer)"))
 call <SID>OptionG("ep", &ep)
-call append("$", "formatprg\tprogram used to format lines with \"gq\" command")
+call <SID>AddOption("formatprg", gettext("program used to format lines with \"gq\" command"))
 call <SID>OptionG("fp", &fp)
-call append("$", "keywordprg\tprogram used for the \"K\" command")
+call <SID>AddOption("keywordprg", gettext("program used for the \"K\" command"))
 call <SID>OptionG("kp", &kp)
-call append("$", "warn\twarn when using a shell command and a buffer has changes")
+call <SID>AddOption("warn", gettext("warn when using a shell command and a buffer has changes"))
 call <SID>BinOptionG("warn", &warn)
 
 
 if has("quickfix")
-  call <SID>Header("running make and jumping to errors (quickfix)")
-  call append("$", "errorfile\tname of the file that contains error messages")
+  call <SID>Header(gettext("running make and jumping to errors (quickfix)"))
+  call <SID>AddOption("errorfile", gettext("name of the file that contains error messages"))
   call <SID>OptionG("ef", &ef)
-  call append("$", "errorformat\tlist of formats for error messages")
-  call append("$", "\t(global or local to buffer)")
+  call <SID>AddOption("errorformat", gettext("list of formats for error messages"))
+  call append("$", gettext("\t(global or local to buffer)"))
   call <SID>OptionG("efm", &efm)
-  call append("$", "makeprg\tprogram used for the \":make\" command")
-  call append("$", "\t(global or local to buffer)")
+  call <SID>AddOption("makeprg", gettext("program used for the \":make\" command"))
+  call append("$", gettext("\t(global or local to buffer)"))
   call <SID>OptionG("mp", &mp)
-  call append("$", "shellpipe\tstring used to put the output of \":make\" in the error file")
+  call <SID>AddOption("shellpipe", gettext("string used to put the output of \":make\" in the error file"))
   call <SID>OptionG("sp", &sp)
-  call append("$", "makeef\tname of the errorfile for the 'makeprg' command")
+  call <SID>AddOption("makeef", gettext("name of the errorfile for the 'makeprg' command"))
   call <SID>OptionG("mef", &mef)
-  call append("$", "grepprg\tprogram used for the \":grep\" command")
-  call append("$", "\t(global or local to buffer)")
+  call <SID>AddOption("grepprg", gettext("program used for the \":grep\" command"))
+  call append("$", gettext("\t(global or local to buffer)"))
   call <SID>OptionG("gp", &gp)
-  call append("$", "grepformat\tlist of formats for output of 'grepprg'")
+  call <SID>AddOption("grepformat", gettext("list of formats for output of 'grepprg'"))
   call <SID>OptionG("gfm", &gfm)
-  call append("$", "makeencoding\tencoding of the \":make\" and \":grep\" output")
-  call append("$", "\t(global or local to buffer)")
+  call <SID>AddOption("makeencoding", gettext("encoding of the \":make\" and \":grep\" output"))
+  call append("$", gettext("\t(global or local to buffer)"))
   call <SID>OptionG("menc", &menc)
-  call append("$", "quickfixtextfunc\tfunction to display text in the quickfix window")
+  call <SID>AddOption("quickfixtextfunc", gettext("function to display text in the quickfix window"))
   call <SID>OptionG("qftf", &qftf)
 endif
 
 
 if has("win32") || has("osfiletype")
-  call <SID>Header("system specific")
+  call <SID>Header(gettext("system specific"))
   if has("osfiletype")
-    call append("$", "osfiletype\tOS-specific information about the type of file")
+    call <SID>AddOption("osfiletype", gettext("OS-specific information about the type of file"))
     call append("$", "\t" .. s:local_to_buffer)
     call <SID>OptionL("oft")
   endif
   if has("win32")
-    call append("$", "shellslash\tuse forward slashes in file names; for Unix-like shells")
+    call <SID>AddOption("shellslash", gettext("use forward slashes in file names; for Unix-like shells"))
     call <SID>BinOptionG("ssl", &ssl)
-    call append("$", "completeslash\tspecifies slash/backslash used for completion")
+    call <SID>AddOption("completeslash", gettext("specifies slash/backslash used for completion"))
     call <SID>OptionG("csl", &csl)
   endif
 endif
 
 
-call <SID>Header("language specific")
-call append("$", "isfname\tspecifies the characters in a file name")
+call <SID>Header(gettext("language specific"))
+call <SID>AddOption("isfname", gettext("specifies the characters in a file name"))
 call <SID>OptionG("isf", &isf)
-call append("$", "isident\tspecifies the characters in an identifier")
+call <SID>AddOption("isident", gettext("specifies the characters in an identifier"))
 call <SID>OptionG("isi", &isi)
-call append("$", "iskeyword\tspecifies the characters in a keyword")
+call <SID>AddOption("iskeyword", gettext("specifies the characters in a keyword"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("isk")
-call append("$", "isprint\tspecifies printable characters")
+call <SID>AddOption("isprint", gettext("specifies printable characters"))
 call <SID>OptionG("isp", &isp)
 if has("textobjects")
-  call append("$", "quoteescape\tspecifies escape characters in a string")
+  call <SID>AddOption("quoteescape", gettext("specifies escape characters in a string"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("qe")
 endif
 if has("rightleft")
-  call append("$", "rightleft\tdisplay the buffer right-to-left")
+  call <SID>AddOption("rightleft", gettext("display the buffer right-to-left"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("rl")
-  call append("$", "rightleftcmd\twhen to edit the command-line right-to-left")
+  call <SID>AddOption("rightleftcmd", gettext("when to edit the command-line right-to-left"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("rlc")
-  call append("$", "revins\tinsert characters backwards")
+  call <SID>AddOption("revins", gettext("insert characters backwards"))
   call <SID>BinOptionG("ri", &ri)
-  call append("$", "allowrevins\tallow CTRL-_ in Insert and Command-line mode to toggle 'revins'")
+  call <SID>AddOption("allowrevins", gettext("allow CTRL-_ in Insert and Command-line mode to toggle 'revins'"))
   call <SID>BinOptionG("ari", &ari)
-  call append("$", "aleph\tthe ASCII code for the first letter of the Hebrew alphabet")
+  call <SID>AddOption("aleph", gettext("the ASCII code for the first letter of the Hebrew alphabet"))
   call append("$", " \tset al=" . &al)
-  call append("$", "hkmap\tuse Hebrew keyboard mapping")
+  call <SID>AddOption("hkmap", gettext("use Hebrew keyboard mapping"))
   call <SID>BinOptionG("hk", &hk)
-  call append("$", "hkmapp\tuse phonetic Hebrew keyboard mapping")
+  call <SID>AddOption("hkmapp", gettext("use phonetic Hebrew keyboard mapping"))
   call <SID>BinOptionG("hkp", &hkp)
 endif
 if has("farsi")
-  call append("$", "altkeymap\tuse Farsi as the second language when 'revins' is set")
+  call <SID>AddOption("altkeymap", gettext("use Farsi as the second language when 'revins' is set"))
   call <SID>BinOptionG("akm", &akm)
-  call append("$", "fkmap\tuse Farsi keyboard mapping")
+  call <SID>AddOption("fkmap", gettext("use Farsi keyboard mapping"))
   call <SID>BinOptionG("fk", &fk)
 endif
 if has("arabic")
-  call append("$", "arabic\tprepare for editing Arabic text")
+  call <SID>AddOption("arabic", gettext("prepare for editing Arabic text"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>BinOptionL("arab")
-  call append("$", "arabicshape\tperform shaping of Arabic characters")
+  call <SID>AddOption("arabicshape", gettext("perform shaping of Arabic characters"))
   call <SID>BinOptionG("arshape", &arshape)
-  call append("$", "termbidi\tterminal will perform bidi handling")
+  call <SID>AddOption("termbidi", gettext("terminal will perform bidi handling"))
   call <SID>BinOptionG("tbidi", &tbidi)
 endif
 if has("keymap")
-  call append("$", "keymap\tname of a keyboard mapping")
+  call <SID>AddOption("keymap", gettext("name of a keyboard mapping"))
   call <SID>OptionL("kmp")
 endif
 if has("langmap")
-  call append("$", "langmap\tlist of characters that are translated in Normal mode")
+  call <SID>AddOption("langmap", gettext("list of characters that are translated in Normal mode"))
   call <SID>OptionG("lmap", &lmap)
-  call append("$", "langremap\tapply 'langmap' to mapped characters")
+  call <SID>AddOption("langremap", gettext("apply 'langmap' to mapped characters"))
   call <SID>BinOptionG("lrm", &lrm)
 endif
 if has("xim")
-  call append("$", "imdisable\twhen set never use IM; overrules following IM options")
+  call <SID>AddOption("imdisable", gettext("when set never use IM; overrules following IM options"))
   call <SID>BinOptionG("imd", &imd)
 endif
-call append("$", "iminsert\tin Insert mode: 1: use :lmap; 2: use IM; 0: neither")
+call <SID>AddOption("iminsert", gettext("in Insert mode: 1: use :lmap; 2: use IM; 0: neither"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>OptionL("imi")
-call append("$", "imstyle\tinput method style, 0: on-the-spot, 1: over-the-spot")
+call <SID>AddOption("imstyle", gettext("input method style, 0: on-the-spot, 1: over-the-spot"))
 call <SID>OptionG("imst", &imst)
-call append("$", "imsearch\tentering a search pattern: 1: use :lmap; 2: use IM; 0: neither")
+call <SID>AddOption("imsearch", gettext("entering a search pattern: 1: use :lmap; 2: use IM; 0: neither"))
 call append("$", "\t" .. s:local_to_window)
 call <SID>OptionL("ims")
 if has("xim")
-  call append("$", "imcmdline\twhen set always use IM when starting to edit a command line")
+  call <SID>AddOption("imcmdline", gettext("when set always use IM when starting to edit a command line"))
   call <SID>BinOptionG("imc", &imc)
-  call append("$", "imstatusfunc\tfunction to obtain IME status")
+  call <SID>AddOption("imstatusfunc", gettext("function to obtain IME status"))
   call <SID>OptionG("imsf", &imsf)
-  call append("$", "imactivatefunc\tfunction to enable/disable IME")
+  call <SID>AddOption("imactivatefunc", gettext("function to enable/disable IME"))
   call <SID>OptionG("imaf", &imaf)
 endif
 
 
-call <SID>Header("multi-byte characters")
-call append("$", "encoding\tcharacter encoding used in Vim: \"latin1\", \"utf-8\"")
-call append("$", "\t\"euc-jp\", \"big5\", etc.")
+call <SID>Header(gettext("multi-byte characters"))
+call <SID>AddOption("encoding", gettext("character encoding used in Vim: \"latin1\", \"utf-8\"\n\"euc-jp\", \"big5\", etc."))
 call <SID>OptionG("enc", &enc)
-call append("$", "fileencoding\tcharacter encoding for the current file")
+call <SID>AddOption("fileencoding", gettext("character encoding for the current file"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>OptionL("fenc")
-call append("$", "fileencodings\tautomatically detected character encodings")
+call <SID>AddOption("fileencodings", gettext("automatically detected character encodings"))
 call <SID>OptionG("fencs", &fencs)
-call append("$", "termencoding\tcharacter encoding used by the terminal")
+call <SID>AddOption("termencoding", gettext("character encoding used by the terminal"))
 call <SID>OptionG("tenc", &tenc)
-call append("$", "charconvert\texpression used for character encoding conversion")
+call <SID>AddOption("charconvert", gettext("expression used for character encoding conversion"))
 call <SID>OptionG("ccv", &ccv)
-call append("$", "delcombine\tdelete combining (composing) characters on their own")
+call <SID>AddOption("delcombine", gettext("delete combining (composing) characters on their own"))
 call <SID>BinOptionG("deco", &deco)
-call append("$", "maxcombine\tmaximum number of combining (composing) characters displayed")
+call <SID>AddOption("maxcombine", gettext("maximum number of combining (composing) characters displayed"))
 call <SID>OptionG("mco", &mco)
 if has("xim") && has("gui_gtk")
-  call append("$", "imactivatekey\tkey that activates the X input method")
+  call <SID>AddOption("imactivatekey", gettext("key that activates the X input method"))
   call <SID>OptionG("imak", &imak)
 endif
-call append("$", "ambiwidth\twidth of ambiguous width characters")
+call <SID>AddOption("ambiwidth", gettext("width of ambiguous width characters"))
 call <SID>OptionG("ambw", &ambw)
-call append("$", "emoji\temoji characters are full width")
+call <SID>AddOption("emoji", gettext("emoji characters are full width"))
 call <SID>BinOptionG("emo", &emo)
 
 
-call <SID>Header("various")
-call append("$", "virtualedit\twhen to use virtual editing: \"block\", \"insert\" and/or \"all\"")
+call <SID>Header(gettext("various"))
+call <SID>AddOption("virtualedit", gettext("when to use virtual editing: \"block\", \"insert\" and/or \"all\""))
 call <SID>OptionG("ve", &ve)
-call append("$", "eventignore\tlist of autocommand events which are to be ignored")
+call <SID>AddOption("eventignore", gettext("list of autocommand events which are to be ignored"))
 call <SID>OptionG("ei", &ei)
-call append("$", "loadplugins\tload plugin scripts when starting up")
+call <SID>AddOption("loadplugins", gettext("load plugin scripts when starting up"))
 call <SID>BinOptionG("lpl", &lpl)
-call append("$", "exrc\tenable reading .vimrc/.exrc/.gvimrc in the current directory")
+call <SID>AddOption("exrc", gettext("enable reading .vimrc/.exrc/.gvimrc in the current directory"))
 call <SID>BinOptionG("ex", &ex)
-call append("$", "secure\tsafer working with script files in the current directory")
+call <SID>AddOption("secure", gettext("safer working with script files in the current directory"))
 call <SID>BinOptionG("secure", &secure)
-call append("$", "gdefault\tuse the 'g' flag for \":substitute\"")
+call <SID>AddOption("gdefault", gettext("use the 'g' flag for \":substitute\""))
 call <SID>BinOptionG("gd", &gd)
-call append("$", "edcompatible\t'g' and 'c' flags of \":substitute\" toggle")
+call <SID>AddOption("edcompatible", gettext("'g' and 'c' flags of \":substitute\" toggle"))
 call <SID>BinOptionG("ed", &ed)
 if exists("+opendevice")
-  call append("$", "opendevice\tallow reading/writing devices")
+  call <SID>AddOption("opendevice", gettext("allow reading/writing devices"))
   call <SID>BinOptionG("odev", &odev)
 endif
 if exists("+maxfuncdepth")
-  call append("$", "maxfuncdepth\tmaximum depth of function calls")
+  call <SID>AddOption("maxfuncdepth", gettext("maximum depth of function calls"))
   call append("$", " \tset mfd=" . &mfd)
 endif
 if has("mksession")
-  call append("$", "sessionoptions\tlist of words that specifies what to put in a session file")
+  call <SID>AddOption("sessionoptions", gettext("list of words that specifies what to put in a session file"))
   call <SID>OptionG("ssop", &ssop)
-  call append("$", "viewoptions\tlist of words that specifies what to save for :mkview")
+  call <SID>AddOption("viewoptions", gettext("list of words that specifies what to save for :mkview"))
   call <SID>OptionG("vop", &vop)
-  call append("$", "viewdir\tdirectory where to store files with :mkview")
+  call <SID>AddOption("viewdir", gettext("directory where to store files with :mkview"))
   call <SID>OptionG("vdir", &vdir)
 endif
 if has("viminfo")
-  call append("$", "viminfo\tlist that specifies what to write in the viminfo file")
+  call <SID>AddOption("viminfo", gettext("list that specifies what to write in the viminfo file"))
   call <SID>OptionG("vi", &vi)
-  call append("$", "viminfofile\tfile name used for the viminfo file")
+  call <SID>AddOption("viminfofile", gettext("file name used for the viminfo file"))
   call <SID>OptionG("vif", &vif)
 endif
 if has("quickfix")
-  call append("$", "bufhidden\twhat happens with a buffer when it's no longer in a window")
+  call <SID>AddOption("bufhidden", gettext("what happens with a buffer when it's no longer in a window"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("bh")
-  call append("$", "buftype\t\"\", \"nofile\", \"nowrite\" or \"quickfix\": type of buffer")
+  call <SID>AddOption("buftype", gettext("\"\", \"nofile\", \"nowrite\" or \"quickfix\": type of buffer"))
   call append("$", "\t" .. s:local_to_buffer)
   call <SID>OptionL("bt")
 endif
-call append("$", "buflisted\twhether the buffer shows up in the buffer list")
+call <SID>AddOption("buflisted", gettext("whether the buffer shows up in the buffer list"))
 call append("$", "\t" .. s:local_to_buffer)
 call <SID>BinOptionL("bl")
-call append("$", "debug\tset to \"msg\" to see all error messages")
+call <SID>AddOption("debug", gettext("set to \"msg\" to see all error messages"))
 call append("$", " \tset debug=" . &debug)
 if has("signs")
-  call append("$", "signcolumn\twhether to show the signcolumn")
+  call <SID>AddOption("signcolumn", gettext("whether to show the signcolumn"))
   call append("$", "\t" .. s:local_to_window)
   call <SID>OptionL("scl")
 endif
 if has("mzscheme")
-  call append("$", "mzquantum\tinterval in milliseconds between polls for MzScheme threads")
+  call <SID>AddOption("mzquantum", gettext("interval in milliseconds between polls for MzScheme threads"))
   call append("$", " \tset mzq=" . &mzq)
 endif
 if exists("&luadll")
-  call append("$", "luadll\tname of the Lua dynamic library")
+  call <SID>AddOption("luadll", gettext("name of the Lua dynamic library"))
   call <SID>OptionG("luadll", &luadll)
 endif
 if exists("&perldll")
-  call append("$", "perldll\tname of the Perl dynamic library")
+  call <SID>AddOption("perldll", gettext("name of the Perl dynamic library"))
   call <SID>OptionG("perldll", &perldll)
 endif
 if has('pythonx')
-  call append("$", "pyxversion\twhether to use Python 2 or 3")
+  call <SID>AddOption("pyxversion", gettext("whether to use Python 2 or 3"))
   call append("$", " \tset pyx=" . &wd)
 endif
 if exists("&pythondll")
-  call append("$", "pythondll\tname of the Python 2 dynamic library")
+  call <SID>AddOption("pythondll", gettext("name of the Python 2 dynamic library"))
   call <SID>OptionG("pythondll", &pythondll)
 endif
 if exists("&pythonhome")
-  call append("$", "pythonhome\tname of the Python 2 home directory")
+  call <SID>AddOption("pythonhome", gettext("name of the Python 2 home directory"))
   call <SID>OptionG("pythonhome", &pythonhome)
 endif
 if exists("&pythonthreedll")
-  call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
+  call <SID>AddOption("pythonthreedll", gettext("name of the Python 3 dynamic library"))
   call <SID>OptionG("pythonthreedll", &pythonthreedll)
 endif
 if exists("&pythonthreehome")
-  call append("$", "pythonthreehome\tname of the Python 3 home directory")
+  call <SID>AddOption("pythonthreehome", gettext("name of the Python 3 home directory"))
   call <SID>OptionG("pythonthreehome", &pythonthreehome)
 endif
 if exists("&rubydll")
-  call append("$", "rubydll\tname of the Ruby dynamic library")
+  call <SID>AddOption("rubydll", gettext("name of the Ruby dynamic library"))
   call <SID>OptionG("rubydll", &rubydll)
 endif
 if exists("&tcldll")
-  call append("$", "tcldll\tname of the Tcl dynamic library")
+  call <SID>AddOption("tcldll", gettext("name of the Tcl dynamic library"))
   call <SID>OptionG("tcldll", &tcldll)
 endif
 if exists("&mzschemedll")
-  call append("$", "mzschemedll\tname of the Tcl dynamic library")
+  call <SID>AddOption("mzschemedll", gettext("name of the Tcl dynamic library"))
   call <SID>OptionG("mzschemedll", &mzschemedll)
-  call append("$", "mzschemegcdll\tname of the Tcl GC dynamic library")
+  call <SID>AddOption("mzschemegcdll", gettext("name of the Tcl GC dynamic library"))
   call <SID>OptionG("mzschemegcdll", &mzschemegcdll)
 endif
 
