在Linux下使用丹麥語/其他國際語言 HOWTO 作者: Niels Kristian Bech Jensen nkbj@sslug.dk 譯者: 曾慧涵 azurlachesis@msn.com v2.6, 9 March 2000 _________________________________________________________________ 這份文件敘述如何為 Linux 及 Linux 相關應用程式丹麥語化, 包括鍵盤設置, 字型, 紙張大小等. 希望其他西歐語系的 Linux 使用者也能從這份文件中獲益. _________________________________________________________________ 1. 導言 2. 設定鍵盤 * 2.1 載入鍵盤表 (keytable) * 2.2 在 X11 下使用 AltGr 鍵 * 2.3 死鍵和重音字元 * 2.4 使用 $ (錢符號), o/ (oslash) 和 O/ (Oslash) 字元 3. 設定顯示和應用程式 * 3.1 在控制台中載入 ISO-8859-1 字型 * 3.2 歐元符號 * 3.3 Linux 環境下可顯示的字元 * 3.4 特定應用程式中的國際字元集 4. 其他問題 * 4.1 時區 * 4.2 A4 紙張大小 * 4.3 其他作業平台的文字檔格式 5. 在 libc 5.4.x 以上版本中支援區域化資料庫 (locale) 6. 在 X11下編寫程式的一些小技巧 7. 在 X11 應用程式中使用丹麥語 8. 資訊資源 * 8.1 其他相關文件 * 8.2 FTP 及網站 9. 版權 * 9.1 版權所有 _________________________________________________________________ 1. 導言 幾乎所有歐洲的作業系統使用者都會遇到以下兩個問題: 第一, 如何讓電腦知道 你使用的是非美系的鍵盤; 第二, 如何讓電腦顯示特殊字元. 更糟糕的是, 有些 應用程式會因為你不是美國人而要求你做特殊設定, 或是更改環境變數. 在 Linux 裡, 你可以用指令loadkeys 和 xmodmap 來改變鍵盤設定. loadkeys 指令只更改純 Linux 環境下的鍵盤, 而 xmodmap 在 Linux 和 X11 之間交換字 元的程序不完整時, 會做適當的調整. 為了要正確顯示字元, 你必需告訴應用程式你使用的是 ISO-8859-1 ( 亦 即Latin-1) 的國際字元集. 對某些常用的應用程式來說, 這是必要的步驟. 這份 HOWTO 文件目的在於告訴丹麥語使用者如何讀寫丹麥語. 如果在閱讀這份 文件後, 你還是碰到問題, 請參考德語 HOWTO, Linux 鍵盤和控制台 HOWTO , 或是 ISO 8859-1 National Character Set FAQ. 本文件中許多的提示說明都是 出自這三份文件的內容. 請參見 [1]其他相關文件 來連結到這些文件. 同時, 請你寄信給我, 並敘述你碰到的問題. 最後一個問題是: 許多應用程式的錯誤訊息, 選單和說明文件都是英文的. 有一 個 GNU 計劃正在著手解決這個問題. 你可以從你喜愛的 GNU 映射站中下載 ABOUT-NLS 或是 gettext-0.10.tar.gz 包裹以了解此計劃. 這個計劃需要自願 者參與翻譯工作. 如果你想要為計劃中的丹麥語部份出力, 請寄信到 da-request@li.org 並在內容寫上 "subscribe". gettext 中的說明文件會告訴 你如何在你的程式中使用翻譯. 2. 設定鍵盤 2.1 載入鍵盤表 (keytable) 你可使用兩個工具來設定你的鍵盤. 在純 Linux 環境下, 你可以用loadkeys , 而在 X11 下則用 xmodmap. 欲使用 loadkeys 指令, 你可以執行: loadkeys /usr/lib/kbd/keytables/dk.map 或 loadkeys /usr/lib/kbd/keytables/dk-latin1.map 這兩個鍵盤對應表 (keymap) 的差異在於, dk-latin1.map 可以使用死鍵, 而 dk.map 不行. 死鍵在 [2]死鍵和重音字元 中會解釋到. loadkeys 和 keymap 都是 Linux 裡通行的 kbd-0.??.tar.gz ( ?? 代表不同版本) 包裹中的一部份. loadkeys 通常是在系統啟動時, 從 /etc/rc.d/ 目錄下的某一個命令稿 (script) 執行的. 不同的系統和版本作法各不相同. (註, 給非丹麥語讀者: 其他語系的支援也是以類似方法設定的, 例如西班牙語 鍵盤是用 es.map .) XFree86 從 3.1.2 以上的版本 (包括3.1.2) 通常都使用純 Linux 環境下的 keymap, 但在 X11 下你可以用 xmodmap 來改變鍵盤設定. 如果在你的 home 目 錄下有一個叫 .Xmodmap 的檔案, X11 就會在啟動時自動替你執行這個指令. 若使用版本 3.2 以上的 XFree86, 在你的 /etc/XF86Config (或 /etc/X11/XF86Config) 檔案中, 應有一個Keyboard 區塊如下列 ( 如果選擇使 用丹麥語的 keytable, 一個叫 XF86Setup 的程式應該會自動替你做好這件事) : Section "Keyboard" Protocol "Standard" XkbRules "xfree86" XkbModel "pc101" XkbLayout "dk" XkbVariant "nodeadkeys" EndSection 目前只有"nodeadkeys" 是可用的鍵盤變數, 但你仍可以設定死鍵. 請參見 [3] 死鍵和重音字元 以得到更多資訊. 2.2 在 X11 下使用 AltGr 鍵 若使用版本 3.1.2 以上的 XFree86 (包括 3.1.2), 你應該修改檔案 /etc/XF86Config (或 /etc/X11/XF86Config) 並確定以下這行 RightAlt ModeShift 出現在 Keyboard 區塊中. 通常, 你只需要在適當的地方移去註解符號即可. 在 版本 3.1.2 的 XFree86 中, 你可用 AltGr 作為 RightAlt 的別鍵. 如果你有選擇丹麥語的鍵盤支援, AltGr 鍵在版本 3.2 以上的 XFree86 應會如 預期地發揮作用. 在 Metro-X 下使用 {, [, ] 和 } 在 Metro-X 伺服器下, 你將無法輸入 ``{'' (<7>), ``['' (<8>), ``]'' (<9>) 和 ``}'' (<0>) 等字元. 這個 bug 會在 3.1.5 和 3.1.8 的伺服器版本中出現. 要修正這個 bug, 你必須修改檔名叫作 /usr/X11R6/lib/X11/xkb/symbols/dk 的檔案並把以下句子: key { [ 7, slash ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, equal ] }; 改成 key { [ 7, slash ], [ braceleft, NoSymbol ] }; key { [ 8, parenleft ], [ bracketleft, NoSymbol ] }; key { [ 9, parenright ], [ bracketright, NoSymbol ] }; key { [ 0, equal ], [ braceright, NoSymbol ] }; 2.3 死鍵和重音字元 所謂死鍵, 就是在按下之後, 還必須再按其他鍵才能夠作用的鍵. 你如果是在純 Linux 環境下使用 dk-latin1.map keymap, 那顎化符號 (tilde, 譯注: 例如西 班牙語字母上的∼) 和變音 (umlaut, 譯注: 字母上加兩點) 都是死鍵. 另外, 在微軟視窗作業系統下, 鍵盤預設也是如此. 移除死鍵功能 * 在純 Linux 與 XFree86 v3.1.2 環境下移除死鍵功能 在純 Linux 環境下, 輸入 loadkeys dk.map * 在版本 3.2 以上的 XFree86 中移除死鍵功能 在檔案 /etc/XF86Config ( 或 /etc/X11/XF86Config) 中, 在 Keyboard 區塊中加入句子: XkbVariant "nodeadkeys" 啟動死鍵功能 * 在純 Linux 環境下啟動死鍵功能. 在純 Linux 環境下輸入 loadkeys dk-latin1.map * 在 X11R6 下啟動死鍵功能. 首先, 確認你跑的是版本 3.1.2 以上的 XFree86. 如果你的版本低於 3.1.2, 你必須下載並安裝所有和最新版本相 關的檔案. 在 X11R6 應用程式中, 要使用排字 (compose) 或死鍵, 就必須 將程式和重音字元 (8-bit) 支援一起編譯. GNU emacs v. 19.30 (或更高 的版本) 是一個例子. 然而, 某些 X11 應用程式依然不支援這種輸入法. 面對這個問題, 你可以選擇修改你的程式, 或是寄一封修辭溫和的 bug 報 告給程式作者. 後者是比較有效的解決之道. 請參見 [4]在 X11下編寫程式 的一些小技巧 以獲得相關資訊. 接下來, 你需要將一個鍵對應到 Multi_key (Compose.) 若你使用版本 3.1.2 的 XFree86, Scroll Lock 鍵 很可能已經被對應了(你可以用 xev 這個程式修改設定). 如果要對應右邊 的 Control 鍵, 你只需要在 XFree86 的 configuration file (通常是 /etc/XF86Config 或 /etc/X11/XF86Config) 中的 Keyboard 區塊裡去掉若 干註解符號即可. 若你想使用其他的鍵, 或者你是用版本 3.1.2 以上的 XFree86 而且你想改變預設, 你可以在檔案 ~/.Xmodmap 中加入: keycode 78 = Multi_key 上面這一行範例做的是定義 Scroll Lock 鍵為 Compose 鍵. 在版本 3.2 以上的 XFree86 中, 預設的 Compose 鍵是 . 版本 3.2 以 上的 XFree86 並不支援在標準丹麥鍵盤使用死鍵. 要啟動死鍵, 在檔案 /usr/X11R6/lib/X11/xkb/symbols/dk 的 xkb_symbols "basic" 區塊中修 改這幾行: key { [ acute, grave ], [ bar, dead_ogonek ] }; key { [ diaeresis, asciicircum ], [ asciitilde, dead_macron ] }; 把它改成 key { [ dead_acute, dead_grave ], [ bar, dead_ogonek ] }; key { [ dead_diaeresis, dead_circumflex ], [ dead_tilde, dead_macron ] }; 接下來, 移除檔案 /etc/XF86Config (或 /etc/X11/XF86Config) 中 Keyboard 區塊裡的這一行: XkbVariant "nodeadkeys" (註, 給非丹麥語讀者: 在 /usr/X11R6/lib/X11/xkb/symbols 中有各種語 系 keymap 的檔案.) 可能的字元對應表列於檔案 /usr/X11R6/lib/X11/locale/iso8859-1/Compose 中. 這個檔案裡有一些你 或許會想修正的 bug: + 下面這一行 : "~" tilde 應被改為 : "~" asciitilde + 在某些地方, asciicircum 被誤拼為 asciicirum 最後, 確定你的 shell (或者還有應用程式) 已經如 [5]特定應用程式中的 國際字元集 中所敘述的, 做好 ISO-8859-1 相容性的設定. 2.4 使用 $ (錢符號), o/ (oslash) 和 O/ (Oslash) 字元 $ (the dollar sign) 丹麥 keymap 中有個 bug 會使錢符號的對應鍵組合為 <4>, 而不是 <4>. 若你有這個問題, 請查看你在啟動系統時載入的是哪個 keymap. 這項設定位於 /etc/rc.d/ 目錄下, 或者你也可以在啟動系統時注意一下. 在我 的電腦上, 我的 keymap 是叫 /usr/lib/kbd/keytables/dk-latin1.map. 你可 以改 keymap 檔案中的 keycode 5 = four dollar dollar 這一行改成 keycode 5 = four currency dollar 然後如 [6]載入 keytable 所述, (重新)載入 keytable. 貨幣符號 (dansk: ``soltegn'') 在丹麥鍵盤上的預設是 <4>. 以上的方法在 X11 和 Linux 環境下應該都能通行. o/ (oslash) 和 O/ (Oslash) 在某些比較舊的系統裡, ``o/'' and ``O/'' 以分 (cent) 或圓 (yen)的形態出 現. 在你的 keymap 檔案中, 可以找到 keycode 40 的這一行句子: keycode 40 = cent yen 你可以把它改為 keycode 40 = +oslash +Ooblique 此 bug 已在 kbd-0.88.tar.gz 以上的版本中修正. 為了讓 Caps Lock 正常運作, 那個 + 符號是必要的. 在 kbd-0.90.tar.gz 或 更新的版本中, ``Oslash'' 常用來當作 ``Ooblique'' 的別名. 你可以在 [7]這裡得到更多資訊. 3. 設定顯示和應用程式 大部份的應用程式必須被編譯為 ``8-bit-clean'' 才能成功使用歐洲的字元, 有些甚至還需要額外的一些修改. 3.1 在控制台中載入 ISO-8859-1 字型 在 shell 提示字元後執行以下指令: setfont lat1u-16.psf 在 Red Hat Linux 5.2 或更新的版本下, 你可以在檔案 /etc/sysconfig/i18n 中加入下列句子: SYSFONT=lat1u-16.psf SYSTERM=linux 由於 Red Hat Linux 5.2 的 ncurses 包裹中有 bug, 你得把檔案 /etc/profile.d/lang.sh 中的 ``linux-lat'' 改為 ``linux''. Red Hat Linux 6.0 則沒有此問題. 3.2 歐元符號 丹麥字元集裡新增了一個符號: 歐元符號 (歐洲貨幣聯盟的新幣值). 新的字元 集叫作 ISO-8859-15, 也就是 latin0 (或 latin9) 以取代原先的 ISO-8859-1 (latin1). 為取得 latin0 支援, 你必須使用 [8]EURO 包裹. 這個包裹中包含 字型和 keymap. 3.3 Linux 環境下可顯示的字元 在字元提示輸入 dumpkeys -l | less 即可知道哪些字元是可用的. 你可以依 [9]載入 keytable 中所述的將它對應到你的鍵盤. 3.4 特定應用程式中的國際字元集 某些應用程式需要特殊的設定. 本節旨在敘述設定的方法. bash: 在檔案 ~/.inputrc 中加入: set meta-flag on set convert-meta off set output-meta on elm: 在檔案 ~/.elm/elmrc 中加入以下定義: charset = iso-8859-1 displaycharset = iso-8859-1 textencoding = 8bit 某些版本 elm 不接受這樣的設定. 若使用metamail, 則可以在 elm 中 得到部份的 MIME 支援. emacs: 在檔案 ~/.emacs 或整個系統的初始設定檔 (通常是 /usr/lib/emacs/site-lisp/default.el 或 /usr/share/emacs/site-lisp/default.el) 中加入以下行列: (standard-display-european t) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) 若你使用 GNU emacs v19.30 以上的版本, 或是 XFree86 v3.1.2 以上 的版本, 在 GNU emacs 裡你應該可以使用死鍵 (對我而言, 兩者都沒問 題); 因此你將不需要特地去找像是有 ``electric keys'' 設定的 elisp 包裹. 如果你想要在 emacs 中使用歐洲鍵盤設定, 卻不打算昇 級, 你最好從 [10]SunSite DK 下載 remap 包裹. 除此之外, iso-acc.elc 及 iso-trans.elc 這兩個包含 emacs 的包裹也有類似的 功能, 只是沒有那麼強大. groff: 若你想要 ISO-8859-1 的文字輸出, 執行指令 groff -Tlatin1 請注意: 要讓 latin1 的字元在 man (不要移除 -mandoc 的 switch) 成功運作, 必須在 /etc/man.config 中執行這項變更. ispell --- 丹麥語拼字檢查: 首先, 確定你安裝的是版本 3.1.20 而不是 4.0 的 ispell. 後者不但 過時, 而且設計很糟糕. 你可以從 [11]the GNU archive 下載 ispell, 並從 [12]SSLUG 取得丹麥語字典. 依照檔案中的編譯指示去做, 就應該 不會有問題. (警告: 在為編譯作變數定義時, 如果你的 Linux 是 Sys V typs OS, 你必須定義 USG 這個變數以告知 ispell.) 為 ispell 安裝好字典後, 你可以執行以下指令來做一個丹麥語檔案的 拼字檢查: ispell -d danish -T latin1 -w "翬暲媗" <你的丹麥語文字檔> (註, 給非丹麥語讀者: 你可以在 ispell 的資源檔案 Where 中找到大 部份西方語文的字典.) joe: 執行指令 joe -asis 或在檔案 ~/.joerc 中加入: -asis 連字號 ( - ) 一定要放在第一行裡! kermit: 我能做到最好的地步是, 在檔案 ~/.kermrc 中加入: set terminal bytesize 8 set command bytesize 8 set file bytesize 8 set language danish set file character-set latin1-iso set transfer character-set latin1-iso set terminal character-set latin1-iso 我覺得應該不只要設定這些變數, 但我不知道還有哪些. 如果你的遠端 系統是以 DOS 或 OS/2 做根據的, 你必須做以上的設定. less: 設定環境變數: LESSCHARSET=latin1 如果你的系統支援區域化資料庫 (locale), 就不需要做這項更改, 只需 要設定 LANG, LC_CTYPE 或 LC_ALL (請參見 [13]在 libc 5.4.x 以上 版本中支援區域化資料庫 (locale).) ls: 執行指令 ls -N 或是 ls --8bit lynx: 在檔案 ~/.lynxrc 中加入定義: character_set=ISO Latin 1 你也可以在 lynx 的 Options 選單中做出同樣結果的設定. 鍵入 `o' 並設定相關選項. man: 請參見本節中的 groff 部分. metamail: 設定環境變數: MM_CHARSET=ISO-8859-1 nn: 在檔案 ~/.nn/init 中加入: set data-bits 8 pine: 在檔案 ~/.pinerc 中加入定義: character-set=ISO-8859-1 你也可以在 pine 的 Setup, Config 選單選項中做出相同結果的設定. 另外, 你也可以放心地在選單中選擇 enable-8bit-esmtp-negotiation 和 enable-8bit-nntp-posting (for news). rlogin: 執行指令 rlogin -8 foo.bar.dk sendmail: 在檔案 /etc/sendmail.cf 中加入 (或去掉註解符號): O SevenBitInput=False O EightBitMode=pass8 O DefaultCharSet=iso-8859-1 tcsh: 在檔案 /etc/csh.login 或 ~/.tcshrc 中加入: setenv LANG C 事實上, 你只需要定義 LANG 或 LC_CTYPE 這兩個環境變數的其中一個. 變數的值無關緊要. 請閱讀 tcsh man page 以獲得更多資訊. telnet: 在檔案 ~/.telnetrc 中, 為"每一個"你想要使用 telnet 登入的 host 加入以下句子: set outbinary true 例如: localhost set outbinary true foo.bar.dk set outbinary true TeX/LaTeX: 在使用 TeX/LaTeX 時,會碰到個問題是: 你希望能在 LaTeX 中使用特殊 字元, 又不希望 LaTeX 在每個章節的開頭加入像 "Chapter'' 之類的英 文字, 也不想要使用英文的文字排版. 在 LaTeX2e 下, 你匯入的檔案的 header 應該會看起來像這樣: \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \usepackage{t1enc} \usepackage[danish]{babel} 第一個 usepackage 的句子確保 LaTeX 會正確解讀歐洲字元, 因此, 你 不必特地使用 escape 字元來輸入歐洲字元. 第二個 usepackage 的句 子並非必要, 但若要使用新的 EC 字型 (以前被稱作 DC 字型), 則建議 加入. 第三個 usepackage 的句子定義若干丹麥語的文字排版. 所有主要的 Linux 版本都包含 teTeX 包裹. 若要設定 teTex, 你必須 執行命令稿 (script) texconfig. 在此你可選擇丹麥語的連字符號 (dansk: ``orddeling''), 為 dvips 和 xdvi 設定 A4 紙張大小等等. 所有夠新的 Linux 版本都包含 LaTeX2e, 但在比較老舊的系統裡, 你使 用的可能是 LaTeX 2.09. 如果是這樣的話, 你可以用 \documentstyle[a4,isolatin]{article} 來支援 ISO-8859-1 字元和歐洲紙張大小規格. 但我建議你最好要求系 統 administrator 昇級到 LaTeX2e. 你可以從任一 [14]CTAN servers 網站下載 isolatin.sty. 某些人偏好使用特殊模式下的 emacs, 因為可以將"特殊"字母轉變成 TeX escape 碼. 這個方法已經不適用了. tin: 在你的檔案 ~/.tin/headers 中加入: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit 如此一來, 你就可以在訊息中使用丹麥字元. 4. 其他問題 4.1 時區 丹麥的時區屬於中歐時區 (CET 或 MET), (在冬天時) 相等於格林威治標準時 刻+1 (GMT+1.) 在 Linux 系統下設定時區的方式是建立一個捷徑, 連結 /usr/lib/zoneinfo/localtime 和位於 /usr/lib/zoneinfo/ 目錄下符合你的時 區或國家的檔案名. 若你是丹麥人, 你可以執行以下指令: ln -sf /usr/lib/zoneinfo/MET /etc/localtime 或 ln -sf /usr/lib/zoneinfo/Europe/Copenhagen /etc/localtime 如此一來, 在夏天的時候, 系統將會自動設定日光節約時間 (GMT+2.) 若需要將系統時間與 CMOS 時鐘同步, 你需以 root 身份執行指令 clock. 若你 的 CMOS 時鐘是設定為 GMT (又名 UTC --- the standard on proper Unix systems), 請執行 clock -u -s 而若你的 CMOS 時鐘是設為本地時間, 則執行 clock -s 4.2 A4 紙張大小 * ghostscript: 加入命令列選項 -sPAPERSIZE=a4. * ghostview: 定義以下 Xresource: Ghostview.pageMedia: A4 * TeX/LaTeX, dvips, xdvi: 請參見 [15]特定應用程式中的國際字元集 中 TeX/LaTeX 的部分. 4.3 其他作業平台的文字檔格式 你可以使用 recode 包裹將 ISO-8859-1 格式的文字檔轉譯為其他格式, 例如使 用 codepage 850 的 DOS 文字檔. 使用下列指令 recode cp850:latin1 foo.txt 就可以將一個名為 foo.txt 的檔案轉為適當的 UNIX 檔. 欲取得 recode, 你可以從 [16]the GNU archive 的任一映射站中下載 recode-3.4.tar.gz. 5. 在 libc 5.4.x 以上版本中支援區域化資料庫 (locale) libc 5.4.x 版本已經具備 locale 支援. 如果你的系統支援 locale, 你就不需 要像 [17]特定應用程式中的國際字元集 那樣針對每個程式做設定. 欲在 Debian 中取得此支援, 你必須安裝 wg15-locale 包裹. 具備 GNU libc 2 (libc 6.x) 的系統則預設支援 locale (詳見本節內關於 Red Hat Linux 5.0 版本的資訊.) 若你的系統不支援 locale, 你可以使用以下方法取得支援: 1. 確定你使用最新的 libc 5.4.x library. 若沒有, 你可以從 [18] Yggdrasil Computing 取得. 2. 確定你已安裝 localedef. 這個程式是跟著 library 一起安裝的. 3. 取得 locale 來源檔. 可從 DKUUG 取得. 你必須同時擁有 [19]locale 和 [20]charmap 來源檔. 4. 將 locale 來源檔放入 /usr/share/i18n/locales/, 並將 charmap 來源檔 放入 /usr/share/i18n/charmaps/. 5. 執行 localedef 以建立 locale 資料檔: localedef -ci da_DK -f ISO_8859-1:1987 da_DK (註, 給非丹麥語讀者: 其他語言的 locale 也可以同樣方式建立. 所有 locale 和 charmap 來源檔都在 DKUUG 網站上.) 你可設定下列兩個環境變數中的其中一個以取得丹麥語 locale 支援: LANG=da_DK 或 LC_ALL=da_DK 如果 da_DK 行不同, 請試試 da_DK.ISO_8859-1. 這兩個環境變數都會設定所有的 locale 目錄. 若要設立一個單獨的 locale 目 錄, 請將目錄名設為環境變數. locale 目錄如下: Locale category Application --------------- ----------- LC_COLLATE 字串校對 (排序) LC_CTYPE 字元分類及轉換 LC_MESSAGES yes 或 no 的訊息翻譯 LC_MONETARY 貨幣符號格式 LC_NUMERIC 非數字符號格式 LC_TIME 日期與時間格式 LC_ALL 以上所有的設定 (將會覆寫以上所有的設定) LANG 設定所有目錄, 但可被以上任一單獨的目錄覆寫掉 在 Red Hat Linux 5.2 下, 你可以在檔案 /etc/sysconfig/i18n 中設定環境變 數 LANG 以及/或 LC_ALL: LC_ALL=da_DK 某些程式, 像是 bash 和 GNU emacs 仍需要如 [21]特定應用程式中的國際字元 集 中所述的特殊設定程序, 但大部份的程式就不需要進一步的修改. 在經過以 上步驟後, 原先不接受 8-bit 字元的程式, 諸如 nvi, 應該就可以用了. 具備 GNU libc 2 的版本往往支援 locale, 但請注意: 雖然 Red Hat Linux 5.0 具備 GNU libc 2, 但它卻不支援 locale. 你必須自己執行 localedef 以 建立 locale 資料檔. 以下指令將會建立丹麥語 locale 資料檔: localedef -c -i da_DK -f ISO-8859-1 da_DK glibc-2.0.7-4.i386.rpm 的 library 中已包含 locale 資料檔, 不需要額外的 設定. 6. 在 X11下編寫程式的一些小技巧 顯示 8-bit 字元是很容易的. 方法與使用 7-bit ASCII 相同. 然而, 要讓應用 程式接受特殊字元輸入就沒有那麼簡單了. 若你使用像 Xt toolkit 這樣的程式, 或是類似 Motif 的界面工具集, 你只需 要在你的程式中加入一行句子. 在你"第一次"使用 Xt時, 使用 XtSetLanguageProc 如下: int main (int argc, char** argv) { ... XtSetLanguageProc (NULL, NULL, NULL); top = XtAppInitialize ( ... ); ... } 這樣, 你的程式會自動在 /usr/X11R6/lib/X11/locale/ 目錄下依據 Compose table 來對照 LC_CTYPE 變數, 並解讀死鍵等. 這個方法應能通行所有西歐規格 鍵盤. 隨著 XFree86 多語系支援功能的進步, 你的程式將慢慢能夠在東歐和中 歐通用. Xt, Xlib, 和 Motif (包括 v1.2 以上的版本) 都支援這種輸入法. 根據我所得 到的消息, Xaw 只部份支援此輸入法. 若你有進一步的資訊, 請通知我. 本節的內容取自 Michael Gschwind 的 Programming for Internationalization. 你可以從 [22]其他相關文件連結到那份文件. 7. 在 X11 應用程式中使用丹麥語 想要在 X11 的應用程式中看見丹麥語的選單, 按鈕等, 你只需要將翻譯定義這 些文字的來源字串. Jacob Nordfalk 已為許多應用程式做了這樣的翻譯, 包括 Netscape 和 Ghostview. 你可以在 [23]這裡 找到翻譯和安裝說明. 8. 資訊資源 8.1 其他相關文件 你可以從 www.linuxdoc.org 的任一映射站取得這些 HOWTO. [24]SunSite DK 是一個丹麥映射站. Winfried Truemper 寫的德語 HOWTO. 其他像是芬蘭語, 西班牙語, 和波蘭語都 已經有了以母語寫成的 HOWTO. Andries Brouwer 寫的 Linux 鍵盤和控制台 HOWTO. [25]這裡有 ISO 8859-1 National Character Set FAQ, Programming for Internationalization, 以及許多其他 Michael Gschwind 寫的文件. 8.2 FTP 及網站 [26]SSLUG (Skaane Sjaelland Linux User Group) 是一個瑞典語/丹麥語 Linux user group. 你可以從他們的信件群組中得到許多以丹麥語(或瑞典語)寫 下的Linux相關問題. 這個 user group 同時負責維護 [27]這份文件. AAlborg 的 AUC 的主站是 [28]SunSite DK. 它們發行 Debian 及 Red Hat 版 本的 Linux, 最新的 kernel, 以及 [29]Linux Documentation Project, [30] metalab.unc.edu 及 [31]the GNU archive 的映射站. 另外, 你可以從 [32] the CTAN archive 這個映射站得到一切和 TeX 與 LaTeX 相關的資訊. 9. 版權 感謝 Peter Dalgaard, Anders Majland, Jon Haugsand, Jacob Nordfalk, 德 語 HOWTO 的作者們, Michael Gschwind 以及許多其他人給予我的建議和幫助. 我衷心感激 Aalborg University Center 的人, 是他們寫出並發行許多本文件 中所提及的包裹. 特別感謝本文件的原作者, Thomas Petersen. 9.1 版權所有 本文件的作者並不能夠完全保證文件內容中所有提供的資訊都是沒有錯誤的. 你 必須斟酌情況使用文件中的提示和範例. Copyright (c) 1996 by Thomas Petersen. Copyright (c) 1997-2000 by Niels Kristian Bech Jensen. 這份文件只能在符合 [33] http://www.linuxdoc.org/COPYRIGHT.html 裡的 LDP license 的情況下發行. (原文) Trademarks are owned by their owners. Although the information given in this document is believed to be correct, the author will accept no liability for the content of this document. Use the tips and examples given herein at your own risk. Copyright (c) 1996 by Thomas Petersen. Copyright (c) 1997-2000 by Niels Kristian Bech Jensen. This document may be distributed only subject to the terms and conditions set forth in the LDP license at [34]http://www.linuxdoc.org/COPYRIGHT.html. References 1. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#docs 2. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#deadkeys 3. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#deadkeys 4. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#programming 5. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#apps 6. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#loadkbd 7. http://www.ibbnet.nl/~anne/keyboard.html 8. ftp://ftp.freshmeat.net/pub/euro-patch/ 9. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#loadkbd 10. ftp://sunsite.auc.dk/pub/emacs/auctex/ftp/auctex/ 11. ftp://sunsite.auc.dk/pub/gnu/ 12. http://www.sslug.dk/ispell/idanish/dansk.html 13. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#locale 14. ftp://sunsite.auc.dk/pub/tex/ctan/ 15. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#latex 16. ftp://sunsite.auc.dk/pub/gnu/ 17. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#apps 18. ftp://ftp.yggdrasil.com/private/hjl/ 19. ftp://dkuug.dk/i18n/WG15-collection/locales/ 20. ftp://dkuug.dk/i18n/WG15-collection/charmaps/ 21. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#apps 22. file://localhost/tmp/zh-sgmltools.20845/Danish-HOWTO.txt.html#docs 23. http://alf.nbi.dk/~nordfalk/ovs/ 24. http://sunsite.auc.dk/ldp/HOWTO/ 25. http://www.vlsivie.tuwien.ac.at/mike/i18n.html 26. http://www.sslug.dk/ 27. http://www.sslug.dk/DanishHowto/ 28. ftp://sunsite.auc.dk/pub/os/linux/ 29. http://sunsite.auc.dk/ldp/ 30. ftp://sunsite.auc.dk/pub/os/linux/sunsite/ 31. ftp://sunsite.auc.dk/pub/gnu/ 32. ftp://sunsite.auc.dk/pub/tex/ctan/ 33. http://www.linuxdoc.org/COPYRIGHT.html 34. http://www.linuxdoc.org/COPYRIGHT.html