Download presentation
Presentation is loading. Please wait.
1
中 文 世 界
2
編碼標準 ASCII Big5 Ref: http://www.cns11643.gov.tw/web/word.jsp
8 bits (理論上有 256 種可能) 0x00 ~ 0x7F 共 128 種字元 0x00 ~ 0x1F control characters 0x20 ~ 0x7F printable characters Big5 使用 2 bytes 來存放中文字 (理論上有 種可能) 實際上為與 ASCII 相容, 只能使用 個 [0x81 ~ 0xFE][0x40~0x7E, 0xA1 ~ 0xFE] = 126 * ( ) = 126 * 157 = 19782
3
編碼標準 – Big5 標準字 (13502) 特殊符號 (441) 使用者造字 (5809) 問題 常用字 次常用字 符號、控制碼
你我他的媽 次常用字 朸旯朿鐰飉 特殊符號 (441) 符號、控制碼 : ! 。∩ ♂ ├ 罕用符號 使用者造字 (5809) 三段 問題 延伸版本繁雜 缺字 許功蓋
4
編碼標準 – Microsoft Windows Codepage 950
5
編碼標準 – ISO10646 and Unicode (1)
Goal 集結全球通用字符集,成一大聯集 UCS Universal multiple-octet coded Character Set 4 bytes encoding 128 Groups 256 Planes each group 256 Rows each plane 256 Cells each row BMP Basic Multilingual Plane 00 group, 00 plane 65536 encoding space UCS-2 Unicode Why in BMP 若所有字集都在 BMP 中, 就可以只使用 2 bytes, 否則就要用 4 bytes, 不能混用
6
編碼標準 – ISO10646 and Unicode (2)
BMP
7
編碼標準 – ISO10646 and Unicode (3)
UTF: UCS/Unicode Transformation Format UTF-16(2、4 bytes) 將一個 32-bit ISO10646 字元轉成多個 16-bit Unicode UTF-8(1~4 bytes) 將一個32-bit ISO10646 字元轉成多個 8-bit Unicode 將一個16-bit Unicode 字元轉成多個 8-bit Unicode 128個US-ASCII字元只需一個位元組編碼 帶有附加符號的拉丁文、希臘文、西里爾字母、亞美尼亞語、希伯來文、阿拉伯文、敘利亞文及它拿字母則需要二個位元組編碼(Unicode範圍由U+0080至U+07FF)。 其他基本多文種平面(BMP)中的字元(這包含了大部分常用字)使用三個位元組編碼。 其他極少使用的Unicode 輔助平面的字元使用四位元組編碼。
8
中文環境 (1) 要做到哪些事情 中文訊息 中文顯示 中文輸入 中文列印 中文處理 簡單 困難
9
中文環境 (2) 中文化方式 直接修改程式 國際化 中文區域化 套件以排山倒海之勢而來 InternationalizatioN I18N
Multi-language architecture 程式設計人員按照該架構的機制與準則寫程式, 便可支援各式各樣的語言 Locale (LOCALization Environment database) 程式根據使用者選擇的 locale 聯繫到不同資料庫, 進而提供該語言的支援 中文區域化 LocalizatioN L10N 在 I18N 的大架構下 加入 “中文支援” 的工作
10
中文環境 (3) locale 地區性語言的資訊 效力優先性:LC_ALL > LC_* > LANG LC_ALL
LC_CTYPE 掌管該 locale 中所有字元的處理方式 LC_MESSAGES 掌管程式訊息輸出所用的語言 LC_TIME 時間格式 LC_NUMERIC 數字格式 LC_MONETARY 貨幣格式 LC_COLLATE 字母順序與特殊字元比較 LANG 語言顯示 效力優先性:LC_ALL > LC_* > LANG
11
中文環境 (4) 設定 locale csh/tcsh shell Bourne Shell /usr/share/locale/
setenv LC_CTYPE zh_TW.UTF-8 Bourne Shell export LC_CTYPE=zh_TW.UTF-8 /usr/share/locale/ 各國的 locale 資訊 命名規則: 語言_地區名:字元編碼名稱 zh_TW.UTF-8 zh_CN.GBK
12
英文,但支援multibyte character
中文環境 (5) 中文 Terminal (Remote Login) M$ Windows: putty, pietty, netterm, multi-term, telnet, …etc. X Window: xterm, rxvt, aterm, mterm,roxterm…etc. 設定好中文支援,登入後 setenv LC_CTYPE en_US.UTF-8 (csh/tcsh) export LC_CTYPE=en_US.UTF-8 (sh/bash) 即可看到中文 中文 Xwindow 建立支援 L10N 中文環境 安裝中文字型 設定 Shell locale 環境 安裝 ibus 中文輸入程式 英文,但支援multibyte character
13
Steps of Exercise 安裝中文字型 安裝中文 Terminal 安裝 ibus 中文輸入程式 其他設定
14
安裝中文字型 (1) 兩大中文字型種類 點陣字型 (Bitmapped Font) 曲線描邊字型 (Outline Fonts)
BDF (Bitmap Distribution Format) 點陣分散格式 HBF (Hanzi Bitmap Font) 漢字點陣字體 PCF (Portable Compiled Font) 曲線描邊字型 (Outline Fonts) True Type Font (TTF)
15
安裝中文字型 (2) Font Path 安裝字型步驟 % xset q % xset fp+ [directory]
/usr/local/lib/X11/fonts/misc/, /usr/local/lib/X11/fonts/TTF/, /usr/local/lib/X11/fonts/Type1/, /usr/local/lib/X11/fonts/75dpi/, /usr/local/lib/X11/fonts/100dpi/, /usr/local/lib/X11/fonts/local/ Font Path % xset q % xset fp+ [directory] % xset fp rehash 安裝字型步驟 透過 ports 安裝字型檔案 使用 ttfm 安裝該字型 使用 fc-cache 建立字型資料庫 修改各軟體設定使用別的字型
16
安裝中文字型 (3) 安裝 ttfm – TrueType 字型管理工具 ttfm ttfinfo 讀取 ttf 字型格式資訊的程式
% ttfinfo /usr/local/share/fonts/TrueType/fireflysung.ttf >ttfinfo /usr/local/share/fonts/TrueType/fireflysung.ttf TTFINFO_FONT_FILE="/usr/local/share/fonts/TrueType/fireflysung.ttf" TTFINFO_FACE_NUM="1" TTFINFO_FACE_INDEX="0" TTFINFO_FONT_NAME="AR PL New Sung" TTFINFO_FONT_PSNAME="AR-PL-New-Sung" TTFINFO_FOUNDRY_NAME="misc" TTFINFO_WEIGHT_NAME="medium" TTFINFO_WIDTH="normal" TTFINFO_NUMCMAP="3" TTFINFO_CMAP0="0,3" TTFINFO_CMAPNAME0="Apple Unicode,(v.2.0)" TTFINFO_CMAP1="1,0" TTFINFO_CMAPNAME1="Apple,Roman" TTFINFO_CMAP2="3,1" TTFINFO_CMAPNAME2="Windows,Unicode" TTFINFO_MAPNUM="3" TTFINFO_FONTMAP1="-misc-AR PL New Sung-medium-r-normal p-0-big5-0" TTFINFO_FONTMAP2="-misc-AR PL New Sung-medium-r-normal p-0-gb " TTFINFO_FONTMAP3="-misc-AR PL New Sung-medium-r-normal p-0-jisx "
17
安裝中文字型 (4) ttfm.sh (21:38)wjguo@[oopc6:/home/wjguo] >ttfm.sh
True-Type Font Manager 0.9.3 Usage: /usr/local/bin/ttfm.sh [option] --add [module] <file> install ttf font --remove [module] <file>... remove ttf font from the system --list <module>... list all ttf fonts on the system --modules list all ttf manager modules on the system --setdefault <module> <file> set default ming font of module to file --setdefault_kai <module> <file> set default kai font of module to file --initm <module>.. initialize modules --help show this info
18
安裝中文字型 (5) 選一個來裝 …
19
安裝中文字型 (6) fireflyttf % cd /usr/ports/chinese/fireflyttf
% make install clean 透過 ports 安裝的都會自己跑 % ttfm.sh --add xttfm /usr/local/share/fonts/TrueType/fireflysung.ttf % fc-cache –f –v /usr/local/lib/X11/fonts/TrueType/ File: /usr/local/share/fonts/TrueType/fireflysung.ttf /usr/local/lib/X11/fonts/TrueType/fireflysung.ttf symbolic link
20
*安裝中文字型 (7) 用 xfd 來看 % setenv LC_CTYPE zh_TW.Big5 % xfd –fa “MingLiU”
21
安裝中文字型 (8) 增加 Font Path Edit /etc/X11/xorg.conf Restart xwindow
Section "Files" ModulePath "/usr/local/lib/xorg/modules" FontPath "/usr/local/lib/X11/fonts/misc/" FontPath "/usr/local/lib/X11/fonts/TTF/" FontPath "/usr/local/lib/X11/fonts/OTF" FontPath "/usr/local/lib/X11/fonts/Type1/" FontPath "/usr/local/lib/X11/fonts/100dpi/" FontPath "/usr/local/lib/X11/fonts/75dpi/" FontPath "/usr/local/lib/X11/fonts/TrueType/" FontPath "/usr/local/lib/X11/fonts/local/" EndSection
22
安裝中文 Terminal (1) rxvt aterm eterm ROXterm mlterm Before
/usr/ports/chinese/rxvt-big5 Now, it is removed I18N completely /usr/ports/x11/rxvt-unicode aterm /usr/ports/chinese/aterm eterm /usr/ports/chinese/eterm ROXterm /usr/ports/x11/roxterm mlterm /usr/ports/x11/mlterm
23
安裝中文 Terminal (2) urxvt Edit ~/.Xdefaults To use AR PL New Sung
rxvt.borderColor: black rxvt.background: black rxvt.backspacekey: "^H" rxvt.cursorColor: IndianRed rxvt.foreground: gray98 rxvt.geometry: x24 rxvt.inputMethod: xcin rxvt.multibyte_cursor: yes rxvt.multichar_encoding: big5 rxvt.preeditType: OverTheSpot rxvt.scrollTtyKeypress: True rxvt.scrollTtyOutput: False rxvt.scrollBar_right: True rxvt.termName: xterm-color rxvt.troughColor: black !您可選擇想要的字體大小 ! 國喬 16pt, 國喬 16pt rxvt.font: x16 rxvt.mfont: kc15f ! End ports/chinese/rxvt configuartion To use AR PL New Sung rxvt.mfont: -aliasmisc-ar pl new sung-medium-r-normal-*-*-160-*-*-p-*-big5-0
24
安裝中文 Terminal (3) aterm Edit ~/.Xdefaults To use AR PL New Sung
aterm.borderColor: black aterm.background: black aterm.backspacekey: "^H" aterm.cursorColor: IndianRed aterm.foreground: gray98 aterm.geometry: x24 aterm.inputMethod: xcin aterm.multichar_encoding: big5 aterm.preeditType: OverTheSpot aterm.scrollTtyKeypress: True aterm.scrollTtyOutput: False aterm.scrollBar_right: True aterm.shading: aterm.termName: xterm-color aterm.transparent: True aterm.transpscrollbar: True aterm.troughColor: black !您可選擇想要的字體大小 ! 國喬 16pt, 國喬 16pt aterm.font: x16 aterm.mfont: kc15f ! End ports/chinese/aterm configuartion aterm Edit ~/.Xdefaults To use AR PL New Sung aterm.mfont: -aliasmisc-ar pl new sung-medium-r-normal-*-*-160-*-*-p-*-big5-0
25
安裝中文輸入程式 Choices ibus-chewing(chinese/ibus-chewing)
ibus-pinyin(chinese/ibus-pinyin)
26
安裝 ibus 中文輸入程式 (1) ibus Intelligent Input Bus
% cd /usr/ports/textproc/ibus-chewing ; make install clean setenv LC_CTYPE zh_TW.UTF-8 (csh/tcsh) export LC_CTYPE=zh_TW.UTF-8 (sh/bash) Edit .xinitrc (或是可以 setenv in .cshrc/.bashrc) XIM=ibus GTK_IM_MODULE=ibus QT_IM_MODULE=xim XIM_PROGRAM="ibus-daemon" XIM_ARGS="--daemonize --xim"
27
安裝 ibus中文輸入程式 (2) Switch to chinese input: Ctrl -Space
28
安裝 ibus 中文輸入程式 (3) 調成自己要的樣子 % ibus-setup (UTF-8)
29
其他設定 (1) 顯示所有可用字型 選擇字型程式 xlsfont xfontsel – X font selector
click [select] 滑鼠中間鍵貼上 滑鼠左右鍵貼上
30
其他設定 (2) 安裝 zh-auto-tw-l10n # cd /usr/ports/chinese/auto-tw-l10n/
# make install clean # cd /usr/local/share/skel/zh_TW.Big5/ # ls >ls MANIFEST dot.cshrc dot.gtkrc dot.vimrc dot.Xdefaults dot.emacs dot.inputrc dot.xinitrc dot.bashrc dot.fonts.conf dot.muttrc make.conf
31
其他設定 (3) 設定適合的 Locale(in X window)
en_US.ISO vs. zh_TW.Big5(zh_TW.UTF-8) edit /etc/csh.cshrc (or ~/.cshrc) if ( $MY_TTY == cons || $MY_TTY == ttyv ) then setenv LC_CTYPE zh_TW.Big5 else setenv LC_CTYPE en_US.ISO8859-1 endif
32
References 中文碼介紹 FreeBSD Chinese HOWTO Introduction to i18n
FreeBSD Chinese HOWTO Introduction to i18n
Similar presentations