Seite 1 von 1

Multilanguage Programm, wann und wie?

Verfasst: 04.09.2004 18:55
von Ynnus
Hallöchen,

ich beschäftige mich derzeit mit dem Thema, ein Programm mehrsprachig zu machen. Dabei stellt sich die Frage, wann man am besten damit anfängt. Und wie genau das am besten gemacht wird. Also geplant ist eine Auswahl von 2 oder mehreren Sprachen innerhalb des Programmes. Ich dachte da so an eine Linked List in welche die Sprach-Strings der aktuellen Sprache eingeladen werden. Dann wird beim Erstellen der Gadgets einfach das jeweilige Element im der LL angesprochen und der Text wird dargestellt.
Die Frage ist nun, ist dies eine Sinnvolle Methode oder sollte man dafür lieber ein Array verwenden? Oder könnte man es noch ganz anders machen?

Und wann sollte man damit beginnen? Mein Projekt ist zwar schon recht weit fortgeschritten, existiert schon ca. 7 Monate, allerdings ändern sich die Gadgets und die Fenster schon noch teilsweise mal wieder. Ist es da überhaupt sinnvoll, eine 2Sprachige Einstellung einzubauen, solange noch nicht alles nahezu fertig ist?
Wie sind da eure Erfahrungen mit mehrsprachigen Programmen?

mfg.

Sunny

Verfasst: 04.09.2004 23:27
von orange-blue
Ich würde alles in ein array speichern, da du sowieso nur eine bestimmte anzahl an texten hast, und alle texte ind eine Textdatei speichern, so kannst du auch noch mehr Sprachen einfügen. Dadurch kannst auch konstanten anlegen die den Index des Textes speichern, das sorg auf jeden fall für mehr Übersicht.
Anfangen würde ich erst zum Schluß damit.

Verfasst: 05.09.2004 08:56
von DarkDragon
Mit nem Array mach ich das auch in meinem 3Sprachigen Mesheditor. Funzt super.

Verfasst: 05.09.2004 15:16
von GPI
Nimm ein 1-Dimensionales Array, wo jeder Satz vorkommt.

Statt

Code: Alles auswählen

Textgadget(#Hallo,0,0,20,20,"Hallo")
nimmst du einfach

Code: Alles auswählen

Textgadget(#hallo,0,0,20,20,language$(0));"Hallo"
Fülle das Array mit der gewünschten Sprachdatei (am besten eine Ascii-Datei. Jede Zeile ein Language$()). So kannst du beliebig viele Sprachdateien ausliefern. Wechselt der Benutzer die Sprache, einfach das Language$() Array neu einlesen.

Tip: Wenn du sowas brauchst:

Code: Alles auswählen

Datei XYZ exestiert schon
dann in der Language-Datei:

Code: Alles auswählen

Datei %1 exestiert schon
Und bei bedarf das %1 mit ReplaceString() ersetzen.

Verfasst: 05.09.2004 18:44
von Ynnus
Danke für die Tipps... Öhm, GPI, wann hast du denn deine Sprachunterstütung eingebaut? Irgendwann mittendrinne, oder erst später? Irgendwann müsste ich auch mal damit anfangen, frag mich nur wann der richtige Zeitpunkt dafür ist

Verfasst: 05.09.2004 18:58
von GPI
Von anfang an eingeplant. Unter anderen, weil IDE das auch so macht.

Verfasst: 08.09.2004 18:01
von CNESM
Hi,

ich hab das mit .ini Dateien gemacht, Macht es einfacher neue Sprachdateien einzufügen und bestehende zu Verbessern.

Einfach ne.ini erstellen, folgende Texte reinschreiben:

[Programmname]
Text.01=Herzlich Willkommen
Text.02=DADADADADADAD
....

und dann mit deinen Programm und der entsprechenden API [Programmname] Text.01 ansprechen.

Verfasst: 08.09.2004 19:50
von GPI
Ich habs ähnlich gemacht.

allerdings so:
Ich lese eine Zeile ein.
Wenn sie mit ";" beginnt ist es ein kommentar und wird ignoriert.
ansonsten wird nach einen ":" gesucht. Links davon steht eine Nummer (mittels VAL ausgewertet) und rechts davon der Text.
bzw.:

Code: Alles auswählen

12:Abbruch
Wenn man sein Programm erweitert, erweitert man bsw. die Menüs. Die neuen Sprachfetzen erhalten ja höhere Nummern. So kann man den neuen Fetzen logisch in der Sprachdatei sortieren und nicht nach erstellung.