2

所以我有一个需要多语言的程序。我需要的和我在网上找到的唯一区别是,我的程序将在其上运行的所有计算机都设置为 EN 的本地化。

我们有讲西班牙语的员工,他们会像讲英语的员工一样使用该程序。所以我将无法根据计算机的本地化进行设置,这一切都必须在代码中完成。

我正在考虑尝试为我拥有的每个表单创建一个 XML 文件(实际上只是一个数据集),并让每个数据表都是一种可选择的语言。在每个表中,它都有信息(控件名称、属性和文本)来设置它需要的标签/复选框/等。我将不得不创建一个新的表单控件,以便我可以拥有一个通用函数来遍历并在可能的情况下重命名所有这些控件。

<DataSet>
   <English>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hello</Text>
   </English>
   <English>
     <ControlName>labelBye</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Bye</Text>
   </English>
   <Spanish>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hola</Text>
   </Spanish>
</DataSet>

此外,我对每种表单的资源文件中的字符串也不太了解。我可以从那里做它并使用.Net函数来实现这一点吗?

所以我接受了很多建议,因为我真的不想回到我刚刚编写的程序并把它放进去,一旦我已经花了这么多时间在这个傻瓜上,我讨厌回去添加更多功能...

谢谢

4

3 回答 3

2

您可以在代码中设置所需的文化,例如:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");

有关详细信息,请参阅此 MSDN 文章

于 2008-11-14T19:39:34.793 回答
1

这是一种痛苦,但并不难。在 VS2008 的 WinForm 设计器中,选择表单,查看其属性并设置 Localizable=True (如果您查看部分类/代码隐藏文件,您将看到一个新行,看起来像

  resources.ApplyResources(this, "$this")

然后,对于您想要支持的每个语言环境,选择语言,并本地化默认本地所需的任何更改。

我相信 Windows 允许用户为指定的应用程序指定不同的语言环境。我上次在 Windows 2000 上尝试过。

于 2008-11-17T03:11:40.543 回答
0

对于 Windows,您可以拥有一种机器文化 EN,但对于浏览器,PC 的个人用户可以选择喜欢的文化(IE 和 Firefox 无论如何)。PC 上的其他所有内容都是英语在 IE 中,转到工具、选项,单击常规选项卡上的语言按钮。您可以指定首选的语言层次结构。

否则随乔斯回答。

于 2008-11-17T15:15:17.400 回答