请教:关于LXDE组件的中文问题
时间:2009-09-22
来源:互联网
大家指教下怎么才能安装中文语言啊?
作者: yafeng 发布时间: 2009-09-22
作者: wzl12356 发布时间: 2009-09-22
作者: yafeng 发布时间: 2009-09-22
作者: anarchist 发布时间: 2009-09-22
作者: 亞利艾爾 发布时间: 2009-09-22
作者: easycat 发布时间: 2009-09-22
LANG
作者: zhllg 发布时间: 2009-09-22
作者: zhou3345 发布时间: 2009-09-22
就能显示中文
现在似乎还不可以选择的不安装mo,或者只安装某个语言的mo
所以和ebuild没有关系
作者: zhllg 发布时间: 2009-09-22
两边都是LC_ALL="zh_CN.UTF-8"
从实际效果上讲,可否归结为ebuild的语言包处理不当呢。
作者: zhou3345 发布时间: 2009-09-23
作者: zhllg 发布时间: 2009-09-25
locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL=zh_CN.UTF-8
作者: zhou3345 发布时间: 2009-09-25
echo $LANGUAGE...
对于界面语言来说,LANGUAGE的优先级是最高的
作者: zhllg 发布时间: 2009-09-25
偶这里无此变量,设置后也无影响,执行 locale 没有列出,glibc-2.7+
debian lenny 中默认没有这个变量,执行 locale 没有列出,glibc-2.7
ubuntu 8.04 中有此变量,执行 locale 有列出,glibc-2.7
freebsd 7 中有此变量,但执行 locale 没有列出,freebsd libc
gentoo 是不是 类似 ubuntu 打了什么补丁,有 LANGUAGE 这个变量?
作者: 聚焦深空 发布时间: 2009-09-25
很惊讶居然这么多人不知道LANGUAGE
这是我4年前写的文章
http://www.linuxsir.org/bbs/showthread.php?t=237877
作者: zhllg 发布时间: 2009-09-25
google 得到的资料和您帖子说法类似,但日期都较早。
如果 LANGUAGE 真的是标准,怎么那么多发行版默认不设置。
再一个偶这里设置 LANGUAGE 与否,真的是一点影响也没有。
也许该深挖下,升级下您那个帖子了。
作者: 聚焦深空 发布时间: 2009-09-25
LANGUAGE这个东西4年前的glibc本身即已支持
作者: zhllg 发布时间: 2009-09-25
作者: zhllg 发布时间: 2009-09-25
您好像还在 glibc 邮件列表上有过类似说明,记不请了,好像说的是 LC_xxx 一族变量。
好吧,俺查查,看到底为什么 LANGUAGE 变量在俺这里失效。
作者: 聚焦深空 发布时间: 2009-09-25
你试验的是什么程序
我刚刚试了xscreensaver-demo,没有问题
作者: zhllg 发布时间: 2009-09-25
作者: zhllg 发布时间: 2009-09-25
有一种情况是不行的
就是locale没有设定,而只设定了LANGUAGE
作者: zhllg 发布时间: 2009-09-25
全中文,全英文,都可以登录,mo 不缺。
中文 GUI 环境开一虚拟终端 gnome-terminal,
$ locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL=zh_CN.UTF-8
接着启动其他程序,还是中文界面,至少到这里偶自己认为正常,确认 LANGUAGE 无影响。
修改 LANG LC_ALL 为英文后,则打开的程序为英文界面
$ export LANG=en_US.UTF-8 $ export LC_ALL=en_US.UTF-8 $ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 $ gvim
作者: 聚焦深空 发布时间: 2009-09-25
只是翻译的不全而已
作者: zhllg 发布时间: 2009-09-26
然后那xscreensaver-demo来试试
作者: zhllg 发布时间: 2009-09-26
调用setlocale时的参数不合标准
作者: zhllg 发布时间: 2009-09-26
偶机机上所有软件包都不和标准? 这么说就过了:)
等会找个 debian lenny 试试。
一个值得注意的问题是,LANGUAGE 生效的机机,locale 输出有 LANGUAGE 结果,不生效的机机则没有。
ubuntu 如此,您机机应该也如此。
作者: 聚焦深空 发布时间: 2009-09-26
作者: zhllg 发布时间: 2009-09-26
作者: zhllg 发布时间: 2009-09-26
$ locale LANG=zh_CN.UTF-8 LANGUAGE=zh_CN LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL=zh_CN.UTF-8
作者: 聚焦深空 发布时间: 2009-09-26
我只是说我没见过这东西,所以不能说有这东西的LANGUAGE就生效,没有这东西的就不生效
LANGUAGE在我的gentoo里从来都是生效的
作者: zhllg 发布时间: 2009-09-26
LINGUAS设的是zh zh_CN en_US,不过这个对LXDE组件没用的,因为lxde根本没LINGUAS的选项.
老大们可以试着emerge任何一个组件,比如pcmanfm,会发现pcmanfm的所有的语言mo文件都不安装.我的问题是:如何让emerge编译的时候自动安装这些locale文件(mo文件)
btw:貌似是无解的,想装可能得自己改ebuild文件.老大们可以试验一下.
作者: yafeng 发布时间: 2009-09-26
作者: zhllg 发布时间: 2009-09-26
Calculating dependencies... done!
[ebuild R ] x11-misc/pcmanfm-0.5.1 USE="hal" 676 kB
现在似乎只能归结为:lxde各组件的locale文件(mo)需要在ebuild里边处理一下,生成类似firefox的
LINGUAS="zh_CN -af -ar -a....."
这种USE才成.......
lxde组件的ebuild我看过,没有任何关于语言方面的语句,估计makefile里边又默认不安装mo文件
作者: yafeng 发布时间: 2009-09-26
一般来说一个程序所有语言的mo,都会在make install这一步一股脑全装上
这也是localepurge程序诞生的原因
作者: zhllg 发布时间: 2009-09-26
要验证的话用ltrace
作者: zhllg 发布时间: 2009-09-26
作者: zhllg
那应该是pcmanfm自己的makefile的问题
一般来说一个程序所有语言的mo,都会在make install这一步一股脑全装上 这也是localepurge程序诞生的原因 |
是的老大,我也是这么认为的
作者: yafeng 发布时间: 2009-09-26
深空同学,不如你在你的机机上用ls试一下吧
[zhangle@etoo ~] $ export LANG=zh_CN.UTF-8
[zhangle@etoo ~] $ export LC_ALL=zh_CN.UTF-8
[zhangle@etoo ~] $ ls jwoiefw
ls: cannot access jwoiefw: No such file or directory
[zhangle@etoo ~] $ export LANGUAGE=zh_CN
[zhangle@etoo ~] $ ls jfowief
ls: cannot access jfowief: 没有那个文件或目录
[zhangle@etoo ~] $ export LANGUAGE=en
[zhangle@etoo ~] $ ls jowiefw
ls: cannot access jowiefw: No such file or directory
作者: zhllg 发布时间: 2009-09-26
这个变量只影响字符界面程序?
在 gettext 源码中到是可以看到一堆 LANGUAGE。
PS:工作多年,叫同学多别扭。
作者: 聚焦深空 发布时间: 2009-09-26
是所有使用gettext的程序
作者: zhllg 发布时间: 2009-09-26
编译时没有使用 --disable-nls, 另 gvim --version
$ LANG= LC_ALL= gvim --version Compiled by root@localhost Normal version with GTK2 GUI. Features included (+) or not (-): -arabic +autocmd +balloon_eval +browse +builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +cryptv -cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path +find_in_path +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname +mouse +mouseshape -mouse_dec +mouse_gpm -mouse_jsbterm -mouse_netterm +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra -perl +postscript +printer -profile -python +quickfix +reltime -rightleft -ruby +scrollbind +signs +smartindent -sniff +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save system vimrc file: "/etc/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" system gvimrc file: "$VIM/gvimrc" user gvimrc file: "$HOME/.gvimrc" system menu file: "$VIMRUNTIME/menu.vim" fall-back for $VIM: "/usr/share/vim" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -g -O2 Linking: gcc -L/usr/local/lib -o vim -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXt -lncurses -lgpm
确认纯正 gtk 软件国际化,需要 gettext,LANGUAGE 有效,如 transmission,gvim 是特例。
另,debian lenny 默认不设置 LANGUAGE,执行 locale 也无输出;
但设置 LANGUAGE 后,执行 locale 有输出;
ubuntu 应是使用 debian glibc 补丁并默认设置该变量。
http://patch-tracker.debian.org/patc...-LANGUAGE.diff
Comments tell that LANG has to be the first value, and LC_ALL the last one. Thus LANGUAGE is printed between them. # DP: Dpatch author: Denis Barbier # DP: Patch author: Denis Barbier # DP: Upstream status: not submitted # DP: Date: 2006-01-08 Index: locale/programs/locale.c =================================================================== --- locale/programs/locale.c.orig 2007-10-23 08:46:19.000000000 -0400 +++ locale/programs/locale.c 2007-10-23 08:47:08.000000000 -0400 @@ -752,6 +752,7 @@ { size_t cat_no; const char *lcall = getenv ("LC_ALL"); + const char *language = getenv ("LANGUAGE"); const char *lang = getenv ("LANG") ? : ""; auto void get_source (const char *name); @@ -770,6 +771,9 @@ /* LANG has to be the first value. */ printf ("LANG=%s\n", lang); + if (language != NULL && getenv ("POSIXLY_CORRECT") == NULL) + printf ("LANGUAGE=%s\n", language); + /* Now all categories in an unspecified order. */ for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no) if (cat_no != LC_ALL)
作者: 聚焦深空 发布时间: 2009-09-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28