检测操作系统语言并提供不同的语言下拉菜单



我有一个小应用程序来更新Active Directory中用户的详细信息。该应用程序在英语中工作正常。但我现在想修改它,开始为法语、意大利语和德语用户使用它。因此,我希望能够检测操作系统语言,然后提供这些语言的现有下拉选项。我可能还应该将选择框和输入框标签翻译成这些语言。

我想一旦我检测到操作系统,我就可以将选择选项设置为变量,即如果语言 = EN,则 select1 = English_Option1...否则如果语言 = FR,则选择1 = French_Option1等

使用 VB.NET/Visual Studio 2012 和面向 .NET 3.5 框架的应用进行操作系统检测的最佳方法是什么?

您可以使用

Thread.CurrentThread.CurrentCulture.Name获取语言的代码,例如:

  • 法语: fr-FR
  • 德语: de-DE
  • 西班牙语: es-ES

您可能希望在应用程序首次启动时显示"选择语言"表单,让它自动突出显示操作系统的语言。

所有语言的一个表单就足够了,但是,为每种支持的语言创建一个语言可能是一个想法。

大多数主要程序(通常是游戏)使用语言包,并引用单词或句子,如@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

最新更新