2.3. 什麼是 locale ?

locale 是一組 C 程式語言處理自然語言(文字)的程式介面,也可以 簡單的說,locale 就是一組 [地區性語言] 的資訊。由國家語言和各 地習俗影響所決定的慣例,或代表一個地理區域的定義所組成,這些 慣例包含文字、日期、數字、貨幣格式和排序等等。這代表著 locale 可讓程式的輸出可以直接反應地方區域性的文化。C 語言的 locale 定義,分為下列各大類:

其中與一般使用者息息相關的,是字元定義 (LC_CTYPE) 與訊息顯示 (LC_MESSAGES)。LC_CTYPE 直接關係到某些字元或內碼在目前的 locale 下是否可列印?要如何轉換字碼?對應到哪一個字?.... 等 等。LC_MESSAGES 則關係到軟體的訊息輸出是不是符合地域性,例如 :我們需要的是中文。而一個真正完整支援 locale 系統,是當使用 者在 shell prompt 下,直接設好環境變數後,則馬上就能切換到那 個語言了。例如:

    % export LC_CTYPE=zh_TW.Big5
         

設定 Locale 的字元定義為台灣地區的 Big5 繁體中文碼定義,有了 正確的 locale 的定義後,使得任何地區的語文,只要在加入適當的 locale data 之後,C Library 就能正確地處理軟體顯示訊息,而我 們使用的 [中文] 當然也不例外,而目前中文使用的 locale data 就是 zh_TW.Big5。