2014-02-07 53 views
0

我有C#代碼作爲Windows Store應用程序返回應用程序的語言信息。如果我的應用程序配置爲支持「fr」並且設備設置爲該語言,那麼應用程序會確定應用程序語言信息爲「fr」。如何檢測Windows應用商店應用中的設備區域設置?

但是,如果應用程序未配置爲支持「es」且設備設置爲特定語言「es」,則無法找到檢測設備設置的方法。我只獲取默認的應用程序語言。

我相信不可能獲取設備信息,只能獲取設備傳遞給應用程序的信息,以便使用哪種語言。但我需要確定這一點,因爲我的項目很大程度上取決於設備和應用程序的語言設置。

爲了說明問題,我想編寫應用程序以僅支持英語,但能夠告訴用戶他們的設備配置爲法語或西班牙語等......是否有一個技巧可以使這項工作?

這是告訴我應用程序可以看到的所選語言代碼的代碼。請注意,這不會告訴我的設備設置如果設備語言不是該應用支持:

using System.Globalization; 
... 
CultureInfo ci = CultureInfo.CurrentUICulture; 
Data.Add("language", ci.TwoLetterISOLanguageName); //My own code that adds the two letter code special data object 
+0

你是如何檢測它的? – crea7or

+0

我更新了我的問題以顯示代碼。如果應用不是爲支持設備文化設置而構建的,則此代碼不會顯示設備區域設置。 –

回答

2

我找到了答案,在這個線程:

How to get actual language in a WinRT app?

使用Windows.System。 UserProfile.GlobalizationPreferences.Languages [0]將爲我提供用戶在時間和語言下的Metro風格PC設置中設置的語言設置。這種選擇似乎並沒有改變Windows操作系統的顯示語言,這正是我真正想要的。但是,當OS顯示語言改變時,這看起來會自動改變,所以它可能是用於此目的的正確功能。

另一個線程是關於Windows Phone的,但是這在我的Windows 8商店應用程序在C#中起作用。

相關問題