不同语言的 Linux 手册页

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上

des*_*ert 5

man考虑该-L选项以及环境变量,$LC_MESSAGES$LANG它不能\xe2\x80\x99tman以尚未(尚未?)翻译成的语言显示页面。使用find我们可以轻松获得可用翻译的列表,例如cp

\n\n
$ find /usr/share/man -name "cp.*"\n/usr/share/man/man1/cp.1.gz\n
Run Code Online (Sandbox Code Playgroud)\n\n

这意味着\xe2\x80\x99s 只有一个版本,并且不位于任何语言子目录中,即\xe2\x80\x99s 是默认的英语版本。让\xe2\x80\x99s 看一下命令的结果man

\n\n
$ 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\n
Run Code Online (Sandbox Code Playgroud)\n\n

该列表继续显示可用的语言,es即其中之一。您可以使用其中之一

\n\n
LANGUAGE=es_ES.utf8 man man\nman -L es_ES.utf8 man\nman -Les man\n
Run 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\'.

\n\n

为了迎合waltinators 的回答,可能还有其他可用的软件包包含翻译,您可以在https://packages.ubuntu.com上查看他们的文件列表或使用例如apt-file list manpages-es. manpages-es看起来manpages-es-extra很有希望,但是它们都不包含mancp命令的页面。

\n