AIX語言環(huán)境變量詳細(xì)介紹
我們今天來講解本地語言支持(NLS)使用多種環(huán)境變量來影響對AIX語言環(huán)境的選擇??梢栽O(shè)置這些變量的值來更改AIX語言環(huán)境信息的搜索路徑。
LANG
指定安裝時缺省的AIX語言環(huán)境。
注:LANG 環(huán)境變量值是在安裝時確定的。(除非設(shè)置了 LC_* 環(huán)境變量,否則每個進程都使用都使用該語言環(huán)境)??梢允褂?SMIT 中的 Manage Language Environment 菜單來更改 LANG 語言環(huán)境。有關(guān)使用 SMIT 的更多信息,請參閱 AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的 System Management Interface Tool (SMIT) Overview。C 和 POSIX 語言環(huán)境的目的就是提供***性能。
LC_ALL
覆蓋 LANG 環(huán)境變量的值以及所有其它 LC_* 環(huán)境變量的值。
LC_COLLATE
指定用于 LC_COLLATE 類別信息的AIX語言環(huán)境。LC_COLLATE 類別確定了字符整序和字符串整序的規(guī)則,這些規(guī)則控制著范圍、同等類以及多字符整序元素的行為。
LC_CTYPE
指定用于 LC_CTYPE 類別信息的AIX語言環(huán)境。LC_CTYPE 類別確定了字符處理的規(guī)則,這些規(guī)則控制著文本數(shù)據(jù)字符(即單字節(jié)和多字節(jié)字符)的字節(jié)序列的解釋、字符的分類(如,字母、數(shù)字等)以及字符類的行為。
LC__FASTMSG
當(dāng) LC__FASTMSG 設(shè)為 true 時,該變量規(guī)定對于 C 和 POSIX 語言環(huán)境使用缺省消息,并且規(guī)定忽略 NLSPATH。否則,執(zhí)行符合 POSIX 規(guī)范的消息處理。在 /etc/environment 文件中,缺省值為 LC__FASTMSG=true。
LC_MESSAGES
指定用于 LC_MESSAGES 類別信息的AIX語言環(huán)境。LC_MESSAGES 類別確定了控制肯定性和否定性響應(yīng)的規(guī)則,以及控制用于消息和菜單的語言環(huán)境(語言)的規(guī)則。
在使用不能顯示多字節(jié)字符的終端時,如果希望不顯示不可打印字符,可將 LC_MESSAGES 環(huán)境變量設(shè)為 C@lft??娠@示多字節(jié)字符的登錄會話禁用此設(shè)置。
使用 cron 或 inittab 啟動的進程保留 C@lft LC_MESSAGES 設(shè)置,并使用 setlocale() 子例程建立缺省消息的語言環(huán)境。如果應(yīng)用程序不顯示消息,請確保 LC_MESSAGES="C@lft",并通過 putenv("LC_MESSAGES=") 子例程禁用此設(shè)置。其結(jié)果就是使用經(jīng)翻譯的消息目錄的輸出。
LC_MONETARY
指定用于 LC_MONETARY 類別信息的語言環(huán)境。LC_MONETARY 類別確定了控制貨幣相關(guān)格式的規(guī)則。
LC_NUMERIC
指定用于 LC_NUMERIC 類別信息的AIX語言環(huán)境。LC_NUMERIC 類別確定了控制非貨幣數(shù)字格式的規(guī)則。
LC_TIME
指定用于 LC_TIME 類別信息的語言環(huán)境。LC_TIME 類別確定了控制日期和時間格式的規(guī)則。
LOCPATH
指定用于本地化信息的搜索路徑,包括二進制AIX語言環(huán)境文件、輸入法和代碼集轉(zhuǎn)換器。
注:所有的 setuid 和 setgid 程序都忽略 LOCPATH 環(huán)境變量。
NLSPATH
指定用于查找消息目錄文件的搜索路徑。NLS 子系統(tǒng)的消息工具組件使用該環(huán)境變量。請參閱 catopen 子例程以獲取更多有關(guān) NLSPATH 變量所要求的格式的信息。
影響AIX語言環(huán)境選擇的環(huán)境變量可分為三種優(yōu)先級類:高、中和低。處于高優(yōu)先級類的環(huán)境變量有:
LC_ALL
LC_COLLATE
LC_CTYPE
處于中優(yōu)先級類的環(huán)境變量有:
LC_MESSAGES
LC_MONETARY
LC_NUMERIC
LC_TIME
而處于低優(yōu)先級類的環(huán)境變量是:LANG
當(dāng) setlocale 子例程為一個特定類別或所有類別請求AIX語言環(huán)境時,將按以下方式,根據(jù)這些環(huán)境變量設(shè)置的優(yōu)先級級別對這些設(shè)置進行查詢:
如果設(shè)置了 LC_ALL 環(huán)境變量,則所有六個類別都使用該變量指定的環(huán)境變量。例如,如果 LC_ALL 環(huán)境變量等于 en_US,而 LANG 環(huán)境變量等于 fr_FR,調(diào)用 setlocale 子例程會把所有六個類別都設(shè)為 en_US 語言環(huán)境。
如果 LC_ALL 環(huán)境變量未設(shè),則各個類別分別使用由各自對應(yīng)的環(huán)境變量指定的AIX語言環(huán)境。例如,如果 LC_ALL 環(huán)境變量未設(shè),LC_COLLATE 環(huán)境變量設(shè)為 de_DE,而 LC_TIME 環(huán)境變量設(shè)為 fr_CA,那么調(diào)用 setlocale 子例程將把 LC_COLLATE 類別設(shè)為 de_DE,而把 LC_TIME 類別設(shè)為 fr_CA。這兩個環(huán)境變量中的任一方都不會優(yōu)先于另一方。
如果 LC_ALL 環(huán)境變量未設(shè),并且某一個特定的 LC_* 環(huán)境變量的值也未設(shè),那么 LANG 環(huán)境變量的值就決定了這一特定類別的設(shè)置。
例如,如果 LC_ALL 環(huán)境變量未設(shè),LC_CTYPE 環(huán)境變量設(shè)為 en_US,LC_NUMERIC 環(huán)境變量未設(shè),LANG 環(huán)境變量設(shè)為 is_IS,那么調(diào)用 setlocale 子例程會將 LC_CTYPE 類別設(shè)為 en_US,而將 LC_NUMERIC 類別設(shè)為 is_IS。LANG 語言環(huán)境只為那些先前未由 LC_*? 環(huán)境變量確定的類別指定語言環(huán)境。
如果 LC_ALL 環(huán)境變量未設(shè),某一個特定的 LC_* 環(huán)境變量的值也未設(shè),而且 LANG 環(huán)境變量的值也同樣未設(shè)置,那么該特定類別的環(huán)境變量缺省為 C 語言環(huán)境。例如,如果 LC_ALL 環(huán)境變量未設(shè),LC_MONETARY 環(huán)境變量設(shè)為 sv_SE,LC_TIME 環(huán)境變量未設(shè),LANG 環(huán)境變量也未設(shè),那么調(diào)用 setlocale 子例程會將 LC_MONETARY 類別設(shè)為 sv_SE,而將 LC_TIME 類別設(shè)為 C。
關(guān)于AIX語言的知識,我們就講解的很全面了。
【編輯推薦】