2009-09-22 42 views
1

我目前正在本地化一个表单。不过,我对于如何正确做到这一点有点困惑。为什么在设计器中更改文化时不会自动创建本地化资源文件?

我认为可以自动将控制属性导出到资源文件,但似乎这是一个手动任务。

我目前的做法是添加所有类型为String并且可写入资源文件的控件属性。这通过递归枚举窗体上的所有控件和子控件并反射属性。

但这似乎有些复杂,我不知道其他人是如何做到这一点的。

所以我的问题: 什么是在控制文本本地化中使用资源文件的最佳做法?

编辑:我明白我做错了什么。我认为Displaytext会自动复制到每个资源文件中。但是,似乎只有已更改的字段才被复制。因此基本上,我将语言设置为特定设置,为所有控件更改DisplayText,并且当我将语言更改回(默认)时,更改将被保存。

感谢您的任何/所有评论。

回答

3

那么,实际上本地化表单并不难。您将“Localizable”属性设置为“true”。这会导致窗体上控件的所有可本地化属性被迁移到资源文件中。当前资源文件是独立于语言环境的文件。然后,您可以在表单属性中选择另一种语言,并将所有控制字幕和文本替换为其翻译的变体。这会导致创建和使用适当的与区域相关的资源文件。

您可以选择在该接口通过Thread.CurrentThread设置的CurrentCulture和性能的CurrentUICulture语言显示:

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB"); 
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB"); 

接口西港岛线相应的调整。

+0

用翻译替换所有控制字幕都有窍门,谢谢! – 2009-09-22 10:19:23

1

它已经这样做了。

在Form或UserControl设计器中打开Localizable。

现在改变你的语言(也在设计器中),并自动创建合适的langXXX.resx。

+0

从我读的所有东西中,这似乎是实现它的方法,但是我的控件的Text属性没有出现在Resource文件的任何位置。 – 2009-09-22 09:52:46

+0

如果您构建自己的自定义控件,则必须为需要本地化的属性(如显示文本,图标等)设置Localizable属性。为此,只需在属性声明上方放置'[Localizable(true)]'。 – Joey 2009-09-22 09:58:37

+0

我明白了,但即使标准,按钮,单选按钮,组框等标准控件也不会出现在资源文件中。也许我做错了什么...... – 2009-09-22 10:02:37

1

您只需将表单设置为可本地化(在属性面板中将Localizable设置为true)。那么你只需要选择你想要本地化的语言。所有必需的资源文件都是自动生成的

相关问题