Sprache über ini
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Alles was du im Spiel an Text hast packst du in die ini und liest die Werte beim Spielstart ein und zeichnest dann diese an den entsprechenden stellen. Wenn du dann eine andere Sprache einbauen willst brauchst du nur die Werte in der ini ändern. Vielleicht hilft dir auch noch dieser Thread weiter: ini dateien ohne den namen öffnen
-

Jede einzelne Textzeile in eine Ini speichern? Zum einen ergibt das beim Einbinden ins Programm mehr Arbeit als nötig, da jeder Eintrag in der Ini einzeln angesprochen werden muss, zum anderen macht das beim Übersetzen mehr Arbeit, wenn man nicht einfach hintereinander weg schreiben kann, sondern auf die Struktur der Ini achten muss.
Ich schlage folgende Alternative vor:
Lege im Arbeitsverzeichnis (also der Ordner, in dem sich die Exe befinden wird) eine Ini und einen Ordner namens "lng" oder so an. Die Ini kann z.B. so aussehen:
Diesen Wert liest du einmal im Spiel aus, und bestimmst dadurch, woher dein Spiel seine Texte beziehen soll.
Kommen wir nun zurück zum Ordner lng. Dieser besteht aus diversen Unterordnern, von denen jeder Dateien in einer anderen Sprache enthält, und die alle wie die Kürzel ihrer Sprache bezeichnet sind; also der Ordner mit den deutschen Texten heißt "de", der mit den englischen "en", der mit lateinischen "lat", und der mit japanischen "jp".
Und jeder dieser Ordner hat Dateien mit dem gleichen Namen, also ein simples "text.txt", wenn du nur wenig Text in deinem Spiel hast, oder aber sowas wie "1.txt", "2.txt", wenn du sowas wie ein RPG machst, mit viel Text, den du aber erst nach und nach benötigst.
Um nun zu entscheiden, wie dein Spiel den Text bezieht, gilt es, abzuwägen, was dir wichtiger ist: Einmal die Textdatei komplett auszulesen, und jede Zeile in eine Liste oder einen Array zu speichern, und diese dann während des Spiels aufzurufen, oder aber immer, wenn Text angezeigt werden soll, die Textdatei zu öffnen, zur entsprechenden Zeile zu springen, und diese direkt auszulesen und anzuzeigen. Ersteres verbraucht viel Speicher, letzteres benötigt viel Arbeitszeit (weswegen man auch größere Mengen Text in mehrere Dateien aufteilen sollte).
So oder so sollte am Anfang des Spiels, einmal der Pfad zu den Sprachdateien bestimmt werden, und in einer globalen Variable gespeichert werden:
Und wenn du nun Text einlesen willst, benutzt du diese Variable, um den Pfad zu einer Datei anzugeben, aus der der Text genommen werden soll.
Wenn du nun im Spiel die Sprache ändern willst, so lass das Spiel den Wert in der Ini ändern, und das Spiel neu starten. Fertig.
-
Wo liegt das Problem alles in einer ini zu speichern? Selbst größere Texte lassen sich doch dort Problemlos in einem Wert speichern indem man einfach ein Trennzeichen für die Zeilenumbrüche benutzt, wie z.b. "#". Ist doch die einfachste Methode weil der GM schon die nötigen Funktionen zum auslesen von Werten bereitstellt. Vielleicht hast du mich auch missverstanden. Schau dir mal mein Achterbahnfahrer an, dort mach ich das genau so.
-
Hm... Denkfehler. Da ich mir mal so eine Methode, wie ich oben beschrieben habe, zurechtgebastelt hatte, war ich gedanklich noch beim Einlesen und Zwischenspeichern des Textes in Variablen, und hab dabei verdrängt, dass man die Schlüssel ja direkt ausgeben kann...

-
-
Benutzer online 3
3 Besucher
