使用者可利用shell的環境變數改變區域環境(locale)的設定。每種 區域類別(category)都指出一個既有的區域環境。setlocale()函數 可以直接改變或查詢這些區域類別的設定。國際化後的函數利用這些設定, 可取得欲使用之區域環境的資料表(table)。
利用環境變數可以間接設定區域類別:當setlocale()將該位置的區域 類別設成預設值時,它同時依據個別的環境變數設定相對應的區域類別。 這樣使用setlocale()函數時,環境變數的設定並不會改變。它只是讀 取環境變數的設定而已。
下列程序可以改變整個系統的內定區域環境。但是在OpenWindows下, 內定值設定為zh_TW.BIG5會回到區域環境C。
編輯檔案/etc/default/init。依情況決定是要新增或修改此行。
用C、zh_TW.BIG5、或zh_TW代換區域環境。
LANG=區域環境 |
所有使用者退出CDE。
輸入下列指令:
% su # /usr/dt/bin/dtconfig -kill |
接著輸入下列指令:
% su # reboot |
區域環境(locale)和區域類別(category)兩個名詞之間的關係如下:
區域環境(locale)包含了對語言、地區、碼集(code set)及其他等等功能的規格。繁體中文Solaris作業環境包含了以下的區域環境:
C- ASCII英文環境。區域環境必須設成C。
zh_TW-EUC繁體中文環境。區域環境必須設成zh_TW。
zh_TW.BIG5-Big5繁體中文環境。區域環境必須設成zh_TW.BIG5。
區域類別(category)是構成區域環境的一組功能。例如,字元的 顯示或是日期時間的表達,會隨著區域環境(locale)而改變。 繁體中文Solaris包含了下列區域類別:
LC_CTYPE設定分類和轉換的字元種類。
LC_TIME設定日期時間表示方式的區域環境。
LC_NUMERIC設定數值表示方式的區域環境(同時也用於輸出入)。
LC_MONETARY設定貨幣表示方式的區域環境。
LC_MESSAGES設定顯示給使用者的訊息之語言區域環境。
LC_COLLATE設定配合區域環境的字串理序(collation)。
環境變數LC_ALL明確地將所有的區域類別設成同一個區域環境。它 有最高的優先權。如果區域類別或是LC_ALL沒有設定,環境變數LANG會決定區域類別的設定。
對於繁體中文視窗系統的輸入伺服器來說,按鍵組合程序是將鍵盤上的某 些鍵和應用程式的某些特定動作聯結起來。您可以把應用程式的複雜動作和按鍵組合起來(例如關掉一些開啟的視窗),簡化成一至數個鍵的組合 (例如Control-H 或是 Esc w c)。
所有在輸入轉換模式下,和EUC以及Big5非ASCII輸入轉換相關連的控制鍵命令, 都是在/usr/lib/mle/zh_TW/keybind.dat中設定的。內定的命令在「繁體中文Solaris使用者指南(Traditional Chinese Solaris User's Guide)」第四章"輸入繁體中文資料(Entering Traditional Chinese Input)" 中有列出。
按鍵的組合可以藉由修改該檔案中的按鍵名稱後,重新啟動htt輸入 伺服器而改變。您可以如下述自訂並使用keybind.dat檔案:
在其他目錄建立同名自訂檔案keybind.dat。
將環境變數MLE_PATH設成該自訂檔案所在目錄之名稱。
啟動輸入伺服器。
MLE_PATH所設的目錄會用於搜尋keybind.dat檔,同時會為使用者設定檔案中的命令。
如果沒有設定MLE_PATH,或是沒有可用的keybind.dat檔案,就會改用/usr/lib/mle/zh_TW/keybind.dat。
想要改變按鍵組合,請修改按鍵組合檔案,將內定鍵改成新的鍵值。多鍵組合以及開\ufffd關(ON/OFF)也可以使用。
在C shell的層次,透過下列shell指令,每個環境變數都可設成區域環境zh_TW或zh_TW.BIG5(繁體中文)、或是C(ASCII):
C shell使用者可依此輸入shell指令:
system% setenv LC_TIME 區域環境 |
Bourne shell(sh)使用者可用set或是export指令:
$ set -a LC_TIME $ LC_TIME=區域環境 |
或是
$ LC_TIME=區域環境 $ export LC_TIME |
將zh_TW或zh_TW.BIG5設定成區域環境後,使用者環境中 日期的顯示格式和文字就會是繁體中文。使用者亦可為工作環境定義一組混合的區域環境。例如,文字可以輸入和轉換成繁體中文,時間以法文格式顯示,而訊息以英文顯示。
許多使用者是在單一文化環境內工作。環境變數LC_ALL和LANG能 將所有的區域類別的系統內定值設好。例如,下列C shell指令可以將所有區域類別的系統內定值設成區域環境:
system% setenv LC_ALL 區域環境 system% setenv LANG 區域環境 |
系統管理者或使用者都可以設定內定值,同時此setenv語法可用於 程式撰寫中。
此設定會於下次應用程式中的setlocale()函數呼叫時,將區域類別設成內定值後,產生效用:setlocale(LC_XXX"" )