openclonk/docs/sdk/lang.xml

104 lines
4.6 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE doc SYSTEM "../clonk.dtd">
<?xml-stylesheet type="text/xsl" href="../clonk.xsl"?>
<doc>
<title>Sprachanpassung</title>
<h>Sprachanpassung</h>
<part>
<text>Clonk erm<72>glicht es, Unterst<73>tzung f<>r mehrere Sprachen in Objekte und Szenarien zu integrieren.
Dazu k<>nnen jeweils bestimmte Elemente sprachabh<62>ngig <20>berladen werden.</text>
<h>Anpassbare Elemente</h>
<dl>
<dt id="Titletxt"><img src="../images/icon_text.gif" width="16" height="16" />Title.txt</dt>
<dd><text>
Die Komponente <emlink href="scenario/index.html#Titletxt">Title.txt</emlink> kann in Szenarien und Objektordnern verwendet
werden, um den Titel f<>r verschiedene Sprachen zu definieren.
</text>
<text>
In jeder Zeile wird dabei ein Sprachk<68>rzel dem gew<65>nschten Titel vorangestellt. Beispiel:
</text>
<code>DE:Angriff der Killerwipfe
US:Attack of the Killer Wipfs
</code>
<text>
In externen Sprachpaketen sollte an der entsprechenden Verzeichnis-Position eine Komponente Title*.txt stehen (wobei * durch das entsprechende Sprachk<68>rzel ersetzt wird), die dann den Titel f<>r die jeweilige zus<75>tzliche Sprache enthalten kann. Beispiel f<>r den Inhalt einer TitleFR.txt:
</text>
<code>FR:Les wipfes moerderesque attaquent</code>
<text>Ist ein Eintrag f<>r die gew<65>hlte Sprache vorhanden, so wird der Title-Eintrag aus der <emlink href="scenario/scenario.html#SektionHead">Scenario.txt</emlink> durch den entsprechenden Namen <20>berschrieben.</text>
<text>Wichtig: es sollten keine Anf<6E>hrungszeichen oder Sonderzeichen verwendet werden.</text>
</dd>
<dt id="Namestxt"><img src="../images/icon_text.gif" width="16" height="16" />Names.txt</dt>
<dd><text>
Mit der Komponente <emlink href="definition/index.html#Namestxt">Names.txt</emlink> kann der Name eines Objekts f<>r verschiedene
Sprachen definiert werden. Die Funktionsweise der Names.txt gleicht Funktionsweise der der Title.txt.
</text>
<text>
Existiert ein Eintrag f<>r die gew<65>hlte Sprache, so wird die Name-Angabe aus der
<emlink href="definition/defcore.html#SektionDefCore">DefCore.txt</emlink> <20>berschrieben.
</text>
</dd>
<dt id="Desctxt"><img src="../images/icon_text.gif" width="16" height="16" />Desc*.txt / Desc*.rtf</dt>
<dd><text>
Um die Beschreibung einer <emlink href="definition/index.html#Desc__txt">Objektdefinition</emlink> oder eines
<emlink href="scenario/index.html#Desc__rtf">Szenarios</emlink>
sprachabh<62>ngig anzupassen, muss eine Datei Desc*.txt/.rtf im Definitions- bzw. Szenarioverzeichnis vorhanden sein
(* steht dabei wieder f<>r das entsprechende Sprachk<68>rzel, die Komponenten sollte also z.B. DescUS.rtf hei<65>en).
</text>
</dd>
<dt id="Sciptc"><img src="../images/icon_text.gif" width="16" height="16" />Script.c, Teams.txt</dt>
<dd><text>
Um sprachabh<62>ngig Texte in Scripts einzuf<75>gen, kommen sogenannte String Tables
zum Einsatz. Im Script wird dazu, anstatt des Textes ein Verweis auf einen Eintrag einer
solchen String-Tabelle eingef<65>gt. Die Tabelle muss sich im selben Verzeichnis wie das
darauf verweisende Script befinden und den Namen StringTbl*.txt haben (wobei * f<>r den
Sprachcode steht).
</text>
<text>
Der Verweis im Script besteht aus einem Namen f<>r den zu verwendenden String (String-ID),
der mit Dollarzeichen ("$") als ein solcher Stringtabellenverweis gekennzeichnet ist. <br/> Beispiel:
</text>
<code>protected func Activate(pCaller)
{
[$DescActivate$]
<emlink href="script/fn/Message.html">Message</emlink>("$MsgYourPosition$ %d / %d", <emlink href="script/fn/GetX.html">GetX</emlink>(pCaller), <emlink href="script/fn/GetX.html">GetY</emlink>(pCaller));
}</code>
<text>
Hier werden zwei Strings mit den Namen "DescActivate" und "MsgYourPosition" eingebunden.
</text>
<text>
Eine passende StringTblDE.txt (f<>r deutsche Sprache) k<>nnte folgenderma<6D>en aussehen:
</text>
<code># Beschreibungstexte
DescActivate=Position bestimmen
# Nachrichten
MsgYourPosition=Deine Position ist:</code>
<text>
Im Objekt h<>tte also Activate den Beschreibungstext "Position bestimmen" und w<>rde z.B.
die Nachricht "Deine Position ist: 252 / 352" ausgeben. In der Stringtabelle wurden hier zwei
Kommentare eingef<65>gt. Sie beginnen mit einem '#'-Zeichen und werden ignoriert.
</text>
<text>
Zur Vollst<73>ndigkeit - eine passende StringTblUS.txt:
</text>
<code># Description texts
DescActivate=Tell position
# Messages
MsgYourPosition=Your position is:</code>
<text>
Hier w<>rden also z.B. die Nachricht "Your position is: 252 / 352" erzeugt, wenn Englisch
als Sprache eingestellt ist.
</text>
</dd>
</dl>
</part>
<author>PeterW</author><date>April 2002</date>
<author>matthes</author><date>April 2004</date>
</doc>