加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在Xamarin的整个应用程序中强制本地化文化到en-US

发布时间:2020-12-15 23:47:01 所属栏目:百科 来源:网络整理
导读:如何强制Xamain – Android / iOS在美国英语文化中工作,无论用户设置如何. 我在申请中遇到的问题是,该应用程序仅支持美国/英国英语,但如果用户将语言首选项更改为西班牙语,德语等,则数字日期等格式将更改. 例如, 2.35将代表西班牙语,德语代表2,35. 因此,如果
如何强制Xamain – Android / iOS在美国英语文化中工作,无论用户设置如何.
我在申请中遇到的问题是,该应用程序仅支持美国/英国英语,但如果用户将语言首选项更改为西班牙语,德语等,则数字日期等格式将更改.

例如,
2.35将代表西班牙语,德语代表2,35.

因此,如果用户尝试使用具有类似语言的应用程序,则应用程序将错过行为或崩溃.在我尝试使用Convert.ToDouble(“2,35”)的情况下会发生崩溃;或类似的.

所以我怀疑是,

在Xamarin中是否有可能强制将文化设置为en-US.可能在一个地方,否则我需要更改我执行转换的所有地方.

请帮忙.

解决方法

您必须在应用中设置当前文化.本地化工作非常好.这就是我做的方式:

public void SetLocale(CultureInfo ci)
    {
        Thread.CurrentThread.CurrentCulture = ci;
        Thread.CurrentThread.CurrentUICulture = ci;

    }

在这里,您可以从设备中获得文化:

public CultureInfo GetCurrentCultureInfo()
    {
        var netLanguage = "en";
        if (NSLocale.PreferredLanguages.Length > 0)
        {
            var pref = NSLocale.PreferredLanguages[0];

            netLanguage = iOSToDotnetLanguage(pref);
        }

        // this gets called a lot - try/catch can be expensive so consider caching or something
        CultureInfo ci = null;
        try
        {
            ci = new CultureInfo(netLanguage);
        }
        catch (CultureNotFoundException e1)
        {
        }
     }
private string iOSToDotnetLanguage(string iOSLanguage)
    {
     // Testing special cases..
    }

如果您使用PCL项目,请使用抽象.在PCL中使用接口及其在本机项目中的实现.

你可以在这里看到更多:
https://docs.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/localization

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读