如何从FileVersionInfo获取基于ISO的语言字符串?

时间:2015-06-24 09:51:02

标签: vb.net winforms vb.net-2010

我在VB.net 2010中有一个Windows窗体,需要读取远程.exe的语言字符串。

通常,这可以通过

完成
oFileInfo = FileVersionInfo.GetVersionInfo("path to .exe here")
Dim sMyLanguage = oFileInfo.Language

不幸的是,这将在德国Windows上返回类似“englisch”,“französisch”的内容,对我来说绝对没用。

最好的是基于ISO的代码,如EN,DE,FR等。另一个唯一的标识符,如代码页编号或类似的东西也可以。

System.Globalization似乎也没有将语言字符串映射到有用的东西。

任何想法如何从我的操作系统语言中解除这种语言识别?目前,我的想法是使用.csv文件,其中包含三个翻译,听起来不合适。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案:

在System.Globalization中,没有相当直接的映射,但是在https://msdn.microsoft.com/de-de/library/system.globalization.cultureinfo.lcid(v=vs.110).aspx中只列出了大约140种语言,因此我创建了一个带有文化ID的.csv文件并返回字符串并通过它循环用一个简单的For循环。

func setUpForm() {
    presentViewController(form, animated: true, completion: nil)
}

毫无疑问,这可能不是最好的解决方案。但是在我的测试中,它有很高的击中率,所以这对我来说已经足够了。