Variable anwenden!

Xervek

Mitglied
Hallo,

mal wieder nen kleines Problem. Nehmen wir mal an, wir haben ein Programm mit 3 Button. Diese 3 Buttons haben folgende Namen
"cmd_german"; "cmd_english"; "cmd_close";

Beim Klick auf den "German" Button möchte ich nun, dass der "cmd_close" button "Beenden" anzeigt. Beim Klick auf "cmd_english" möchte ich, dass er mir "Close" anzeigt. Theoretisch einfach, praktisch würde ich das ganze aber gerne so umsetzten, dass es 2 Sprachdateien gibt welche sich "german.lng" und english.lng" nennen. Einen Weg das ganze Auszulesen und umzusetzten habe ich bereits gefunden, ist nur irgendwie extrem, wirklich saumäßig umständlich wie ich bisher finde. Und zwar mache ich das ganze bisher so:

Dim zeileninhalt(1 To 150) As String

Daraufhin lasse ich die Datei auslesen und speichere den Inhalt in den Strings von 1-150. Dannach kommt beim Button beispielweise "cmd_close.caption = zeileninhalt(65)" Einmal lasse ich den Inhalt (sofern gewünscht) aus einer "german.lng" auslesen, einmal aus einer "english.lng" damit ist es mir möglich ein simples, multilinguales Programm zu schreiben.
Nun möchte ich diese Sprachdatei aber umschreiben. Der Inhalt soll derzeit beispielweise folgender sein:

"cmd_beenden.caption = "Beenden"". Also das in der .lng dieser Inhalt steht. Dannach im Programm einfach in einer Variable speichern und fertig. Soweit so gut, wie WENDE ich diese Variable denn nun aber an? Sicher versteht ihr aber gar nicht, was ich von euch will :)

Nochmal anders, ich habe eine Variable folgenden inhalts "ger = cmd_close.caption = "Beenden"", wie kann ich das jetzt anwenden? Wenn ich einfach die Variable eintrage funktioniert das nicht, mit Load ebenfalls nicht.

Oder besteht eventuell eine noch einfachere, zuverlässigere Möglichkeit, ein Programm mit mehreren Sprachen zu schreiben?

Vielen Dank im Voraus!
 
Hallo, das macht man mit einer Resourcendatei *.res

Die wird in das Projekt mit eingebunden.
Ich habe Dir ein Beispielprojekt angehängt.
Wenn Du bei den Regions- und Sprachoptionen in der Systemsteuerung die Ländereinstellung auf Englisch(USA) oder auf Französisch(Frankreich) änderst, dann ändert sich auch die Beschriftung des Buttons.
 

Anhänge

Hallo,

das sieht ja bereits sehr schön aus, allerdings kann man damit doch nur die Buttons selbst übersetzten, oder? Also angenommen ich habe ein Programm mit einem Label on welches ich einmal schreiben möchte

"Hallo, lange nicht gesehen. Wie du weißt bin ich jetzt grade deutscher."
"Hello, long time we dont see us. You know I am an english man in new york"

Oder wird dieses Programm automatisch mit dem kompletten Inhalt übersetzt?

Wie gesagt, ich habe in diesem Programm mehrere forms in denen ne ganze Menge Text steht welcher aus einer (zwei) Dateien ausgelesen wird und somit 2 Sprachen ermöglicht, hierbei scheint es mir so zu sein, dass es nur mit den Button funktioniert.

Trotzdem danke für die Hilfe schon mal!
 
Hallo,

wow genau soetwas habe ich gesucht. Vielen Dank dafür. Drei Fragen habe ich jetzt aber dennoch zu dem ganzen

Ist es möglich die .res Dateien auch in einen bestimmten Unterordner zu legen und dann auszulesen? Beispielweise habe ich mein Hauptprogramm im Root und möchte nun nen Ordner machen "language" und die .res Files da rein legen, wie lese ich diese dann aus?

Wie binde ich diese Datei denn ein? Ich habe nichts dergleichen gefunden beim "Hinzufügen".

Und jetzt das was ich am Wenigsten verstehe... wie bearbeite ich diese Dateien? Und wovon mache ich es aus ob ich LoadResString(1000) oder LoadResString(5000) wähle?

Generell ist das alles was ich haben möchte nur komme ich damit grade irgendwie gar nicht zurecht.
 
Hallo, klicke in der IDE im Menü mal auf Add-Ins -> Add-In-Manager, wähle den
VB 6 Resoucen-Editor aus. Bei Ladeverhalten markierst Du Laden/Entladen. Jetzt ein Klick auf OK. Im Menü Projekt -> Datei hintzufügen wählst Du die *.res Datei aus.
Bei den Projekteigenschften hast Du jetzt einen Eintrag Verbundene Dokumente.
Da kannst Du die *.res Datei doppelklicken und dann bearbeiten.
Die *.res Dateien werden beim Kompilieren in der *.exe eingebunden. Die brauchst Du nicht mit Deiner Anwendung mitzugeben.
 
Zurück