Tag: 文化

C#WebBrowser控件全球化

我正在使用WebBrowser控件在C#中创建应用程序。 问题是我不是来自英语国家,而是控制接缝发送英语而不是现代文化。 因此,例如,像谷歌这样的网站将始终以英文而非葡萄牙语显示,因为它出现在IE,FF,Chrome或Opera中。 有没有办法将控件的页面请求文化更改为当前系统的文化,或任何文化的任意文化?

如何使用InvariantCulture仅渲染某些特定的模型字段,而其余的则继续使用用户文化?

我在asp.net mvc视图上有几个隐藏的输入。 它们的值包含double类型的对象。 我希望它们使用InvariantCulture进行渲染,因为它们习惯于被提供给客户端上的api(谷歌地图)。 就像现在一样,它们使用逗号(,)作为小数分隔符进行渲染,而api则需要一个点(。)作为小数分隔符。 最好的解决方案是,如果我可以在模型的属性上的DisplayFormat数据注释属性中指定文化,但我不认为这是可能的: public class Position { [DisplayFormat(DataFormatString=”{0:G}, CultureInfo.InvariantCulture”)] public double Latitude; … } 我不能在我的Application_Start方法中将CurrentCulture设置为InvariantCulture ,因为屏幕上还有其他值必须在适当的用户文化中。 那么,有没有办法暂时改变当前的文化,就在我为该特定属性执行Html.HiddenFor(Model => Model.Latitude)之前,然后重置它? 或者还有另一种更好的方法吗? 什么是最佳做法?

为什么我会得到“文化不受支持”以及如果有什么,我该怎么做呢?

我在这里的“返回”行有一个断点: [HttpGet] [Route(“api/Test/{id1}/{id2}”)] public NRBQEntity GetTestMessage(String id1, String id2) { return NRBQClient.GetTestMessage(id1, id2); } 虽然它没有崩溃应用程序,当我达到这一点,我得到, “ Exception:Thrown:”不支持文化。“(System.Globalization.CultureNotFoundException)抛出了System.Globalization.CultureNotFoundException:”不支持文化。 “ 试图支持哪种文化,为什么不支持这种文化,以及我应该做些什么来支持这种文化? UPDATE 回答斯潘利: 除了代表“BarbeQue的新骑士”之外,它还是一个“骨架”(现在)实体,看起来像这样: public class NRBQEntity { public NRBQEntity() { } public String Value { get; set; } } 更新2 对AnotherUser的回答: 这不是我的代码,所以我只是在试图理解它; 它作为一个起点提供给我复制/重构现有的独立项目,并将其纳入“解决方案”。 已经说过,回答你的问题,这里是解决方案中“GetTestMessage()”的所有实例: [HttpGet] [Route(“api/Test/{id1}/{id2}”)] public NRBQEntity GetTestMessage(String id1, String id2) { return NRBQClient.GetTestMessage(id1, id2); […]

如何大写日期和月份ToLongDateString()的第一个字母导致es-mx文化?

目前我在es-MX Culture中使用以下C#代码行获得以下结果 Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo(“es-mx”); miércoles,22 de octubre de 2008 我想获得以下内容 Miércoles,22 de Octubre de 2008 我需要建立自己的文化吗?

我应该何时指定CurrentCulture或InvariantCulture以及何时不指定?

指定CurrentCulture或InvariantCulture而不指定文化的最佳做法是什么? 例如,根据我的阅读,如果您正在进行序列化,则需要使用InvariantCulture作为指定数据值的规范表示的方法。 这是基于文化的字符串操作的相对较小的百分比。 我发现它很长,很冗长,而且大多数时候都是丑陋的,每次我都说出来,比如说: var greeting = string.Format(CultureInfo.CurrentCulture, “Hello “, userName); 然而,我的团队最近开启了FxCop,现在总是在每个地方都使用CultureInfo。 结合简洁性,可读性和function性的最佳技术是什么? 一些好的阅读材料: 使用InvariantCulture属性 CultureInfo类

本地化:如何将文化信息映射到脚本名称或Unicode字符范围?

我需要一些有关本地化的信息。 我正在使用带有C#2.0的.net 2.0来处理大多数与本地化相关的问题。 但是,我需要在一个特定的屏幕上手动绘制屏幕上当前文化对应的字母。 这类似于Microsoft Outlook中的“联系人”屏幕(“联系人”下的“地址卡”视图或“详细地址卡”视图),因此需要右端的按钮列,每个字母表一个。 我试图模仿,但我不想让用户选择脚本。 如果说现在的文化,中文,我想画中文字母。 当用户将文化信息更改为英语(并且当他重新启动应用程序时)我想要绘制英文字母。 希望您了解我在这个查询中的位置。 我可以确定当前用户的文化(Application.CurrentCulture或System.Globalization.CultureInfo.CurrentCulture将提供与文化相关的信息)。 我还有所有脚本来呈现字母表。 但是,问题是我不知道如何将文化信息映射到脚本的名称。 换句话说,有没有办法确定与文化相对应的脚本名称? 或者是否可以确定与文化相对应的Unicode字符值的范围? 它们中的任何一个都允许我正确地在按钮上呈现字母。 对此有任何建议或指导是真的很感激。 如果我的方法(或我想要实现的目标)存在根本性的错误,请同时指出。 谢谢你的时间。 PS:我知道最简单的解决方案是将脚本名称配置为用户首选项的一部分,或显示用户可供选择的语言列表(Outlook 2007中的联系人)。 但我只是想看看我是否可以渲染对应于文化的字母表,而无需用户做任何事情。

从国家/地区名称或RegionInfo对象获取CultureInfo对象

给定一个特定的国家代码,例如“CH”,我如何获得CultureInfo对象? 特定国家/地区代码是动态的(在运行时更改)。 我只有国家代码,我想知道是否可以从国家代码创建CultureInfo对象。 我得到的确切文化无关紧要(fr-CH / de-CH)。 我正在尝试这样的事情: CultureInfo c = CultureInfo.CreateSpecificCulture(“CH”); 是否可以从RegionInfo对象创建文化? 然后它看起来像这样: RegionInfo r= new RegionInfo(“CH”); CultureInfo c = CultureInfo.CreateSpecificCulture(r); 显然前面的例子没有编译,他们只是想知道我想要实现的目标。

法国文化的C#float.tryparse

我有一个用户输入,可以包含浮点值范围:3.06或3,06我们所处的文化是法语,因此当用户输入3.06并且我在此值上运行float.tryParse时它不会转换为3.06一个新变量(类型float) // inputUsedAmount.Value from UI is : 3.06 float usedAmount = 0.0f; float.TryParse(inputUsedAmount.Value, out usedAmount); // returns false 我可以简单地从“。”输入从UI输入的金额。 “,”,但通过文化有没有优雅/更好的方式来做到这一点? 谢谢

如何在运行时更改CurrentCulture?

我需要根据每种文化的资源文件在运行时更改文化。 我需要根据指定.resx文件的两种文化来更改表单中控件的属性 resorces1.aspx.resx // default resorces1.aspx.he-IL.resx // hebrew culture 我可以使用fallback资源加载页面,或者在pageload上给出UICulture = “he-IL”值,并且它可以正常加载所需的资源。 问题是我需要在运行时进行这些更改。 1 ..在我更改按钮单击事件的值后 btn_change_Click(….) { UICulture = “he-IL” ; } 它仍然返回到“en-US”的初始值 如何在运行时提交对UICulture的更改? 2 ..如果我不知道它是“en-US”,我如何引用回退资源文件?