- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,我有一些本地化的资源文件。它们是可以格式化的字符串。
例如:
MyResource.resx
Title: "MyApp - Ver: {0}"
然后我这样返回它:
public String Title
{
get { return String.Format(CultureInfo.CurrentUICulture, MyResources.Title, 1); }
}
我了解 CurrentUICulture 和 CurrentCulture 之间的区别,但 FxCop 告诉我改用 CurrentCulture?
最佳答案
在某种程度上 FxCop 是正确的:在这种情况下您不应该使用 CurrentUICulture
。正如其他人所说,CurrentCulture
用于区域设置感知格式,而 CurrentUICulture
用于从资源中读取可翻译字符串。
您在这里所做的是格式化数字,因此 FxCop 提示您使用了不正确的 CultureInfo
。不幸的是,FxCop 没有告诉您的是,您实际上应该使用 CultureInfo.InvariantCulture
。为什么?因为版本号是不依赖于 Locale 的东西。你总是会看到类似 1.9 而不是 1,9 的东西。因此 InvariantCulture
是必经之路。
微软甚至提供了特定的类来存储版本信息 - 奇怪的是它的名字是 Version
(AFAIR 它在 System
命名空间中)。当您执行 ToString()
时,这将始终向您显示版本号,就像我之前提到的那样。当您实例化它时,它的构造函数还需要语言环境不变的版本字符串。
关于c# - FxCop CA1305 : CurrentCulture vs. CurrentUICulture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795891/
我有一个使用任务的应用程序。我们还修改了 cultureInfo(我们使用 EN-US 语言,但保留日期/数字格式),我们使用 .Net 4.0。 应用程序有很多线程和任务,我们有一个用于创建任务/线
谁能告诉我 Application.CurrentCulture 和 Thread.CurrentCulture 之间的区别。 线程有CurrentCulture 和CurrentUICulture。
我需要根据每种文化的资源文件在运行时更改文化。 我需要根据两种文化更改表单中控件的属性其中有指定的.resx文件 resorces1.aspx.resx // default resorces1.as
在 .net 2 winforms 应用程序中,为整个应用程序设置文化的好方法是什么? 为每个新线程设置 CurrentThread.CurrentCulture 是重复且容易出错的。 理想情况下,我
CultureInfo.CurrentCulture 可以为空吗? 空值会使我的程序崩溃,这是我不想要的。所以我问,为了安全起见,我需要做什么吗? var culture = CultureInfo.
我有一个具有以下命名空间的窗口 xmlns:sysglb="clr-namespace:System.Globalization;assembly=mscorlib" 包含一个文本框 根据 Gusd
正如您所看到的,我尝试将线程的 CurrentCulture 捕获到实例变量中,以便我可以在整个类中重用它,但它并没有持久存在。在上面的照片中,我显示即使在分配它之后,值仍然不同。这是为什么? 最佳答
我们的应用程序允许用户更改他们运行它的文化,并且该文化可以与底层操作系统文化不同。我发现这样做的唯一方法是为每个线程设置 Thread.CurrentThread.CurrentCulture 和 T
Thread.CurrentCulture 从哪里获取数据?客户端(浏览器)或服务器。 另一个问题,这是找出用户文化的正确方法吗? 谢谢 最佳答案 Thread.CurrentCulture 获取正在
我用一个按钮创建了一个简单的窗口应用程序 public partial class Form1 : Form { public Form1() { Initialize
我有一个错误报告,其中 double.Parse(input) 在输入 "0.69803923368454" 时抛出以下异常: FormatException: Unknown char: . Sys
我的解决方案中有多个项目:我有一个名为“Api”的 WebApi 项目,它引用了一个名为“Models”的类库。我在我的网络配置中设置全局化信息是这样的: 我的“模型”项目中有一些资源 (.resx
在 iPhone 上,用户可以选择他的显示语言和用于格式化的区域。 显示语言相当于.NET的Thread.CurrentUICulture,即UI的语言。 格式化区域等同于 .NET 的 Thread
尽管我本地化了当前文化,但以下代码返回英文名称。 List languageList = new List(); CultureInfo[] cultureList = CultureInfo.Get
在较旧的 asp.net 项目中,我们通常在 Application_BeginRequest - 处理程序 (Global.asax) 中设置语言,如下所示: System.Threading.Th
使用: Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.ToString()); 我得到 “en-US”。 我应该在
我将 Global.asax 设置为: protected void Application_BeginRequest(object sender, EventArgs e) {
根据我的研究,不可能更改线程的时区。所以我的问题是为什么你不能? 我原以为将您的应用程序的文化切换到特定国家/地区也会改变这种情况,这似乎是 IMO 的预期行为。 编辑 修改后我明白了为什么默认情况下
我试图获取客户的国家/地区,因此我使用 CultureInfo.CurrentCulture。问题是,当我的加拿大客户使用我的网站时,他们显示为美国人。 看起来 CultureInfo.Current
使用完整的 .NET 框架,您可以使用以下方法获取/设置当前线程的文化和 UI 文化: Thread.CurrentThread.CurrentCulture = culture; Thread.Cu
我是一名优秀的程序员,十分优秀!