Multilanguagesupport

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Axe

Betreff: Multilanguagesupport

BeitragMi, Apr 25, 2007 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
ich habe vor für ein Spiel eine Unterstützung für mehrere Sprachen zu proggen. Insbesondere Englisch. Wie ich das im Programmcode mache ist ja nicht so schwer. Vielmehr mache ich mir um das Abspeichern der Übersetzungen Gedanken.
Es sollte ja schon so sein, dass die Daten nicht fest im Programme drinne sind.

Deshalb meine Frage: Welchen Aufbau würde ihr für eine solche Sprachdatei vorschlagen?

Ich habe schon mal über INI und XML nachgedacht. XML passt jedoch nicht wirklich zum Aufbau der Daten. Bei INI bin ich nicht sicher wie man den Aufbau konkret machen soll. { deutscher Ausdruck= englischer Ausdruck ?}

Zu beachten ist auch, dass auch Kommentare in den Daten erlaubt sein sollten (also keine einfache Zeile für Zeile Lösung).

MfG Axe
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

BladeRunner

Moderator

BeitragMi, Apr 25, 2007 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wäre es mit einem eigenständigen Format ?
Du könntest ja jeden neuen Eintrag mit einem Bestimmten Zeichen Starten lassen, und dann sequentiell die einzelnen Einträge abrufen.
Kommentare könnten mit einem anderen Zeichen gekennzeichnet werden.
Dazu noch eine Kennung ab wann die einzelne Sprache folgt (oder aber du legst einen Subordner an und alle files mit der Endung deines Formates werden als Sprachdateien angenommen.

Beispiel:
Zitat:
#Deutsch#
*Dies ist das erste Textfeld. Es ist recht lange.
Und in Mehreren Zeilen.
*Hier beginnt der 2e Eintrag.
<Ich bin ein Kommentar>
*das dritte<,vom kommentar unterbrochene> Feld
#English#
*This ist the first piece of text. It is quite long.
And takes several lines.
*Here the second entry has its start.
<Hi, it's me, the comment>
*third field <comment is later here>


Was Du halt tun musst ist einen Parser schreiben der Dir diese Zeilen ausliesst.

Wenn Du nicht alles in ein File machen willst wäre halt der 2e Ansatz von oben interessant:

Deutsch.lng hat Folgendes geschrieben:

*Dies ist das erste Textfeld. Es ist recht lange.
Und in Mehreren Zeilen.
*Hier beginnt der 2e Eintrag.
<Ich bin ein Kommentar>
*das dritte<,vom kommentar unterbrochene> Feld

English.lng hat Folgendes geschrieben:
*This ist the first piece of text. It is quite long.
And takes several lines.
*Here the second entry has its start.
<Hi, it's me, the comment>
*third field <comment is later here>


Du solltest Dir dann eine Funktion schreiben die dir den Text anhand der 'seriennummer ausgibt, also

txt$ = Get_local(nummer,Sprache$)

Beispiel:
Txt = Get_local(2,"Deutsch")
ergäbe:
Hier beginnt der 2e Eintrag.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Apr 25, 2007 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Programmtechnisch am einfachsten ist es, einfach eine Textdatei zu erstellen und in dieser Zeile pro Zeile in jeweiliger Sprache den Text eintragen. Jede Zielenposition entspricht dann denn sinngemässen Inhalt.

Beispiel: english.lng

English
load game
save game
options
exit

Beispiel: german.lng

German
Spiel laden
Spiel speichern
Optionen
Beenden

Bei aussuchen der Sprache, werden alle .lng -Dateien eingelesen und die jeweils erste Zeile in eine, vom User auszuwählende, Tabelle eingetragen. Hat der User eine Sprache sich ausgesucht, wird der gesamte Inhalt in ein Array$ eingelesen, aus welchem später im Spiel nur noch ausgelesen wird.

zB: Text 100,100,lng$(13)+" :"+punke

Natürlich ist eine INI-Datei weniger Fehleranfällig beim erstellen einer Sprachdatei, hat aber ein etwas höheren Programmieraufwand. Für mein Spiel hab ich mich für die erste Methode entschieden.

edit1: So wie Bladerunner es beschrieben hat, gehts natürlich auch sehr gut.
  • Zuletzt bearbeitet von hectic am Mi, Apr 25, 2007 17:16, insgesamt einmal bearbeitet

Axe

BeitragMi, Apr 25, 2007 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, danke für die Ratschläge. Ich werde dann ein eigenes Format nehmen. So ähnlich wie du es vorgeschlagen hast. Das mit der Übersetzungsfkt werde ich vlt etwas anders machen, aber der Ansatz ist gut.
Großes Danke!

Mfg Axe
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group