2015-10-07 10 views
0

如何強制Xamain - Android/iOS中工作,美國英語文化與用戶設置無關。 我在我的應用程序中遇到的問題是,該應用程序僅支持美國/英國英語,但如果用戶將語言偏好更改爲西班牙語,德語等,則數字日期等格式將會更改。如何強制本地化文化在Xamarin中整體應用en-US

例如 2.35將在西班牙語表示,德語作爲2,35

因此,如果用戶嘗試使用類似語言的應用程序,應用程序將錯過行爲或崩潰。在我嘗試使用Convert.ToDouble("2,35");或類似情況時會發生崩潰。

所以我的疑問是,

難道是Xamarin可能強行設置文化爲EN-US。可能會在一個地方,否則我需要更改它所有我執行轉換的地方。

請幫忙。

回答

1

您可以設置默認文化具有以下屬性:

CultureInfo.DefaultThreadCurrentCulture 

但這不會在Android中運行。因此,對於Android,您需要在每次活動恢復時設置文化。您可以添加一個基礎的活動,如:

internal class MyBaseActivity : Activity 
{ 
    protected override void OnResume() 
    { 
     base.OnResume(); 

     // Here you would read it from where ever. 
     var userSelectedCulture = new CultureInfo ("fr-FR"); 

     Thread.CurrentThread.CurrentCulture = userSelectedCulture; 
    } 
} 

在xamarin論壇發現:https://forums.xamarin.com/discussion/9764/how-to-set-a-global-cultureinfo-for-an-app

0

我有Xamarin Forms應用工作。

App課程中設置文化爲我做了竅門。

using System.Globalization; 
using System.Threading; 


private void SetCultureToUSEnglish() 
{ 
    CultureInfo englishUSCulture = new CultureInfo("en-US"); 
    CultureInfo.DefaultThreadCurrentCulture = englishUSCulture; 
} 
0

我嘗試喬爾的方法,但它沒有爲我工作。我用這個方法

 string cultureName = "es-US"; 
     var locale = new Java.Util.Locale(cultureName); 
     Java.Util.Locale.Default = locale; 

     var config = new Android.Content.Res.Configuration { Locale = locale }; 
     BaseContext.Resources.UpdateConfiguration(config, BaseContext.Resources.DisplayMetrics); 

還會創建基本活動

找到答案在這裏:

changing cultureinfo on android using xamarin and c#