65.9K
CodeProject 正在变化。 阅读更多。
Home

在 C# 中让多语言应用程序变得更简单

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.64/5 (31投票s)

2006年2月20日

CPOL

2分钟阅读

viewsIcon

128917

downloadIcon

7565

本文重点介绍如何处理多语言应用程序

Sample Image - Multilingual_application.jpg

引言

本文介绍了如何创建一个多语言应用程序。

关于示例项目

本文提供的示例项目是一个多语言应用程序的例子。在讨论多语言应用程序时,我们需要管理特定于每种文化的资源。在我的示例项目中,我支持了 5 种语言,分别是英语、德语、西班牙语、意大利语和法语。这个示例项目支持在运行时切换到这五种语言中的任何一种。

待办事项

在 C# 中创建一个多语言应用程序非常简单。我使用 Visual Studio .NET 2003 来创建我的示例应用程序。还有一个免费的 IDE,称为 SharpDevelop,看起来与 Visual Studio .NET 类似。

现在开始步骤

  1. FormLayout(也就是你的应用程序的设计)进行所有操作。
  2. 表单设计完成后,该表单现在使用默认的语言设置。现在构建应用程序。
  3. 将表单属性 Localizable 更改为 true,并将属性 Language 设置为你想要使用的任何语言。
  4. LabelButtonForm 等的文本更改为你选择的语言(不仅限于 Text 属性,你也可以更改特定于 Language 的布局)。
  5. 构建应用程序。
  6. 我们现在完成了。对于你想本地化的下一种语言,重复步骤 3 到 5。

现在我们做了一些事情,但我们如何检查这个工作是否有效。我们必须对代码做一些处理。

Thread.CurrentThread.CurrentUICulture=new System.Globalization.CultureInfo("de")

上面的代码指定了你的应用程序的 Currentuiculture。这段代码必须在组件初始化之前执行。CultureInfo 构造函数中给定的 string ("de") 指定了该文化的语言名称。下面给出了一些文化名称和语言。

  • en - 英语
  • de - 德语
  • fr - 法语
  • it - 意大利语
  • es - 西班牙语
  • pt - 葡萄牙语

它是如何工作的

这一节很重要。当我们把表单的 localizable 设置为 true 并构建应用程序时,Visual Studio .NET 会创建特定于表单的 Language 属性中指定的文化的资源。Visual Studio .NET 使用 *resgen.exe* 创建资源文件。我们也可以使用以下语法创建资源

resgen mytext.en-us.txt mytext.en-us.resources 
resgen mytext.en-us.resources mytext.en-us.resx

//This command reads a binary resources file mytext.en-us.resources and 
//writes an XML-based output file named mytext.en-us.resx 

现在资源已经创建好了,但我们需要将它们链接到应用程序,所以 Visual Studio .NET 使用 *AL.exe* (Assembly linker) 来完成这个工作。我们也可以通过以下方式手动完成此操作

al 

/t:lib

/embed:mytext.en-us.resx 

/culture:en-us 

/out:Myapplication.resources.dll

你可以在 MSDN 文档中找到更多关于 *resgen.exe* 和 *al.exe* 的信息。

摘要

我希望这篇文章对你有所帮助。如果你有任何问题或发现任何错误,请告诉我。你可以通过电子邮件联系我:beniton@gmail.com

请不要忘记评价这篇文章。

© . All rights reserved.