構造Linux系統的圖形化安裝程式(二)(轉)
構造Linux系統的圖形化安裝程式(二)(轉)[@more@] 圖形環境的啟動及中文化
本文是構造Linux的圖形化安裝程式系列文章的第二部分,主要介紹在安裝程式裝入記憶體之後,如何啟動圖形環境並設定中文語言環境。文中除了介紹安裝程式對這兩個功能的具體程式設計實現,還介紹了Linux中文化的一些基本知識,包括如何定製安裝程式顯示中所需要的Locale環境(Glibc和X Window系統兩部分),po檔案的處理。
在安裝程式的第二階段執行結束之後,整個安裝程式已經被調入了記憶體,這時控制從安裝程式的載入程式轉到了安裝程式的主程式執行。這時的安裝程式就像是一個從Linux的控制檯環境啟動的程式,這個程式進行自動檢測並進行基本的裝置配置。為了進行圖形化安裝,安裝程式的主程式會啟動XFree86子系統並設定,同時設定當前的語言環境為中文環境。
1. 多語言環境支援
為了在Linux下實現多語言支援,必須在定製安裝程式時,引入與glibc和圖形環境兩者對應的多語言環境支援。對於glibc環境而言,它是整個Linux中文化的基礎,我們需要在/usr/share/locale目錄下儲存Locale資訊,在/usr/share/consolefonts目錄下儲存字型資訊,在/usr/lib/gconv目錄下儲存字元轉換模組的資訊。
對於X Windows環境,我們需要在/usr/X11R6/lib/X11/locale目錄下儲存X Locale的配置,同時在/usr/X11R6/lib/X11/fonts目錄下儲存正常顯示所需要的字型集。
在安裝程式啟動之後,必須正確設定LC_*變數同時呼叫setlocale函式。為了能顯示中文,安裝程式還必須載入正確的中文字型。
1.1. 國際化的基本概念
國際化(Internationalization,簡寫為I18N)是指軟體在設計結構和機制上支援多語言的擴充套件特性,其功能和程式碼設計不針對某一特定語言和地域。Locale是ANSI C語言中最基本的支援國際化的標誌,對中文Linux來說,支援中文Locale是最基本的要求。
1.1.1. Locale環境
Locale的命名規則:_.
對於zh_CN.GB2312而言,zh表示中文,CN表示大陸地區,GB2312表示使用的字符集為GB2312。
Locale使用一組分類,使用者可以獨立的操縱每一組分類。使用者既能用設定環境變數的方法,也能使用setlocale設定它們。這些分類都儲存在/usr/share/locale下。它們包含了:
LC_COLLATE用於比較和排序。
LC_CTYPE用於字元分類和字串處理,控制所有字元的處理方式,包括字元編碼,字元是單位元組還是多位元組,如何列印等。
LC_MONETORY用於格式化貨幣單位。
LC_NUMERIC用於格式化非貨幣的數字顯示。
LC_TIME用於格式化時間和日期。
LC_MESSAGES用於控制程式輸出時所使用的語言,主要是提示資訊,錯誤資訊,狀態資訊, 標題,標籤, 按鈕和選單等。
LC_ALL它不是環境變數,只是一個宏,可使用setlocale設定所有的LC_*環境變數。這個變數設定之後,可以廢除LC_*和LANG的設定值,使得這些變數的設定值與LC_ALL的值一致。
LANG它的值用於指定上面環境變數沒有設定的所有變數值。如果指定了上面任何一個變數的值,則會廢除對應的LANG值的預設設定。
還可以包括其他的環境變數LC_ADDRESS,LC_IDENTIFICATION,LC_PAPER,LC_NAME,LC_TELEPHONE,LC_MEASUREMENT。
標準Locale:"C"這是標準的C Locale。它所指定的屬性和行為由ISO C標準所指定。它是程式啟動時預設使用Locale。
"POSIX"這是標準的POSIX Locale。它是標準的C Locale的別名。
""空名字是讓程式選擇當前環境設定值。
設定一箇中文環境需要正確的設定上述Locale變數,舉例來說,在使用zh_CN.GB2312環境時,使用locale命令,所見到的系統環境為:
本文是構造Linux的圖形化安裝程式系列文章的第二部分,主要介紹在安裝程式裝入記憶體之後,如何啟動圖形環境並設定中文語言環境。文中除了介紹安裝程式對這兩個功能的具體程式設計實現,還介紹了Linux中文化的一些基本知識,包括如何定製安裝程式顯示中所需要的Locale環境(Glibc和X Window系統兩部分),po檔案的處理。
在安裝程式的第二階段執行結束之後,整個安裝程式已經被調入了記憶體,這時控制從安裝程式的載入程式轉到了安裝程式的主程式執行。這時的安裝程式就像是一個從Linux的控制檯環境啟動的程式,這個程式進行自動檢測並進行基本的裝置配置。為了進行圖形化安裝,安裝程式的主程式會啟動XFree86子系統並設定,同時設定當前的語言環境為中文環境。
1. 多語言環境支援
為了在Linux下實現多語言支援,必須在定製安裝程式時,引入與glibc和圖形環境兩者對應的多語言環境支援。對於glibc環境而言,它是整個Linux中文化的基礎,我們需要在/usr/share/locale目錄下儲存Locale資訊,在/usr/share/consolefonts目錄下儲存字型資訊,在/usr/lib/gconv目錄下儲存字元轉換模組的資訊。
對於X Windows環境,我們需要在/usr/X11R6/lib/X11/locale目錄下儲存X Locale的配置,同時在/usr/X11R6/lib/X11/fonts目錄下儲存正常顯示所需要的字型集。
在安裝程式啟動之後,必須正確設定LC_*變數同時呼叫setlocale函式。為了能顯示中文,安裝程式還必須載入正確的中文字型。
1.1. 國際化的基本概念
國際化(Internationalization,簡寫為I18N)是指軟體在設計結構和機制上支援多語言的擴充套件特性,其功能和程式碼設計不針對某一特定語言和地域。Locale是ANSI C語言中最基本的支援國際化的標誌,對中文Linux來說,支援中文Locale是最基本的要求。
1.1.1. Locale環境
Locale的命名規則:_.
對於zh_CN.GB2312而言,zh表示中文,CN表示大陸地區,GB2312表示使用的字符集為GB2312。
Locale使用一組分類,使用者可以獨立的操縱每一組分類。使用者既能用設定環境變數的方法,也能使用setlocale設定它們。這些分類都儲存在/usr/share/locale下。它們包含了:
LC_COLLATE用於比較和排序。
LC_CTYPE用於字元分類和字串處理,控制所有字元的處理方式,包括字元編碼,字元是單位元組還是多位元組,如何列印等。
LC_MONETORY用於格式化貨幣單位。
LC_NUMERIC用於格式化非貨幣的數字顯示。
LC_TIME用於格式化時間和日期。
LC_MESSAGES用於控制程式輸出時所使用的語言,主要是提示資訊,錯誤資訊,狀態資訊, 標題,標籤, 按鈕和選單等。
LC_ALL它不是環境變數,只是一個宏,可使用setlocale設定所有的LC_*環境變數。這個變數設定之後,可以廢除LC_*和LANG的設定值,使得這些變數的設定值與LC_ALL的值一致。
LANG它的值用於指定上面環境變數沒有設定的所有變數值。如果指定了上面任何一個變數的值,則會廢除對應的LANG值的預設設定。
還可以包括其他的環境變數LC_ADDRESS,LC_IDENTIFICATION,LC_PAPER,LC_NAME,LC_TELEPHONE,LC_MEASUREMENT。
標準Locale:"C"這是標準的C Locale。它所指定的屬性和行為由ISO C標準所指定。它是程式啟動時預設使用Locale。
"POSIX"這是標準的POSIX Locale。它是標準的C Locale的別名。
""空名字是讓程式選擇當前環境設定值。
設定一箇中文環境需要正確的設定上述Locale變數,舉例來說,在使用zh_CN.GB2312環境時,使用locale命令,所見到的系統環境為:
CODE:
LANG="zh_CN.GB2312"
LC_CTYPE="zh_CN.GB2312" LC_NUMERIC="zh_CN.GB2312" LC_TIME="zh_CN.GB2312" LC_COLLATE="zh_CN.GB2312" LC_MONETARY="zh_CN.GB2312" LC_MESSAGES="zh_CN.GB2312" LC_PAPER="zh_CN.GB2312" LC_NAME="zh_CN.GB2312" LC_ADDRESS="zh_CN.GB2312" LC_TELEPHONE="zh_CN.GB2312" LC_MEASUREMENT="zh_CN.GB2312" LC_IDENTIFICATION="zh_CN.GB2312" LC_ALL= 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-960250/,如需轉載,請註明出處,否則將追究法律責任。
請登入後發表評論
登入
全部評論
|
相關文章
- 【Solaris】Virtualbox 安裝 Oracle Solaris 10(二) 圖形化安裝作業系統Oracle作業系統
- 雲伺服器 ECS Linux 系統如何安裝圖形化桌面伺服器Linux
- oracle linux 7 安裝圖形化介面OracleLinux
- 圖形化安裝OracleOracle
- LINUX圖形化安裝ORACLE 前置條件LinuxOracle
- Linux 圖形介面安裝解除安裝Linux
- Linux 安裝圖形介面Linux
- Linux系統(二)軟體的安裝與解除安裝Linux
- 【配置上線】Oracle資料庫Linux系統下安裝(圖形介面)Oracle資料庫Linux
- linux -- Ubuntu Server 安裝圖形介面LinuxUbuntuServer
- 二、Linux系統安裝和基本使用Linux
- 安裝Nmap圖形化前端工具Zenmap前端
- oracle安裝呼叫圖形化失敗Oracle
- Linux 筆記分享二:Linux 系統安裝Linux筆記
- Hiweed-Debian 釋出圖形化安裝 Mini 光碟(轉)
- LINUX系統的安裝Linux
- 在 linux 系統下安裝 perl(轉)Linux
- 阿里雲centos安裝圖形化介面阿里CentOS
- linux系統和freebsd系統的安裝(一塊硬碟)(轉)Linux硬碟
- Linux系統安裝,教你安裝一個屬於自己的Linux系統Linux
- Linux系統安裝Linux
- 簡介ManDrake Linux系統硬碟安裝(轉)Linux硬碟
- 紅旗Linux作業系統安裝(轉)Linux作業系統
- 2000與linux雙系統的安裝(轉)Linux
- 構造情境化知識管理體系(轉)
- (轉)使用yum來安裝CentOS圖形介面包CentOS
- Linux下的GTK圖形介面程式設計(轉)Linux程式設計
- oracle安裝:OUI安裝Oracle(圖形介面安裝)OracleUI
- Linux系統安裝01-centos7系統安裝LinuxCentOS
- Linux系統安裝MySql步驟及截圖LinuxMySql
- Linux系統安裝——Centos 7.6安裝LinuxCentOS
- XManager遠端Linux 安裝Oracle 圖形化介面xstart解決方法LinuxOracle
- 雲伺服器linux centos安裝圖形介面伺服器LinuxCentOS
- Linux 非圖形介面安裝oracle資料庫LinuxOracle資料庫
- linux系統最小化安裝後的初始化指令碼Linux指令碼
- Centos7 系統安裝 Oracle 無法調出圖形安裝介面問題解決CentOSOracle
- half-life2的圖形系統研究心得(轉)
- 理解FreeBSD中的圖形介面X系統(轉)