环境 - C#,. NET 4.0,WPF,VS2010
我有一个支持多种文化/语言的简单Windows应用程序。当用户选择日语,韩语,中文(简体)或中文(繁体)时,Windows XP将在字形位置显示有趣的“方形”或“块”字符。在Windows Vista,7或8上不会发生此问题。
作为解决方案,我建议转到“控制面板|区域和语言选项”,选择“语言”选项卡,然后选中“安装东亚语言文件”复选框。
这确实解决了我的机器问题。现在我知道选择“日语”的日本用户很可能已经安装了必要的资源,他们很可能不会遇到这个问题。
但是......我需要能够检测是否在运行我的应用程序的任何Windows XP计算机上安装了东亚语言。在这种情况下,我将能够显示一个消息框,通知他们安装语言......或者我可能决定隐藏日语,韩语,中文(简体)和中文(繁体)文化/语言选择。
那么......如何检测Windows XP是否安装了必要的东亚语言文件?我更喜欢.NET解决方案,但我愿意在必要时进行API调用。
JP
答案 0 :(得分:1)
您应该使用InputLanguage
函数调用检查CultureInfo
,而不是检查GetCultures
,
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.getcultures.aspx
如文档所述,如果InstalledWin32Cultures
用作参数,则此函数应返回您想要的内容,
http://msdn.microsoft.com/en-us/library/system.globalization.culturetypes.aspx
答案 1 :(得分:0)
您可以这样迭代:
foreach (System.Windows.Forms.InputLanguage p in System.Windows.Forms.InputLanguage.InstalledInputLanguages)
Console.WriteLine(p.Culture.EnglishName);
它会显示您要查找的内容。
答案 2 :(得分:0)
我没有尝试过这个,但我倾向于尝试它 - 用东亚语言画一些东西并检查结果。你有盒子吗?
编辑:显然有些人没有意识到我打算绘制文本,然后让代码检查结果。我不是指人眼球测试!