Die Community zu .NET und Classic VB.
Menü

Tipp-Upload: VB.NET 0106: Lokalisierung

 von 

Hinweis zum Tippvorschlag  

Dieser Vorschlag wurde noch nicht auf Sinn und Inhalt überprüft und die Zip-Datei wurde noch nicht auf schädlichen Inhalt hin untersucht.
Bitte haben Sie ein wenig Geduld, bis die Freigabe erfolgt.

Über den Tipp  

Dieser Tippvorschlag ist noch unbewertet.

Der Vorschlag ist in den folgenden Kategorien zu finden:

  • Sprachmerkmale

Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
Lokalisierung,sprachen, Kultur,cultureinfo,globalisation

Der Vorschlag wurde erstellt am: 17.09.2007 02:23.
Die letzte Aktualisierung erfolgte am 04.07.2008 17:40.

Zurück zur Übersicht

Beschreibung  

Das Entwickeln eine mehrsprachigen Anwendung ist eine grundlegende konzeptionelle Entscheidung.
Die Auswirkungen der Lokalisierung erstrecken sich nicht nur auf die Beschriftung von Controls, sondern auch auf Sortierreihenfolgen, Zahlen-Formatierung, Datum-Formatierung, Kalender-Einstellung und weitere.
Beispielsweise dürfte es einen englischen Kunden leicht verärgern, wenn seine Anwendung zwar englisch beschriftet ist, aber bei Zahlen-Eingaben das (deutschland-übliche) Komma als Dezimal-Trenner erwartet.
Daher sollte man sich umfassend in der MSDN über den Begriff "Lokalisierung" informieren, und die vorgesehene reichhaltige Unterstützung verwenden (und gründlich testen).
Bei konsequenter Umsetzung der vorgesehenen Konzepte ist es möglich, die Anwendung durchgehend in der Standard-Kultur (weiter-) zu entwickeln, und nachträglich die Unterstützung verschiedener Kulturen "dranzupatchen".

Hier wird nur der kleine Ausschnitt gezeigt, wie Beschriftung und Layout eines Forms im Designer kulturabhängig gestaltet werden können:
Man setzt einfach die .Localizable-Property des Forms auf True, und wählt dann die Sprache (.Language-Property), die unterstützt werden soll.
Anschließend gestaltet man die Controls der Ziel-Kultur entsprechend.
Gezeigt wird auch das "Culture-Fallback"-Feature: Existiert etwa für ein Control der belgischen Auslieferung keine explizit belgische Gestaltung, wird nach einer Gestaltung in der übergeordneten Kultur gesucht (hier: französisch).

Schwierigkeitsgrad

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

Download:

Download des Beispielprojektes [20,74 KB]

' Dieser Source stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!
'
' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird.
' In den Zip-Dateien ist er jedoch zu finden.

' ----------- Anfang Projektgruppe MultiSpeach.sln -----------
' ---------- Anfang Projektdatei MultiSpeach.vbproj ----------
' ------------ Anfang Datei frmChooseLanguage.vb  ------------
Imports System.Globalization

Public Class frmChooseLanguage

    ' angeboten werden die Standard-Kultur, Englisch-amerikanisch (welches aber nicht
    ' unterstützt wird) Französisch-neutral, sowie alle Französisch-Kultur-Ableger
    Private Sub frmChoosLanguage_Load(ByVal sender As Object, ByVal e As EventArgs) Handles _
        MyBase.Load

        Me.ListBox1.Items.Add(CultureInfo.CurrentUICulture.Name)

        Dim US As CultureInfo = CultureInfo.GetCultureInfo("en-US")

        Me.ListBox1.Items.Add(US.Name)

        Dim Fr As CultureInfo = CultureInfo.GetCultureInfo("fr")

        Me.ListBox1.Items.Add(Fr.Name)

        For Each Clt As CultureInfo In CultureInfo.GetCultures(CultureTypes.FrameworkCultures)

            If Clt.Parent.Name = Fr.Name Then
                Me.ListBox1.Items.Add(Clt.Name)
            End If

        Next

    End Sub

    Private Sub btOpenLocalized_Click(ByVal sender As Object, ByVal e As EventArgs) Handles _
        btOpenLocalized.Click

        Dim Target As String = TryCast(ListBox1.SelectedItem, String)

        If Target Is Nothing Then
            MsgBox("keine Kultur angewählt")

        Else

            ' um die Wirkung der Lokalisierung sichtbar zu machen, muß die
            ' User-Interface-Kultur entsprechend eingestellt sein, bevor das Form gezeigt
            ' wird
            My.Application.ChangeUICulture(Target)

            Call (New frmMultiSpeach).Show()

        End If

    End Sub

End Class

' ------------- Ende Datei frmChooseLanguage.vb  -------------
' -------------- Anfang Datei frmMultiSpeach.vb --------------
Public Class frmMultiSpeach

    ' kein Code - alles im Designer erstellt
    ' Beachten Sie, daß auch Position und Docking z.T. kulturspezifisch gestaltet ist
End Class

' --------------- Ende Datei frmMultiSpeach.vb ---------------
' ----------- Ende Projektdatei MultiSpeach.vbproj -----------
' ------------ Ende Projektgruppe MultiSpeach.sln ------------

	

Diskussion  

Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.

Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.