manpage 中文化

在 openSUSE 上 manpage 有中文化吗?用 zypper 安装提示说没有.

而且 man 这种资料,除非作者刁难你,一般都是用很简单的英语写的,稍微会点英语再认一下一些专有词汇,翻译就是苦力活,不如直接看。

感觉以前中文 Linux 社区里面的本地化 (L10N,localization) 的志愿者好多都是稍微会点英语,但是不熟练,于是本着分享的精神,一起翻译的。感觉随着国内英语教育水平提高,类似的 man 翻译组织出现的可能小了很多。

1赞

主要是不好维护,好多软件都提供 manpage,于是会面临多个上游的情况。我的 project 当年主要是加入了 fcitx4 的 manpage 和几个 systemd 的 manpage。后续想要更新 coreutils 和上游 manpage 到最新版本。后来就放下了。现在我也觉得切到 Debian 那个版本比较好,毕竟那边还有人在更新。这个东西要么用最新的要么就不用,现在的方式会造成如果你是英文 locale 看到的就是最新的 manpage,用中文 locale 即使用了新版本的软件看到的还是旧版本的 manpage。

其实这种苦活还有人干的原因是 Linux 用户里用不少高中生,他们的英语水平还不足以完全看英文。

1赞

我从初中开始根本没用过几次 manpage…
Arch Wiki 能解决大部分问题

讲真,manpage 让人感觉 “太长不看” 时候太多。每人都用 SSH,但有多少人完整看过 SSH 的 manpage?

我都是用到什么看什么(

可是你会完整地看《新华字典》吗?

manpage 都是需要啥就去找啥,看选项的用法,寻找某个功能的选项,等等。除了特别短(十页以内)的 manpage,我就早期完整地看过 wget 的。刚翻了一下 SSH 的几个 manpage,都还挺短的?至少加起来都没 curl 的长。

manpage 不完整地看,最大的原因不在于它长,而在于我没事去看那些我用不上的细节干嘛?

如果要用特定命令行做一件事,百度或者谷歌的效率一般 manpage 高。比如一个没用过 tar 的人想打包文件夹,或者没用过 SSH 的人想做端口转发,直接百度或者谷歌比 manpage 一条条理解来的快的多。
不是谁没事去看细节,是 manpage 逼你去看细节。也不可能跳着读,万一刚刚跳过需要的部分就好玩了。

其实 tar 还算好的,毕竟有举例部分。

应用举例:
       1)展开 abc.tar.gz 使用命令: tar xvzf abc.tar.gz 展开 abc.tar 使用命令: tar xvf abc.tar
       2)将当前目录下的 man 目录及其子目录存成存档 man.tar tar cf man.tar ./man

但 SSH 的就不怎么新手友好的:

X11 和 TCP 转发 (forwarding)

     如果 ForwardX11 变量设为 “yes” (或参见后面对 -X 和 -x 选项的描述), 并且用户正在使用 X11 (设置了 DISPLAY 环境变量), 和 X11 显示器的连接将自动以这种形式转发到远端: 任何用 shell 或命令启动的 X11 程序将穿过加密的通道, 从本地机器连接真正的 X 服务器. 用户不应该手动设置 DISPLAY.  可以在命令行上, 也可以在配置文件中设置 X11 连接的转发.

     SSH 设置的 DISPLAY 值将指向服务器, 但是显示器号大于零. 这很自然, 因为 SSH 在服务器上创建了一个 “proxy” X 服务器, 把连接通过加密通道转发出去.

     SSH 将自动在服务器上设置 Xauthority 数据. 目的是这样的: SSH 生成一个随机的授权 cookie, 存放在服务器的 Xauthority 中.  SSH 检查并确保转发的连接携带了这个 cookie, 打开连接后, 把它替换为真正的 cookie.  真正的认证 cookie 绝不会送往服务器 (也不会有任何明文传送的 cookie).

     如果 ForwardAgent 变量设为 “yes” (或参见后面对 -A 和 -a 选项的描述), 并且用户正在使用认证代理 (authentication agent), 则和代理的连接将自动转发到远程主机.

     既可以在命令行上, 也可以在配置文件中指定通过加密通道转发的任何 TCP/IP 连接.  TCP/IP 转向的应用有, 比如说, 和电子钱包的安全连接, 或者是穿过防火墙等.

看完后有什么用?结果有用的在后面:

     -L port:host:hostport
             将本地机 (客户机) 的某个端口转发到远端指定机器的指定端口.  工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口.  IPv6 地址用另一种格式说明: port/host/hostport

     -R port:host:hostport
             将远程主机 (服务器) 的某个端口转发到本地端指定机器的指定端口.  工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

     -D port
             指定一个本地机器 “动态的” 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, SSH 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口.  可以在配置文件中指定动态端口的转发.
1赞

使用搜索引擎的问题有:

  • 你的工具版本和人家的不一样,或者根本就不是同一个来源(比如 GNU vs FreeBSD)
  • 只有常见操作才很容易找到解决方案,那些不常用、新手也用不到的东西(比如系统调用和库函数的文档)你不容易搜到可靠的信息的
  • 你的网络不一定会让你开心(如果你的磁盘也无法让你开心,你该换块盘了)

另外最近 Google 不知道搞什么鬼,很多 Stack Overflow 的翻译、复制站的结果十分靠前,另外未在偏好设置中选择的外文结果也多了起来。

1赞

所以 TLDR 项目是人间瑰宝(确信)

我认为最难受的是一些古老命令(如 man)的中文 man page 是不入流的,一些更新后它们就是错误的。它们大多是 2000~2003 左右翻译的,最后更新留的网址至今已无法访问。