twa*_*ron 6 c# asp.net-mvc localization
这应该很简单,但我无法在任何地方找到答案.在我们的asp.net MVC网站上,我们显示货币值,无论用户文化设置如何,我都需要这些货币值始终为美元.
如果我使用string.format("{0:C}",value),那么它会显示用户设置的文化中的值.这对我们来说是不正确的,因为$ 1000.00与1000.00欧元不同
I still need to use the language side of this, meaning if they are in France I want to use the French localization resource, so I don't want to completely disregard their culture settings, but how can I make sure the currency is always shown in USD?
将文化显式传递给Format调用:
string.Format(new CultureInfo("en-US"), "{0:C}",value)
Run Code Online (Sandbox Code Playgroud)
如果你必须将它与其他语言混合 - 保存格式化货币值的结果并作为字符串插入其他地方.
旁注:使用"en-US"(或任何其他硬编码文化)将导致负值的可能不匹配表示,即一些文化使用-100,而其他(100)表示负数.
您必须将 CurrentCulture 指定为 en-US 并保持 CurrentUICulture 不变。
我通常在 Global.asax.cs 的 Application_BeginRequest 事件中执行此操作
System.Threading.Thread.CurrentThread.CurrentCulture =
new System.Globalization.CultureInfo("en-US", false);
Run Code Online (Sandbox Code Playgroud)
可以在 web.config 文件中指定区域性,但这有一个缺点 - 它会考虑服务器的自定义区域设置(如果管理员将服务器上的货币或日期格式更改为 en-US 区域性,则会以这种方式被拾取) - 因此您无法确定应用程序的行为与您创建/测试它时完全相同。
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |