PureBoard
https://www.purebasic.fr/german/

Multilanguage Programm, wann und wie?
https://www.purebasic.fr/german/viewtopic.php?f=3&t=49
Seite 1 von 1

Autor:  Ynnus [ 04.09.2004 18:55 ]
Betreff des Beitrags:  Multilanguage Programm, wann und wie?

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

Autor:  orange-blue [ 04.09.2004 23:27 ]
Betreff des Beitrags: 

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.

Autor:  DarkDragon [ 05.09.2004 08:56 ]
Betreff des Beitrags: 

Mit nem Array mach ich das auch in meinem 3Sprachigen Mesheditor. Funzt super.

Autor:  GPI [ 05.09.2004 15:16 ]
Betreff des Beitrags: 

Nimm ein 1-Dimensionales Array, wo jeder Satz vorkommt.

Statt
Code:
Textgadget(#Hallo,0,0,20,20,"Hallo")

nimmst du einfach
Code:
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:
Datei XYZ exestiert schon

dann in der Language-Datei:
Code:
Datei %1 exestiert schon


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

Autor:  Ynnus [ 05.09.2004 18:44 ]
Betreff des Beitrags: 

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

Autor:  GPI [ 05.09.2004 18:58 ]
Betreff des Beitrags: 

Von anfang an eingeplant. Unter anderen, weil IDE das auch so macht.

Autor:  CNESM [ 08.09.2004 18:01 ]
Betreff des Beitrags: 

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.

Autor:  GPI [ 08.09.2004 19:50 ]
Betreff des Beitrags: 

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:
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.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/