verschiedene Sprachen unterstützen
Verfasst: 20.04.2014 17:34
Hi Leute,
ich habe mal wieder eine Frage....
Ich schreibe gerade an einem Programm, das recht umfangreich wird. Ich habe es vorgesehen, dass der Benutzer die Sprache ändern kann (multilinguale GUI). ...aber wie mache ich das am besten? Hat jemand so etwas schon mal umgesetzt bzw. gibt es etwas auf das man besonders achten muss?
Ich habe gedacht, dass ich dazu eine XML-Datei erzeuge und darin verschiedene Sprachen speichere. Am Anfang wird es wohl Englisch und Deutsch sein. Das Erstellen und Auslesen dieser Datei stellt kein Problem dar. Interesant wird es, wenn ich die Sprache in der GUI nun ändere.
Statische Gadgets sind recht leicht mit SetGadgetText() umzubenennen. Problematisch wird es für mich z.B. bei Tooltips und Statusmeldungen, die Bedingungsabhängig erzeugt werden. Hier kann ich meiner Meinung nach nur mit Variablen arbeiten, die z.B. den String in der richtigen Sprache enthalten.
Das ist prinzipiell auch möglich, aber ich denke, dass die Lesbarkeit des Quellcodes stark abnimmt.
so wäre z.B. mein derzeitiger Code:
wenn ich die Sprachen in eine Struktur speichere, dann könnte ich so etwas machen:
bzw so:
Ist ein solches vorgehen sinnvoll? Aktuell habe ich ca. 220 Strings. Am Ende werden es ca. 800-1000 sein.
viele Grüße,
SBond
ich habe mal wieder eine Frage....
Ich schreibe gerade an einem Programm, das recht umfangreich wird. Ich habe es vorgesehen, dass der Benutzer die Sprache ändern kann (multilinguale GUI). ...aber wie mache ich das am besten? Hat jemand so etwas schon mal umgesetzt bzw. gibt es etwas auf das man besonders achten muss?
Ich habe gedacht, dass ich dazu eine XML-Datei erzeuge und darin verschiedene Sprachen speichere. Am Anfang wird es wohl Englisch und Deutsch sein. Das Erstellen und Auslesen dieser Datei stellt kein Problem dar. Interesant wird es, wenn ich die Sprache in der GUI nun ändere.
Statische Gadgets sind recht leicht mit SetGadgetText() umzubenennen. Problematisch wird es für mich z.B. bei Tooltips und Statusmeldungen, die Bedingungsabhängig erzeugt werden. Hier kann ich meiner Meinung nach nur mit Variablen arbeiten, die z.B. den String in der richtigen Sprache enthalten.
Das ist prinzipiell auch möglich, aber ich denke, dass die Lesbarkeit des Quellcodes stark abnimmt.
so wäre z.B. mein derzeitiger Code:
Code: Alles auswählen
If iStatus = #NO_ERROR
SetStatustext("Es ist kein Fehler aufgetreten.")
ElseIf iStatus = #ERROR_BUFFER_OVERFLOW
SetStatustext("FEHLER: Ein Pufferüberlauf wurde registriert!")
ElseIf iStatus = #ERROR_CRITICAL_VOLTAGE
SetStatustext("FEHLER: die krittische Spannung wurde erreicht!")
EndIf
wenn ich die Sprachen in eine Struktur speichere, dann könnte ich so etwas machen:
Code: Alles auswählen
If iStatus = #NO_ERROR
SetStatustext(Lang\sNo_Error)
ElseIf iStatus = #ERROR_BUFFER_OVERFLOW
SetStatustext(Lang\sError_Buffer_Overflow)
ElseIf iStatus = #ERROR_CRITICAL_VOLTAGE
SetStatustext(Lang\sError_Crit_Voltage)
EndIf
Code: Alles auswählen
If iStatus = #NO_ERROR: SetStatustext(Lang\sNo_Error) ; Es ist kein Fehler aufgetreten.
ElseIf iStatus = #ERROR_BUFFER_OVERFLOW: SetStatustext(Lang\sError_Buffer_Overflow) ; FEHLER: Ein Pufferüberlauf wurde registriert!
ElseIf iStatus = #ERROR_CRITICAL_VOLTAGE: SetStatustext(Lang\sError_Crit_Voltage) ; FEHLER: die krittische Spannung wurde erreicht!
EndIf
Ist ein solches vorgehen sinnvoll? Aktuell habe ich ca. 220 Strings. Am Ende werden es ca. 800-1000 sein.
viele Grüße,
SBond