Das musst du nicht explizit schreiben.
Das Prinzip des i18n ist:
Du hast ein <trans-unit> mit einer id, welche unique ist, und definierst ersteinmal eine Standardsprache (in diesem Falle Englische, diese findest du unter "en"). Dort steht dann:
<trans-unit>
<source>Home</source>
<target/>
</trans-unit>
wobei "source" der hingeschrieben Wert ist. "target" gibt den Text an, mit welchem der "source" überschrieben wird. Wenn du also als Beispiel folgendes hast (de):
<trans-unit id="2">
<source>Home</source>
<target>Heim</target>
</trans-unit>
Heißt des nicht anderes als:
Suche nach der Zeichenfolge "Home", der in irgendeiner .php-datei mittels <?php echo __("Home"); ?> ausgeschrieben wird, und wechsel diesen mit dem target (Heim).
Um also deine lieben Zeichenfolgen (Sätze) umzubenennen, musst du ein paar Änderungen machen. Und zwar musst du den echo-Befehl der News für den Title und content ändern (indexSuccess.php unter themes/default/news und die showSuccess):
<?php echo $news->getTitle() ?>
in
<?php echo __($news->getTitle()) ?>
und
<?php echo htmlspecialchars_decode(embedYoutube($news->getContent()));?>
(2-fache Verschachtelung für youtube-Umwandlung, kannste ignorieren)
in
<?php echo __(htmlspecialchars_decode(embedYoutube($news->getContent())));?>
Normalerweise reicht es
<?php echo __(htmlspecialchars_decode($news->getContent()));?>
zu schreiben, da man Youtube-Videos mittels object oder IFrame einfach einbinden kann. Aber nunjut, jedem den seine.
Dann rate ich dir die trans-unit ab id 10000 oder ähnlich hoch zu nehmen, um überschneidungen zu vermeiden. Danach schreibst du deine News in Englisch. Wenn du das hast, machste:
en-i18n:
<trans-unit id="10000">
<source>TitleofNews</source>
<target/>
</trans-unit>
<trans-unit id="10001">
<source>ContentofNews</source>
<target/>
</trans-unit>
de-i18n:
<trans-unit id="10000">
<source>TitleofNews</source>
<target>TitelderNews mit Leerzeichen gehts auch</target>
</trans-unit>
<trans-unit id="10001">
<source>ContentofNews</source>
<target>InhaltderNews vergiss aber nicht den Cache zu leeren.</target>
</trans-unit>
Und vergiss nicht das htmlspecialchar_decode die Nachricht ändert. Daher entweder den Befehl komplett herausnehmen (Sollte aber drinnen bleiben) oder du schaust das TinyMCE das ganze bereits decoded abgibt. Ansonsten ist der Rest easy: Jedesmal wenn du eine News schreibst, die i18n kopieren und mit der deutschen Übersetzung überschreiben.
VORSICHT!: Die Zeichenfolge muss EXAKT gleich sein. Selbst groß-oder kleinschreibung kann dazu führen das es nicht übernommen wird. Und den Cache musst du leeren, der i18n wird komplett gecached.
MfG,
KS13.
__________________
Ich hab einen neuen Skype-Account. Solltet ihr über den alten Account Spam-Nachrichten gekriegt haben, dies war nicht ich.
Skype: James Hemmingworth / xxDeathskillxx/WHATdidyousay
Account-Name: Alexander Henzerling
|