【发布时间】:2010-09-22 23:27:57
【问题描述】:
我在 Visual Studio 2005 中翻译一个紧凑的框架 2.0 windows 窗体。为此,我将窗体的语言更改为德语(目标语言)并编辑/调整窗体上的控件大小。这会按预期创建一个包含已翻译字符串的 resources.de.resx 文件。
但是,表单上有一个自定义控件,它有一个名为 GroupText 的属性,它也必须被翻译。但是,表单设计器拒绝使用该属性的资源文件。每当我在属性编辑器中更改属性时,它都会针对所有语言进行更改。我检查了 resx 文件 - 它们不包含 GroupText 属性,并且设计器生成的代码也不使用 resx 文件来处理此属性。
有没有办法为自定义控件启用基于 resx、Visual Studio 支持的本地化?
编辑:
作为已接受答案的补充,您必须执行以下操作才能获取 resx 文件以使自定义控件正常工作。
应该进入 resx 文件的每个属性都必须将 Localizable 属性设置为 true。现在,CF 不通过通常的括号语法支持此属性。你不能只在cs源文件中写[Localizable=true]。您必须在项目中创建一个名为DesignTimeAttributes.xmta 的单独文件并添加以下内容:
<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
<Class Name="MyControl">
<Property Name="MyProperty">
<Localizable>true</Localizable>
</Property>
</Class>
重建包含控件的程序集后,Visual Studio 会将属性值放入 resx 文件中。
【问题讨论】:
标签: c# winforms visual-studio-2005 localization compact-framework