gpt4 book ai didi

.net - 我应该在我的应用程序中默认设置 Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture 吗?

转载 作者:行者123 更新时间:2023-12-03 21:36:53 24 4
gpt4 key购买 nike

我有一个面向全局市场的应用程序,需要本地化。在开发过程中,我遇到了一些问题,即使我更改了语言环境,我的附属程序集似乎也从未被选中。经过一些研究,我现在明白了为什么会这样,并且能够通过在代码中设置 CurrentUICulture 进行测试,并验证事情是否按预期工作。

现在涉及到打包应用程序以供发布,我不确定在我的应用程序启动时为当前线程设置 Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture 是否是一个好主意。从好的方面来说,我的应用程序可以通过更改区域设置来本地化(如果这是好的一面),但我担心这可能会有不可预见的缺点。立即想到的是,虽然我所做的一切对我的线程来说都很好,但它不适用于(根据我从这里和周围阅读的理解)到由我的应用程序创建的任何线程(除非我也将 CurrentUICulture 设置在那些上)或更糟的是我使用的任何可能创建自己线程的组件。

会不会有其他问题?将 CurrentCultures 设置为与标准做法相同的内容还是令人不悦的内容?

在做出决定之前,我希望尽可能多地了解有关这起起伏伏的信息。

谢谢

山姆

最佳答案

山姆,
不要惹它,除非你真的确定你在做什么。

我假设我们在这里谈论的是 WinForms。该框架从系统中选取可以说是最佳的设置(由用户配置)。从你的问题来看,它可能更像是一个测试问题。我经常在#if DEBUG 之后放入一些代码来选择一个语言环境进行测试。

我自己的例子:我的语言环境是荷兰语 (nl-NL),但我通常运行英语版本的 Windows。如果您覆盖 CurrentUICulture,我会得到荷兰语版本(如果可用),这通常是可以的。但我从经验中知道,某些控件/加载项将保留为英文(包括 ShowMessage 框和 std 对话框)。组合很丑。

但也要考虑不添加与 CurrentCulture 匹配的卫星的情况。系统将回退到您程序中的默认设置,而用户 UI 文化可能是更好的选择。我不知道所有的后备规则,但你可能会得到类似的东西:

用户在 fr-FR 窗口上运行 fr-CA 设置。您的程序回退到 en-US,用户 n'est pas 高兴。

我的建议:

  • 做一些现场测试
  • 如果你确实在覆盖中构建那么
    在 app.config 中使用开关
  • 关于.net - 我应该在我的应用程序中默认设置 Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/511293/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com