【问题标题】:Partial MonthCalendar localization failure ('Today' label not translated)部分 MonthCalendar 本地化失败(“今天”标签未翻译)
【发布时间】:2011-12-05 15:08:43
【问题描述】:

我已经准备好开始扯掉我剩下的头发了。

我正在 Windows 7 下开发一个 winforms 应用程序 (.NET 3.5)。在这个应用程序中是一个自定义日期选择器控件,它使用 MonthCalendar 进行实际日期选择。除了底部显示的“今天”日期外,它运行良好并且看起来很棒。它旁边有标签“今天”。如果您的听众是以英语为母语的人,这很好。我的是丹麦语。

当文化设置为丹麦语时,“今天”标签保持不变,而星期和月份名称以及日期格式遵循相关的窗口设置。这是一个小问题,但仍然很烦人。

还有其他人看过吗?有谁知道我做错了什么?如果做不到这一点,有人知道解决方法吗?

【问题讨论】:

    标签: c# .net winforms localization monthcalendar


    【解决方案1】:

    您的丹麦客户将运行丹麦版本的 Windows。其中使用丹麦文本表示“今天”。更改计算机上的文化不会改变本机 Windows 资源的语言,例如 MonthCalendar 使用的语言。

    所以这不是一个真正的问题。如果您必须让它看起来是正版的,例如屏幕截图,那么请购买 Windows 终极版的许可证。这允许安装修改这些本地资源的语言包。或使用 MSDN 订阅来访问丹麦语 Windows 版本。

    【讨论】:

    • 你怎么知道他的丹麦客户会使用丹麦版的 Windows?
    • 因为丹麦用户当然更喜欢丹麦版本的 Windows。如果他们出于某种原因选择了另一种语言,那么您不能覆盖该选择。你也不能。
    • 目前我很难测试,因为我没有可用的企业或终极窗口,但这听起来像是一个非常合理的解释。读到这个解释,我有点激动。回想起来,这似乎有点明显:) 非常感谢。
    【解决方案2】:

    “今天”标签反映了控制面板中操作系统的语言(区域和语言),请参见下图。

    您已经搞砸了,因为这已被纳入 Windows 窗体库,您无法覆盖/隐藏/设置私有字段来解决此问题。这在 .NET 4.0 中也是如此。

    一种解决方法是隐藏 MonthCalendar 上的 Today 标签,并创建一个 UserControl,其中包含 MonthCalendar 模仿 Today 按钮但以正确的语言显示文本。

    【讨论】:

    • 感谢您的回答和截图。如果我理解正确,您图片中的第二部分仅存在于企业版和终极版 Windows 中。我有没有它的 windows 专业版。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多