1

我目前正在本地化表单。但是,我对如何正确地做到这一点感到有些困惑。

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

我目前的方法是添加所有类型为字符串且可写入资源文件的控件属性。这是通过递归枚举窗体上的所有控件和子控件并反映属性来实现的。

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

所以我的问题是: 在使用资源文件进行控制文本本地化方面的最佳实践是什么?

编辑:我知道我做错了什么。我认为 Displaytext 会自动复制到每个资源文件中。但是,似乎只复制了已更改的字段。

所以基本上,我将语言设置为某个设置,更改所有控件的 DisplayText,当我将语言更改回(默认)时,更改的内容将被保存。

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

4

3 回答 3

4

好吧,实际上本地化表单并不难。您将“Localizable”属性设置为“true”。这会导致将窗体上控件的所有可本地化属性迁移到资源文件中。当前资源文件是与语言环境无关的资源文件。然后,您可以在表单的属性中选择另一种语言,并将所有控件标题和文​​本替换为其翻译的变体。这会导致创建和使用适当的依赖于语言环境的资源文件。

您可以通过在 Thread.CurrentThread 上设置 CurrentCulture 和 CurrentUICulture 属性来选择显示界面的语言:

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

界面将相应调整。

于 2009-09-22T09:49:48.487 回答
1

它已经这样做了。

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

现在更改您的语言(也在设计器中),并自动创建相应的 langXXX.resx。

于 2009-09-22T09:47:50.707 回答
1

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

于 2009-09-22T09:48:22.827 回答