從 Windows 地區設定產生的文化特性
如果 .NET Framework 中沒有與 Windows 地區設定 (Locale) 對應的文化特性 (Culture),.NET Framework 的全球化支援便會自動建立這種文化特性。
產生的文化特性
Windows 附有一組相當於 .NET Framework 文化特性的地區設定,其能夠指定文化特性特定的資訊,例如文字如何排序、如何格式化日期,以及數字和貨幣的顯示格式。 Windows 也支援稱為 Enabled Languages Kit (ELK) 的功能,此功能可在不需要新版作業系統的情況下新增地區設定。 因此,您的應用程式可以在 Windows 中加入未對應到 .NET Framework 中文化特性的地區設定。
如果應用程式嘗試為不存在於 .NET Framework 中的文化特性 (但在 Windows 中有對應的地區設定) 建立 CultureInfo 物件,.NET Framework 便會根據 Windows 地區設定建立新的文化特性。 當應用程式指定名稱或識別項之後,即建立新的文化特性,它的使用方法就像任何其他 .NET Framework 文化特性一樣。
產生之文化特性的名稱是由它的 ISO 639 語言代碼、ISO 3166 國碼/地區碼,以及選擇性的 ISO 15924 撰寫語言指令碼標記所組成。 例如,使用波士尼亞文 (使用於波士尼亞赫塞哥維納) 語言並使用拉丁指令碼撰寫的文化特性,其名稱即為 bs-Latn-BA。 支援的文化特性完整列表 (包括名稱和識別項) 可以在全球化開發人員中心的 NLS 資訊頁面(https://msdn.microsoft.com/zh-tw/goglobal/bb896001.aspx (英文) 上找到。
效能考量
首次呼叫某個文化特性的 CultureInfo 建構函式 (Constructor) 時,從 Windows 地區設定產生的文化特性就會隨之建立,而且建立過程會非常耗時。 然而,後續建立文化特性物件並不會影響到效能。
序列化和還原序列化文化特性,便是建立 CultureInfo 物件之二進位表示,然後使用該二進位表示重新建構原始 CultureInfo 物件的過程。 您的應用程式可以在一部電腦上序列化某個文化特性,然後在另一部電腦上將它還原序列化。 不過,如果應用程式在一部電腦上序列化衍生自 ELK 地區設定的文化特性,並在另一部未安裝相同 ELK 地區設定的電腦上還原序列化二進位表示,便會擲回例外狀況。
預設值
Windows 地區設定中的資料是用來填入從該地區設定建立之 CultureInfo 物件的對應屬性。 如果沒有對應的地區設定資料,屬性便會填入其預設值。
許多 CultureInfo 方法和部分屬性的傳回值會依文化特性特定的資料而有所不同。 如果 Windows 地區設定未提供文化特性特定的資料給產生的文化特性,資料便會從預設的文化特性中衍生。 大部分的情況下,預設的文化特性即為不因國別而異的文化特性。
下表列出 CultureInfo、RegionInfo、NumberFormatInfo、CompareInfo、TextInfo 和 Calendar 等支援 .NET Framework 文化特性之類別、各屬性的預設值,以及不同方法的預設文化特性。
CultureInfo
成員 |
預設 |
---|---|
IsNeutralCulture |
false,因為 Windows 沒有中性的文化特性 |
Parent |
不因文化特性而異 (Invariant Culture),因為 Windows 沒有中性的文化特性。 |
GetConsoleFallbackUICulture |
不因國別而異的文化特性 |
RegionInfo
成員 |
預設 |
---|---|
GeoId |
Windows 2000 為零,繼承自 Windows XP 和以後的版本。 |
DateTimeFormatInfo
成員 |
預設 |
---|---|
GetAbbreviatedEraName |
不因國別而異的文化特性 |
GetEra |
不因國別而異的文化特性 |
GetEraName |
不因國別而異的文化特性 |
MonthDayPattern |
不因國別而異的文化特性 |
NativeCalendarName |
不因國別而異的文化特性 |
NumberFormatInfo
成員 |
預設 |
---|---|
NaNSymbol |
不因國別而異的文化特性 |
NegativeInfinitySymbol |
不因國別而異的文化特性 |
PercentDecimalDigits |
不因國別而異的文化特性 |
PercentDecimalSeparator |
不因國別而異的文化特性 |
PercentGroupSeparator |
不因國別而異的文化特性 |
PercentGroupSizes |
不因國別而異的文化特性 |
PercentNegativePattern |
不因國別而異的文化特性 |
PercentPositivePattern |
不因國別而異的文化特性 |
PercentSymbol |
不因國別而異的文化特性 |
PerMilleSymbol |
不因國別而異的文化特性 |
PositiveInfinitySymbol |
不因國別而異的文化特性 |
CompareInfo
成員 |
預設 |
---|---|
IndexOf |
(無) |
IsPrefix |
(無) |
IsSuffix |
(無) |
LastIndexOf |
(無) |
TextInfo
成員 |
預設 |
---|---|
ToTitleCase |
與 en-US 文化特性相同的結果,除非 Windows 地區設定 ANSI 字碼頁為土耳其文。 在這個情況中,預設值是與 tr-TR 文化特性相同的結果 |
Calendar
成員 |
預設 |
---|---|
全部 |
InvariantCulture 傳回之行事曆的對應成員 |
最新 ELK 版本的文化特性名稱
您的應用程式可在 CultureInfo 建構函式中指定文化特性的文化特性名稱或文化特性識別項,來建立文化特性。 下列清單包含 ELK 第 1 版和第 2 版所隨附的 Windows 文化特性。 支援的文化特性完整列表 (包括名稱和識別項) 可以在全球化開發人員中心的 NLS 資訊頁面(https://msdn.microsoft.com/zh-tw/goglobal/bb896001.aspx (英文) 上找到。
孟加拉文 (印度)
波士尼亞文 (斯拉夫,波士尼亞赫塞哥維納)
波士尼亞文 (拉丁,波士尼亞赫塞哥維納)
克羅埃西亞文 (波士尼亞赫塞哥維納)
達里語 (阿富汗)
菲律賓文 (菲律賓)
依奴提圖特文 (拉丁,加拿大)
愛爾蘭文 (愛爾蘭)
科薩語 (南非)
祖魯語 (南非)
盧森堡文 (盧森堡)
馬來亞拉姆文 (印度)
馬爾他文 (馬爾他)
毛利文 (紐西蘭)
Mapudungun (智利)
莫霍克文 (加拿大)
尼泊爾文 (尼泊爾)
普什圖文 (阿富汗)
蓋楚瓦文 (玻利維亞)
蓋楚瓦文 (厄瓜多)
蓋楚瓦文 (秘魯)
羅曼斯文 (瑞士)
伊納立沙米文 (芬蘭)
盧勒沙米文 (挪威)
盧勒沙米文 (瑞典)
北沙米文 (芬蘭)
北沙米文 (挪威)
北沙米文 (瑞典)
斯科特沙米文 (芬蘭)
南沙米文 (挪威)
南沙米文 (瑞典)
塞爾維亞文 (斯拉夫,波士尼亞赫塞哥維納)
塞爾維亞文 (拉丁,波士尼亞赫塞哥維納)
賴索托文 (南非)
塞茲瓦納文 (南非)
上索布語 (德國)
威爾斯文 (英國)