问题标签 [currentculture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
99848 浏览

c# - 解析浮点数的最佳方法?

在 CSharp 中解析浮点数的最佳方法是什么?我知道 TryParse,但我特别想知道的是点、逗号等。

我的网站有问题。在我的开发服务器上,“,”代表小数,“。” 为分隔符。但是在产品服务器上,情况正好相反。我怎样才能最好地捕捉到这一点?

0 投票
3 回答
12244 浏览

c# - C#双打显示逗号而不是句号

我和这个帖子里的人几乎有同样的问题:

转换有句号而不是逗号的浮点数?

这样我的

我明白了y == "234,4"

更糟糕的是......Double.Parse("234.4")引发异常。

在我被要求使用句号而不是逗号之前,我已经编写了很多代码,所以我希望有一些方法可以在全局级别更改我的 CultureInfo

我可以做的项目中有一些设置吗?

我试过了:

他们有点工作。它们适用于应用程序的大部分部分,但驻留在我的 TabControl 选项卡中的所有控件仍然希望使用我的计算机 Localized CultureInfo

关于如何解决这个问题的任何想法?

0 投票
2 回答
1758 浏览

winforms - 为 WinForms 控件覆盖 CurrentCulture

是否可以覆盖WinForms 中特定控件的CurrentCulture和?CurrentUICulture所以这个特定的控件使用不同的文化?

0 投票
1 回答
2669 浏览

c# - 当线程池线程返回池时,更改线程池线程的文化会影响它吗?

如果我设置CurrentCulture了线程池线程,当线程完成执行并返回到线程池时会发生什么?它是否将其CurrentCulture重置为默认值(无论这可能意味着什么),还是会保留我设置的文化?

我希望框架将线程重置为默认状态以防止这种情况发生,但找不到任何有关此效果的文档。我发现的最接近的来自ThreadPool的 MSDN 文档:

线程池重用线程时,不会清除线程本地存储中的数据,也不会清除带有 ThreadStaticAttribute 属性标记的字段中的数据。因此,通过一种方法放置在线程本地存储中的数据可以暴露给由同一线程池线程执行的任何其他方法。

这似乎表明线程在返回时没有被重置。

我已经尝试了一些示例代码来尝试对此进行测试,并且似乎确实重置了文化,但我不相信我正在正确测试此行为,因为我认为我只使用了 ThreadPool 线程的一小部分,并且所以不能确定我正在测试一个已经拥有它的文化集的线程。

0 投票
2 回答
2473 浏览

asp.net - 设置 asp.net RangeValidator 的文化

一个 asp:RangeValidator 从页面/线程中获取它的文化信息,所有关于获得正确文化的在线建议似乎都是在线程上设置 CultureInfo。

Rick Strahl 的西风博客是典型的建议

但是,由于以这种方式运行服务器代码的问题,我们正在剥离我们之前使用的遵循此建议的代码。

我的问题是:有没有办法让我设置 RangeValidator 的文化而不会弄乱主页/线程文化。我希望 RangeValidators 尊重浏览器设置,但不幸的是,他们尊重的是服务器文化。

0 投票
1 回答
163 浏览

asp.net - 如何将语言文化线程提供给助手类

使用 asp.net MVC 2,我一直在尝试让 Matt Hawley 的本地化助手在我的 Web 应用程序中工作,但我无法将 null 输入到 Language 字符串变量中。我不明白我为什么要这样做。

}

我可能做错了什么?

0 投票
3 回答
6943 浏览

asp.net - ASP.NET 使用 InitializeCulture 设置文化

我有一个包含三个域 .com、.de 和 .it 的网站

每个域都需要默认为该国的当地语言/文化。我创建了一个基本页面并添加了一个 InitializeCulture

这可以。现在出现问题是因为我们还想要主页上的三个语言选择按钮,以便用户可以覆盖域语言。

所以在我的 Default.asp.vb 上,我们有三个像这样的按钮事件......

但当然,InitializeCulture 会覆盖所做的任何按钮选择。InitialCulture 有什么方法可以检查是否发生了按钮单击,如果是,则跳过该例程?

任何建议将不胜感激,谢谢。

0 投票
1 回答
2927 浏览

c# - “8”的 int.Parse 失败。int.Parse 总是需要 CultureInfo.InvariantCulture?

我们开发了一种成熟的软件,可以在除一台以外的所有已知计算机上正常工作。问题是解析以“8”开头的字符串。字符串开头的“8”似乎是保留字符。

使用int.Parse("8", CultureInfo.InvariantCulture)解决了这个问题。但是,很高兴知道问题的根源。

问题:如果我们不指定不变的文化,为什么我们会得到这种“8”的行为?


附加信息:

我确实向我的客户发送了一个小程序,实现了上述结果:


更新

我偶然发现了这个链接,这是 microsoft connect 数据库中的一个错误:

https://connect.microsoft.com/VisualStudio/feedback/details/253265/int32-parse-fails-to-convert-the-string-0-zero-on-some-systems

似乎有类似症状的问题,但没有真正的根本原因。如果有人能详细说明这一点,我将不胜感激!

0 投票
1 回答
615 浏览

winforms - 如何在 WinForm 应用程序中尊重/继承用户的语言设置?

我过去曾使用过全球化设置,但不在 .NET 环境中,这是本问题的主题。我所看到的肯定是由于我尚未学习的知识,因此我希望能了解以下内容。


设置:我的默认语言设置是英语(特别是 en-us)。我在我的开发系统(WinXP)上添加了第二种语言(丹麦语),然后打开语言栏,以便我可以随意选择其中一种。


我在语言栏上选择了丹麦语,然后打开记事本,发现语言栏上的语言恢复为英语。我知道语言设置是每个应用程序的,所以记事本似乎将默认设置回英语。(我发现这很奇怪,因为 Windows 和记事本在世界各地都被使用。)关闭记事本将语言栏上的设置返回到丹麦语。然后我启动了我的开放式自定义 WinForm 应用程序——我知道它没有设置语言——并且它在打开时从英语恢复为丹麦语,然后在终止时恢复为丹麦语!

问题 #1A:如何让我的 WinForm 应用程序在启动时继承语言栏的当前设置?我的实验似乎表明每个应用程序都以系统默认值启动,并要求用户在应用程序运行后手动更改它——这对于想要使用多种语言的人来说似乎是一个主要的不便!

问题 #1B:如果事实上必须在多语言场景中手动设置语言,我该如何更改我的默认系统语言(例如丹麦语),以便我可以测试我的应用程序以另一种语言启动?


我在我的应用程序中为下一个实验添加了当前语言的显示。具体来说,我MouseEnter在标签上设置了一个处理程序,将其工具提示设置为,CultureInfo.CurrentCulture.Name因此每次鼠标悬停时我都认为应该看到当前的语言设置。由于在启动我的应用程序之前设置语言不起作用,我启动它然后将语言设置为丹麦语。我发现有些东西(比如在文本框中输入)确实尊重这种丹麦语设置。但是将鼠标悬停在仪表标签上仍然显示我们!

问题 #2A:为什么CultureInfo.CurrentCulture.Name我的语言栏没有反映更改,而我的应用程序的其他部分似乎可以识别更改?(尝试CultureInfo.CurrentUICulture.Name产生了相同的结果。)

问题 #2B:是否有一个事件会在语言栏发生更改时触发,以便我可以在语言设置更改时在我的应用程序中识别?


2010.05.13 更新

来自 Microsoft 的 Eric 提供的简短但甜蜜的信息(请参阅下面的答案)直接解决了我的四个问题(#2A)中的一个,但它提供了我需要进一步研究并找出其余问题的动力。为了其他可能对此感到困惑的人的利益,这是我发现的:

答案 #1A:应用程序继承默认输入语言的设置,而不是您在语言栏上指定的语言。一旦您的应用程序运行,您的应用程序立即注意到语言栏上的更改。

答案#1B:通过区域和语言选项控制面板>>语言选项卡>>详细信息>>设置选项卡>>默认输入语言来设置默认输入语言。

答案 #2A:由 Eric 回答,当前文化不同于反映在语言栏上的当前输入语言;在文本框中键入仅受当前输入语言的影响。

答案 #2B:输入语言或当前文化更改通知没有预定义事件。这里要注意的一个重要事实是,输入语言更改会立即自动识别,而当前文化更改则不会。您必须重新启动应用程序才能使当前的文化更改生效 - 除非您可以注意到更改并自己采取行动。为此,我找到了一篇 MSDN 文章(CultureInfo 类的许多面孔),它提供了这样一个钩子来注意到变化。

0 投票
2 回答
1325 浏览

c# - Why doesn't the Timezone change when I set the CurrentCulture?

From what I have researched it is not possible to change the Timezone of a thread. So my question is why can't you?

I would have thought switching your application's culture to a specific country would also switch this, seems like expected behaviour IMO.

Edit

After revising I can see the reason why it probably shouldn't be mapped 1:1 by default. However, I still feel it would be a nice feature to be able to change the Timezone per thread.