Anhand der Stringtable.csv könnt ihr eure Missionen mehrsprachig übersetzen und so der internationalen Community eure Szenarien anbieten. Alle Texte die in einer Mission geschrieben wurden, werden in der Stringtable.csv als sogenannte Strings hinterlegt und im Spiel mit dem Localize-Befehl abgerufen.
Das geht folgendermasen:
Statt dass Du bei den Funksprüchen, Actionmenüeinträgen, Texten oder oder dergleichen immer den deutschen Text eintippst, schreibst du dort einfach nur einen "Stringn-Namen" rein. ArmA sucht dann in der stringtable.csv nach dem Stringn-Namen und lokalisiert dann den Text in der entsprechenden Sprache, der in der csv von Dir definiert wurde.
Lass uns eine Stringtable.csv schreiben:
Du nimmst den normalen Texteditor und erstellst eine Datei und speicherst sie als stringtable.csv. Als allererste Zeile in einer csv steht immer, welche Sprachen die Mission unterstützt. In unserem Beispiel jetzt nur Deutsch und Englisch.
Das sieht dann so aus:
LANGUAGE, ENGLISH, GERMAN
Wir schreiben immer ENGLISH als erste Sprache, so wird ArmA den englischen Text ausgeben, wenn ein Spieler der deine Mission spielt, zum Beispiel eine spanische Version von ArmA hat. Da englisch nunmal eine globale Sprache ist, versteht ein Spanier oder Franzose eher englisch als deutsch. Du kannst es natürlich noch um SPANISH, FRENCH, POLISH usw. erweitern.
In den folgenden Zeilen schreiben wir nun die nötigen Stringnamen für jeden zu übersetzenden Text rein. Gewöhnt euch eine klare Struktur im Umgang mit Stringnamen an, so behaltet ihr den Überblick und könnt so leichter eine Stringtable für eure nächste Mission übernehmen.
Hier mal Beispiele für Stringnamen wie ich sie zum Beispiel nutze. Ihr könnt natürlich beliebige Namen oder Buchstaben eingeben, so wie ihr am besten zurecht kommt.
STR_HINT: Hint-Texte
STR_CUT: Cut-Texte
STR_RADIO: Funktexte
STR_WPX: Texte in Wegpunkten
STR_TRX: Texte in Auslösern
STR_MARK: Texte in Markern
Und dann folgt die Übersetzung des Textes in die unterstützten Sprachen.
Das sieht dann so aus:
LANGUAGE, ENGLISH, GERMAN
STR_HINT_01,"You have new orders","Sie haben neue Befehle"
STR_HINT_02,"Go back back to base","Kehren sie zur Basis zurück"
STR_MARK_01,"Enemy camp","Feindliches Lager"
STR_TRX_01,"Be quiet!","Seid leise!"
STR_WPX_01,"Wait here","Wartet hier"
Somit tragt ihr alles an Texten aus eurer Mission ein und übersetzt sie entsprechend.
Achtet darauf, dass ihr kein Komma (,) und keine Gänsefüsschen (") vergesst. Denn sonst wird der entsprechende Text nicht übersetzt. Besser gesagt, er wird nicht im Spiel angezeigt.
Wie ihr jetzt einen Text in einem Script, Wegpunkt, Auslöser oder Marker in Zusammenarbeit mit der CSV aufruft, zeige ich euch nun an diesen Beispielen.
Einen Cuttext aufrufen:
Statt...
CutText ["Alle Panzer wurden zerstört","Plain Down"];
Jetzt...
CutText [localize "STR_CUT_05","Plain Down"];
Hier wird ArmA in der CSV den Stringnamen STR_CUT_05 suchen und lokalisieren, dann den Text entsprechend übersetzen und ausgeben. Ganz einfach. ;-)
Hinweis:
Die Zahlen z.B bei STR_CUT_07 bezieht sich auf einen Durchnummerierung der Cuttexte in der CSV. In diesem Beispiel also der 7te.
Einen Hint-Text aufrufen:
Statt...
hint "Sie haben das erste Ziel erreicht";
Jetzt...
hintLocalize "STR_HINT_07";
Einen Funktext aufrufen:
Statt...
Player sidechat"Bitten um Unterstützung. Wir werden beschossen";
Jetzt...
Player sidechatLocalize "STR_RADIO_03";
oder...
Player groupchatLocalize "STR_RADIO_02";
oder...
[west,"HQ"] sidechatLocalize "STR_RADIO_04";
Einen Text im Auslöser, Wegpunkt oder Marker aufrufen:
In diesem Beispiel gebt ihr also in einem Auslöser statt dem Text einfach den Aufruf zum entsprechendem Stringnamen in der CSV. Hier also der STR_TRX_03, der mit @STR_TRX_03 aufgerufen wird.
Statt...
Die Fahrzeuge nähern sich eurer Position!;
Jetzt...
@STR_TRX_03
oder...
@STR_WPX_02
oder...
@STR_MARK_01
Einen onLoadMission Text aufrufen:
In der Description.ext eurer Mission könnt ihr einen sogenannten onLoadMission Text angeben, welcher beim Laden der Mission im Spiel eingeblendet wird. Oder einen onLoadIntro Text, welcher beim Laden des Missionsintros eingeblendet wird. (Einleitung)
Hier ein Beispiel einer Mission aus meiner Special Operations Kampagne.
Statt...
onLoadMission = D E I N T E X T
jetzt...
onLoadMission = @STR_M01_onLoad;
in der CSV dann...
STR_M01_OnLoad,"O P E R A T I O N B A J O","O P E R A T I O N B A J O"
Einen Actionmenü Eintrag aufrufen:
Statt...
player addAction ["Rucksack öffnen","scriptname.sqs"];
jetzt...
player addAction [Localize "STR_PARA_01","scriptname.sqs"];
Zum Abschluss noch ein Beispiel einer fertigen Stringtable.csv:
Geschrieben von Imutep
am 09.04.2009 20:23 ·
1 Kommentar ·
2699 gelesen ·