有幾個概念先要了解一下:全球化,本地化
全球化:簡單說就是你開發的應用程序能夠跨越多個文化地區使用,而不必顧慮語言和地區的差別.就是說我的程序在中國以中文的形勢顯示,到了俄國能以俄文的形勢顯示.
本地化:使用一種本地特有的文化和語言顯示創建,存儲,輸入,輸出數據的內容的過程.文化影響日期的顯示格式(如顯示mm/dd/yyyy還是dd/mm/yyyy),貨幣顯示格式.
世界分為若干個文化和區域.文化是基於語言和文化習慣的一組特性.語言與文化相互依賴,相互影響,語言是文化的重要載體.RFC 1766 定義了文化的名稱,這些名稱根據語言和國家或區域的不同在世界各地使用。例如 en-AU 、 en-CA 、 en-GB 和 en-US 分別用於表示澳大利亞、加拿大、英國和美國的英語。一個區域有多種語言像(中國,台灣,香港這個區域
,說的都是中文,但是有(zh-CHS(簡體中文),zh-TW(台灣中文),zh-HK(香港中文)),一種語言也可以在多個
區域使用,像(墨西哥,西班牙,阿根廷,秘魯都說西班牙語).
本地化是通過(語言+地理位置)實現的.
例如:fr是法語語言的代碼,而fr-FR意味著是法國使用的語言.因此fr僅僅是指定的語言,而fr-FR才實現了本地化.同樣fr-CA帶表加拿大法語的本地化.如果我們僅僅使用fr它僅代表一種中立性的文化.
現在要區別這三個名次的區別:特定文化,中立文化,不變的文化
特定文化:在引用上面的例子fr-FR和fr-CA就是特定的文化,分別代表法國法語和加拿大法語. 如果只有fr表示法語.是一種中立的文化.
有時候應用程序不必為每個特定文化翻譯,如果法國和加拿大說的法語沒有太大區別的話,可以使用中立的文化本地化應用程序.
而不需要特定的文化.
不變的文化(Invaraint Culturre):固定區域性不區分區域性。應用程序可通過語言標識符或使用空字符串 ("") 的名稱來指定固定區域性。InvariantCulture 用於檢索固定區域性的實例。它與英語語言關聯,但不與任何國家/地區關聯。Globalization 命名空間中需要設置區域性的幾乎所有方法都使用固定區域性。這個是我從msdn上抄來的.
CurrentCulture和CurrentUICulture
設置文化時必須區分用戶界面的文化和數字及日期格式的文化。文化與線程相關,
有了這兩種文化類型,就可以把兩個文化設置應用於線程。用線程設置文化時,
Thread 類提供了屬性 CurrentCulture 和 CurrentUICulture 。屬性 CurrentCulture
用於設置與格式化和排序選項一起使用的文化,而屬性 CurrentUICulture 用於設置用戶界面的語言。
使用 Windows 控制面板中的“區域和語言”選項,用戶就可以改變 CurrentCulture 的默認設置,
如圖 17-3 所示。使用這個配置,還可以改變文化的默認數字、時間和日期格式。
CurrentUICulture 不依賴於這個配置,而依賴於操作系統的語言。
這有一個例外:如果 Windows XP 或 Windows 2000 安裝了多語言用戶
界面 (Muti-language User Interface, MUI) ,就可以用區域配置改變用戶界面的語言,
這會影響 CurrentUICulture 屬性。
Resources.zh-CHS.resx ,注意到新的名稱新增加的部分必須是文化
圖 顯示了文化類型的相互關系。