问题标签 [currentuiculture]
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.
.net - 配置NLog用英文写异常信息
是否可以将 NLog 配置为用英语而不是当前线程文化编写异常消息?
可以通过切换当前线程文化来解决此问题,如此处所建议的Exception messages in English? 但如果有其他解决方案,我不想这样做。
我的记录器作为 Ninject ILogger 公开,因此我还可以实现每种方法并更改线程文化,但如果有另一种解决方案,我更愿意避免这种情况。
c# - 如何将选定的文化传递给 InitializeCulture() 方法
我有一个登录页面,用户可以通过单选按钮选择他的语言,登录后用户被重定向到 Default.aspx,我使用以下方法设置页面文化:
如何将登录页面中选择的语言传递给 Default.aspx 页面中的此方法?我试图通过会话传递它,但我收到了这个错误:
System.NullReferenceException:“对象引用未设置为对象的实例。” System.Web.SessionState.HttpSessionState.this[string].get 返回 null。
因为此方法发生在任何控制或会话启动之前的早期阶段,这就是它返回 null 的原因。知道如何将选定的文化传递给这种方法吗?
c# - 即使我在 Windows 中设置了“DE-CH”,为什么 CurrentUICulture 是“DE-DE”
在我的 WPF 应用程序中,CurrentUICulture 没有被 Windows 正确接管或错误地存储在 Windows 中。
Windows 中的区域和语言设置在我找到的所有“Deutsch (Schweiz)”的地方。应用程序中的 CurrentUICulture 显示“Deutsch (Deutschland)”而不是“Deutsch (Schweiz)”。我已经在多台计算机上(使用域用户和本地用户)对其进行了测试。
问题可能出在哪里?这个设置在 Windows 中有一个很难找到的地方吗?
重要提示:我知道我可以在应用程序中设置文化。我不需要像这样的答案 Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-ch")
我只想了解该机制是如何工作的以及它从哪里获取信息。
以下是我的 Windows 设置中的一些屏幕截图:
谢谢,阿德里安
c# - 通过 c# 返回波斯文化中的 Datetime.Day
我打算返回波斯文化中的日期。我已经设置了文化并且效果很好。显示的日期是波斯历。但我需要检查某个地方的确切日期,
例如今天是 2018-2-3,在波斯历中是 1396-11-14,
向我展示了波斯日历中正确的日期时间。但
显示 3 而不是 14。我需要 14!我知道我可以将其更改为字符串并获得一天,但它使我的代码如此肮脏,我对这种方式不太感兴趣,因为我在程序的许多部分都使用了它。有什么办法吗?
c# - ASP.NET MVC (Async) CurrentCulture 不在控制器和视图之间共享
我有一个面向 .NET Framework 4.7.1 的 ASP.NET MVC 4 应用程序,如果操作包含异步调用,则控制器和视图之间不共享区域性的问题。
我引用的是 NuGet 包Microsoft.AspNet.Mvc
5.2.3(并且可以在 5.2.4 中复制)。
这是控制器中的代码:
这是视图中的代码:
日志如下:
当网页显示:
.NET Framework < 4.6 中存在一个问题,该问题已在 4.6 中修复,但似乎该问题在 MVC 中仍然存在。
如果线程是执行基于任务的异步操作的线程池线程,并且应用面向 .NET Framework 4.6 或更高版本的 .NET Framework,则其 UI 文化由调用线程的 UI 文化决定。(来源https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentuiculture(v=vs.110).aspx)
我是否没有正确处理CurrentCulture
,或者这就是它应该如何工作?对于 .NET Framework 4.x,我找不到与此问题相关的任何帖子。
xamarin.forms - Xamarin 表单全球化
我查看了这篇关于 Xamarin Forms 全球化的文章。文章指出我需要创建一个界面才能访问每个平台上的语言。然而,在我的上一个应用程序中,我能够简单地将这行代码放入我的共享代码中,并且它似乎可以很好地获取语言:
使用 Xamarin Forms 中的资源文件,是否有类似的代码行不适用于全球化?
.net - CurrentCulture 与 CurrentUICulture 不同 - 特定软件的问题 - Windows Server 2012
我正在尝试从 Windows 2012 Server 远程使用安装在本地计算机上的名为 Sunetplus 的软件。我只需要在命令提示符下运行一行来完成我必须做的事情(即在软件数据库中导入新数据)。该命令在我的机器上运行良好,并且设置为也可以在服务器上运行。唯一的问题是:当我使用此命令行时,软件正常启动但随后显示错误:
CurrentCulture and CurrentUICulture define not the same language
我调查了一下,发现我的服务器的 CurrentCulture 是fr-CH
,而 CurrentUICulture 是en-US
。所以我去了:
- 控制面板
- 语
- 更改日期、时间或数字格式
- 更改
Format
为English(United States)
...并再次运行命令行,胜利!
它没有问题。但我实际上是不允许这样做的,也不应该更改服务器的日期格式。
所以我尝试在 Powershell 脚本中运行我的命令行,使用此Using-Culture
函数正确设置 CurrentCulture。
当我使用 输出线程的 currentCulture 时[System.Threading.Thread]::CurrentThread
,它被正确设置为en-US
,但软件仍然显示相同的错误。
我还尝试联系该软件的开发人员,经过一番讨论后,我得到的唯一答案是“只需在本地机器上运行命令行,而不是在服务器上运行”。
也许我在我的 Powershell 脚本中做错了什么(这是我的第一个 PS 脚本),或者这只是一个失败的原因。如果有人有一个好主意,我会全神贯注 :) 很抱歉发了这么长的帖子,谢谢你的帮助!
c# - Windows 服务无法使用 CurrentCulture 设置语言
我的 Windows 服务中有两个资源文件用于本地化(英语和法语)。这些资源文件包含我想在服务完成其任务后向用户显示的消息。我想显示这些消息的语言来自数据库(en/fr)。我正在使用CurrentCulture
和CurrentUICulture
设置语言。
如果我在 DEBUG 模式下运行服务,语言设置得很好,如果我设置为en
我会收到英语消息,如果我设置为fr
我会收到法语消息。但是在安装服务(与设置项目)之后,我收到的所有消息都是英文的,无论我将其设置en
为fr
还有其他本地化设置吗?
c# - 如何识别 ListSeparator 是否被修改?
我正在使用 WF 应用程序并尝试根据不同的情况(例如在 CurrentCulture 和 InvariantCulture 中)序列化/反序列化其数据。
在序列化/反序列化之前更改 CurrentCulture.TextInfo.ListSeparator 时遇到问题。
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US", false);
Thread.CurrentThread.CurrentUICulture.TextInfo.ListSeparator = ";";
要解决问题,我需要查看 ListSeparator 是否已修改。我找不到任何方法。
请建议我你的想法。
谢谢。
c# - Global.asax 和 MasterPage 之间会发生什么?
我正在开始一项多语言工作。在 Global.asax.cs 方法 Application_BeginRequest() 中,读取 cookie 并将 CurrentUICulture 设置为en-US
。但是,在 MyPage.aspx 中,该值令人惊讶地更改为nl
.
现在这个网站是我继承的,中等规模,有一个相当复杂的菜单系统。此外,它还维护一个用户表,其中包含一个首选语言字段,其值nl
如
这是一个带有 MasterPage 的页面,所以我查看了那里。我在 MasterPage.Page_Init() 的第一个页面事件中设置了一个调试断点,并在即时窗口中检查了 System.Threading.Thread.CurrentThread.CurrentUICulture.Name。值为:'nl'。我完全不解。
我的问题是:在 Global.asax.cs、Application_BeginRequest() 和 MasterPage.Page_Init() 之间可以执行哪些代码?