mehrsprachiges Programm
-
Hi Leute,
wie realisere ich am einfachsten ein mehrsprachiges programm. Und zwar so dass ich im laufenden Betrieb des Programms die Sprache ändern kann?
hab nämlich zur Zeit schon ein Programm auf Deutsch und nun soll es englisch, französisch und italienisch lernen.
mfg
Tom
-
Eine Möglichkeit ist, das du alle Texte die übersetz werden sollen in eien datenbank oder datei speicherst und je nach dem welche sprache gewählt wird diese Texte auf die Entspechenden objekte setzt.
-
ja schön und gut, nur wie sieht dann der Aufruf oder der Platzhalter für diesen Text im Programm aus? ich muss ja da auch irgendwas hinterlegen, eine Art definition, die dann je nach ausgewählter Sprache den richtigen Text anzeigt.
Wie wird das professionell gelöst?
mfg
Tom
-
sehr einfach zB ein Ini-File:
[Deutsch] Text1=Hallo, das ist Text1 [English] Text1=Hello, this is Text1oder ähnlich
-
ok, das würde also heißen Text1 ist dann das Synonym für den Text im Quellcode, Labels usw. und der wirkliche Text ist dann "TEXTblablabla" und mit den [Deutsch] und [Englisch] absätzen unterteile ich das, nur wie rufe ich dass dan auf?
kannst du mir da mal kurz helfen?
mfg
-
-> BCB-Hilfe -> TIniFile
-
ok, thx.
schau ich mir gleich mal an.
Aber noch mal zurück zu der Datenbanklösung, wäre diese nicht professioneller und zukunftssicherer und komfortabler zu warten?
mfg
-
Hallo,
Ich glaube nicht, dass eine Datenbanklösung professioneller wirkt. Bei den meisten mir bekannten Programmen, wird das auch nicht mit Hilfe einer Datenbank gelöst. Du hättest dann ja einen recht großen Overhead in deinem Programm, da du ja immer die Datenbank mitliefern und bei Bedarf den Server mit installieren müsstest.
Eine Datenbank als Hilfe bei der Erstellung deiner Übersetzungsdateien ist da eher praktikabel.
Ich persönlich bevorzuge Stringressourcen in dlls statt ini-Dateien zur Internationalisierung. Allerdings habe ich bei mir auch nicht vorgesehen, dass der Nutzer zur Laufzeit die Sprache umstellen kann. Ich sehe auch keinen Sinn darin.
BCB5 und 6 haben da auch einen Ressourcen-Dll-Experten zur Hilfe dabe mit drin. Ich habe den aber noch nie benutzt, so dass ich dazu nichts sagen kann.
-
Wie soll ich den folgenden Satz genau verstehen?
Eine Datenbank als Hilfe bei der Erstellung deiner Übersetzungsdateien ist da eher praktikabel.meinst du dass ich die ganze Strings einer Sprache in eine Datenbank gebe und dann über die DLL rauslese? Denn die Lösung mit der DLL klingt ganz interessant, hast du da ein Tutorial dafür und kann ich in die DLL auch z.B.: Anlagendaten zur Laufzeit reinschreiben lassen?
mfg
-
Hallo,
ich habe vor einigen Jahren ein eigenes System ausgetüftelt, das Deinen Ansprüchen genügt. Die Texte sind in einfachen Textdateien (Ini-Dateien) ausgelagert, und können während der Laufzeit gewechselt werden. Zusätzlich werden gewisse Funktionen von TMainMenu überschrieben, damit z.B. das Kürzel "Strg" zu "Ctrl" wird.
Link zum Programm:
http://www.teachmaster.deFalls Dir die Technik zusagt, kann ich Dir gerne nähere Infos geben (müsste die erst zusammenschreiben).
Stefan
-
Mit der Datenbank als Hilfe meine ich, dass du eine Datenbank mit allen Strings und den Sprachen, als Hilfe beim Programmieren verwenden kannst. Ein passendes Frontend könnte dann aus dieser Datenbank die nötigen Dateien generieren (.rc und .h).
Zu Resourcen dlls steht auch was in der BCB-Hilfe.