问题标签 [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.

0 投票
2 回答
1758 浏览

winforms - 为 WinForms 控件覆盖 CurrentCulture

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

0 投票
2 回答
691 浏览

localization - 为什么我的语言在 ASP.NET 2.0 中会自动切换?

我正在开发一个 ASP.NET 2.0 Web 解决方案,该解决方案目前运行 en-GB 和 zh-HK 语言作为该站点的两种当前语言。其他的将在以后添加。

其中一个要求是用户可以选择将显示的语言覆盖为另一种语言。因此,香港用户可以用英文浏览网站,反之亦然。

我的 2 个资源文件是

  • Resources.resx(英语 - 默认翻译)
  • Resources.zh-HK.resx(中文版)

该站点执行此逻辑

  1. 加载用户详细信息
  2. 检查用户是否覆盖了首选语言
  3. 如果有,请将 Thread.CurrentThread.CurrentUICulture 设置为此语言。
  4. 如果没有,请使用默认浏览器。

这在以下代码中实现:

我还配置了 web.config 以自动获取 uiCulture

由于一些非常非常奇怪的原因,一些用户(甚至是 en-GB 用户)发现语言正在无缘无故地切换 zh-HK - 有时在页面之间!我在这些页面中添加了一些调试代码,这些代码应该会在未来几天内显示更多信息。到目前为止,它所透露的只是用户不一定来自zh-HK,有些来自zh-CN或zh-TW。虽然这可能会有所帮助,因为 en-GB 用户正在查看 zh-HK,我认为这只是一个红鲱鱼。

我注意到的是,切换发生在页面内容上(那些从基本页面继承,存在 IntializeCulture() 方法)。我编写的自定义用户控件没有遇到此问题,并且以用户配置的正确语言显示。因此,一个页面将包含英文和中文内容的组合 - eek!

任何人都可以就我是否正确编码或接近要求的替代方式提供指导。

提前致谢,

多米尼克

PS 这是一个间歇性问题,而不是永久性问题。似乎没有复制这个问题的共同行动。它只是 - 发生了。

PPS 以下是实际问题的图片:

显示中文/英文问题的网页


2009 年 9 月 23 日更新:

尝试将其更改为 Page.Culture 后,我仍然遇到更多间歇性问题。

对于为什么会发生这种情况,我有几个想法,但无法证明我的“假设”是正确的:

  • 我们使用的是 IIS 5.0 隔离模式,这意味着每个 IIS 实例只运行 aspnet_wp.exe 而不是 w3wp.exe。
  • Reporting Services 也在服务器上运行,为香港生成报告。
  • 当站点负载过重时,故障会更频繁地发生 - 我假设是由于生成了大量报告。

除此之外,我不知道还有什么可能导致问题。我会显示另一个屏幕截图,但问题是相同的,并且确实出现在与上一个屏幕截图相同的位置。

2009 年 9 月 25 日更新:

我想我们可能已经解决了。在我们的 Web.config 中,有一个标签配置如下:

删除后,经过初步测试,它还没有出现!

2009 年 10 月 13 日更新:

问题又出现了:-(

2009 年 10 月 26 日更新:

似乎如果站点的其他用户更改了他们的首选语言,它会影响站点上的所有其他用户!尽管设置了他们的首选语言,但其他人的语言切换会以某种方式影响网站的其他用户!

0 投票
3 回答
1607 浏览

.net - 在 Windows XP 中,在哪里可以设置 CurrentUICulture 的初始值?

我正在尝试使我的应用程序支持多种语言。例如,我已经制作了一些附属程序集,现在我想测试应用程序在法国机器上运行时的外观。

在[控制面板->区域和语言选项]中,我可以在区域选项选项卡中选择法语(法国),我可以在高级选项卡中选择法语(法国)。

但这还不足以让我的应用程序认为它是法语。

如果我将此代码添加到我的主要功能的开头,

然后 ci1->Name 是fr-FR但 ci2->Name 是en-US.

对我来说不幸的是,对于要使用的法国卫星组件,CurrentUICulture 是需要使用的fr-FR

我不想将 CurrentUICulture 设置为与代码中的 CurrentCulture 相同的值 - 我想使用控制面板或其他方式更改默认值。

我在 t'internet 上看到了很多关于如何在 CurrentUICulture 更改时检测事件的帖子,但没有告诉我如何更改它!

0 投票
1 回答
883 浏览

silverlight-3.0 - Silverlight 3 本地化配置

我想知道如何配置我的 Silverlight 应用程序,以便能够更改当前线程的 UICulture 而无需重新编译应用程序。

如果我在app.xaml中设置了当前的线程文化,每次都需要重新编译来改变文化。如果我添加一个应用程序设置,我如何在客户端上检索该信息以便能够更改当前的线程文化信息?

有任何想法吗 ?

0 投票
5 回答
18237 浏览

c# - Thread.CurrentThread.CurrentUICulture 无法始终如一地工作

周末我一直在从事一个宠物项目,以了解有关 C# 的更多信息,并且在使用本地化时遇到了一个奇怪的问题。更具体地说,我遇到的问题是 System.Threading.Thread.CurrentThread.CurrentUICulture。

我已经设置了我的应用程序,以便用户可以通过单击菜单项来快速更改应用程序的语言。菜单项依次将语言的两个字母代码(例如“en”、“fr”等)保存在名为“Language”的用户设置中,然后重新启动应用程序。

当应用程序启动时,Form 构造函数中的第一行代码(甚至在 InitializeComponent() 之前)从设置中获取语言字符串并设置 CurrentUICulture,如下所示:

问题是,这并不能始终如一地工作。有时,一切正常,应用程序会根据保存在设置文件中的字符串加载正确的语言。其他时候,它不会,并且在应用程序重新启动后语言保持不变。

起初我以为我在重新启动应用程序之前没有保存语言,但事实并非如此。当正确的语言无法加载时,如果我关闭应用程序并再次运行它,正确的语言会正确出现。因此,这意味着语言字符串已保存,但我的表单构造函数中的 CurrentUICulture 分配有时无效。

有什么帮助吗?关于线程在 C# 中的工作方式,我有什么遗漏吗?这可能是特定于机器的,所以如果有什么不同,我使用的是奔腾双核 CPU。

更新

Vlad 让我检查一下 CurrentThread 的 CurrentUICulture 是什么。所以我在我的构造函数上添加了一个 MessageBox 来告诉我 CurrentUICulture 两字母代码是什么以及我的 Language 用户字符串的值。

加载错误的语言时,Language 字符串和 CurrentUICulture 都有错误的语言。所以我猜 CurrentUICulture 已被清除,我的问题实际上与语言设置有关。

所以我想问题是我的应用程序有时会加载以前保存的语言字符串,而不是最后保存的语言字符串。如果应用程序重新启动,它将加载实际保存的语言字符串。

0 投票
7 回答
1919 浏览

asp.net - 在 .NET 中使用 CultureInfo 访问资源字符串

另一个简单的问题。我有不同语言的网站。如果我想从资源文件中访问一个字符串,我会像这样使用它

很容易。这样我在编译时就知道资源字符串存在。

现在,这仅在我想使用当前文化时才有效。有时我需要指定一种特定的文化(假设当前用户使用德语作为一种语言,但他的操作会触发以收件人的语言发送给其他用户的消息)。现在,我看到两个选项:

另一个是更改当前线程的文化信息,我需要做几次。

有第三种方法吗?在编译时告诉我资源存在但不需要一直更改线程文化的东西?

0 投票
1 回答
1316 浏览

.net - .NET 全球化:在页面或线程上设置文化/UICulture?有什么不同?

问题标题基本上是整个问题。在 ASP.NET 中,您可以通过重写 InitializeCulture 方法来设置页面的 Culture/UICulture 属性,也可以设置当前线程的属性。

有什么区别?两者的优点/缺点是什么?你会在什么情况下使用每个选项?

0 投票
1 回答
762 浏览

silverlight - Silverlight 中的默认字符串格式

例如,我有一个双倍的

我想在 Silverlight 4 应用程序的 TextBlock 中显示它,但显示应该是这样的:

4.32

而且我无法更改绑定上的 StringFormat 。

例外情况是,如果数字是这样的:

然后它应该显示

4,不是4.00

最糟糕的例外是它应该考虑到当前的 UI 文化,这意味着如果应用程序部署在美国,它应该使用 a.作为小数分隔符,而在欧洲它应该使用 a ,(在英国,但你明白了……)

如果我能够更改 StringFormat,我可以将 defaultformat 设置为#.##,但我想通过 CultureInfo 来完成

0 投票
2 回答
5479 浏览

c# - 在 CurrentUICulture 中指定千位分隔符

我正在尝试为我的线程设置文化信息

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de-DE");

以上是我设置的文化,这适用于转换十进制信息的数字格式,我正在尝试设置千位分隔符,但我不知道无需在 gridview 级别设置或使用 string.Format 的方法。

有谁知道如何在线程文化级别设置千位分隔符?

0 投票
1 回答
1029 浏览

asp.net - resourcemanager 使用错误的 UICulture 来提供内容!总是回归中立文化

可能重复:
CurrentThread.CurrentUICulture 设置正确,但似乎被 asp.net 忽略

我在很多论坛上问过,但似乎没有人能帮助我!

默认.aspx:

默认.aspx.vb:

全球.asax:

\bin 文件夹:在我的 bin 文件夹中,我有:

我像这样生成dll:

现在当我加载 default.aspx

Literal1 控件显示:“您在寻找什么?” 这是来自 App_LocalResources\default.aspx.en.resx 的值,所以这是正确的。

但是页面标题 (Me.Page.Title = rm.GetString("homewelcome")) 显示来自 bin\strings.txt 的值!这当然是不正确的,因为我希望它显示 bin\en\strings.txt 中的值

所以资源管理器忽略了文化,而文字使用的是正确的文化!

我在这里想念什么?