萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 國際化 (I18N) 與中文化技術深度解析:Locale、X Window、輸入法與列印標準

作者:謝東翰 (Tung-Han Hsieh)。本文從技術標準角度剖析 Linux 中文化核心架構:I18N/Locale 基礎、X Window 國際化機制、XIM 輸入法協定、中文列印 PostScript/CJK 標準,並說明如何建構標準 I18N 環境而非「七拼八湊」的臨時方案。

核心觀點:標準化才是出路

商業 Unix 中文化徹底遵循 **I18N (Internationalization)** 標準,建立在 libc Locale 支援之上。Linux 必須朝此標準邁進,而非堆疊專用補丁。

Locale 與 libc

Locale = 一組「地區語言」資料集,含六大類別:

  • LC_CTYPE:字元分類/轉換/可印性 (最核心)
  • LC_MESSAGES:訊息/介面語言
  • LC_TIME:時間格式
  • LC_NUMERIC:數字格式
  • LC_MONETARY:貨幣格式
  • LC_COLLATE:排序規則

設定 export LC_CTYPE=zh_TW.Big5 即切換中文環境。**完整 Locale 支援 = libc 處理字元邏輯 + 應用程式遵循標準 API**。

glibc 版本關鍵里程碑

  • libc5 (glibc 1.x):幾乎無東方語系支援,中文靠「七拼八湊」。
  • glibc 2.0.x (2.0.7 常見):有 Locale 架構但 LC_CTYPE 無法辨識/轉換 Big5,**必須外掛 libwcsmbs 套件修補 (CLE 標準組件)**。
  • glibc 2.1+:LC_CTYPE 正常支援中文編碼轉換,奠定完整中文化基礎。預計一年內各大發行版換裝完成。

X Window 國際化 (XLC Locale)

  • 架構在 libc Locale 之上,核心任務:**內碼 → 字型對應**。
  • 中文需兩種字型:半形 (單位元) 顯示 ASCII、全形 (雙位元) 顯示漢字。
  • 判斷字元屬全/半形 **仰賴 libc LC_CTYPE**,故 libc 支援是前提。
  • X11R6 提供 /usr/X11R6/lib/X11/locale/zh_TW.Big5 等 XLC Locale 資料。

現狀痛點:應用程式未遵循 I18N

Netscape、xcin、crxvt 等主流軟體**自行實作中文處理**,導致:

  • xcin 只能在 crxvt 用,需 CXWin 看中文 — **非標準暫時手段**。
  • 真正解法:應用程式移植到 I18N 標準 (GTK/GNOME、XEmacs、X11R6 內建 xedit 等已支援)。
  • CLE 團隊正推動 GNOME 訊息中文化 (LC_MESSAGES),未來 GNOME 將原生全中文無需 CXWin。
  • GNU 核心工具 (ls, cp...) 中文化訊息已回饋上游,新版將內建中文。

中文輸入:XIM 協定

取代 xcin 的標準方案。**XIM Server** (如 xcin-cxm、作者開發的 xcin-2.5) + **支援 XIM 的應用程式** = 「Chinese Input Anywhere」。目前支援 XIM 的應用仍偏少 (GNOME, XEmacs, Xt/Xaw 應用)。

中文列印:PostScript + CJK 標準

  • Unix 列印通用語言 = PostScript。
  • 工具鏈:cnprint (傳統)、bg5ps (支援 TTF)、CJK + LaTeX (Free Software 標準)。
  • CJK 優勢:自由軟體、與 freetype 整合進 LaTeX 免修改核心、Netscape 下版列印將支援 CJK 輸出中日文 PS。

建構您的標準 I18N 環境 (不裝 CLE 也可)

(原文後續內容因篇幅未完整呈現,核心建議:升級 glibc 2.1+、安裝中文 Locale data、配置 XLC Locale、部署 XIM Server、應用程式選用 I18N 相容版本。)

結語

中文化非「免費所以沒人做」或「不適合桌面」,而是**需要全球標準 (I18N/Locale/XIM) 的共同推進**。我們的開發者**必須在寫代碼時遵循標準**,才能與國際社群同步受益,擺脫「永遠玩自己的、事倍功半、抱怨不如 Win95」的循環。

copyright © 萬盛學電腦網 all rights reserved