Tan*_*n六四 5 command-line language manpage
我的 Ubuntu 18.04 设置为西班牙语:
但手册页以英语显示,而不是根据配置(西班牙语)显示。
$ man cp | head -n4
CP(1) User Commands CP(1)
NAME
cp - copy files and directories
Run Code Online (Sandbox Code Playgroud)
以下是我尝试获取西班牙语手册页的内容:
$ LANG=es_ES.utf8 man cp # result is in English
$ LANGUAGE=es_ES:es man cp # result is in English
$ man -Les cp # result is in English
$ man --locale=es cp # result is in English
Run Code Online (Sandbox Code Playgroud)
要验证 es_ES 是否已正确安装:
$ locale -a | grep es_ES
es_ES.utf8
Run Code Online (Sandbox Code Playgroud)
要验证西班牙语的手册页是否已安装:
$ sudo dpkg -l | grep language-pack-es
ii language-pack-es 1:18.04+20180712
all translation updates for language Spanish; Castilian
ii language-pack-es-base 1:18.04+20180712
all translations for language Spanish; Castilian
Run Code Online (Sandbox Code Playgroud)
强制重新创建手册页
$ sudo mandb -c
Run Code Online (Sandbox Code Playgroud)
完成所有这些操作后,尝试前 3 个命令,它们都不会生成西班牙语手册页。
参考:
这里的解决方案都不起作用:
如何阅读我的母语的手册页? https://unix.stackexchange.com/questions/283660/how-to-change-the-language-for-man-command https://unix.stackexchange.com/questions/43384/localization-of-man-pages -在linux-ubuntu上
man考虑该-L选项以及环境变量,$LC_MESSAGES但$LANG它不能\xe2\x80\x99tman以尚未(尚未?)翻译成的语言显示页面。使用find我们可以轻松获得可用翻译的列表,例如cp:
$ find /usr/share/man -name "cp.*"\n/usr/share/man/man1/cp.1.gz\nRun Code Online (Sandbox Code Playgroud)\n\n这意味着\xe2\x80\x99s 只有一个版本,并且不位于任何语言子目录中,即\xe2\x80\x99s 是默认的英语版本。让\xe2\x80\x99s 看一下命令的结果man:
$ find /usr/share/man -name "man.*"\n/usr/share/man/nl/man1/man.1.gz\n/usr/share/man/zh_CN/man1/man.1.gz\n/usr/share/man/ru/man1/man.1.gz\n/usr/share/man/ja/man1/man.1.gz\n/usr/share/man/sv/man1/man.1.gz\n/usr/share/man/sr/man1/man.1.gz\n/usr/share/man/es/man1/man.1.gz\n\xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n\n该列表继续显示可用的语言,es即其中之一。您可以使用其中之一
LANGUAGE=es_ES.utf8 man man\nman -L es_ES.utf8 man\nman -Les man\nRun Code Online (Sandbox Code Playgroud)\n\n来显示它。事实上,如果您的终端中的区域设置环境变量进行了相应设置,man则将始终以西班牙语显示man页面,并且只有在西班牙语翻译不可用时才会回退到英语,就像您在man cp. 要进行设置,请运行locale并查看是否$LANGUAGE设置为es_ES.utf8。如果 \xe2\x80\x99s 不是,请添加一行LANGUAGE=es_ES.utf8到您的~/.bashrc或定义一个别名,例如alias man=\'man -Les\'.
为了迎合waltinators 的回答,可能还有其他可用的软件包包含翻译,您可以在https://packages.ubuntu.com上查看他们的文件列表或使用例如apt-file list manpages-es. manpages-es看起来manpages-es-extra很有希望,但是它们都不包含man该cp命令的页面。