歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix資訊

AIX語言環境變量詳細介紹

我們今天來講解本地語言支持(NLS)使用多種環境變量來影響對AIX語言環境的選擇。可以設置這些變量的值來更改AIX語言環境信息的搜索路徑。

LANG

指定安裝時缺省的AIX語言環境。
注:LANG 環境變量值是在安裝時確定的。(除非設置了 LC_* 環境變量,否則每個進程都使用都使用該語言環境)。可以使用 SMIT 中的 Manage Language Environment 菜單來更改 LANG 語言環境。有關使用 SMIT 的更多信息,請參閱 AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的 System Management Interface Tool (SMIT) Overview。C 和 POSIX 語言環境的目的就是提供最佳性能。

LC_ALL

覆蓋 LANG 環境變量的值以及所有其它 LC_* 環境變量的值。

LC_COLLATE

指定用於 LC_COLLATE 類別信息的AIX語言環境。LC_COLLATE 類別確定了字符整序和字符串整序的規則,這些規則控制著范圍、同等類以及多字符整序元素的行為。

LC_CTYPE

指定用於 LC_CTYPE 類別信息的AIX語言環境。LC_CTYPE 類別確定了字符處理的規則,這些規則控制著文本數據字符(即單字節和多字節字符)的字節序列的解釋、字符的分類(如,字母、數字等)以及字符類的行為。

LC__FASTMSG

當 LC__FASTMSG 設為 true 時,該變量規定對於 C 和 POSIX 語言環境使用缺省消息,並且規定忽略 NLSPATH。否則,執行符合 POSIX 規范的消息處理。在 /etc/environment 文件中,缺省值為 LC__FASTMSG=true。

LC_MESSAGES

指定用於 LC_MESSAGES 類別信息的AIX語言環境。LC_MESSAGES 類別確定了控制肯定性和否定性響應的規則,以及控制用於消息和菜單的語言環境(語言)的規則。
在使用不能顯示多字節字符的終端時,如果希望不顯示不可打印字符,可將 LC_MESSAGES 環境變量設為 C@lft。可顯示多字節字符的登錄會話禁用此設置。

使用 cron 或 inittab 啟動的進程保留 C@lft LC_MESSAGES 設置,並使用 setlocale() 子例程建立缺省消息的語言環境。如果應用程序不顯示消息,請確保 LC_MESSAGES="C@lft",並通過 putenv("LC_MESSAGES=") 子例程禁用此設置。其結果就是使用經翻譯的消息目錄的輸出。

LC_MONETARY

指定用於 LC_MONETARY 類別信息的語言環境。LC_MONETARY 類別確定了控制貨幣相關格式的規則。

LC_NUMERIC

指定用於 LC_NUMERIC 類別信息的AIX語言環境。LC_NUMERIC 類別確定了控制非貨幣數字格式的規則。

LC_TIME

指定用於 LC_TIME 類別信息的語言環境。LC_TIME 類別確定了控制日期和時間格式的規則。


LOCPATH
指定用於本地化信息的搜索路徑,包括二進制AIX語言環境文件、輸入法和代碼集轉換器。

注:所有的 setuid 和 setgid 程序都忽略 LOCPATH 環境變量。

NLSPATH

指定用於查找消息目錄文件的搜索路徑。NLS 子系統的消息工具組件使用該環境變量。請參閱 catopen 子例程以獲取更多有關 NLSPATH 變量所要求的格式的信息。
影響AIX語言環境選擇的環境變量可分為三種優先級類:高、中和低。處於高優先級類的環境變量有:
LC_ALL
LC_COLLATE
LC_CTYPE
處於中優先級類的環境變量有:
LC_MESSAGES
LC_MONETARY
LC_NUMERIC
LC_TIME
而處於低優先級類的環境變量是:LANG

當 setlocale 子例程為一個特定類別或所有類別請求AIX語言環境時,將按以下方式,根據這些環境變量設置的優先級級別對這些設置進行查詢:
如果設置了 LC_ALL 環境變量,則所有六個類別都使用該變量指定的環境變量。例如,如果 LC_ALL 環境變量等於 en_US,而 LANG 環境變量等於 fr_FR,調用 setlocale 子例程會把所有六個類別都設為 en_US 語言環境。

如果 LC_ALL 環境變量未設,則各個類別分別使用由各自對應的環境變量指定的AIX語言環境。例如,如果 LC_ALL 環境變量未設,LC_COLLATE 環境變量設為 de_DE,而 LC_TIME 環境變量設為 fr_CA,那麼調用 setlocale 子例程將把 LC_COLLATE 類別設為 de_DE,而把 LC_TIME 類別設為 fr_CA。這兩個環境變量中的任一方都不會優先於另一方。

如果 LC_ALL 環境變量未設,並且某一個特定的 LC_* 環境變量的值也未設,那麼 LANG 環境變量的值就決定了這一特定類別的設置。

例如,如果 LC_ALL 環境變量未設,LC_CTYPE 環境變量設為 en_US,LC_NUMERIC 環境變量未設,LANG 環境變量設為 is_IS,那麼調用 setlocale 子例程會將 LC_CTYPE 類別設為 en_US,而將 LC_NUMERIC 類別設為 is_IS。LANG 語言環境只為那些先前未由 LC_*? 環境變量確定的類別指定語言環境。

如果 LC_ALL 環境變量未設,某一個特定的 LC_* 環境變量的值也未設,而且 LANG 環境變量的值也同樣未設置,那麼該特定類別的環境變量缺省為 C 語言環境。例如,如果 LC_ALL 環境變量未設,LC_MONETARY 環境變量設為 sv_SE,LC_TIME 環境變量未設,LANG 環境變量也未設,那麼調用 setlocale 子例程會將 LC_MONETARY 類別設為 sv_SE,而將 LC_TIME 類別設為 C。

關於AIX語言的知識,我們就講解的很全面了。

Copyright © Linux教程網 All Rights Reserved