上次说到MLDonkey启动后显示的字符编码是ANSI,所以会造成中文文件名变成下划线。根本原因是开发人员在编译glibc的时候没有加入–enable-add-ons 参数,致使locale模块没有被安装。折腾了两天,就在我马上就要重新编译glibc的时候,奇迹般的找到了Syno提供的原始Tool Chains——gcc343 + glibc234,里面又奇迹般地提供了完整的glibc组件,下面说说安装方法。
首先从http://sourceforge.net/projects/dsgpl/files/ 根据你的CPU型号,下载相应的Tool Chains,我的CPU是8533的,所以下载gcc343_glibc234_853x.tar.gz。
在本地解压后,通过TFTP,将
1. “解压目录\gcc343_glibc234_853x\powerpc-linux-gnuspe\powerpc-linux-gnuspe\bin\” 目录下的 locale 和 localedef 传到 /bin 下
2. “解压目录\gcc343_glibc234_853x\powerpc-linux-gnuspe\powerpc-linux-gnuspe\share\” 目录下的 i18n 和 locale 文件夹传到 /usr/share 下
通过SSH连接上DS109+,执行 locale 命令
LANG=
LC_CTYPE=”POSIX”
LC_NUMERIC=”POSIX”
LC_TIME=”POSIX”
LC_COLLATE=”POSIX”
LC_MONETARY=”POSIX”
LC_MESSAGES=”POSIX”
LC_PAPER=”POSIX”
LC_NAME=”POSIX”
LC_ADDRESS=”POSIX”
LC_TELEPHONE=”POSIX”
LC_MEASUREMENT=”POSIX”
LC_IDENTIFICATION=”POSIX”
LC_ALL=
显示当前的语言环境是POSIX,也就是英文环境
再执行
| sHiN3> mkdir /usr/lib/locale |
如果不建立这个文件夹,那么接下来执行 localedef 命令的时候,就会报错:
| Cannot create temporary file: No such file or directory |
建立这个文件夹后,执行
| sHiN3> localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 sHiN3> locale -a C POSIX zh_CN.utf8 |
这样简体中文UTF-8语言环境就安装成功了,只要在启动MLDonkey的脚本中加入
| export LANG=zh_CN.utf8 export LC_ALL=zh_CN.utf8 |
下载的文件就不会再变成下划线了。
这是我的开机运行MLDonkey的脚本,/opt/etc/init.d/S91MLDonkey.sh(我的mlnet文件已经放到/opt/bin目录下了):
| #!/bin/sh rm -f /root/.mldonkey/*.tmp 2>/dev/null rm -f /root/.mldonkey/*.pid 2>/dev/null rm -f /root/.mldonkey/*.log 2>/dev/null if [ -n "`pidof mlnet`" ]; then echo “Kill old program…” killall mlnet sleep 10 fi export HOME=/root export LANG=zh_CN.utf8 export LC_ALL=zh_CN.utf8 /opt/bin/mlnet & |
运行后
| sHiN3> /opt/etc/init.d/S91MLDonkey.sh 2009/11/08 21:34:07 [cO] Starting MLDonkey 3.0.1 … 2009/11/08 21:34:07 [cO] Language ZH_CN, locale UTF-8, ulimit for open files 1024 2009/11/08 21:34:07 [cO] MLDonkey is working in /root/.mldonkey 2009/11/08 21:34:07 [cO] loaded language resource file 2009/11/08 21:34:07 [DNS] Resolving [sHiN3] … 2009/11/08 21:34:07 [DNS] Resolving [www.mldonkey.org] … 2009/11/08 21:34:08 [dMain] Libmagic file-type recognition database present 2009/11/08 21:34:08 [IPblock] loading ipfilter.dat 2009/11/08 21:34:12 [IPblock] 268386 ranges loaded – optimized to 255126 2009/11/08 21:34:12 [cO] Logging in /root/.mldonkey/mlnet.log 2009/11/08 21:34:12 [dMain] Core started |
此时第二行已经从
[cO] Language EN, locale ANSI_X3.4-1968
变为
[cO] Language ZH_CN, locale UTF-8
因为安装了locale模块,所以其他软件的中文问题也同时解决。
另外Syno官方也发现了locale的问题,看样子应该在下一次更新的时候会解决,论坛原文:
| 親愛的使用者您好: Wordpress可以顯示中文是因為它本身就帶有多國語系並沒有使用locale這個函式。 沒有locale導致gallery2無法切換多國語言的問題之前已經有其他使用者提過了,我們也已經向研發部回報。 如果以後韌體改版時有加入這個功能我們會在release notes當中加註。 |

gwtrwimv…
gwtrwimv…