about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2021-07-09 00:23:52 +0200
committerOliver Kiddle <opk@zsh.org>2021-07-09 00:23:52 +0200
commite6fdd35a83881a957ac206b4e128886d07f37c71 (patch)
tree3b5c1128104ee38544c89e10329be417f057bb78 /Completion
parentbffe543142978b036621291dcfe08771ad6b4bda (diff)
downloadzsh-e6fdd35a83881a957ac206b4e128886d07f37c71.tar.gz
zsh-e6fdd35a83881a957ac206b4e128886d07f37c71.tar.xz
zsh-e6fdd35a83881a957ac206b4e128886d07f37c71.zip
49150: consistently use singular form for headings on completion match groups
Diffstat (limited to 'Completion')
-rw-r--r--Completion/BSD/Command/_portmaster14
-rw-r--r--Completion/BSD/Command/_sysrc2
-rw-r--r--Completion/BSD/Command/_systat2
-rw-r--r--Completion/Base/Widget/_bash_completions2
-rw-r--r--Completion/Base/Widget/_complete_tag4
-rw-r--r--Completion/Darwin/Command/_defaults2
-rw-r--r--Completion/Darwin/Command/_hdiutil4
-rw-r--r--Completion/Darwin/Command/_softwareupdate2
-rw-r--r--Completion/Debian/Command/_apt2
-rw-r--r--Completion/Debian/Command/_axi-cache2
-rw-r--r--Completion/Debian/Command/_lintian6
-rw-r--r--Completion/Debian/Command/_module-assistant2
-rw-r--r--Completion/Linux/Command/_fusermount2
-rw-r--r--Completion/Linux/Command/_ipset4
-rw-r--r--Completion/Linux/Command/_mdadm2
-rw-r--r--Completion/Linux/Command/_sysstat6
-rw-r--r--Completion/Linux/Type/_fuse_values2
-rw-r--r--Completion/Mandriva/Command/_urpmi2
-rw-r--r--Completion/Redhat/Command/_yum2
-rw-r--r--Completion/Solaris/Command/_coreadm2
-rw-r--r--Completion/Solaris/Type/_svcs_fmri6
-rw-r--r--Completion/Unix/Command/_ack4
-rw-r--r--Completion/Unix/Command/_adb14
-rw-r--r--Completion/Unix/Command/_baz22
-rw-r--r--Completion/Unix/Command/_bzr14
-rw-r--r--Completion/Unix/Command/_ctags4
-rw-r--r--Completion/Unix/Command/_cvs12
-rw-r--r--Completion/Unix/Command/_ecasound4
-rw-r--r--Completion/Unix/Command/_fetchmail2
-rw-r--r--Completion/Unix/Command/_ffmpeg6
-rw-r--r--Completion/Unix/Command/_find2
-rw-r--r--Completion/Unix/Command/_fuser2
-rw-r--r--Completion/Unix/Command/_gem2
-rw-r--r--Completion/Unix/Command/_git14
-rw-r--r--Completion/Unix/Command/_gradle8
-rw-r--r--Completion/Unix/Command/_initctl22
-rw-r--r--Completion/Unix/Command/_install2
-rw-r--r--Completion/Unix/Command/_joe2
-rw-r--r--Completion/Unix/Command/_locate2
-rw-r--r--Completion/Unix/Command/_lp6
-rw-r--r--Completion/Unix/Command/_ls2
-rw-r--r--Completion/Unix/Command/_make2
-rw-r--r--Completion/Unix/Command/_moosic4
-rw-r--r--Completion/Unix/Command/_mysql_utils2
-rw-r--r--Completion/Unix/Command/_mysqldiff4
-rw-r--r--Completion/Unix/Command/_nm2
-rw-r--r--Completion/Unix/Command/_objdump2
-rw-r--r--Completion/Unix/Command/_perforce2
-rw-r--r--Completion/Unix/Command/_perl4
-rw-r--r--Completion/Unix/Command/_perldoc4
-rw-r--r--Completion/Unix/Command/_ps4
-rw-r--r--Completion/Unix/Command/_qemu4
-rw-r--r--Completion/Unix/Command/_quilt22
-rw-r--r--Completion/Unix/Command/_rclone6
-rw-r--r--Completion/Unix/Command/_rsync4
-rw-r--r--Completion/Unix/Command/_runit6
-rw-r--r--Completion/Unix/Command/_scons2
-rw-r--r--Completion/Unix/Command/_ssh2
-rw-r--r--Completion/Unix/Command/_tla22
-rw-r--r--Completion/Unix/Command/_tmux30
-rw-r--r--Completion/Unix/Command/_tput2
-rw-r--r--Completion/Unix/Command/_unison2
-rw-r--r--Completion/Unix/Command/_w3m2
-rw-r--r--Completion/Unix/Command/_wget2
-rw-r--r--Completion/Unix/Command/_xmlsoft4
-rw-r--r--Completion/Unix/Command/_xmms216
-rw-r--r--Completion/Unix/Command/_yafc2
-rw-r--r--Completion/Unix/Type/_email_addresses2
-rw-r--r--Completion/Unix/Type/_urls2
-rw-r--r--Completion/X/Command/_mozilla2
-rw-r--r--Completion/X/Command/_mplayer6
-rw-r--r--Completion/X/Command/_netscape2
-rw-r--r--Completion/X/Command/_pdftk12
-rw-r--r--Completion/X/Command/_vnc2
-rw-r--r--Completion/X/Command/_xauth2
-rw-r--r--Completion/X/Command/_xournal2
-rw-r--r--Completion/Zsh/Command/_bindkey2
-rw-r--r--Completion/Zsh/Command/_disable10
-rw-r--r--Completion/Zsh/Command/_enable10
-rw-r--r--Completion/Zsh/Command/_sched2
-rw-r--r--Completion/Zsh/Command/_typeset2
-rw-r--r--Completion/Zsh/Command/_zmodload4
-rw-r--r--Completion/Zsh/Command/_zstyle2
-rw-r--r--Completion/Zsh/Context/_subscript2
-rw-r--r--Completion/Zsh/Context/_zcalc_line2
-rw-r--r--Completion/Zsh/Function/_add-zsh-hook2
-rw-r--r--Completion/openSUSE/Command/_hwinfo2
-rw-r--r--Completion/openSUSE/Command/_zypper12
88 files changed, 230 insertions, 230 deletions
diff --git a/Completion/BSD/Command/_portmaster b/Completion/BSD/Command/_portmaster
index 48390c9ad..ee6fefc6e 100644
--- a/Completion/BSD/Command/_portmaster
+++ b/Completion/BSD/Command/_portmaster
@@ -8,11 +8,11 @@ _portmaster_ports() {
   local expl ret=1 _fbsd_ports _fbsd_cat
    _fbsd_cat=(${PORTSDIR:-/usr/ports}/[a-z]*(/:t))
    if [[ $PREFIX != */* ]] ; then
-     _wanted cat_packages expl 'category/ports' compadd -S '/' $_fbsd_cat
+     _wanted cat_packages expl 'category/port' compadd -S '/' $_fbsd_cat
    else
      compset -P '*/'
      _fbsd_ports=(${PORTSDIR:-/usr/ports}/$IPREFIX/*(/:t))
-     _wanted cat_packages expl 'category/ports' compadd $_fbsd_ports
+     _wanted cat_packages expl 'category/port' compadd $_fbsd_ports
    fi
   return ret
 }
@@ -77,7 +77,7 @@ _portmaster() {
       _arguments -s \
       $standalone_args \
       $common_args \
-      '*:packages and ports:_portmaster_pkgs_and_ports'
+        '*:package or port:_portmaster_pkgs_and_ports'
     else 
       case "$words[2]" in
 	--clean-distfiles|--clean-distfiles-all|--check-depends|--check-port-dbdir|--version|-help|-h)
@@ -86,14 +86,14 @@ _portmaster() {
 	*)
 	if (( $words[(I)-(e|r)] ));then
 	  _arguments -s \
-	  '*:packages:_portmaster_pkgs'
+            '*:package:_portmaster_pkgs'
 	elif (( kid=$words[(I)-o] ));then
 	  if (( CURRENT == $kid + 1 ));then
 	    _arguments -s \
-	    '*:ports replacing:_portmaster_ports'
+              '*:replacement port:_portmaster_ports'
 	  elif (( CURRENT == $kid + 2 )); then
 	    _arguments -s \
-	    '*:package to replace:_portmaster_pkgs'
+              '*:package to replace:_portmaster_pkgs'
 	  else 
 	    return 0
 	  fi
@@ -102,7 +102,7 @@ _portmaster() {
 	else
 	  _arguments -s \
 	  $common_args \
-	  '*:packages and ports:_portmaster_pkgs_and_ports'
+            '*:package or port:_portmaster_pkgs_and_ports'
 	fi
 	;;
       esac
diff --git a/Completion/BSD/Command/_sysrc b/Completion/BSD/Command/_sysrc
index f0c12a2be..892dac407 100644
--- a/Completion/BSD/Command/_sysrc
+++ b/Completion/BSD/Command/_sysrc
@@ -29,7 +29,7 @@ _sysrc() {
     '(- *)-h[print short usage message]' \
     '(- *)--help[print full usage message]' \
     '-i[ignore unknown variables]' \
-    '-j+[jail to operate within]:jails:_jails' \
+    '-j+[jail to operate within]:jail:_jails' \
     '-n[print only variable values]' \
     '-N[print only variable names]' \
     '-R+[specify an alternative root]:alternative root:_files -/' \
diff --git a/Completion/BSD/Command/_systat b/Completion/BSD/Command/_systat
index 7d837790a..03df07631 100644
--- a/Completion/BSD/Command/_systat
+++ b/Completion/BSD/Command/_systat
@@ -84,7 +84,7 @@ esac
 
 if (( $#screens )); then
   _arguments -M 'r:|.=* r:|=*' : $opts \
-    '1:systat(1) displays:(( ${pre}$^screens ))' \
+    '1:systat(1) display:(( ${pre}$^screens ))' \
     '2:refresh interval'
   return
 fi
diff --git a/Completion/Base/Widget/_bash_completions b/Completion/Base/Widget/_bash_completions
index 7abb654d4..feb721451 100644
--- a/Completion/Base/Widget/_bash_completions
+++ b/Completion/Base/Widget/_bash_completions
@@ -32,7 +32,7 @@ local key=$KEYS[-1] expl
 case $key in
   '!') _main_complete _command_names
        ;;
-  '$') _main_complete - parameters _wanted parameters expl 'exported parameters' \
+  '$') _main_complete - parameters _wanted parameters expl 'exported parameter' \
                                        _parameters -g '*export*'
        ;;
   '@') _main_complete _hosts
diff --git a/Completion/Base/Widget/_complete_tag b/Completion/Base/Widget/_complete_tag
index 5b50f1d85..397b8d901 100644
--- a/Completion/Base/Widget/_complete_tag
+++ b/Completion/Base/Widget/_complete_tag
@@ -50,13 +50,13 @@ if [[ -f $c_path$c_Tagsfile ]]; then
         -e '/^[a-zA-Z_].*/p' $c_path$c_Tagsfile))
 #  c_tags_array=($(perl -ne '/([a-zA-Z_0-9]+)[ \t:;,\(]*\x7f/ &&
 #                  print "$1\n"' $c_path$c_Tagsfile))
-  _main_complete - '' _wanted etags expl 'emacs tags' \
+  _main_complete - '' _wanted etags expl 'emacs tag' \
       compadd -a c_tags_array
 elif [[ -f $c_path$c_tagsfile ]]; then
   # tags doesn't have as much in, but the tag is easy to find.
   # we can use awk here.
   c_tags_array=($(awk '{ print $1 }' $c_path$c_tagsfile))
-  _main_complete - '' _wanted vtags expl 'vi tags' compadd -a c_tags_array
+  _main_complete - '' _wanted vtags expl 'vi tag' compadd -a c_tags_array
 else
   return 1
 fi
diff --git a/Completion/Darwin/Command/_defaults b/Completion/Darwin/Command/_defaults
index ca5d87e65..b05222af6 100644
--- a/Completion/Darwin/Command/_defaults
+++ b/Completion/Darwin/Command/_defaults
@@ -42,7 +42,7 @@ _defaults(){
       _arguments \
         "(1)-app:application:_mac_applications" \
         "(-app)1:domain:_defaults_domains" \
-        "2:keys:_defaults_keys"
+        "2:key:_defaults_keys"
       ;;
     write)
       _arguments \
diff --git a/Completion/Darwin/Command/_hdiutil b/Completion/Darwin/Command/_hdiutil
index 04e81e655..20e69cbc5 100644
--- a/Completion/Darwin/Command/_hdiutil
+++ b/Completion/Darwin/Command/_hdiutil
@@ -10,7 +10,7 @@ _hdiutil_disk() {
       disk_desc+=( "$disk_name:${${(M)REPLY%	*}#?}" )
     fi
   done
-  _describe -t devices disks disk_desc
+  _describe -t devices disk disk_desc
 }
 
 _hdiutil_device() {
@@ -143,7 +143,7 @@ _hdiutil(){
   _arguments -C '*:: :->subcmds'
 
   if (( CURRENT == 1 )); then
-    _describe -t commands "hdiutil subcommands" _1st_arguments
+    _describe -t commands "hdiutil subcommand" _1st_arguments
     return
   fi
 
diff --git a/Completion/Darwin/Command/_softwareupdate b/Completion/Darwin/Command/_softwareupdate
index 6db577b06..6054fd768 100644
--- a/Completion/Darwin/Command/_softwareupdate
+++ b/Completion/Darwin/Command/_softwareupdate
@@ -55,7 +55,7 @@ _softwareupdate() {
       ignored_subcmd=(add remove)
 
       if (( CURRENT == 1 )); then
-        _describe -t commands "subcommands" ignored_subcmd && return 0
+        _describe -t commands "subcommand" ignored_subcmd && return 0
       fi
       case $words[1] in
         add)
diff --git a/Completion/Debian/Command/_apt b/Completion/Debian/Command/_apt
index 4d60cd249..494d3bf82 100644
--- a/Completion/Debian/Command/_apt
+++ b/Completion/Debian/Command/_apt
@@ -531,7 +531,7 @@ _apt-cache () {
     --installed:bool \
     -- \
     /$'help\0'/ \| \
-    /$'add\0'/ /$'[^\0]#\0'/ ':files:index files:_files' \# \| \
+    /$'add\0'/ /$'[^\0]#\0'/ ':files:index file:_files' \# \| \
     /$'gencaches\0'/ \| \
     /$'showpkg\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \
     /$'showsrc\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \| \
diff --git a/Completion/Debian/Command/_axi-cache b/Completion/Debian/Command/_axi-cache
index bdefdd979..5fd4c38f8 100644
--- a/Completion/Debian/Command/_axi-cache
+++ b/Completion/Debian/Command/_axi-cache
@@ -10,7 +10,7 @@ _arguments \
   '*:args:->args' && return 0
 
 if (( CURRENT == 2 )); then
-  _wanted tag expl 'axi-cache commands' \
+  _wanted tag expl 'axi-cache command' \
     compadd help search more last show again info \
     rdetails depends madison policy showpkg showsrc
 else
diff --git a/Completion/Debian/Command/_lintian b/Completion/Debian/Command/_lintian
index 71e71ee3d..03491624f 100644
--- a/Completion/Debian/Command/_lintian
+++ b/Completion/Debian/Command/_lintian
@@ -8,8 +8,8 @@ case "$service" in
       '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-S,--setup-lab}'[setup or update the laboratory]' \
       '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-R,--remove-lab}'[remove the laboratory directory]' \
       '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-c,--check}'[run all checks over the specified packages]' \
-      '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-C,--check-part}'[run only the specified checks]:checks:_values -s , "lintian checks" binaries bin changelog-file chg conffiles cnf control-file dctrl control-files ctl copyright-file cpy cruft deb deb-format dfmt debconf dc debdiff dif debian-readme drm debhelper dh description des etcfiles etc fields fld files fil huge-usr-share hus infofiles info init.d ini manpages man md5sums md5 menus men menu-format mnf perl prl po-debconf pd scripts scr shared-libs shl spelling splr standards-version std' \
-      '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-X,--dont-check-part}'[run only the specified checks]:checks:_values -s , "lintian checks" binaries bin changelog-file chg conffiles cnf control-file dctrl control-files ctl copyright-file cpy cruft deb deb-format dfmt debconf dc debdiff dif debian-readme drm debhelper dh description des etcfiles etc fields fld files fil huge-usr-share hus infofiles info init.d ini manpages man md5sums md5 menus men menu-format mnf perl prl po-debconf pd scripts scr shared-libs shl spelling splr standards-version std' \
+      '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-C,--check-part}'[run only the specified checks]: :_values -s , "lintian check" binaries bin changelog-file chg conffiles cnf control-file dctrl control-files ctl copyright-file cpy cruft deb deb-format dfmt debconf dc debdiff dif debian-readme drm debhelper dh description des etcfiles etc fields fld files fil huge-usr-share hus infofiles info init.d ini manpages man md5sums md5 menus men menu-format mnf perl prl po-debconf pd scripts scr shared-libs shl spelling splr standards-version std' \
+      '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-X,--dont-check-part}'[run only the specified checks]: :_values -s , "lintian check" binaries bin changelog-file chg conffiles cnf control-file dctrl control-files ctl copyright-file cpy cruft deb deb-format dfmt debconf dc debdiff dif debian-readme drm debhelper dh description des etcfiles etc fields fld files fil huge-usr-share hus infofiles info init.d ini manpages man md5sums md5 menus men menu-format mnf perl prl po-debconf pd scripts scr shared-libs shl spelling splr standards-version std' \
       '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-u,--unpack}'[unpack up to unpack level]' \
       '(-c -r -u -C -R -S -X --check --check-part --dont-check-part --remove --remove-lab --setup-lab --unpack)'{-r,--remove}'[clean packages up to current unpack level]' \
       '(-h --help)'{-h,--help}'[help]' \
@@ -23,7 +23,7 @@ case "$service" in
       '(-o --no-override)'{-o,--no-override}'[do not use the overrides file]' \
       '--show-overrides[output tags that have been overridden]' \
       '--color:when:(never always auto)' \
-      '(-U --unpack-info)'{-U,--unpack-info}'[collect information]:info:_values -s , "collectibles" changelog-file copyright-file debfiles debian-readme diffstat doc-base-files file-info init.d md5sums menu-files objdump-info override-file scripts source-control-file' \
+      '(-U --unpack-info)'{-U,--unpack-info}'[collect information]:info:_values -s , "collectible" changelog-file copyright-file debfiles debian-readme diffstat doc-base-files file-info init.d md5sums menu-files objdump-info override-file scripts source-control-file' \
       '(-m --md5sums)'{-m,--md5sums}'[check md5sums when processing a .changes file]' \
       '--allow-root[override warning when run with superuser privileges]' \
       '--cfg:config file:_files' \
diff --git a/Completion/Debian/Command/_module-assistant b/Completion/Debian/Command/_module-assistant
index d75284954..b2c1e56ee 100644
--- a/Completion/Debian/Command/_module-assistant
+++ b/Completion/Debian/Command/_module-assistant
@@ -33,5 +33,5 @@ _arguments -A \
   '(-k --kernel-dir)'{-k,--kernel-dir}'[list of kernel headers/source directories, comma separated]:list of dirs:_files -/' \
   '(-t --text-mode)'{-t,--text-mode}'[no progress bars]' \
   '1:list of commands:_values -s , subcommands "${_module_assistant_commands[@]}"' \
-  '*:packages: compadd /usr/src/modass/var_cache_modass/*.avail_version(N:t:r) /var/cache/modass/*.avail_version(N:t:r)'
+  '*:package: compadd /usr/src/modass/var_cache_modass/*.avail_version(N:t:r) /var/cache/modass/*.avail_version(N:t:r)'
 
diff --git a/Completion/Linux/Command/_fusermount b/Completion/Linux/Command/_fusermount
index 02cb57237..41d3dec72 100644
--- a/Completion/Linux/Command/_fusermount
+++ b/Completion/Linux/Command/_fusermount
@@ -6,7 +6,7 @@ typeset -A opt_args
 _arguments \
   '-h[display help information]' \
   '-V[display version information]' \
-  '-o[specify mount options]:mount options:_fuse_values "mount options"' \
+  '-o[specify mount options]:mount option:_fuse_values "mount option"' \
   '-u[unmount a fuse mount]' \
   '-z[unmount lazily (work even when if the resource is still busy)]' \
   '-q[suppress nonessential output]' \
diff --git a/Completion/Linux/Command/_ipset b/Completion/Linux/Command/_ipset
index d05f13caf..061d16799 100644
--- a/Completion/Linux/Command/_ipset
+++ b/Completion/Linux/Command/_ipset
@@ -25,7 +25,7 @@ _set_types () {
 _ipsets () {
 	local -a vals
 	vals=( ${${(M)${(f)"$(_call_program ipsets ipset -L)"}%Name: *}#Name: } )
-	_describe -t ipsets "IP sets" vals
+	_describe -t ipsets "IP set" vals
 }
 _sets () {
 	_ipsets
@@ -118,7 +118,7 @@ _ips () {
 			if (( $ips )); then vals1+=$i; else bindings+=${i/ ->/:}; fi
 		done
 		_describe -t ips "IPs from $words[offset+3] set" vals1
-		_describe -t special_values "special values" vals2
+		_describe -t special_values "special value" vals2
 	fi
 }
 
diff --git a/Completion/Linux/Command/_mdadm b/Completion/Linux/Command/_mdadm
index b6dce7ccb..5b73ef4be 100644
--- a/Completion/Linux/Command/_mdadm
+++ b/Completion/Linux/Command/_mdadm
@@ -156,7 +156,7 @@ _mds () {
 	  return 1
 	fi
 	vals=( ${${${(M)${(f)"$(< $mdadm_conf)"}##ARRAY *}//ARRAY /}%%[[:blank:]]*} )
-	_describe -t mds "RAID devices" vals
+	_describe -t mds "RAID device" vals
 	_arguments \
 		"(-h --help)"{-h,--help}'[display a mode specific help message]'
 }
diff --git a/Completion/Linux/Command/_sysstat b/Completion/Linux/Command/_sysstat
index e091dd3ea..4de855b69 100644
--- a/Completion/Linux/Command/_sysstat
+++ b/Completion/Linux/Command/_sysstat
@@ -96,12 +96,12 @@ _sar() {
     '(--human -p)-h[make output easier to read: implies --human and -p]' \
     '(- 1 2)--help[display usage information]' \
     '--human[print sizes in human readable format]' \
-    '*-I[report statistics for interrupts]:interrupts: _values -s "," interrupts 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SUM ALL XALL' \
+    '*-I[report statistics for interrupts]: : _values -s "," interrupt 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SUM ALL XALL' \
     '-i[select records as close as possible to interval]:interval' \
     '--iface=-[specify network interfaces for which statistics are to be displayed]:network interface:_sequence _net_interfaces' \
     '-j[display persistent device names]:type:(ID LABEL PATH UUID)' \
-    '-m[report power management statistics]:keywords: _values -s "," keywords CPU FAN FREQ IN TEMP USB ALL' \
-    '-n[report network statistics]:keywords: _values -s "," keywords DEV EDEV NFS NFSD SOCK IP EIP ICMP EICMP TCP ETCP UDP SOCK6 IP6 EIP6 ICMP6 EICMP6 UDP6 FC SOFT ALL' \
+    '-m[report power management statistics]:keyword:_sequence compadd - CPU FAN FREQ IN TEMP USB ALL' \
+    '-n[report network statistics]:keyword:_sequence compadd - DEV EDEV NFS NFSD SOCK IP EIP ICMP EICMP TCP ETCP UDP SOCK6 IP6 EIP6 ICMP6 EICMP6 UDP6 FC SOFT ALL' \
     '-o[save readings to file in binary form]:file:_files' \
     '-P[report per-processor statistics]:processor: _values -s "," processors ALL' \
     '-p[pretty-print device names]' \
diff --git a/Completion/Linux/Type/_fuse_values b/Completion/Linux/Type/_fuse_values
index be830cb40..211eb5b35 100644
--- a/Completion/Linux/Type/_fuse_values
+++ b/Completion/Linux/Type/_fuse_values
@@ -47,7 +47,7 @@ fvals=(
 [[ -n $cvalsvar ]] && set -- "$@" ${(P)cvalsvar}
 
 if [[ $# -eq 0 ]]; then
-  set -- 'mount options' $fvals
+  set -- 'mount option' $fvals
 else
   set -- "$@" $fvals
 fi
diff --git a/Completion/Mandriva/Command/_urpmi b/Completion/Mandriva/Command/_urpmi
index d897f2c4b..9ab9e45b7 100644
--- a/Completion/Mandriva/Command/_urpmi
+++ b/Completion/Mandriva/Command/_urpmi
@@ -286,7 +286,7 @@ _urpmi() {
 	"($help --all --interactive  --name)--summary[print tag summary: summary]" \
 	"($help)--uniq[do not print identical lines]" \
 	"($help --all --interactive  --name)--url[print tag url: url]" \
-	"*:hdlist files:_files -g '*.cz(-.)'" \
+	"*:hdlist file:_files -g '*.cz(-.)'" \
       && ret=0
     ;;
   esac
diff --git a/Completion/Redhat/Command/_yum b/Completion/Redhat/Command/_yum
index a30aa579f..9425ba57c 100644
--- a/Completion/Redhat/Command/_yum
+++ b/Completion/Redhat/Command/_yum
@@ -167,7 +167,7 @@ _yumdb() {
 
       if [ "$cmd" = "help" ]; then
         if (( CURRENT == 2 )); then
-          _describe -t commands 'yum commands' _yum_cmds && ret=0
+          _describe -t commands 'yum command' _yum_cmds && ret=0
         else
           # help takes one argument
           _message 'no more arguments'
diff --git a/Completion/Solaris/Command/_coreadm b/Completion/Solaris/Command/_coreadm
index 7262e6423..655b48e63 100644
--- a/Completion/Solaris/Command/_coreadm
+++ b/Completion/Solaris/Command/_coreadm
@@ -40,6 +40,6 @@ _arguments -s \
   - set2 \
   '-p[PID-specific per-process core file name pattern]:' \
   '-P[PID-specific per-process core file content]:content:_values -s + "content" $content' \
-  '*:pids:_pids' \
+  '*:pid:_pids' \
   - set3 \
   '-u[update options from coreadm.conf]'
diff --git a/Completion/Solaris/Type/_svcs_fmri b/Completion/Solaris/Type/_svcs_fmri
index ffade6985..b090461c5 100644
--- a/Completion/Solaris/Type/_svcs_fmri
+++ b/Completion/Solaris/Type/_svcs_fmri
@@ -66,18 +66,18 @@ _svcs_fmri() {
 		# _wanted fmri expl "full or unambiguously abbreviated FMRIs" \
 		# 	_multi_parts -i / fmri_abbrevs
 
-		_wanted fmri expl "full or unambiguously abbreviated FMRIs" \
+		_wanted fmri expl "full or unambiguously abbreviated FMRI" \
 			compadd $fmri_abbrevs
 		;;
 
 	(-m)
-		_wanted fmri expl "milestone FMRIs" \
+		_wanted fmri expl "milestone FMRI" \
 			compadd $(svcs -H -o fmri svc:/milestone/\*) all
 		;;
 
 	(-r)
 		# TODO: need some way to pick out only restarters
-		_wanted fmri expl "restarter FMRIs" \
+		_wanted fmri expl "restarter FMRI" \
 			compadd master reset svc:/network/inetd:default
 		;;
 
diff --git a/Completion/Unix/Command/_ack b/Completion/Unix/Command/_ack
index e83a9330e..6dc3ab0d1 100644
--- a/Completion/Unix/Command/_ack
+++ b/Completion/Unix/Command/_ack
@@ -72,7 +72,7 @@ _arguments -C -s -S \
   '(1)-g[print files where the relative path + filename matches the given pattern]:pattern to match against filenames' \
   '--sort-files[sorts the found files lexically]' \
   '--show-types[print the file types that ack associates with each file]' \
-  '(--files-from -x)--files-from=[read the list of files to search from specified file]:files:_files' \
+  '(--files-from -x)--files-from=[read the list of files to search from specified file]:file:_files' \
   '(-x --files-from)-x[read the list of files to search from standard input]' \
   '*--ignore-dir'{,ectory}'=[ignore directory]:directory:_directories' \
   '*--noignore-dir'{,ectory}'=[remove directory from ignored list]:directory:_directories' \
@@ -86,7 +86,7 @@ _arguments -C -s -S \
   '*--type-'{add,set}'=[files with the given extensions are recognized as being of the given type]:type-def:->type-defs' \
   '*--type-del=[remove all filters associated with specified file type]: :->file-types' \
   '(--env)--noenv[ignore environment variables and global ackrc files]' '!(--noenv)--env)' \
-  '--ackrc=[specify an ackrc file to use]:files:_files' \
+  '--ackrc=[specify an ackrc file to use]:file:_files' \
   '--ignore-ack-defaults[ignore default definitions included with ack]' \
   "${ign}(- 1 *)--create-ackrc[output an ackrc based on customizations]" \
   "${ign}(- 1 *)"{-\?,--help}'[display usage information]' \
diff --git a/Completion/Unix/Command/_adb b/Completion/Unix/Command/_adb
index 75a447dfc..21cd68761 100644
--- a/Completion/Unix/Command/_adb
+++ b/Completion/Unix/Command/_adb
@@ -85,7 +85,7 @@ _adb() {
 	'-s[serial]: :_adb_device_serial' \
 	'(   -e)-d[device]' \
 	'(-d   )-e[emulator]' \
-	'1:options:_adb_options_handler' \
+	'1:option:_adb_options_handler' \
 	'*: : _default'
       
       return
@@ -141,7 +141,7 @@ _adb_dispatch_command () {
 	'(-d -e)-s[serial]: :_adb_device_serial' \
 	'(-s -e)-d[device]' \
 	'(-d -s)-e[emulator]' \
-	'*:options:_adb_options_handler'
+	'*:option:_adb_options_handler'
       ;;
   esac
 }
@@ -392,7 +392,7 @@ _adb_check_log_redirect () {
 
 (( $+functions[_adb_trace_opts] )) ||
 _adb_trace_opts() {
-  _values -s , 'adb trace options' \
+  _values -s , 'adb trace option' \
 	'(1 adb sockets packets rwx usb sync sysdeps transport jdwp)all' \
 	'(all adb sockets packets rwx usb sync sysdeps transport jdwp)1' \
 	'adb' \
@@ -418,7 +418,7 @@ _adb_device_serial() {
       devices[(i)${device%:*}:*]=$device
     fi
   done
-  _describe -t dev_serial 'available devices' devices
+  _describe -t dev_serial 'available device' devices
 }
 
 (( $+functions[_adb_logcat_filter_specification] )) ||
@@ -459,13 +459,13 @@ _adb_dispatch_logcat() {
 (( $+functions[_adb_options_handler] )) ||
 _adb_options_handler() {
   local expl
-  _wanted adb_options expl 'adb options' compadd "${ALL_ADB_COMMANDS[@]}"
+  _wanted adb_options expl 'adb option' compadd "${ALL_ADB_COMMANDS[@]}"
 }
 
 (( $+functions[_adb_shell_commands_handler] )) ||
 _adb_shell_commands_handler() {
   local expl
-  _wanted adb_shell_commands expl 'adb shell commands' compadd ls pm am mkdir rmdir rm cat 
+  _wanted adb_shell_commands expl 'adb shell command' compadd ls pm am mkdir rmdir rm cat
 }
 
 (( $+functions[_adb_device_available] )) ||
@@ -514,7 +514,7 @@ _adb_installed_packages() {
 _adb_users() {
   local -a users
   users=( ${${${(M)${(f)"$(adb shell pm list users)"}:#*UserInfo*}#*UserInfo\{}%:*} )
-  _describe -t users 'users' users
+  _describe -t users 'user' users
 }
 
 (( $+functions[_adb_cache_policy_single_command] )) ||
diff --git a/Completion/Unix/Command/_baz b/Completion/Unix/Command/_baz
index 6787f41e2..4dfcdf882 100644
--- a/Completion/Unix/Command/_baz
+++ b/Completion/Unix/Command/_baz
@@ -38,8 +38,8 @@ _baz_revisions () { _arch_namespace baz 4 "$argv[@]" }
 (( $+functions[_baz_local_revisions] )) ||
 _baz_local_revisions () {
   local expl1 expl2 tree_version=`$BAZ tree-version`
-  _description -V applied-patches expl1 "patches from this version"
-  _description -V other-patches expl2 "patches from other versions"
+  _description -V applied-patches expl1 "patch from this version"
+  _description -V other-patches expl2 "patch from other versions"
   compadd "$expl1[@]" `$BAZ logs`
   compadd "$expl2[@]" `$BAZ logs --full $($BAZ log-versions | grep -v $tree_version)`
   # This is incredibly slow.
@@ -82,7 +82,7 @@ _baz_limit () { #presently only does push-mirror style limits
 
     if [[ $PREFIX != *--* ]]; then
       _description -V categories expl "categories in $archive"
-      compadd -q -S -- "$expl[@]" `$BAZ categories $archive`
+      compadd -q -S -- "$expl[@]" `$BAZ category $archive`
     else
       _baz_namespace_branches 3
     fi
@@ -98,7 +98,7 @@ _baz_tree_or_rev () {
 _baz_libraries () {
   local libraries expl
   libraries=($(_call_program baz $BAZ my-revision-library))
-  _description -V libraries expl "revision libraries"
+  _description -V libraries expl "revision library"
   compadd "$expl[@]" -a libraries
 }
 
@@ -115,7 +115,7 @@ _baz_my_revision_library () {
 _baz_log_versions () {
   local logs expl
   logs=($(_call_program baz $BAZ log-versions))
-  _description -V versions expl "log versions"
+  _description -V versions expl "log version"
   compadd "$expl[@]" -a logs
 }
 
@@ -238,12 +238,12 @@ methods=(
 cmd_tagging_method=($cmd_id_tagging_method)
 
 local cmd_add cmd_add_id cmd_add_tag
-cmd_add=('*:files to add:_files')
+cmd_add=('*:file to add:_files')
 cmd_add_id=($cmd_add)
 cmd_add_tag=($cmd_add)
 
 local cmd_delete cmd_delete_id cmd_delete_tag
-cmd_delete=('*:files to delete:_files')
+cmd_delete=('*:file to delete:_files')
 cmd_delete_id=($cmd_delete)
 cmd_delete_tag=($cmd_delete)
 
@@ -272,7 +272,7 @@ cmd_changeset=(
   ':ORIG:_files -/'
   ':MOD:_files -/'
   ':DEST:_files -/'
-  '*:files:_files'
+  '*:file:_files'
 )
 cmd_mkpatch=("$cmd_changeset[@]")
 
@@ -288,7 +288,7 @@ local cmd_make_archive
 cmd_make_archive=('::name:' ':location:_files -/')
 
 local cmd_archive_setup
-cmd_archive_setup=('*:versions:_baz_branches --trailing-dashes')
+cmd_archive_setup=('*:version:_baz_branches --trailing-dashes')
 
 local cmd_make_category
 cmd_make_category=(':category:_baz_archives -S /')
@@ -304,7 +304,7 @@ cmd_import=('::version:_baz_versions')
 cmd_imprev=($cmd_import)
 
 local cmd_commit cmd_cmtrev
-cmd_commit=('*:files:_files')
+cmd_commit=('*:file:_files')
 cmd_cmtrev=($cmd_commit)
 
 local cmd_get cmd_getrev
@@ -573,7 +573,7 @@ _baz_main () {
     local -U cmds
     help=(${(f)"$($BAZ help)"})
     cmds=(${${${${(M)help:#* :*}/ #: #/:}%% ##}## #})
-    arguments=(':commands:(($cmds))')
+    arguments=(':command:(($cmds))')
   fi
   _arguments -S -A '-*' \
     {"${hide_short}(: -)-V",'(: -)--version'}'[display version]' \
diff --git a/Completion/Unix/Command/_bzr b/Completion/Unix/Command/_bzr
index 1b755b4ec..121c28166 100644
--- a/Completion/Unix/Command/_bzr
+++ b/Completion/Unix/Command/_bzr
@@ -65,7 +65,7 @@ case $cmd in
 	'--no-recurse[do not recurse into subdirectories]'
 	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
 	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
-	'*:unknown files:_bzr_unknownFiles'
+	'*:unknown file:_bzr_unknownFiles'
 	)
     ;;
 
@@ -74,7 +74,7 @@ case $cmd in
 	'--all[show annotations on all lines]'
 	'--long[show date in annotations]'
 	'(-r --revision)'{--revision=,-r}'[the revision to show]:rev:'
-	'*:files:_bzr_versionedFiles'
+	'*:file:_bzr_versionedFiles'
 	)
     ;;
 
@@ -100,7 +100,7 @@ case $cmd in
 
 (rename|move|mv)
     if (( CURRENT == 2 )); then
-	args+=( '*:files:_bzr_versionedFiles' )
+	args+=( '*:file:_bzr_versionedFiles' )
     else
 	args=( '*:destination dir:_files -/' )
     fi
@@ -218,7 +218,7 @@ case $cmd in
 	'--unchanged[include unchanged files]'
 	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
 	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
-	'*:modified files:_bzr_modifiedFiles'
+	'*:modified file:_bzr_modifiedFiles'
 	)
     ;;
 
@@ -229,7 +229,7 @@ case $cmd in
 	'--all[shelve all changes]'
 	'(-q --quiet)'{--quiet,-q}'[be quiet]'
 	'(-v --verbose)'{--verbose,-v}'[display more information]'
-	'*:modified files:_bzr_modifiedFiles'
+	'*:modified file:_bzr_modifiedFiles'
 	)
     ;;
 
@@ -279,7 +279,7 @@ case $cmd in
 	'(-r --revision)'{--revision=,-r}'[revision]:revision:'
 	'--diff-options=[options to pass to gdiff]:diff options:'
 	'(-p --prefix)'{--prefix,-p}'[set prefix added to old and new filenames]'
-	'*:files:_files'
+	'*:file:_files'
 	)
     ;;
 
@@ -376,7 +376,7 @@ case $cmd in
     args+=(
 	'--all[show annotations on all lines]'
 	"--plain[don't highlight annotation lines]"
-	'*:files:_bzr_versionedFiles'
+	'*:file:_bzr_versionedFiles'
 	)
     ;;
 
diff --git a/Completion/Unix/Command/_ctags b/Completion/Unix/Command/_ctags
index 3c80ba1c5..e2b28011b 100644
--- a/Completion/Unix/Command/_ctags
+++ b/Completion/Unix/Command/_ctags
@@ -147,7 +147,7 @@ if [ "$_ctags_type" = "universal" ]; then
     "--roles--[enable/disable tag roles for kinds of <lang>]:language:->languagedot"
     "--sort=-[should tags be sorted]:argument:(yes no foldcase)"
     "--tag-relative=-[should paths be relative to location of tag file]:argument:(yes no always never)"
-    "--totals=-[print stats about input and tag files]:arguments:(yes no extra)"
+    "--totals=-[print stats about input and tag files]:argument:(yes no extra)"
     "(--verbose -V)--verbose=-[enable verbose messages describing actions]:bool:(yes no)"
     "(--verbose -V)-V[enable verbose messages describing actions]"
     "--version[print version]"
@@ -196,7 +196,7 @@ elif [ "$_ctags_type" = "exuberant" ]; then
     "--regex--[define regex for locating tags in specific lang]:language:->language"
     "--sort=-[should tags be sorted]:argument:(yes no foldcase)"
     "--tag-relative=-[should paths be relative to location of tag file]:argument:(yes no)"
-    "--totals=-[print stats about input and tag files]:arguments:(yes no)"
+    "--totals=-[print stats about input and tag files]:argument:(yes no)"
     "(--verbose -V)--verbose=-[enable verbose messages describing actions]:bool:(yes no)"
     "(--verbose -V)-V[enable verbose messages describing actions]"
     "--version[print version]"
diff --git a/Completion/Unix/Command/_cvs b/Completion/Unix/Command/_cvs
index cba3eb773..4dc5b6c60 100644
--- a/Completion/Unix/Command/_cvs
+++ b/Completion/Unix/Command/_cvs
@@ -371,10 +371,10 @@ _cvs_log() {
     '-R[print the name of RCS file in the repository]' \
     '-N[don'\''t list tags]' \
     '(-h)-t[header with descriptive text]' \
-    '-d+[specify dates]:dates' \
+    '-d+[specify dates]:date range' \
     '-r-[specify revisions]:revisions' \
-    '-s+[specify states]:states:(Exp Stab Rel dead)' \
-    '-w-[specify logins]:logins' \
+    '-s+[specify states]:state:_sequence compadd - Exp Stab Rel dead' \
+    '-w-[specify logins]:login list' \
     '*:file:_cvs_files'
 }
 
@@ -388,10 +388,10 @@ _cvs_rlog() {
     '(-l)-R[recursive]' \
     '-N[don'\''t list tags]' \
     '(-h)-t[header with descriptive text]' \
-    '-d+[specify dates]:dates' \
+    '-d+[specify dates]:date range' \
     '-r-[specify revisions]:revisions' \
-    '-s+[specify states]:states:(Exp Stab Rel dead)' \
-    '-w-[specify logins]:logins' \
+    '-s+[specify states]:state:_sequence compadd - Exp Stab Rel dead' \
+    '-w-[specify logins]:login list' \
     '*:file:_cvs_modules'
 }
 
diff --git a/Completion/Unix/Command/_ecasound b/Completion/Unix/Command/_ecasound
index a39e426db..5fd9055a7 100644
--- a/Completion/Unix/Command/_ecasound
+++ b/Completion/Unix/Command/_ecasound
@@ -102,9 +102,9 @@ case $state in
     elif compset -P '*,*,'; then
       _message 'sampling rate'
     elif compset -P '*,'; then
-      _message 'channels'
+      _message 'channel'
     else
-      _values 'sampling parameters' \
+      _values 'sampling parameter' \
         'u8[unsigned 8-bit]' \
 	's16_le[signed 16-bit little endian]' \
 	's16_be[signed 16-bit big endian]' \
diff --git a/Completion/Unix/Command/_fetchmail b/Completion/Unix/Command/_fetchmail
index 31a92d984..bc5a39688 100644
--- a/Completion/Unix/Command/_fetchmail
+++ b/Completion/Unix/Command/_fetchmail
@@ -4,7 +4,7 @@ _arguments -S \
   {--bsmtp,'(--logfile)-L','(-L)--logfile','(--fetchmailrc)-f','(-f)--fetchmailrc','(--idfile)-i','(-i)--idfile'}':file:_files' \
   {--plugin,--plugout,'(--mda)-m','(-m)--mda'}':command:_command_names -e' \
   {'(--username)-u','(-u)--username'}:user:_users \
-  '--auth:authentication types:(password kerberos kerberos_v5)' \
+  '--auth:authentication type:(password kerberos kerberos_v5)' \
   {'(--protocol)-p','(-p)--protocol'}:protocol:'(auto pop2 pop3 apop rpop kpop sdps imap imap-k4 imap-gss etrn)' \
   {'(--port)-P','(-P)--port'}':port number' \
   '*:mail server:_hosts' \
diff --git a/Completion/Unix/Command/_ffmpeg b/Completion/Unix/Command/_ffmpeg
index c0b229f35..1329939cd 100644
--- a/Completion/Unix/Command/_ffmpeg
+++ b/Completion/Unix/Command/_ffmpeg
@@ -6,7 +6,7 @@ typeset -A opt_args
 (( $+functions[_ffmpeg_presets] )) || _ffmpeg_presets() {
     local presets
     presets=(~/.ffmpeg/*.ffpreset(:t:r) "$FFMPEG_DATADIR"/*.ffpreset(:t:r))
-    _wanted ffmpeg-presets expl 'select preset' compadd -a presets
+    _wanted ffmpeg-presets expl 'preset' compadd -a presets
 }
 
 (( $+functions[_ffmpeg_acodecs] )) || _ffmpeg_acodecs() {
@@ -49,7 +49,7 @@ typeset -A _ffmpeg_flags
 
 (( $+functions[_ffmpeg_flag_options] )) || _ffmpeg_flag_options() {
     local expl
-    _wanted options expl 'select flags' compadd -S '' -- {-,+}${^flag_options}
+    _wanted options expl 'flag' compadd -S '' -- {-,+}${^flag_options}
 }
 
 (( $+functions[_ffmpeg_more_flag_options] )) || _ffmpeg_more_flag_options() {
@@ -177,7 +177,7 @@ _arguments -C -S \
     && return
 
 [[ "$state" == "vfilters" ]] &&
-    _values -s , -S = 'video filters' \
+    _values -s , -S = 'video filter' \
     'aspect:set aspect ratio (rational number X\:Y or decimal number):' \
     'crop:crop input video (x\:y\:width\:height):' \
     'format: :_sequence -s : _ffmpeg_pix_fmts' \
diff --git a/Completion/Unix/Command/_find b/Completion/Unix/Command/_find
index 916fcf2e6..8ff60baf2 100644
--- a/Completion/Unix/Command/_find
+++ b/Completion/Unix/Command/_find
@@ -89,7 +89,7 @@ case $variant in
       '-X[warn if filename contains characters special to xargs]'
       '-f[specify file hierarchy to traverse]:path:_directories'
       "-x[don't span filesystems]"
-      '*-flags:flags:_chflags'
+      '*-flags:flag:_chflags'
     )
   ;|
   freebsd*|dragonfly*) args+=( '*-sparse' ) ;|
diff --git a/Completion/Unix/Command/_fuser b/Completion/Unix/Command/_fuser
index f497729fc..05de1c529 100644
--- a/Completion/Unix/Command/_fuser
+++ b/Completion/Unix/Command/_fuser
@@ -50,7 +50,7 @@ case $variant in
     )
     argf=( '*:name: _alternative "files:file:_files" "services:service:_fuser_services"' )
     [[ -prefix -  && -z ${${words[1,CURRENT-1]}[(r)-[A-Z][A-Z]*]} ]] &&
-        argf[1]+=' "signal:signals:_signals -P-"'
+        argf[1]+=' "signals:signal:_signals -P-"'
   ;;
   freebsd*|openbsd*|solaris2.<9->)
     args+=(
diff --git a/Completion/Unix/Command/_gem b/Completion/Unix/Command/_gem
index b35a5c358..53adfb89c 100644
--- a/Completion/Unix/Command/_gem
+++ b/Completion/Unix/Command/_gem
@@ -46,7 +46,7 @@ if [[ $state = command ]]; then
         'gem_dependencies:gem dependencies file guide'
         'platforms:show information about platforms'
       )
-      _describe -t topics 'help topics' helptopics -- && ret=0
+      _describe -t topics 'help topic' helptopics -- && ret=0
     ;&
     subcommands)
       cmds=( ${${${(M)${(f)"$(_call_program commands gem help commands)"}:#    [^ ]*}## #}/ ##/:} )
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index 0267acfa8..d27b43098 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -76,8 +76,8 @@ _git-add () {
       declare -a ignored_files_alternatives
       if [[ -n ${opt_args[(I)-f|--force]} ]]; then
         ignored_files_alternatives=(
-          'ignored-modified-files:ignored modified files:__git_ignore_line_inside_arguments __git_modified_files --ignored'
-          'ignored-other-files:ignored other files:__git_ignore_line_inside_arguments __git_other_files --ignored')
+          'ignored-modified-files:ignored modified file:__git_ignore_line_inside_arguments __git_modified_files --ignored'
+          'ignored-other-files:ignored other file:__git_ignore_line_inside_arguments __git_other_files --ignored')
       fi
 
       _alternative \
@@ -330,7 +330,7 @@ _git-branch () {
     "($l $m $d -f --force)"{-f,--force}'[force the creation of a new branch]' \
     "($l $m $d -t --track)"{-t,--track}'[setup configuration so that pull merges from the start point]' \
     "($l $m $d)--no-track[override the branch.autosetupmerge configuration variable]" \
-    "($l $m $d -u --set-upstream --set-upstream-to --unset-upstream)"{-u+,--set-upstream-to=}'[set up configuration so that pull merges]:remote-branches:__git_remote_branch_names' \
+    "($l $m $d -u --set-upstream --set-upstream-to --unset-upstream)"{-u+,--set-upstream-to=}'[set up configuration so that pull merges]:remote branch:__git_remote_branch_names' \
     "($l $m $d -u --set-upstream --set-upstream-to --unset-upstream)--unset-upstream[remove upstream configuration]" \
     "($l $m $d)*--contains=[only list branches that contain the specified commit]: :__git_committishs" \
     "($l $m $d)*--no-contains=[only list branches that don't contain the specified commit]: :__git_committishs" \
@@ -3138,7 +3138,7 @@ __git_config_option-or-value () {
             ;;
           (*.)
             local -a existing_subsections=( ${${${(M)git_present_options:#${IPREFIX}*.*}#${IPREFIX}}%.*} )
-            _describe -t existing-subsections "existing subsections" existing_subsections -S . && ret=0
+            _describe -t existing-subsections "existing subsection" existing_subsections -S . && ret=0
             ;;
         esac
       else
@@ -4070,7 +4070,7 @@ _git-help () {
     '(-a --all -g --guides -c --config -i --info -m --man)'{-w,--web}'[display manual for the command in HTML format]' \
     '(-g --guides -c --config -i --info -m --man -w --web)'{-g,--guides}'[prints a list of useful guides on the standard output]' \
     '(-v --verbose)'{-v,--verbose}'[print command descriptions]' \
-    ': : _alternative commands:command:_git_commands "guides:git guides:(attributes cli core-tutorial cvs-migration diffcore everyday glossary hooks ignore modules namespaces repository-layout revisions tutorial tutorial-2 workflows)"'
+    ': : _alternative commands:command:_git_commands "guides:git guide:(attributes cli core-tutorial cvs-migration diffcore everyday glossary hooks ignore modules namespaces repository-layout revisions tutorial tutorial-2 workflows)"'
 }
 
 (( $+functions[_git-instaweb] )) ||
@@ -5381,7 +5381,7 @@ _git-pack-redundant () {
     '(:)--all[process all packs]' \
     '--alt-odb[do not require objects to be present in local packs]' \
     '--verbose[output some statistics to standard error]' \
-    '(--all)*::packs:_files -g "*.pack(-.)"'
+    '(--all)*::pack:_files -g "*.pack(-.)"'
 }
 
 (( $+functions[_git-rev-list] )) ||
@@ -7317,7 +7317,7 @@ __git_repositories () {
 __git_local_repositories () {
   local expl
 
-  _wanted local-repositories expl 'local repositories' _directories
+  _wanted local-repositories expl 'local repository' _directories
 }
 
 (( $+functions[__git_repositories_or_urls] )) ||
diff --git a/Completion/Unix/Command/_gradle b/Completion/Unix/Command/_gradle
index 9a75daefb..adf5e9aa8 100644
--- a/Completion/Unix/Command/_gradle
+++ b/Completion/Unix/Command/_gradle
@@ -95,18 +95,18 @@ if [[ $words[CURRENT] != -* ]]; then
                 _tags gradle_group gradle_all
                 while _tags; do
                     # Offer main tasks and secondary tasks in different tags.
-                    _requested gradle_group && _describe 'group tasks' gradle_group_tasks && ret=0
-                    _requested gradle_all && _describe 'secondary tasks' gradle_all_tasks && ret=0
+                    _requested gradle_group && _describe 'group task' gradle_group_tasks && ret=0
+                    _requested gradle_all && _describe 'secondary task' gradle_all_tasks && ret=0
                     (( ret )) || break
                 done
             elif [[ $state == alltask ]]; then
                 # After '--exclude-task', we don't make a distinction between main tasks and
                 # secondary tasks.
-                _describe 'all tasks' gradle_group_tasks -- gradle_all_tasks && ret=0
+                _describe 'task' gradle_group_tasks -- gradle_all_tasks && ret=0
             fi
         fi
     else
-        _describe 'built-in tasks' '(
+        _describe 'built-in task' '(
             "dependencies:Displays all dependencies declared in root project."
             "dependencyInsight:Displays the insight into a specific dependency in root project."
             "help:Displays a help message."
diff --git a/Completion/Unix/Command/_initctl b/Completion/Unix/Command/_initctl
index 2d7c2494b..b404c0c16 100644
--- a/Completion/Unix/Command/_initctl
+++ b/Completion/Unix/Command/_initctl
@@ -51,14 +51,14 @@ _initctl_known_events()
 _initctl_multiple_known_events()
 {
   [[ ${#_initctl_events_list} -eq 0 ]] && _initctl_fillarray_events_args
-  _values -s "," "Events" "$_initctl_events_list[@]"
+  _values -s "," "event" "$_initctl_events_list[@]"
 }
 
 # list KEY= arguments, generate array if necessary
 _initctl_known_eventargs()
 {
   [[ ${#_initctl_eventargs_list} -eq 0 ]] && _initctl_fillarray_events_args
-  _values "Argument Keys" "$_initctl_eventargs_list[@]"
+  _values "argument key" "$_initctl_eventargs_list[@]"
 }
 
 # describe and offer commands for initctl, then call matching completion function
@@ -82,7 +82,7 @@ _initctl_command()
     )
 
     if (( CURRENT == 1 )); then
-        _describe -t command "initctl Commands" cmds
+        _describe -t command "initctl command" cmds
     fi
 
     local cmd=$words[1]
@@ -97,8 +97,8 @@ _initctl_startstop()
     _arguments \
         '--no-wait[do not wait for operation to complete before exiting]' \
         "${common_args[@]}" \
-        ':Upstart Jobs:_initctl_helper_jobs' \
-        '*::Argument Keys:_initctl_known_eventargs'
+        ':upstart job:_initctl_helper_jobs' \
+        '*::argument key:_initctl_known_eventargs'
 }
 
 # completion for anything that takes one job
@@ -106,7 +106,7 @@ _initctl_argjob()
 {
     _arguments \
         "${common_args[@]}" \
-        ':Upstart Jobs:_initctl_helper_jobs' \
+        ':upstart job:_initctl_helper_jobs' \
         '*::'
 }
 
@@ -116,8 +116,8 @@ _initctl_emit()
     _arguments \
         '--no-wait[do not wait for event to finish before exiting]' \
         "${common_args[@]}" \
-        ':Events:_initctl_known_events' \
-        '*::Argument Keys:_initctl_known_eventargs'
+        ':event:_initctl_known_events' \
+        '*::argument key:_initctl_known_eventargs'
 }
 
 # the fallback, just the options
@@ -133,7 +133,7 @@ _initctl_show-config()
     _arguments \
       "(-e --enumerate)"{-e,--enumerate}"[enumerate emit lines]" \
         "${common_args[@]}" \
-        '::Upstart Jobs:_initctl_helper_jobs' \
+        '::upstart job:_initctl_helper_jobs' \
         '*::'
 }
 
@@ -144,7 +144,7 @@ _initctl_check-config()
       "(-i --ignore-events)"{-i,--ignore-events}"[list of comma-separated events to ignore]:Events:_initctl_multiple_known_events" \
       "(-w --warn)"{-w,--warn}"[treat any unknown jobs or events as error]" \
         "${common_args[@]}" \
-        '::Upstart Jobs:_initctl_helper_jobs' \
+        '::upstart job:_initctl_helper_jobs' \
         '*::'
 }
 
@@ -172,7 +172,7 @@ _initctl()
   # depending on which command was used, call different completion functions
   case $service in
     initctl)
-      _arguments "${common_args[@]}" '*::Initctl Commands:_initctl_command'
+      _arguments "${common_args[@]}" '*::initctl command:_initctl_command'
     ;;
     start|stop|restart|reload|status)
       _call_function ret _initctl_${cmd_completion_funcs[${service}]-${cmd_completion_default}}
diff --git a/Completion/Unix/Command/_install b/Completion/Unix/Command/_install
index 5ad84645e..364119961 100644
--- a/Completion/Unix/Command/_install
+++ b/Completion/Unix/Command/_install
@@ -106,7 +106,7 @@ case $state in
       'a[symlinks use absolute path]'
       'r[symlinks use relative path]'
     )
-    _values -S '' 'link flags' $tmp && ret=0
+    _values -S '' 'link flag' $tmp && ret=0
     ;;
 esac
 
diff --git a/Completion/Unix/Command/_joe b/Completion/Unix/Command/_joe
index 592c34a10..74b0bf1a3 100644
--- a/Completion/Unix/Command/_joe
+++ b/Completion/Unix/Command/_joe
@@ -36,4 +36,4 @@ _arguments \
   '-linums[display line numbers before each line]' \
   '-rdonly[make file read-only]' \
   '-keymap[use an alternate section of joerc for keybindings]:keymap name' \
-  '*:files:_files'
+  '*:file:_files'
diff --git a/Completion/Unix/Command/_locate b/Completion/Unix/Command/_locate
index 23305f798..af07473b3 100644
--- a/Completion/Unix/Command/_locate
+++ b/Completion/Unix/Command/_locate
@@ -44,7 +44,7 @@ case $variant in
       -u'[create slocate database starting at path /]'
       -U'[create slocate database starting at given path]:directory:_files -/'
       -c'[parse GNU locate updatedb with -u, -U]'
-      -e'[exclude directories with -u, -U]:directories:_files -/'
+      -e'[exclude directories with -u, -U]: : _dir_list -s,'
       -f'[exclude file system types from db with -u, -U]:file system:_file_systems'
       -l'[security level]:level:(0 1)'
       -q'[quiet mode]'
diff --git a/Completion/Unix/Command/_lp b/Completion/Unix/Command/_lp
index 914d63ff2..ad7e97203 100644
--- a/Completion/Unix/Command/_lp
+++ b/Completion/Unix/Command/_lp
@@ -83,7 +83,7 @@ _lp_job_options()
 	  "DuplexTumble:flip short side"
 	  "DuplexNoTumble:flip long side"
 	  "None")
-	_describe "duplex options" desc_opts
+	_describe "duplex option" desc_opts
 	;;
 
       (*)
@@ -103,11 +103,11 @@ _lp_job_options()
       eq_suffix=(-S '=')
     fi
 
-    _description lpopts expl "generic printer options"
+    _description lpopts expl "generic printer option"
     compadd "$expl[@]" $eq_suffix $lopts_with_args
     compadd "$expl[@]" $lopts_no_args
 
-    _description printeropts expl "printer specific options"
+    _description printeropts expl "printer specific option"
     compadd "$expl[@]" $eq_suffix \
       $(_call_program list-printer-options \
 	lpoptions $printer -l | cut -d/ -f1)
diff --git a/Completion/Unix/Command/_ls b/Completion/Unix/Command/_ls
index 1fd9383f5..df14e7e2c 100644
--- a/Completion/Unix/Command/_ls
+++ b/Completion/Unix/Command/_ls
@@ -196,7 +196,7 @@ else
     '(-q --hide-control-chars)--show-control-chars'
     '(- :)--help[display help information]'
     '(- :)--version[display version information]'
-    '*:files:_files'
+    '*:file:_files'
   )
   if [[ $OSTYPE = linux* ]]; then
     arguments+=(
diff --git a/Completion/Unix/Command/_make b/Completion/Unix/Command/_make
index 21ed56184..ae91440f0 100644
--- a/Completion/Unix/Command/_make
+++ b/Completion/Unix/Command/_make
@@ -204,7 +204,7 @@ _make() {
     ;;
 
     (debug)
-    _values -s , 'debug options' \
+    _values -s , 'debug option' \
       '(b v i j m)a[all debugging output]' \
       'b[basic debugging output]' \
       '(b)v[one level above basic]' \
diff --git a/Completion/Unix/Command/_moosic b/Completion/Unix/Command/_moosic
index 54d768c8c..475a0c75c 100644
--- a/Completion/Unix/Command/_moosic
+++ b/Completion/Unix/Command/_moosic
@@ -216,7 +216,7 @@ _moosic_cmd_version() {
 _moosic_song_files()
 {
     _arguments -A '-*' $main_opts $filelist_opts $auto_opts \
-               '*:song files:_files'
+               '*:song file:_files'
 }
 
 _moosic_cmd_append() {
@@ -282,7 +282,7 @@ _moosic_cmd_stagger-merge() {
 _moosic_cmd_interval-add() {
     _arguments -A '-*' $main_opts $filelist_opts \
                   '1:interval:' \
-                  '*:song files:_files'
+                  '*:song file:_files'
 }
 
 ### REMOVING COMMANDS
diff --git a/Completion/Unix/Command/_mysql_utils b/Completion/Unix/Command/_mysql_utils
index f1ad97bcd..a7b285f1c 100644
--- a/Completion/Unix/Command/_mysql_utils
+++ b/Completion/Unix/Command/_mysql_utils
@@ -187,7 +187,7 @@ _mysqladmin() {
 	  _wanted databases expl "MySQL database" _mysql_databases && ret=0
 	;;
 	kill)
-	  _message -e ids 'thread ids'
+	  _message -e ids 'thread id'
 	;;
 	password)
 	  _message -e passwords 'new password'
diff --git a/Completion/Unix/Command/_mysqldiff b/Completion/Unix/Command/_mysqldiff
index 4b46c86df..52b96ef21 100644
--- a/Completion/Unix/Command/_mysqldiff
+++ b/Completion/Unix/Command/_mysqldiff
@@ -20,8 +20,8 @@ _mysqldiff () {
 
 _mysql_db_or_file () {
   _alternative \
-    'databases:MySQL databases:_mysql_databases' \
-    'files:MySQL database definition files:_files -g "*.(my|)sql(-.)"'
+    'databases:MySQL database:_mysql_databases' \
+    'files:MySQL database definition file:_files -g "*.(my|)sql(-.)"'
 }
 
 _mysql_utils
diff --git a/Completion/Unix/Command/_nm b/Completion/Unix/Command/_nm
index 423fd3223..2f608c5fc 100644
--- a/Completion/Unix/Command/_nm
+++ b/Completion/Unix/Command/_nm
@@ -66,7 +66,7 @@ if _pick_variant -r variant binutils=GNU elftoolchain=elftoolchain elfutils=elfu
 	'--plugin[load specified plugin]:plugin'
 	'--special-syms[include special symbols in the output]'
 	'--synthetic[display synthetic symbols as well]'
-	"--target=[target object format]:targets:(${${(@M)${(f)$(_call_program targets nm --help)}:#*supported targets:*}##*: })"
+	"--target=[target object format]:target:(${${(@M)${(f)$(_call_program targets nm --help)}:#*supported targets:*}##*: })"
 	'--with-symbol-versions[display version strings after symbol names]'
       )
     ;;
diff --git a/Completion/Unix/Command/_objdump b/Completion/Unix/Command/_objdump
index 989cd3f0b..5152e6b6e 100644
--- a/Completion/Unix/Command/_objdump
+++ b/Completion/Unix/Command/_objdump
@@ -184,7 +184,7 @@ case "$state" in
         ${=${(M)${(f)"$(_call_program targets objdump --help)"}##* supported architectures:*}##*: } && ret=0
   ;;
   disassembler_options)
-    _values -s , "disassembler options" "${(@)${(@)${(@M)${(f)${(ps.-M switch.)$(_call_program targets objdump --help)}[2]}:#  [^ ]*}#  }%% *}" && ret=0
+    _values -s , "disassembler option" "${(@)${(@)${(@M)${(f)${(ps.-M switch.)$(_call_program targets objdump --help)}[2]}:#  [^ ]*}#  }%% *}" && ret=0
   ;;
   llvm_targets)
     _values "target architecture" "${(z)${(@)${(f)$(_call_program targets
diff --git a/Completion/Unix/Command/_perforce b/Completion/Unix/Command/_perforce
index 0d007e3bc..4e69dee78 100644
--- a/Completion/Unix/Command/_perforce
+++ b/Completion/Unix/Command/_perforce
@@ -1354,7 +1354,7 @@ _perforce_fstat_fields() {
     ${${${${(M)${(f)"$(_perforce_call_p4 help-fstat help fstat)"}:#[[:blank:]]#[a-zA-Z]##(|\#)[[:blank:]]##--*}##[[:blank:]]#}:#fstat *}//[[:blank:]]##--[[:blank:]]##/:}
   )
   compset -P '*[,[:blank:]]'
-  _describe -t fstat-fields 'Perforce fstat fields' values -S, -q
+  _describe -t fstat-fields 'Perforce fstat field' values -S, -q
 }
 
 
diff --git a/Completion/Unix/Command/_perl b/Completion/Unix/Command/_perl
index 4a917903c..d7e8f1b51 100644
--- a/Completion/Unix/Command/_perl
+++ b/Completion/Unix/Command/_perl
@@ -31,7 +31,7 @@ _perl () {
     "-u[dump core after parsing script]" \
     "-U[allow unsafe operations]" \
     "-v[print version, patchlevel and license]" \
-    "-V-[print perl configuration information]:configuration keys:_perl_config_vars" \
+    "-V-[print perl configuration information]:configuration key:_perl_config_vars" \
     '(   -W -X)-w[turn warnings on for compilation of your script (recommended)]' \
     "(-w    -X)-W[enable all warnings (ignores 'no warnings')]" \
     "(-w -W   )-X[disable all warnings (ignores 'use warnings')]" \
@@ -96,7 +96,7 @@ _perl_config_vars () {
 }
 
 _perl_unicode_flags () {
-  _values -s '' 'unicode bitmask or flags' \
+  _values -s '' 'unicode bitmask or flag' \
     '(S)I[  1 STDIN is assumed to be in UTF-8]' \
     '(S)O[  2 STDOUT will be in UTF-8]' \
     '(S)E[  4 STDERR will be in UTF-8]' \
diff --git a/Completion/Unix/Command/_perldoc b/Completion/Unix/Command/_perldoc
index 3e58d5a50..b724d74ee 100644
--- a/Completion/Unix/Command/_perldoc
+++ b/Completion/Unix/Command/_perldoc
@@ -3,7 +3,7 @@
 local curcontext="$curcontext" state line expl args ret=1
 typeset -A opt_args
 
-args=( '*:Perl pod pages:->perl-pods' )
+args=( '*:Perl pod page:->perl-pods' )
 
 if [[ $service = *PERLDOC* ]]; then
   compset -q
@@ -46,7 +46,7 @@ case  $state in
 
   perl-pods)
     if (( $+opt_args[-F] )); then
-      _wanted files expl 'Perl modules and .pods' \
+      _wanted files expl 'Perl module or .pod' \
           _files -g "*.(pod|pm)(-.)" && ret=0
     else
       _alternative \
diff --git a/Completion/Unix/Command/_ps b/Completion/Unix/Command/_ps
index 98dcd1cd0..9b54cbcc6 100644
--- a/Completion/Unix/Command/_ps
+++ b/Completion/Unix/Command/_ps
@@ -236,8 +236,8 @@ else
   [[ -z "$state" ]] && return ret
 fi
 
-_values -s '' -S ' ' 'options' $bsd && ret=0
-_values -S ' ' 'options' $bsdarg && ret=0
+_values -s '' -S ' ' 'option' $bsd && ret=0
+_values -S ' ' 'option' $bsdarg && ret=0
 if [[ -z $pids ]]; then
   _pids && ret=0
 fi
diff --git a/Completion/Unix/Command/_qemu b/Completion/Unix/Command/_qemu
index 3c21c3e74..30fcd6757 100644
--- a/Completion/Unix/Command/_qemu
+++ b/Completion/Unix/Command/_qemu
@@ -6,7 +6,7 @@ _qemu_log_items () {
     [[ $hline[1] = Log ]] && continue
     opts=($opts "${hline[1]}[${hline[2,-1]}]")
   done
-  _values -s , 'log items' $opts
+  _values -s , 'log item' $opts
 }
 
 local _qemu_machines
@@ -45,7 +45,7 @@ _arguments \
   '-s[wait gdb connection to port 1234]' \
   '-p[change gdb connection port]:port:_ports' \
   '-S[do not start CPU at startup]' \
-  '-d[output log in /tmp/qemu.log]:log items:_qemu_log_items' \
+  '-d[output log in /tmp/qemu.log]:log item:_qemu_log_items' \
   '-hdachs[force hard disk 0 geometry (usually qemu can guess it)]:hd0 geometry c,h,s:' \
   '-vga[select video card type]:card type:(std cirrus vmware qxl xenfb none)' \
   '-no-acpi[disable ACPI]' \
diff --git a/Completion/Unix/Command/_quilt b/Completion/Unix/Command/_quilt
index 8167bce1e..8f39dadac 100644
--- a/Completion/Unix/Command/_quilt
+++ b/Completion/Unix/Command/_quilt
@@ -36,7 +36,7 @@ _quilt_unapplied() {
 
 _arguments $help \
   '--trace[run the command in bash trace mode]' \
-  '--quiltrc=[use the specified configuration file]:files:_files' \
+  '--quiltrc=[use the specified configuration file]:file:_files' \
   '--version[print the version number and exit]' \
   ':quilt command:->cmd' \
   '*:: :->subcmd' && return
@@ -116,12 +116,12 @@ case $words[1] in
   add)
     _arguments -S $help \
       '-P+[specify patch to add files to]:patch:_quilt_applied' \
-      '*:files:_files' && return
+      '*:file:_files' && return
   ;;
   annotate)
     _arguments $help \
       '-P[stop checking for changes at the specified rather than the topmost patch]:patch:_quilt_series' \
-      ':files:_files' && return
+      ':file:_files' && return
   ;;
   applied) _arguments $help ':quilt series:_quilt_series' && return ;;
   delete)
@@ -142,9 +142,9 @@ case $words[1] in
       '(-P -z)--snapshot[diff against snapshot]' \
       '--diff=[use the specified utility for generating the diff]:diff utility:_command_names -e' \
       '--sort[sort files by name]' \
-      '*:files:_files' && return
+      '*:file:_files' && return
   ;;
-  edit) _arguments $help '*:files:_files' && return ;;
+  edit) _arguments $help '*:file:_files' && return ;;
   files)
     _arguments -s $help $verbose \
       '-a[list all files in all applied patches]' \
@@ -187,14 +187,14 @@ case $words[1] in
       '-P+[patch filename to use inside quilt]:quilt select patch filename: ' \
       '-f[overwrite/update existing patches]' \
       '-d+[header resolution when overwriting in existing patch]:resolution:((a\:all\ headers n\:new\ headers o\:old\ headers))' \
-      '*:files:_files' && return
+      '*:file:_files' && return
   ;;
   mail)
     _arguments $help \
       '(-h -M)-m[introduction text to use]:introduction text' \
       '(-h -m)-M[read introduction text from file]:file:_files' \
       '--prefix=[use an alternate prefix in the bracketed part of the subjects generated]:quilt select prefix: ' \
-      '--mbox=[store all messages in the specified file in mbox format]:files:_files' \
+      '--mbox=[store all messages in the specified file in mbox format]:file:_files' \
       '--send[send the messages directly]' \
       '--sender=[specify envelope sender address to use]:sender:_email_addresses -c' \
       '--from=[from header]:address:_email_addresses' \
@@ -202,13 +202,13 @@ case $words[1] in
       '*--to=[append a recipient to the To header]:recipient:_email_addresses' \
       '*--cc=[append a recipient to the Cc header]:recipient:_email_addresses' \
       '*--bcc=[append a recipient to the Bcc header]:recipient:_email_addresses' \
-      '--signature=[append specified signature file to messages]:files:_files' \
+      '--signature=[append specified signature file to messages]:file:_files' \
       '--reply-to=[add reply address to message]:address:_email_addresses' \
       '*:patch:_quilt_series' && return
   ;;
   new) _arguments $help $pstyle ':patch name' && return ;;
   next) _arguments $help ':patch:_quilt_series' && return ;;
-  patches) _arguments -S $help $verbose $color '*:files:_files' && return ;;
+  patches) _arguments -S $help $verbose $color '*:file:_files' && return ;;
   pop)
     _arguments -s $help $verbose \
       '-a[remove all applied patches]' \
@@ -253,7 +253,7 @@ case $words[1] in
   revert)
     _arguments $help \
       '-P[revert changes in the named patch]:patch:_quilt_series' \
-      '*:files:_files' && return
+      '*:file:_files' && return
   ;;
   series) _arguments $help $verbose $color && return ;;
   setup)
@@ -261,7 +261,7 @@ case $words[1] in
       '-d[specify path prefix for resulting source tree]:prefix:_files -W / -P /' \
       '--sourcedir[specify location of package sources]:directory:_directories' \
       '--fuzz=[set the maximum fuzz factor]:factor' \
-      ':files:_files' && return
+      ':file:_files' && return
   ;;
   snapshot) _arguments $help '-d[only remove current snapshot]' && return ;;
   unapplied) _arguments $help ':patch:_quilt_series' && return ;;
diff --git a/Completion/Unix/Command/_rclone b/Completion/Unix/Command/_rclone
index 40f06e0ba..27b4dd926 100644
--- a/Completion/Unix/Command/_rclone
+++ b/Completion/Unix/Command/_rclone
@@ -79,7 +79,7 @@ _arguments -C \
   '--dump-bodies[dump HTTP headers and bodies - may contain sensitive info]' \
   '--dump-headers[dump HTTP headers - may contain sensitive info]' \
   '--exclude[exclude files matching pattern]:stringArray' \
-  '--exclude-from[read exclude patterns from file]:files:_files' \
+  '--exclude-from[read exclude patterns from file]:file:_files' \
   '--exclude-if-present[exclude directories if filename is present]:string' \
   '--fast-list[use recursive list if available]' \
   '--files-from[read list of source-file names from file]:file:_files' \
@@ -339,8 +339,8 @@ _arguments -C \
 if [[ $state == 'files_or_remotes' ]]; then
   remotes=( $(_call_program rclone-remotes rclone listremotes) )
   _alternative \
-    "remote:rclone-remotes:compadd -a remotes" \
-    "file:files:_files" && ret=0
+    "rclone-remotes:remote:compadd -a remotes" \
+    "files:file:_files" && ret=0
 fi
 
 return ret
diff --git a/Completion/Unix/Command/_rsync b/Completion/Unix/Command/_rsync
index e14c99cc6..b1a4f6046 100644
--- a/Completion/Unix/Command/_rsync
+++ b/Completion/Unix/Command/_rsync
@@ -71,14 +71,14 @@ _rsync_info() {
   local opts
   opts=( ${${(M)${(f)"$(_call_program values $words[1] --info=help)"}:#*Mention*}/ ##Me/[me} )
   (( $#opts )) && opts=( '(ALL NONE HELP)'${^opts}\] )
-  _values -s , 'info options' $opts ALL NONE HELP
+  _values -s , 'info option' $opts ALL NONE HELP
 }
 
 _rsync_debug() {
   local opts
   opts=( ${${(M)${(f)"$(_call_program values $words[1] --debug=help)"}:#*Debug*}/ ##De/[de} )
   (( $#opts )) && opts=( '(ALL NONE HELP)'${^opts}\] )
-  _values -s , 'debug options' $opts ALL NONE HELP
+  _values -s , 'debug option' $opts ALL NONE HELP
 }
 
 _rsync_files() {
diff --git a/Completion/Unix/Command/_runit b/Completion/Unix/Command/_runit
index 81ba26a44..5c22cc54e 100644
--- a/Completion/Unix/Command/_runit
+++ b/Completion/Unix/Command/_runit
@@ -19,7 +19,7 @@ _sv_commands() {
     'kill':'send SIGKILL if service is running'
     'exit':'send SIGTERM and SIGCONT if service is running. Do not restart service.'
   )
-  _describe -t commands "sv commands" sv_ary -V sv_commands
+  _describe -t commands "sv command" sv_ary -V sv_commands
 }
 
 _sv_lsb() {
@@ -41,7 +41,7 @@ _sv_lsb() {
 }
 
 _sv_additional() {
-  _describe -t additional-commands "sv additional commands" '("check:check status of service")' -V sv_addl_comm
+  _describe -t additional-commands "sv additional command" '("check:check status of service")' -V sv_addl_comm
 }
 
 local curcontext="$curcontext" state line
@@ -68,6 +68,6 @@ case $state in
     )
 
     sv_services=( ${sv_services#$svdir/} )
-    _describe -t services "sv services" sv_services
+    _describe -t services "sv service" sv_services
   ;;
 esac
diff --git a/Completion/Unix/Command/_scons b/Completion/Unix/Command/_scons
index 2c620cc1a..77fe6dfb0 100644
--- a/Completion/Unix/Command/_scons
+++ b/Completion/Unix/Command/_scons
@@ -19,7 +19,7 @@ _arguments -s -S \
   '(-)-'{h,-help}'[display defined usage information]' \
   '(-)-'{H,-help-options}'[display usage information]' \
   '(-i -ignore-errors)-'{i,-ignore-errors}'[ignore errors from build actions]' \
-  \*{-I,--include-dir=}'[add directory to search Python modules]:directories:_directories' \
+  \*{-I,--include-dir=}'[add directory to search Python modules]:directory:_directories' \
   '(--implicit-deps-changed --implicit-deps-unchanged)--implicit-cache[cache scanned dependencies]' \
   '(--implicit-cache --implicit-deps-changed)--implicit-deps-changed[rescan dependencies]' \
   '(--implicit-cache --implicit-deps-unchanged)--implicit-deps-unchanged[ignore changes to scanned dependencies]' \
diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh
index c896f9316..20087174c 100644
--- a/Completion/Unix/Command/_ssh
+++ b/Completion/Unix/Command/_ssh
@@ -397,7 +397,7 @@ _ssh () {
           state=dynforward
           ;;
         (#i)kbdinteractivedevices=*)
-          _values -s , 'keyboard-interactive authentication methods' \
+          _values -s , 'keyboard-interactive authentication method' \
               'bsdauth' 'pam' 'skey' && ret=0
           ;;
         (#i)(kexalgorithms|gssapikexalgorithms)=*)
diff --git a/Completion/Unix/Command/_tla b/Completion/Unix/Command/_tla
index 1e4cdd8d9..33dfc005f 100644
--- a/Completion/Unix/Command/_tla
+++ b/Completion/Unix/Command/_tla
@@ -45,8 +45,8 @@ _tla_revisions () { _arch_namespace tla 4 "$argv[@]" }
 (( $+functions[_tla_local_revisions] )) ||
 _tla_local_revisions () {
   local expl1 expl2 tree_version=`$TLA tree-version`
-  _description -V applied-patches expl1 "patches from this version"
-  _description -V other-patches expl2 "patches from other versions"
+  _description -V applied-patches expl1 "patch from this version"
+  _description -V other-patches expl2 "patch from other versions"
   compadd "$expl1[@]" `$TLA logs`
   compadd "$expl2[@]" `$TLA logs --full $($TLA log-versions | grep -v $tree_version)`
   # This is incredibly slow.
@@ -90,7 +90,7 @@ _tla_limit () { #presently only does push-mirror style limits
   if [ $archive ]; then
 
     if [[ $PREFIX != *--* ]]; then
-      _description -V categories expl "categories in $archive"
+      _description -V categories expl "category in $archive"
       compadd -q -S -- "$expl[@]" `$TLA categories -A $archive`
     else
       _tla_namespace_branches 3
@@ -107,7 +107,7 @@ _tla_tree_or_rev () {
 _tla_libraries () {
   local libraries expl
   libraries=($(_call_program tla $TLA my-revision-library))
-  _description -V libraries expl "revision libraries"
+  _description -V libraries expl "revision library"
   compadd "$expl[@]" -a libraries
 }
 
@@ -128,7 +128,7 @@ _tla_log_versions () {
   else
     logs=($(_call_program tla $TLA logs))
   fi
-  _description -V versions expl "log versions"
+  _description -V versions expl "log version"
   compadd "$expl[@]" -a logs
 }
 
@@ -278,12 +278,12 @@ methods=(
 cmd_tagging_method=($cmd_id_tagging_method)
 
 local cmd_add cmd_add_id cmd_add_tag
-cmd_add=('*:files to add:_files')
+cmd_add=('*:file to add:_files')
 cmd_add_id=($cmd_add)
 cmd_add_tag=($cmd_add)
 
 local cmd_delete cmd_delete_id cmd_delete_tag
-cmd_delete=('*:files to delete:_files')
+cmd_delete=('*:file to delete:_files')
 cmd_delete_id=($cmd_delete)
 cmd_delete_tag=($cmd_delete)
 
@@ -312,7 +312,7 @@ cmd_changeset=(
   ':ORIG:_files -/'
   ':MOD:_files -/'
   ':DEST:_files -/'
-  '*:files:_files'
+  '*:file:_files'
 )
 cmd_mkpatch=("$cmd_changeset[@]")
 
@@ -328,7 +328,7 @@ local cmd_make_archive
 cmd_make_archive=('::name:' ':location:_files -/')
 
 local cmd_archive_setup
-cmd_archive_setup=('*:versions:_tla_branches --trailing-dashes')
+cmd_archive_setup=('*:version:_tla_branches --trailing-dashes')
 
 local cmd_make_category
 cmd_make_category=(':category:_tla_archives -S /')
@@ -344,7 +344,7 @@ cmd_import=('::version:_tla_versions')
 cmd_imprev=($cmd_import)
 
 local cmd_commit cmd_cmtrev
-cmd_commit=('::version:_tla_versions' ':separator:(--)' '*:files:_files')
+cmd_commit=('::version:_tla_versions' ':separator:(--)' '*:file:_files')
 cmd_cmtrev=($cmd_commit)
 
 local cmd_get cmd_getrev
@@ -619,7 +619,7 @@ _tla_main () {
     local -U cmds
     help=(${(f)"$($TLA help)"})
     cmds=(${${${${(M)help:#* :*}/ #: #/:}%% ##}## #})
-    arguments=(':commands:(($cmds))')
+    arguments=(':command:(($cmds))')
   fi
   _arguments -S -A '-*' \
     {"${hide_short}(: -)-V",'(: -)--version'}'[display version]' \
diff --git a/Completion/Unix/Command/_tmux b/Completion/Unix/Command/_tmux
index f4e5619a0..284a325e5 100644
--- a/Completion/Unix/Command/_tmux
+++ b/Completion/Unix/Command/_tmux
@@ -1114,7 +1114,7 @@ function __tmux-buffers() {
     fi
 
     buffers=( ${${(f)"$(command tmux 2> /dev/null list-buffers "${bopts[@]}")"}/:[ $'\t']##/:} )
-    _describe -t buffers 'buffers' buffers
+    _describe -t buffers 'buffer' buffers
 }
 
 function __tmux-bound-keys() {
@@ -1122,14 +1122,14 @@ function __tmux-bound-keys() {
     local -a keys
 
     keys=( ${${${${(f)"$(command tmux 2> /dev/null list-keys "$@")"}/:[ $'\t']##/:}/(#s)[ $'\t']##/}/(#s):/\\:} )
-    _describe -t keys 'keys' keys
+    _describe -t keys 'key' keys
 }
 
 function __tmux-clients() {
     local expl
     local -a clients
     clients=( ${${(f)"$(command tmux 2> /dev/null list-clients)"}/:[ $'\t']##/:} )
-    _describe -t clients 'clients' clients
+    _describe -t clients 'client' clients
 }
 
 function __tmux-environment-variables() {
@@ -1165,7 +1165,7 @@ function __tmux-environment-variables() {
                 descriptions+=( "${k//:/\\:}:$v" )
             done
             # TODO: this if/else is because '_describe ${hint:+"-x"}' prints the "No matches" error in addition to the message.
-            local msg="${dash_g[1]:+"global "}environment variables${hint}"
+            local msg="${dash_g[1]:+"global "}environment variable${hint}"
             if _describe -t parameters $msg descriptions; then
                 :
             elif [[ -n $hint ]]; then
@@ -1621,9 +1621,9 @@ function __tmux-panes() {
     command tmux 2> /dev/null list-panes "${opts[@]}" | while IFS= read -r line; do
         panes+=( $(( num++ )):${line//:/} )
     done
-    _describe -t panes 'panes' panes "$@"
+    _describe -t panes 'pane' panes "$@"
     if [[ ${IPREFIX} != *. ]]; then
-        _wanted windows expl 'windows' __tmux-windows -S.
+        _wanted windows expl 'window' __tmux-windows -S.
     fi
 }
 
@@ -1648,14 +1648,14 @@ function __tmux-server-options() {
 function __tmux-sessions() {
     local -a sessions
     sessions=( ${${(f)"$(command tmux 2> /dev/null list-sessions)"}/:[ $'\t']##/:} )
-    _describe -t sessions 'sessions' sessions "$@"
+    _describe -t sessions 'session' sessions "$@"
 }
 
 function __tmux-sessions-attached() {
     local -a sessions
     sessions=( ${${(f)"$(command tmux 2> /dev/null list-sessions)"}/:[ $'\t']##/:} )
     sessions=( ${(M)sessions:#*"(attached)"} )
-    _describe -t sessions 'attached sessions' sessions "$@"
+    _describe -t sessions 'attached session' sessions "$@"
 }
 
 # Complete attached-sessions and detached-sessions as separate tags.
@@ -1671,8 +1671,8 @@ function __tmux-sessions-separately() {
     _tags detached-sessions attached-sessions
     # Placing detached before attached means the default behaviour of this
     # function better suits its only current caller, _tmux-attach-session().
-    _requested detached-sessions && _describe -t detached-sessions 'detached sessions' detached_sessions "$@" && ret=0
-    _requested attached-sessions && _describe -t attached-sessions 'attached sessions' attached_sessions "$@" && ret=0
+    _requested detached-sessions && _describe -t detached-sessions 'detached session' detached_sessions "$@" && ret=0
+    _requested attached-sessions && _describe -t attached-sessions 'attached session' attached_sessions "$@" && ret=0
 
     return ret
 }
@@ -1744,9 +1744,9 @@ function __tmux-windows() {
         opts=( )
     fi
     wins=( ${${(M)${(f)"$(command tmux 2> /dev/null list-windows "${opts[@]}")"}:#<->*}/:[ $'\t']##/:} )
-    _describe -t windows 'windows' wins "$@"
+    _describe -t windows 'window' wins "$@"
     if [[ ${IPREFIX} != *: ]]; then
-        _wanted sessions expl 'sessions' __tmux-sessions -S:
+        _wanted sessions expl 'session' __tmux-sessions -S:
     fi
 }
 
@@ -1775,11 +1775,11 @@ _tmux() {
   if (( CURRENT == 1 )); then
     zstyle -s ":completion:${curcontext}:subcommands" mode mode || mode='both'
     if [[ ${mode} == 'commands' ]]; then
-      _describe -t subcommands 'tmux commands' _tmux_commands && ret=0
+      _describe -t subcommands 'tmux command' _tmux_commands && ret=0
     elif [[ ${mode} == 'aliases' ]]; then
-      _describe -t subcommands 'tmux aliases' _tmux_aliases && ret=0
+      _describe -t subcommands 'tmux alias' _tmux_aliases && ret=0
     else
-      _describe -t subcommands 'tmux commands and aliases' _tmux_commands -- _tmux_aliases && ret=0
+      _describe -t subcommands 'tmux command or alias' _tmux_commands -- _tmux_aliases && ret=0
     fi
   else
     tmuxcommand="${words[1]}"
diff --git a/Completion/Unix/Command/_tput b/Completion/Unix/Command/_tput
index a3b4e949c..abba3e8c0 100644
--- a/Completion/Unix/Command/_tput
+++ b/Completion/Unix/Command/_tput
@@ -14,5 +14,5 @@ esac
 _arguments : \
   $args - set3 \
   '(-S -V)-T+[terminal type]:terminal type:_terminals' \
-  '1:terminal capabilities:( init reset longname ${(k)terminfo} )' \
+  '1:terminal capability:( init reset longname ${(k)terminfo} )' \
   '*:capability parameters:{ [[ $words[1] != (init|reset|longname) ]] && _message parameter }'
diff --git a/Completion/Unix/Command/_unison b/Completion/Unix/Command/_unison
index 5963d66c6..91fa57e5b 100644
--- a/Completion/Unix/Command/_unison
+++ b/Completion/Unix/Command/_unison
@@ -6,7 +6,7 @@ typeset -A opt_args
 _arguments \
     '-auto[automatically accept default (nonconflicting) actions]' \
     '-batch[batch mode\: ask no questions at all]' \
-    '-doc[show documentation]:topics:(about people lists status copying ack install tutorial basics failures running ssh news all topics)' \
+    '-doc[show documentation]:topic:(about people lists status copying ack install tutorial basics failures running ssh news all topics)' \
     '-follow[add a pattern to the follow list]:pattern:' \
     '-force[force changes from this replica to the other]:replica:' \
     '-group[synchronize group attributes]' \
diff --git a/Completion/Unix/Command/_w3m b/Completion/Unix/Command/_w3m
index 6e83a6781..8b45ad730 100644
--- a/Completion/Unix/Command/_w3m
+++ b/Completion/Unix/Command/_w3m
@@ -84,7 +84,7 @@ case "$state" in
     _alternative \
       'files:file:_files -g "*.x#html(-.)"' \
       'urls:URL:_urls' \
-      'bookmarks:bookmarks:compadd -a bookmarks' \
+      'bookmarks:bookmark:compadd -a bookmarks' \
       'history:history:compadd -a w3mhistory' && ret=0
   ;;
   option)
diff --git a/Completion/Unix/Command/_wget b/Completion/Unix/Command/_wget
index 49c8e8b01..d061fcd06 100644
--- a/Completion/Unix/Command/_wget
+++ b/Completion/Unix/Command/_wget
@@ -137,7 +137,7 @@ _arguments -C -s \
   '(--reject -R)'{--reject=,-R+}'[specify rejected extensions]:extensions' \
   --{accept,reject}-regex=:regex '--regex-type=:regex type:(posix pcre)' \
   '(--domains -D)'{--domains=,-D+}'[specify accepted domains]:domains:_domains' \
-  '--exclude-domains=:rejected domains:_domains' \
+  '--exclude-domains=:rejected domain:_sequence _domains' \
   '--follow-ftp' \
   '--follow-tags=:HTML tags:' \
   '--ignore-tags=[specify ignored HTML tags]:HTML tags' \
diff --git a/Completion/Unix/Command/_xmlsoft b/Completion/Unix/Command/_xmlsoft
index 487974fdb..6f7e3b7c9 100644
--- a/Completion/Unix/Command/_xmlsoft
+++ b/Completion/Unix/Command/_xmlsoft
@@ -45,7 +45,7 @@ case $service in
       '--encoding[the input document character encoding]:encoding:(${encoding[@]})' \
       '*--param[pass a parameter,value pair]:name::value (xpath expression)' \
       '*--stringparam[pass a parameter]:name::value' \
-      '--path[provide a set of paths for resources]:paths:_files -/' \
+      '--path[provide a set of paths for resources]:path:_dir_list' \
       '--nonet[refuse to fetch DTDs or entities over network]' \
       '--nowrite[refuse to write to any file or resource]' \
       '--nomkdir[refuse to create directories]' \
@@ -70,7 +70,7 @@ case $service in
       '--noent[substitute entity references by their value]' \
       '--noenc[ignore any encoding specified inside the document]' \
       "(--output -o)--noout[don't output the result tree]" \
-      '--path[provide a set of paths for resources]:paths:_files -/' \
+      '--path[provide a set of paths for resources]:path:_dir_list' \
       '--load-trace[print trace of all external entities loaded]' \
       '--nonet[refuse to fetch DTDs or entities over network]' \
       '--nocompact[do not generate compact text nodes]' \
diff --git a/Completion/Unix/Command/_xmms2 b/Completion/Unix/Command/_xmms2
index 525d5177c..ca2383b2f 100644
--- a/Completion/Unix/Command/_xmms2
+++ b/Completion/Unix/Command/_xmms2
@@ -43,7 +43,7 @@ _xmms2_command() {
 	)
 
     if (( CURRENT == 1 )); then
-	_describe -t command "xmms2 commands" xmms2_cmds
+	_describe -t command "xmms2 command" xmms2_cmds
     else
 	local curcontext="$curcontext"
     fi
@@ -63,7 +63,7 @@ _xmms2_command() {
 	 fi
      done
      
-     _values -s ' ' 'playlist items' ${(On)playlistitems}
+     _values -s ' ' 'playlist item' ${(On)playlistitems}
 
 }
 
@@ -84,7 +84,7 @@ _xmms2_mlib() {
 
 	)
     if (( CURRENT == 2 )); then
-	_describe -t command "xmms2 mlib commands" mlib_cmds
+	_describe -t command "xmms2 mlib command" mlib_cmds
     else
 	local curcontext="$curcontext"
     fi
@@ -107,7 +107,7 @@ _xmms2_playlist() {
 	remove:"Remove a playlist"
 	)
     if (( CURRENT == 2 )); then
-	_describe -t command "xmms2 playlist commands" playlist_cmds
+	_describe -t command "xmms2 playlist command" playlist_cmds
     else
 	local curcontext="$curcontext"
     fi
@@ -121,14 +121,14 @@ _xmms2_playlist() {
 _xmms2_playlist_load() {
     local list
     list=($(xmms2 playlist list))
-    _describe -t command "xmms2 playlists" list
+    _describe -t command "xmms2 playlist" list
 }
 
 
 _xmms2_playlist_remove() {
     local list
     list=($(xmms2 playlist list))
-    _describe -t command "xmms2 playlists" list
+    _describe -t command "xmms2 playlist" list
 }
 
 
@@ -146,7 +146,7 @@ _xmms2_coll() {
 	attr:"Get/set an attribute for a saved collection"
 	)
     if (( CURRENT == 2 )); then
-	_describe -t command "xmms2 collection commands" coll_cmds
+	_describe -t command "xmms2 collection command" coll_cmds
     else
 	local curcontext="$curcontext"
     fi
@@ -160,7 +160,7 @@ _xmms2_coll() {
 _xmms2_coll_helper() {
     local list
     list=($(xmms2 coll list))
-    _describe -t command "xmms2 playlists" list
+    _describe -t command "xmms2 playlist" list
 }
 
 _xmms2_coll_rename() {
diff --git a/Completion/Unix/Command/_yafc b/Completion/Unix/Command/_yafc
index 1e0a601a1..946c0b4ce 100644
--- a/Completion/Unix/Command/_yafc
+++ b/Completion/Unix/Command/_yafc
@@ -32,7 +32,7 @@ _yafc_bookmarks() {
     if [[ -f $bkmfile ]]; then
         local -a bkms expl
         bkms=(${${${(M)"${(f)$(<$bkmfile)}":#machine*alias ##\'*\' #}##machine*alias ##\'}%%\' #}) #" vim syntax goes crazy
-        _wanted bookmarks expl 'bookmarks' compadd "$@" -a - bkms
+        _wanted bookmarks expl 'bookmark' compadd "$@" -a - bkms
     fi
 }
 
diff --git a/Completion/Unix/Type/_email_addresses b/Completion/Unix/Type/_email_addresses
index 8a5877a9c..d5f175a79 100644
--- a/Completion/Unix/Type/_email_addresses
+++ b/Completion/Unix/Type/_email_addresses
@@ -69,7 +69,7 @@ _email-ldap() {
     fi
   done
   compstate[insert]=menu
-  _wanted email-ldap expl 'matching names' \
+  _wanted email-ldap expl 'matching name' \
       compadd -U -i "$IPREFIX" -I "$ISUFFIX" "$@" -a - ali
 }
 
diff --git a/Completion/Unix/Type/_urls b/Completion/Unix/Type/_urls
index 5d4990442..f9cdd58cd 100644
--- a/Completion/Unix/Type/_urls
+++ b/Completion/Unix/Type/_urls
@@ -103,7 +103,7 @@ case "$scheme" in
   bookmark)
     if [[ -f "$urls/$scheme/${(Q)PREFIX}${(Q)SUFFIX}" &&
 	  -s "$urls/$scheme/${(Q)PREFIX}${(Q)SUFFIX}" ]]; then
-      _wanted -C bookmark bookmarks expl bookmarks \
+      _wanted -C bookmark bookmarks expl bookmark \
           compadd "$@" -U - \
               "$ipre$(<"$urls/$scheme/${(Q)PREFIX}${(Q)SUFFIX}")" && ret=0
     else
diff --git a/Completion/X/Command/_mozilla b/Completion/X/Command/_mozilla
index 64f4d9450..0be25b8d3 100644
--- a/Completion/X/Command/_mozilla
+++ b/Completion/X/Command/_mozilla
@@ -95,7 +95,7 @@ if [[ "$state" = "remote" ]]; then
     ;;
     *)
       compset -S '(|\\)\(*' || suf="${${QIPREFIX:+(}:-\(}"
-      _wanted commands expl 'remote commands' \
+      _wanted commands expl 'remote command' \
           compadd -qS "$suf" -M 'm:{a-zA-Z}={A-Za-z}' -a \
                   remote_commands && ret=0
     ;;
diff --git a/Completion/X/Command/_mplayer b/Completion/X/Command/_mplayer
index a913960fe..1f99a1789 100644
--- a/Completion/X/Command/_mplayer
+++ b/Completion/X/Command/_mplayer
@@ -131,13 +131,13 @@ case "$state" in
   ;;
   audio-drivers)
     vals=( help ${${${(f)"$(_call_program audio-drivers mplayer -ao help 2>/dev/null)"}[(r)	*,-1]#?}/	/:} )
-    _describe -t audio-drivers 'audio drivers' vals && ret=0
+    _describe -t audio-drivers 'audio driver' vals && ret=0
   ;;
   audio-codec-families)
     compset -P '*,'
     compset -S ',*'
     vals=( help ${${${(f)"$(_call_program audio-codec-families mplayer -afm help 2>/dev/null)"}[(r) [^:]#,-1]## ##}/ ##/:} )
-    _describe -t audio-codec-families 'audio drivers' vals && ret=0
+    _describe -t audio-codec-families 'audio driver' vals && ret=0
   ;;
   audio-plugins)
     _values -s : 'audio output plugin' \
@@ -154,7 +154,7 @@ case "$state" in
   ;;
   video-drivers)
     vals=( help ${${${(f)"$(_call_program video-drivers mplayer -vo help 2>/dev/null)"}[(r)	*,-1]#?}/	/:} )
-    _describe -t video-drivers 'video drivers' vals && ret=0
+    _describe -t video-drivers 'video driver' vals && ret=0
   ;;
   video-output-plugins)
     vals=( help ${${${${(f)"$(_call_program video-output-plugins mplayer -vop help 2>/dev/null)"}[(r)	*,-1]}/	/}/ #: /:} )
diff --git a/Completion/X/Command/_netscape b/Completion/X/Command/_netscape
index e1d02ae90..78b2da649 100644
--- a/Completion/X/Command/_netscape
+++ b/Completion/X/Command/_netscape
@@ -52,7 +52,7 @@ if [[ "$state" = "remote" ]]; then
     ;;
     *)
       compset -S '(|\\)\(*' || suf="${${QIPREFIX:+(}:-\(}"
-      _wanted commands expl 'remote commands' \
+      _wanted commands expl 'remote command' \
           compadd -qS "$suf" -M 'm:{a-zA-Z}={A-Za-z}' -a \
                   remote_commands && ret=0
     ;;
diff --git a/Completion/X/Command/_pdftk b/Completion/X/Command/_pdftk
index b8c43f754..1ac3223f7 100644
--- a/Completion/X/Command/_pdftk
+++ b/Completion/X/Command/_pdftk
@@ -24,7 +24,7 @@ case $words[CURRENT-1] in
     (allow)
 	#_description permissions expl "permission"
 	#compadd $expl \
-	_values -s , permissions \
+	_values -s , permission \
 	    Printing DegradedPrinting ModifyContents Assembly CopyContents \
 	    ScreenReaders ModifyAnnotations FillIn AllFeatures
 	;;
@@ -34,12 +34,12 @@ case $words[CURRENT-1] in
 	;;
 
     (fill_form)
-	_description files expl 'FDF and XFDF files'
+	_description files expl 'FDF and XFDF file'
 	_files "$@" $expl -g '(#i)*.(fdf|xfdf)'
 	;;
 
     ((multibackground|background|stamp|multistamp|output))
-	_description files expl 'PDF files'
+	_description files expl 'PDF file'
 	_files "$@" $expl -g '(#i)*.pdf'
 	;;
 
@@ -53,11 +53,11 @@ case $words[CURRENT-1] in
 esac && return 0
 
 if [[ -n $words[(r)(${(j:|:)operations})] ]]; then
-    _description options expl "options"
+    _description options expl "option"
     compadd $@ $expl $opts
 else
     _tags files operations
     _alternative \
-	'files:PDF files:_pdfwithhandle' \
-	"operations:operations:($operations)"
+	'files:PDF file:_pdfwithhandle' \
+	"operations:operation:($operations)"
 fi
diff --git a/Completion/X/Command/_vnc b/Completion/X/Command/_vnc
index d60616f21..9263ab930 100644
--- a/Completion/X/Command/_vnc
+++ b/Completion/X/Command/_vnc
@@ -86,7 +86,7 @@ case $service in
   ;;
   *vncviewer) 
     _xt_arguments -shared -viewonly -fullscreen -bgr233 -owncmap -truecolour \
-      '-encodings:encodings:_values -s " " encoding copyrect hextile corre rre raw' \
+      '-encodings: :_values -s " " encoding copyrect hextile corre rre raw' \
       '-depth:depth' \
       '-passwd:file:_files' \
       '(1)-listen:display number' \
diff --git a/Completion/X/Command/_xauth b/Completion/X/Command/_xauth
index 14dfc8400..22ebffecd 100644
--- a/Completion/X/Command/_xauth
+++ b/Completion/X/Command/_xauth
@@ -41,7 +41,7 @@ while [[ -n "$state" ]]; do
 	  group) _message -e ids 'group-id';;
 	  data) _message -e values 'hexdata';;
 	  *) 
-	    _wanted options expl 'xauth generate options' \
+	    _wanted options expl 'xauth generate option' \
 	      compadd trusted untrusted timeout group data && ret=0
 	    ;;
 	  esac
diff --git a/Completion/X/Command/_xournal b/Completion/X/Command/_xournal
index 066ef55f5..c36210c26 100644
--- a/Completion/X/Command/_xournal
+++ b/Completion/X/Command/_xournal
@@ -2,5 +2,5 @@
 
 local expl
 
-_description files expl 'PDF and Xournal files'
+_description files expl 'PDF or Xournal file'
 _files "$@" "$expl[@]" -g '*.(#i){xoj,pdf}(-.)'
diff --git a/Completion/Zsh/Command/_bindkey b/Completion/Zsh/Command/_bindkey
index 81ae69974..df9c8f225 100644
--- a/Completion/Zsh/Command/_bindkey
+++ b/Completion/Zsh/Command/_bindkey
@@ -27,7 +27,7 @@ _arguments -C -s -S \
   '(-l -L -d -D -A -N -m -p -r *)-s[bind each in-string to each out-string]:*:key string' \
   '(-e -v -a -M -l -L -d -D -A -N -m -p)-R[interpret in-strings as ranges]' \
   '(-l -L -d -A -N -m -p -r -s):in-string' \
-  '(-l -L -d -A -N -m -p -r -s)*::widgets:_widgets' && ret=0
+  '(-l -L -d -A -N -m -p -r -s)*::widget:_widgets' && ret=0
 
 case $state in
   keymap)
diff --git a/Completion/Zsh/Command/_disable b/Completion/Zsh/Command/_disable
index 52b82a6e9..da3803039 100644
--- a/Completion/Zsh/Command/_disable
+++ b/Completion/Zsh/Command/_disable
@@ -7,10 +7,10 @@ sali_arr=(${(k)saliases})
 func_arr=(${(k)functions})
 
 _arguments -C -s -A "-*" -S \
-  "(-f -r -s -p)-a[act on regular or global aliases]:*:regular or global aliases:compadd -k ali_arr" \
-  "(-a -r -s -p)-f[act on functions]:*:functions:compadd -k func_arr" \
-  "(-a -f -s -p)-r[act on reserved words]:*:reserved-words:compadd -k reswords" \
-  "(-a -f -r -p)-s[act on suffix aliases]:*:suffix aliases:compadd -k sali_arr" \
-  "(-a -f -r -s)-p[act on pattern characters]:*:pattern characters:compadd -k patchars" \
+  "(-f -r -s -p)-a[act on regular or global aliases]:*:regular or global alias:compadd -k ali_arr" \
+  "(-a -r -s -p)-f[act on functions]:*:function:compadd -k func_arr" \
+  "(-a -f -s -p)-r[act on reserved words]:*:reserved-word:compadd -k reswords" \
+  "(-a -f -r -p)-s[act on suffix aliases]:*:suffix alias:compadd -k sali_arr" \
+  "(-a -f -r -s)-p[act on pattern characters]:*:pattern character:compadd -k patchars" \
   '-m[treat arguments as patterns]' \
   "*:builtin command:(${(k)builtins})"
diff --git a/Completion/Zsh/Command/_enable b/Completion/Zsh/Command/_enable
index 9410651b7..b62619d89 100644
--- a/Completion/Zsh/Command/_enable
+++ b/Completion/Zsh/Command/_enable
@@ -7,10 +7,10 @@ sali_arr=(${(k)dis_saliases})
 func_arr=(${(k)dis_functions})
 
 _arguments -C -s -A "-*" -S \
-  "(-f -r -s -p)-a[act on regular or global aliases]:*:aliases:compadd -k ali_arr" \
-  "(-a -r -s -p)-f[act on functions]:*:functions:compadd -k func_arr" \
-  "(-a -f -s -p)-r[act on reserved words]:*:reserved-words:compadd -k dis_reswords" \
-  "(-a -f -r -p)-s[act on suffix aliases]:*:suffix aliases:compadd -k sali_arr" \
-  "(-a -f -r -s)-p[act on pattern characters]:*:pattern characters:compadd -k dis_patchars" \
+  "(-f -r -s -p)-a[act on regular or global aliases]:*:alias:compadd -k ali_arr" \
+  "(-a -r -s -p)-f[act on functions]:*:function:compadd -k func_arr" \
+  "(-a -f -s -p)-r[act on reserved words]:*:reserved-word:compadd -k dis_reswords" \
+  "(-a -f -r -p)-s[act on suffix aliases]:*:suffix alias:compadd -k sali_arr" \
+  "(-a -f -r -s)-p[act on pattern characters]:*:pattern character:compadd -k dis_patchars" \
   '-m[treat arguments as patterns]' \
   "*:builtin command:(${(k)dis_builtins})"
diff --git a/Completion/Zsh/Command/_sched b/Completion/Zsh/Command/_sched
index e8ff5ab87..888708684 100644
--- a/Completion/Zsh/Command/_sched
+++ b/Completion/Zsh/Command/_sched
@@ -10,7 +10,7 @@ if [[ CURRENT -eq 2 ]]; then
     else
       disp=()
     fi
-    [[ -z $lines ]] || _wanted jobs expl 'scheduled jobs' \
+    [[ -z $lines ]] || _wanted jobs expl 'scheduled job' \
                            compadd "$disp[@]" - {1..$#lines}
     return
   else
diff --git a/Completion/Zsh/Command/_typeset b/Completion/Zsh/Command/_typeset
index ae33ae539..aecacb112 100644
--- a/Completion/Zsh/Command/_typeset
+++ b/Completion/Zsh/Command/_typeset
@@ -127,7 +127,7 @@ if [[ "$state" = vars_eq ]]; then
 	[[ $PREFIX != [_.]* ]]; then
 	args=(${args:#_*})
       fi
-      _wanted functions expl 'shell functions' compadd -a args
+      _wanted functions expl 'shell function' compadd -a args
     else
       _functions
     fi
diff --git a/Completion/Zsh/Command/_zmodload b/Completion/Zsh/Command/_zmodload
index 3416d50c6..f3e38c0f6 100644
--- a/Completion/Zsh/Command/_zmodload
+++ b/Completion/Zsh/Command/_zmodload
@@ -23,7 +23,7 @@ _arguments -n -C -S -s \
   '(-e -u)-L[output in the form of calls to zmodload]' \
   '(-b -c -d -I -f -F -P -l -m -A -R)-p[autoload module for parameters]' \
   '(-u -b -c -d -p -f -A -R)-P[array param for features]:array name:_parameters' \
-  '(-)*:params:->params' && ret=0
+  '(-)*:param:->params' && ret=0
 
 [[ $state = params ]] || return ret
 
@@ -66,7 +66,7 @@ else
   while _tags; do
     _requested builtins expl 'builtin command' \
       compadd "$@" -k builtins && ret=0
-    _requested loadedmodules expl 'loaded modules' \
+    _requested loadedmodules expl 'loaded module' \
       compadd -k 'modules[(R)loaded]' && ret=0
     _requested files expl 'module file' \
       _files -W module_path -g '*.(dll|s[ol]|bundle)(:r)' && ret=0
diff --git a/Completion/Zsh/Command/_zstyle b/Completion/Zsh/Command/_zstyle
index 9d06076e4..0c81c2f2e 100644
--- a/Completion/Zsh/Command/_zstyle
+++ b/Completion/Zsh/Command/_zstyle
@@ -491,7 +491,7 @@ while (( $#state )); do
       elif compset -P '*:'; then
         _message -e tags tag
       else
-        _message -e patterns 'glob patterns'
+        _message -e patterns 'glob pattern'
       fi
       ;;
 
diff --git a/Completion/Zsh/Context/_subscript b/Completion/Zsh/Context/_subscript
index 0d9632864..25cedd193 100644
--- a/Completion/Zsh/Context/_subscript
+++ b/Completion/Zsh/Context/_subscript
@@ -80,7 +80,7 @@ elif compset -P '\('; then
     );;
   esac
 
-  _values -s '' 'subscript flags' $flags
+  _values -s '' 'subscript flag' $flags
 elif [[ ${(Pt)${compstate[parameter]}} = assoc* ]]; then
   local suf MATCH MBEGIN MEND
   local -a keys
diff --git a/Completion/Zsh/Context/_zcalc_line b/Completion/Zsh/Context/_zcalc_line
index 50fb8c17c..ab8e42df9 100644
--- a/Completion/Zsh/Context/_zcalc_line
+++ b/Completion/Zsh/Context/_zcalc_line
@@ -16,7 +16,7 @@ _zcalc_line_escapes() {
     "function:define math function (also \:func or \:f)"
   )
   cmds=("\:"${^cmds})
-  _describe -t command-escapes "command escapes" cmds -Q
+  _describe -t command-escapes "command escape" cmds -Q
 }
 
 _zcalc_line() {
diff --git a/Completion/Zsh/Function/_add-zsh-hook b/Completion/Zsh/Function/_add-zsh-hook
index 4d8a96dab..5b1ff0e42 100644
--- a/Completion/Zsh/Function/_add-zsh-hook
+++ b/Completion/Zsh/Function/_add-zsh-hook
@@ -3,7 +3,7 @@
 _add-zsh-hook_hooks() {
   local expl
   if (( $+opt_args[-d] )); then
-    _wanted functions expl "installed hooks" compadd -a - "$line[1]_functions" && return 0
+    _wanted functions expl "installed hook" compadd -a - "$line[1]_functions" && return 0
   else
     _functions && return 0
   fi
diff --git a/Completion/openSUSE/Command/_hwinfo b/Completion/openSUSE/Command/_hwinfo
index aac0a05ad..7dff82805 100644
--- a/Completion/openSUSE/Command/_hwinfo
+++ b/Completion/openSUSE/Command/_hwinfo
@@ -5,7 +5,7 @@ _arguments \
   '--version[show libhd version]' \
   '--short[just a short listing]' \
   '--log[write info to logfile]:logfile:_files' \
-  '--debug[set debuglevel]:debuglevels:(1 2 3 4 5 6 7 8 9)' \
+  '--debug[set debuglevel]:debug level:(1 2 3 4 5 6 7 8 9)' \
   '--dump-db[dump hardware data base, 0: external, 1: internal]:dumpdb:(0 1)' \
   '--bios' \
   '--block' \
diff --git a/Completion/openSUSE/Command/_zypper b/Completion/openSUSE/Command/_zypper
index 25a32c3f1..3f3402bd9 100644
--- a/Completion/openSUSE/Command/_zypper
+++ b/Completion/openSUSE/Command/_zypper
@@ -65,17 +65,17 @@ _zypper() {
 _all_repos() {
     local -a repos
     repos=( $(zypper -q lr | tail -n +3 | cut -d'|' -f 2) )
-    _describe -t repos 'Available repositories' repos && return
+    _describe -t repos 'available repository' repos && return
 }
 
 _enabled_repos() {
     repos=( $(zypper -x lr | grep 'enabled="1"' | cut -d\" -f 2) )
-    _describe -t repos 'Available repositories' repos && return
+    _describe -t repos 'available repository' repos && return
 }
 
 _disabled_repos() {
     repos=( $(zypper -x lr | grep 'enabled="0"' | cut -d\" -f 2) )
-    _describe -t repos 'Available repositories' repos && return
+    _describe -t repos 'available repository' repos && return
 }
 
 _zypper_cmd_do() {
@@ -107,7 +107,7 @@ _zypper_cmd_do() {
         case ${words[CURRENT - 1]} in
             --from)
                 repos=( $(zypper -x lr | grep 'enabled="1"' | cut -d\" -f 2) )
-                _describe -t repos 'Available repositories' repos && return
+                _describe -t repos 'available repository' repos && return
                ;;
             (--enable|-e)
                 case $cmd in
@@ -128,7 +128,7 @@ _zypper_cmd_do() {
                 case $cmd in
                     (if|info|se|search|in|install) 
                         types=( pattern srcpackage package patch )
-                        _describe -t types 'Package types' types && return
+                        _describe -t types 'package type' types && return
                     ;;
                 esac
                 ;;
@@ -143,7 +143,7 @@ _zypper_cmd_do() {
                 ;;
             (in|install)
                 local expl
-                _description files expl 'RPM files' 
+                _description files expl 'RPM file'
                 _files "$expl[@]" -g '*.(#i)rpm(.)'
                 ;;
         esac