LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: ProgramFan

如何让系统支持中文但软件的manpage为英文? [Semi Solved]

[复制链接]
 楼主| 发表于 2007-3-24 20:28:56 | 显示全部楼层
可不可以解释下这个 LANGUAGE 变量是如何工作的? LANG, LC_ALL,他们的关系如何?是不是可以通过设置 LANGUAGE 和 LC_MESSAGE 等来实现这个功能呢?
回复 支持 反对

使用道具 举报

发表于 2007-3-24 20:57:20 | 显示全部楼层
搜搜,我写过2篇文章
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-24 22:58:46 | 显示全部楼层
论坛不能搜索,Google site:linuxsir.cn+inurl:f=59 居然找不到。

刚查了一下,有篇文章解释了 LC_* 和 LANG 的关系,LANGUAGE变量应该是 GTK 程序中界面语言的决定者,如果没有设置它,那么就服从 LC_* 和 LANG
回复 支持 反对

使用道具 举报

发表于 2007-3-24 23:04:34 | 显示全部楼层
我用的就是这种
我这有两个笔记 以后我想写成google doc然后转google page
http://semper.blogbus.com/logs/3298814.html
http://semper.blogbus.com/logs/3205239.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-24 23:45:06 | 显示全部楼层
语言相关的环境变量的关系为:
LANGUAGE > LC_ALL > LC_MESSAGES > LANG
coreutils中的命令如 ls,mv等和GNOME一样,都遵守这个约定,man命令本身不识别 LANGUAGE,但由于它是由 less+tar+groff来实现的,所以和ls等同。所以想通过设置这几个环境变量来实现,应该没可能了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-25 00:07:17 | 显示全部楼层
本来想通过设置use或其它变量来让系统安装软件时达到这个目标的,估计是不能了。如果要这样,一个可行的方法是在 ~/.bash_profile中加入设置 LANG, LC_ALL为 "en_US",只是要是在终端中启动诸如gedit这样的程序,也只能是英文的了。
回复 支持 反对

使用道具 举报

发表于 2007-3-25 09:06:34 | 显示全部楼层
照我的理解,
1、Terminal中的提示信息语言和桌面环境(gnome/xfce)的界面语言是一个变量设定的,也就是LC_MESSAGES(跟USE="nls"有关?请zhllg解释下?  ),
2、有些软件的语言可以通过 USE="linguas_zh linguas_zh_CN" 在编译的设定,如mplayer,firefox,acrobat reader。
3、而输入法又需要LC_CTYPE=zh_CN.UTF-8


刚才有位兄弟给了个解决man-pages乱码的方法,不知道怎么没有了?


我看你想要E文的manpage,就改掉了
具体可以参看我的记录:
http://my.opera.com/93free/blog/show.dml/713730
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-25 10:28:15 | 显示全部楼层
已经拜读了,呵呵
昨天做了实验,几乎所有的软件都是通过 LANGUAGE > LC_ALL > LC_MESSAGES > LANG 来设置界面语言的,但man会按 LANG > LC_MESSAGES 变量来搜索manpage,且它本身不识别 LANGUAGE 变量,所以对manpage而言,是 LANG 决定一切,但如果 LANG 为 en_US 而 LC_MESSAGES为 zh_CN.UTF-8 那么manpage就会乱码,改正 LC_CTYPE为zh_CN.UTF-8后显示正常,但还是中文的。

所以还是解决man乱码来的实在,或修改 bash_profile
回复 支持 反对

使用道具 举报

发表于 2007-3-25 11:06:48 | 显示全部楼层
我这里菜单和man都是英文,能够读写中文。
  1. LANG=en_US.UTF-8
  2. LC_CTYPE=zh_CN.UTF-8
  3. LC_NUMERIC="en_US.UTF-8"
  4. LC_TIME="en_US.UTF-8"
  5. LC_COLLATE="en_US.UTF-8"
  6. LC_MONETARY="en_US.UTF-8"
  7. LC_MESSAGES="en_US.UTF-8"
  8. LC_PAPER="en_US.UTF-8"
  9. LC_NAME="en_US.UTF-8"
  10. LC_ADDRESS="en_US.UTF-8"
  11. LC_TELEPHONE="en_US.UTF-8"
  12. LC_MEASUREMENT="en_US.UTF-8"
  13. LC_IDENTIFICATION="en_US.UTF-8"
复制代码

另:昨天用了-nls这个全局的USE,没感觉有什么影响。
回复 支持 反对

使用道具 举报

发表于 2007-3-25 12:34:50 | 显示全部楼层
两种方法
rm -rf /usr/share/man/zh-CN/

alisa man='LC_ALL=C man'
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表