使我的应用程序支持多语言

3

如何让我的C#/WPF应用程序支持多种语言?

我希望能够让用户选择语言。

谢谢。

4个回答

5

有很多信息需要消化,但是.Net框架内置了对国际化的支持。

我希望能够给你一个简单的例子,但这不是一个“拖放”解决方案。您需要认真考虑如何设计应用程序以实现此目的。


谢谢。关于资源的想法很有道理。我会第一时间明天试试。 - Sandeep Bansal

0

推荐一本优秀的书籍:.NET国际化 by Smith-Ferrier。我的下一个项目之一就是将我们的应用程序国际化,这本书将成为我的指南。


0
如何将您的应用程序中要使用的字符串进行标记化,然后有单独的语言文件在运行时加载呢?
例如,在我的表单上,我想以不同的语言显示“名字”,因此它被标记为“firstnnamestring”,当表单被加载时,根据当前语言配置,我将用语言文件中配置的文本替换该文本。
语言文件可以是简单的XML,其中包含“令牌”和“显示文本”的键值对。

这正是我正在关注的内容!您能否提供一些示例代码,说明您是如何使其识别值的?谢谢。 - Sandeep Bansal

-1

我们需要翻译多少文字?你可以使用检查语言变量并放置适当语言的情况语句,但如果你有很多要替换的内容,这将变成一团糟。

回复您的评论:

请注意,这可能不是最好的解决方案,因为我不熟悉.NET的内置支持。

您可以简单地保留包含语言的变量,例如strLang,并在放置文本时运行一个case语句来输出正确的语言。

Switch (strLang)
{
 case "EN":
 //OUTPUT ENGLISH TEXT HERE
 break;
 case "SP":
 //OUTPUT SPANISH TEXT HERE
 break;
}

正如你所看到的,根据语言数量和文本量,它确实可能会使你的代码变得混乱不堪,因此你可能需要查看Randy建议的书籍。


这不是很多内容,只有一些零散的文本,你能解释一下我该如何完成所有这些吗?谢谢。如果你想了解我们所说的文本量有多少,你可以在这里查看应用程序:http://sinvise.net/preRelease/b1/Shutdown%20Timer%203.0%20Alpha%20x86.rar谢谢。 - Sandeep Bansal
感谢提供示例,我认为使用case语句是一种方法,但它也会创建大量的代码。 - Sandeep Bansal
这就是为什么我希望其他人能够给你更好的答案:) 祝你好运! - Alec Sanger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接