多语言.Net应用程序中文本和按钮之间的混合语言

时间:2009-07-11 04:31:27

标签: .net multilingual

MessageBox show存在(对我来说)问题。

我的应用程序是多语言(英语/德语)。

我正在测试一种语言为英文的窗口。 将应用程序设置为德语可以正常工作,但显示MessageBox会创建混合语言。消息是德语(通过资源文件),消息框中按钮的语言是英语(是否而不是Ja Nein)。我的客户端只使用德语版本的Windows,如果他想用英语使用该应用程序,可以使用德语和(messagebox)文本中的相反问题 - >按钮。

.NET语言包可以解决这些冲突吗?手段 - >安装.NET语言包以避免这种语言混合。

message box http://img401.imageshack.us/img401/1914/dlglang.jpg

2 个答案:

答案 0 :(得分:4)

.NET语言包不会影响OS元素的文本(显然!)。因此它们不会影响WinForms消息框上的按钮文本,因为它们使用Win32 MessageBox函数。这意味着,如果您的客户端具有德语版本的Windows,那么无论如何,所有库存UI元素(例如那些按钮)都将使用德语。如果他有Vista,他可以购买额外的语言包,但即便如此,在任何给定时间只有一个可以为用户(而不是特定的应用程序)活动。

如果您的客户希望仅以英文使用您的应用程序,那么他必须使用英文Windows版本,或者您必须编写自己的消息框,您自己定义按钮标签。

答案 1 :(得分:0)

这个问题目前对我来说不是一个优先事项。 另一种尝试可能是:

使用System.Windows.Forms.MessageBox.Show而不是System.Windows.MessageBox.Show

http://www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx

如果有人已经从CodeProject获得此项目的经验:请回复:)