我有一個很奇怪的問題。我正在對我的項目實施本地化,但是當我嘗試獲取當前的語言環境Windows正在運行時,它會忽略國家/地區信息。這是一個示例代碼:Thread.CurrentThread.CurrentUICulture不能正確返回國家
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo culture = CultureInfo.CurrentUICulture;
Console.WriteLine("The current UI culture is {0} [{1}]",
culture.NativeName, culture.Name);
}
}
當我用最常見的語言(En-US,FR-fr)運行它時,它會正確返回。但是,例如,當我從比利時選擇法語時,即使我從語言偏好選項中刪除了法國的法語,它也會檢索FR-FR而不是FR-be。
我不知道我怎麼能得到我所選的國家,無論我的軟件位於哪個國家。
ps:使用CurrentCulture並不是我正在尋找的答案,因爲我想與我在UI中使用的顯示語言匹配,而不是日期/時間/數字格式(它們可以完全不同)。
我剛剛嘗試卸載法文語言包(FR-fr),然後從法文比利時安裝。我仍然得到FR-fr。這是Windows的問題嗎? –
水晶球表示您選擇了另一個鍵盤佈局,而不是更改操作系統語言。您必須使用「高級」按鈕。非常不清楚你實際做了什麼,可能最好先在superuser.com上ping這個。一定要提及Windows版本和版本,他們在每個版本中都對此進行了更改,並且您安裝的語言包有很多。 –
我在Windows 8和10中測試過。它們都不起作用。我改變了OS語言安裝的語言包和類似的東西(你只能在高級會話中這樣做),就像我在前面的評論中提到的一樣。對於CultureInfo類,需要System.Globalization爲 –