構造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/,如需轉載,請註明出處,否則將追究法律責任。
請登入後發表評論
登入
全部評論
|
相關文章
- 雲伺服器 ECS Linux 系統如何安裝圖形化桌面伺服器Linux
- oracle linux 7 安裝圖形化介面OracleLinux
- LINUX圖形化安裝ORACLE 前置條件LinuxOracle
- 圖形化安裝OracleOracle
- Linux 筆記分享二:Linux 系統安裝Linux筆記
- 【配置上線】Oracle資料庫Linux系統下安裝(圖形介面)Oracle資料庫Linux
- 二、Linux系統安裝和基本使用Linux
- Linux ubuntu命令列安裝圖形介面LinuxUbuntu命令列
- Linux系統安裝,教你安裝一個屬於自己的Linux系統Linux
- oracle安裝呼叫圖形化失敗Oracle
- 安裝Nmap圖形化前端工具Zenmap前端
- 阿里雲centos安裝圖形化介面阿里CentOS
- Linux系統安裝Linux
- Linux系統安裝——Centos 7.6安裝LinuxCentOS
- 雲伺服器linux centos安裝圖形介面伺服器LinuxCentOS
- Linux系統安裝01-centos7系統安裝LinuxCentOS
- Linux系統管理命令二(轉)Linux
- linux系統安裝nginxLinuxNginx
- Linux系統安裝VNCLinuxVNC
- RUST 在linux 系統的安裝RustLinux
- win10下linux kali系統安裝教程_win10下linux kali系統安裝步驟【圖文】Win10Linux
- Linux中如何安裝RabbitMQ?在linux系統中安裝Rabbitmq的方法LinuxMQ
- Linux系統安裝redis教程。LinuxRedis
- Linux系統中安裝pipLinux
- VirtualBox下安裝Linux系統Linux
- Linux系統快速安裝JDKLinuxJDK
- 怎樣安裝Linux系統?Linux基礎教程之小白入門Linux系統安裝教程Linux
- linux入門學習(二):linux圖形化介面與命令列介面之間的切換,以及一些系統命令Linux命令列
- linux中安裝JDK linux中安裝Tomcat linux中安裝Mysql 及故障解析 linux系統安裝redisLinuxJDKTomcatMySqlRedis
- debian 9.4 安裝教程:linux系統debian9.4圖文安裝教程Linux
- Centos7 系統安裝 Oracle 無法調出圖形安裝介面問題解決CentOSOracle
- linux系統安裝MySQL服務,詳細圖文教程LinuxMySql
- 二、Linux檔案系統結構Linux
- Linux下怎麼安裝.deb格式的安裝包?Linux系統下.deb格式安裝包的安裝教程Linux
- 在Centos7上安裝圖形化桌面工具CentOS
- 編譯安裝最新的Linux系統核心編譯Linux
- Linux系統安裝ansiblle環境Linux
- Linux系統Tomcat安裝與配置。LinuxTomcat
- 全新 Kali Linux 系統安裝指南Linux