我有一个小应用程序来更新Active Directory中用户的详细信息。该应用程序在英语中运行良好。但我现在想要修改它以开始将它用于法语,意大利语和德国用户。因此,我希望能够检测操作系统语言,然后提供这些语言的现有下拉选项。我可能也应该翻译选择框&将框标签输入这些语言。
我认为一旦我检测到操作系统,我就可以将选项设置为变量,即如果language = EN,则select1 = English_Option1 ... elseif language = FR,则select1 = French_Option1等
使用VB.NET / Visual Studio 2012进行操作系统检测的最佳方法是什么,应用程序针对.NET 3.5框架?
答案 0 :(得分:2)
您可以使用Thread.CurrentThread.CurrentCulture.Name
获取语言代码,例如:
fr-FR
de-DE
es-ES
您可能希望在应用程序第一次启动时显示“选择语言”表单,但是会自动突出显示操作系统的语言。
所有语言的一种形式应该足够,但是为每种支持的语言创建语言 class 可能是个主意。
大多数主要程序(通常是游戏)使用语言包,并引用@m_Welcome
之类的单词或句子;这些变量完全取决于操作系统的语言。
你可能想要类似的东西:
Private m_Start As String
Private m_helloMessage As String 'We obviously want to declare this first so it can be accessed.
Private Sub SetLanguagePack()
Select Case (Thread.CurrentThread.CurrentCulture.Name)
Case "fr-FR"
m_helloMessage = "Bonjour là, accueillir." 'Hello there, welcome.
m_Start = "Cliquez ici pour commencer." 'Click here to start.
Return
Case "de-DE"
m_helloMessage = "Hallo, willkommen."
m_Start = "Klicken Sie hier um zu starten"
Return
End Select
'If the OS' language isn't supported, then default to English.
m_helloMessage = "Hello there, welcome."
m_Start = "Click here to start."
End Sub
请注意,您还需要使用Imports System.Threading
导入System.Threading命名空间才能访问Thread.CurrentThread.CurrentCulture.Name
。