Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Was heisst genau mehrere Sprachen hinterlegen? Multilinguale Menus? Wenn ja, dann würden das am besten IMHO INI-Dateien passen. Also zum Beispiel:

- deusch.ini

- english.ini

Der Aufbau wäre folgender:

english.ini

[bezeichner]

Beenden=Quit

Hilfe=Help

Laden=Load

Speichern=Save

Sprache=Language

deusch.ini

[bezeichner]

Beenden=Beenden

Hilfe=Hilfe

Laden=Laden

Speichern=Speichern

Sprache=Sprache

Dann könnte der Benutzer eine Sprache auswählen und Du würdest dann die Bezeichner(Captions) für die Objekte aus den INI-Dateien holen.

Geschrieben

So könnte es gehen. Habe noch ein Menu genommen. Mit "mein Programm" -> "Beenden" und "Sprache" -> "deutsch" und "englisch"


Option Explicit

Dim arrDeutsch(1 To 7) As String

Dim arrEnglish(1 To 7) As String


Private Sub Form_Load()

    erzeuge_deutsch

    erzeuge_english

End Sub


Private Sub erzeuge_deutsch()

    arrDeutsch(1) = "mein Programm"

    arrDeutsch(2) = "Beenden"

    arrDeutsch(3) = "Sprache"

    arrDeutsch(4) = "deutsch"

    arrDeutsch(5) = "englisch"

    arrDeutsch(6) = "deutsche Bezeichnung"

    arrDeutsch(7) = "deutscher Button"

End Sub


Private Sub erzeuge_english()

    arrEnglish(1) = "my programm"

    arrEnglish(2) = "Quit"

    arrEnglish(3) = "Language"

    arrEnglish(4) = "german"

    arrEnglish(5) = "english"

    arrEnglish(6) = "english Caption"

    arrEnglish(7) = "english Button"

End Sub


Private Sub mache_deutsch()

    mmMeinProgramm.Caption = arrDeutsch(1)

    mmMeinProgrammBeenden.Caption = arrDeutsch(2)

    mmSprache.Caption = arrDeutsch(3)

    mmSpracheDeutsch.Caption = arrDeutsch(4)

    mmSpracheEnglisch.Caption = arrDeutsch(5)

    Label1.Caption = arrDeutsch(6)

    Command1.Caption = arrDeutsch(7)

End Sub


Private Sub mache_englisch()

    mmMeinProgramm.Caption = arrEnglish(1)

    mmMeinProgrammBeenden.Caption = arrEnglish(2)

    mmSprache.Caption = arrEnglish(3)

    mmSpracheDeutsch.Caption = arrEnglish(4)

    mmSpracheEnglisch.Caption = arrEnglish(5)

    Label1.Caption = arrEnglish(6)

    Command1.Caption = arrEnglish(7)

End Sub


Private Sub mmSpracheDeutsch_Click()

    mache_deutsch

End Sub


Private Sub mmSpracheEnglisch_Click()

    mache_englisch

End Sub

Geschrieben

Dann brauchst Du eine globale Variable in der die Sprache hinterlegt ist.


Option Explicit

'Einfach nur einen Button "Command1" auf der Form platzieren

Dim arrEnglish(1 To 2) As String

Dim arrDeutsch(1 To 2) As String

Dim strSprache As String


Private Sub Command1_Click()

'Ausgabe einer Messagebox in der jeweiligen Sprache,

'außerdem Switch von Deutsch auf Englisch und umgekehrt

Select Case strSprache

    Case "deutsch"

        mache_deutsch

        MsgBox arrDeutsch(2)

    Case "english"

        mache_englisch

        MsgBox arrEnglish(2)

End Select

    If strSprache = "deutsch" Then strSprache = "english" Else strSprache = "deutsch"

End Sub


Private Sub Form_Load()

    strSprache = "deutsch"

    arrEnglish(1) = "push me"

    arrEnglish(2) = "this is an english message"

    arrDeutsch(1) = "drück mich"

    arrDeutsch(2) = "Dies ist eine deutsche Nachricht"

End Sub


Private Sub mache_deutsch()

    Command1.Caption = arrDeutsch(1)

End Sub


Private Sub mache_englisch()

    Command1.Caption = arrEnglish(1)

End Sub

[Nachtrag]:Du könntest Dir auch ein Array mit der aktuell verwendeten Sprache erstellen und je nach Benutzereingabe dementspreches Array in das "arrAktuell" kopieren.

Geschrieben

Du kannst die globalen Variablen in einem Modul public deklarieren


'modMeinModul.bas

Option Explicit


public strMeineVariable as String

...

und dann auf diese Variable von jedem Punkt Deines Projektes aus vollqualifiziert zugreifen.

...

'Zugriff von einem beliebigen Punkt

msgbox modMeinModul.strMeineVariable

...

Geschrieben

Hi!

Das einfachste ist, wenn du dir entspechende Klassen anlegst, in der die ganzen Sprachschlüsel hinterlegt sind.

Je nachdem was der benutzer auswählt, instanziert du dann die entsprechende Klasse. Ist nebenbei auch noch "hübscher" als INIs.

Geschrieben

Ja, aber IMHO kann man in den INIs besser rumfummeln. Eventuell kann man auch über Registryeinträge nachdenken. Hätte auch den Vorteil, das man ein bereits kompiliertes Programm durch das Hinzufügen neuer INIs/Registryeinträge um weitere Sprachen erweitern kann, ohne den Compiler zu bemühen. Z.B. spanisch.ini, italienisch.ini, etc.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...