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

參閱 Gnome-terminal

mlterm

urxvt

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