gpt4 book ai didi

winforms - 如何在我自己的设计工具中获得 Localizable 属性和支持?

转载 作者:行者123 更新时间:2023-12-04 08:39:31 24 4
gpt4 key购买 nike

概述

在另一个问题中,我问了 deploying localizations for some runtime compiled UserControl 's .但是,在开始部署本地化之前,我需要一种本地化控件的方法。

背景

这些控件由我们自己的 WinForms 风格的设计器创建(使用 .NET 对设计图面的支持等)并保存为结合了 CodeCompileUnit 的二进制格式。 、资源 resx 和用户源合并到一个文件中。然后,这些文件在运行时由另一个工具适本地编译成程序集。

为了本地化这些,我们需要告诉设计器和序列化可本地化的属性值将存储在资源中。 VisualStudio WinForms 设计器使用名为 Localizable 的扩展属性执行此操作。以及用于指定默认文化的关联属性。如果可能,我们需要在自定义设计器中使用此属性。

约束

我们需要我们的独立设计器工具,它易于用于非开发人员类型并限制某些操作,因此使用免费版的 Visual Studio(即 C# Express)是行不通的(我已经投了它但失败了) ;因此,我们如何本地化这些 UserControl 的任何解决方案都需要对此进行补偿。



我们可以在我们的自定义 WinForms 设计器中获得 Localizable 支持吗?

  • 如果是,如何?
  • 如果不是,有什么替代方法可以本地化我们的 UserControl的?例如不知何故后处理,不同的文件格式等
  • 最佳答案

    我不确定我是否正确理解了您的问题。

    只需检查 System.ComponentModel.LocalizableAttribute如果您的控件是可本地化的,则在所有属性上进行(反)序列化。

    // Gets the attributes for the property.
    AttributeCollection attributes =
    TypeDescriptor.GetProperties(this)["MyProperty"].Attributes;

    // Checks to see if the property needs to be localized.
    LocalizableAttribute myAttribute =
    (LocalizableAttribute)attributes[typeof(LocalizableAttribute)];
    if(myAttribute.IsLocalizable) {
    // Insert code for handling resource files here.
    }

    由于您决定编写自己的设计器,因此您必须自己完成。

    关于winforms - 如何在我自己的设计工具中获得 Localizable 属性和支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/507520/

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