Zh TW.UTF-8
出自wiki.gentoo.tw
目錄 |
前言
作者
- --betaparticle 12:00 2006年一月23日 (CST): 我只是自願來整理這一篇。如果有什麼問題、需要改進、需要討論的地方,可以跟我討論或是直接更改。
目的
- 讓使用者,在 X Window 環境下,使用 zh_TW.UTF-8 的環境。
需求
環境變數設定 for zh_TW.UTF-8
使 kernel 支援 unicode
在 kernel 部份,以下部份要編譯:
File Systems -->
Native Language Support -->
(utf8) Default NLS Option
<*> NLS UTF8
還有在 character sets 裡面,選擇必要的語系
以下是一般人會用到的:
(todo)
使 gcc 支援 unicode
#localedef -i en_US -f UTF-8 zh_TW.UTF-8
#nano -w /etc/locales.build
en_US/ISO-8859-1 en_US.UTF-8/UTF-8 zh_TW.UTF-8/UTF-8
#emerge glibc -pv
看看USE中有沒有使用userlocales
最後
#emerge glibc
注意: 如果你需要使用到 iconv 轉換其他編碼,請記得加入相關 locale
在 locales.build 中可能會需要的中文地區編碼代號
台灣地區
zh_TW.EUC-TW/EUC-TW zh_TW.UTF-8/UTF-8 zh_TW/BIG5
簡體地區
zh_CN.GB18030/GB18030 zh_CN.GBK/GBK zh_CN.UTF-8/UTF-8 zh_CN/GB2312
香港地區
zh_HK.UTF-8/UTF-8 zh_HK/BIG5-HKSCS
glibc 2.6.1
# emerge -pv glibc
These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-libs/glibc-2.6.1 USE="nls -debug -gd -glibc-omitfp (-hardened) (-multilib) -profile (-selinux) -vanilla" 0 kB
# vi /etc/locale.gen
en_US ISO-8859-1 en_US.ISO-8859-15 ISO-8859-15 en_US.UTF-8 UTF-8 zh_CN GB2312 zh_CN.GB18030 GB18030 zh_CN.GBK GBK zh_CN.UTF-8 UTF-8 zh_HK BIG5-HKSCS zh_HK.UTF-8 UTF-8 zh_SG GB2312 zh_SG.GBK GBK zh_TW BIG5 zh_TW.EUC-TW EUC-TW zh_TW.UTF-8 UTF-8
# locale-gen
It will generate all the locales you have specified in the /etc/locale.gen file.
* Generating 14 locales (this might take a while) with 1 jobs * ( 1/14) Generating en_US.ISO-8859-1 ... [ ok ] * ( 2/14) Generating en_US.ISO-8859-15 ... [ ok ] * ( 3/14) Generating en_US.UTF-8 ... [ ok ] * ( 4/14) Generating zh_CN.GB2312 ... [ ok ] * ( 5/14) Generating zh_CN.GB18030 ... [ ok ] * ( 6/14) Generating zh_CN.GBK ... [ ok ] * ( 7/14) Generating zh_CN.UTF-8 ... [ ok ] * ( 8/14) Generating zh_HK.BIG5-HKSCS ... [ ok ] * ( 9/14) Generating zh_HK.UTF-8 ... [ ok ] * (10/14) Generating zh_SG.GB2312 ... [ ok ] * (11/14) Generating zh_SG.GBK ... [ ok ] * (12/14) Generating zh_TW.BIG5 ... [ ok ] * (13/14) Generating zh_TW.EUC-TW ... [ ok ] * (14/14) Generating zh_TW.UTF-8 ...
設定使用者環境變數
系統 如果是單一 user 使用, 只要在各別 user 的目錄下的 ~/.bash_profile 或 ~/.bashrc 加入 LC_ALL 及 LANG 的設定, 如果要全部都使用, 則可以在 /etc/env.d/ 中加入一個新檔 02locale, 並內部加入 LC_ALL 與 LANG.
#nano -w /etc/env.d/02locale
LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"
存檔後再執行...
# env-update >>> Regenerating /etc/ld.so.cache... * Caching service dependencies ... # source /etc/profile
最後可以用 locale 指令看看是否成功...
# 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
X Window
修改.xinitrc(不過,我都是使用startx來進入x-win的喔)
export LANG="zh_TW.UTF-8" export LC_ALL="zh_TW.UTF-8" export LC_CTYPE="zh_TW.UTF-8"
如果是使用XDM之類的進入,Gnome則在/etc/X11/gdm/Xsession增加
export LANG="zh_TW.UTF-8" export LC_ALL="zh_TW.UTF-8" export LC_CTYPE="zh_TW.UTF-8"
如果是使用VNC則修改~/.vnc/xstartup,一樣增加如上。
設定全域環境變數
mount
在utf-8 下顯示中文目錄或檔案的方法
修改/etc/fstab,參數加上nls=utf8即可。
EX:(p.s.這是我mount我的windows分割區的方式。)
/dev/hdaX /mnt/win ntfs noauto,user,rw,nls=utf8,umask=0 0 0 /dev/hdaX /mnt/fat32 vfat user,rw,iocharset=utf8 0 0
ntfs 可以用 nls vfat 要用 iochatset (PS: 我這邊要用 iocharset=utf8 才行, nls=utf8 會出現錯誤訊息. Kernel=gentoo-sources 2.6.11-r9)
vfat 可使用 utf8=1,取代 iocharset=utf8。
X window 安裝 for zh_TW.UTF-8
X 字型安裝 for zh_TW.UTF-8
gtk1 for zh_TW.UTF-8
cp /etc/gtk/gtkrc.zh_TW.big5 /etc/gtk/gtkrc.zh_TW.utf8
編輯 /etc/gtk/gtkrc.zh_TW.utf8 如下:
style "gtk-default-zh-tw" {
fontset = "
-misc-ming(for iso10646)-medium-r-normal--20-0-0-0-c-0-iso10646-1,\
-misc-wcl_07-medium-r-normal--20-0-0-0-c-0-iso10646-1,\
-*-*-medium-r-normal--16-*-*-*-*-*-iso10646-1,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-tw"
將字型更改為使用 iso10646-1 的 unicode 編碼字型 (可用 $ xlsfonts | grep iso10646 找出)
建議字型
- Firefly Sung
- wangttf
- MingLiU (如果弄得到合法版本的話,還不錯看。)
中文輸入
xcin
gcin
不需額外特別設定,參閱 gcin
scim
參閱 Scim-chewing
oxim
Developed by Firefly 安裝的話還蠻簡單的
emerge app-i18n/oxim
在 ~/.xinitrc 裡面加入以下設定
# 把整個環境改成 zh_TW export LANG="zh_TW.UTF-8" # 或是只把輸入法改成 zh_TW export LC_CTYPE="zh_TW.UTF-8" export XMODIFIERS=@im=oxim export GTK_IM_MODULE=oxim export QT_IM_MODULE=oxim oxim &
個別程式設定
X terminal
gnome-terminal
mlterm
urxvt
網路
samba
網路: p2p
amule
參閱Amule
amule 似乎不穩,請考慮使用 ed2k-gtk-gui + overnet
--betaparticle 11:56 2006年一月23日 (CST)(現在還有不穩的情況嗎?我用起來還可以的樣子…)
Azureus
在語系 zh_TW.utf8、檔案系統也是 UTF8 的情況下、 使用上無任何問題 :)
mldonkey
參閱 Mldonkey
編碼轉換問題
編碼轉換有兩方面需要解決,一個是檔案名稱的編碼轉換,一個是檔案內容的編碼轉換。
兩者需要分開轉換。
檔案名稱編碼轉換: convmv
它在 portage 的位置是:app-text/convmv
需要轉換的是 vfat,NTFS 之外的檔案系統。
如果您的檔案是放在 vfat,NTFS 的檔案系統內的話,
只需要改變 mount 的參數就可以了。
(原因似乎是 vfat,NTFS 已用 utf-8 為檔名編碼存放檔案)
(from UTF-8教學)
接著就可以開始轉換作業:
直接執行 convmv 它並不會真的轉換,而是列出它會轉換的檔案及轉換結果
$ convmv -f big5-eten -t utf-8 -r <要轉換之目錄>
執行了上述命令,確定它轉換結果沒問題後,接著就可以使用 --notest 參數讓它真的轉換
$ convmv -f big5-eten -t utf-8 -r --notest <要轉換之目錄>
檔案內容編碼轉換: iconv
(from http://www.gentoo.org/doc/en/utf-8.xml)
它是跟著 glibc 一起安裝的。
舉例來說,從 big5 轉到 utf-8 # iconv -f big5 -t utf-8 filename (建立一個檔存放轉換過的內容) # iconv -f big5 -t utf-8 filename > newfile
中文列印
參考資料
http://www.gentoo.org/doc/en/utf-8.xml
http://wiki.gentoo.tw/mediawiki/index.php/Utf-8_env
http://wiki.gentoo.tw/mediawiki/index.php/X-l10n-guide

