NanoCMS Mehrsprachige Eingabe
Aus Melin DokuWiki
Beim Multi-Language-Konzept von Melin werden die Inhalte in einem Master-Dokument erfasst und verwaltet, nach dem Speichern liegen die einzelnen Sprachversionen eines Dokuments jeweils in einer eigenen Copy-Seite vor und können später getrennt verarbeitet werden.
Die einzelnen Kopien unterscheiden sich im Dateinamen durch Anhängen des ISO 639-1 Sprach-Codes an die Dateiendung (index.html.de, index.html.en,...) und an das XML-Feld ("X_BODY_DE", "X_BODY_EN",...).
Die neuen Multi-Language-Features vereinfachen die Erzeugung und Bearbeitung dieser Copy-Seiten. Die folgenden Abschnitte beschreiben, wie Sie das Multi-Language-Feature von Melin nutzen.
Inhaltsverzeichnis |
[bearbeiten] lingua-Tag
Im NanoCMS können Sie Inhalte für die einzelnen Sprachversionen getrennt erfassen, indem Sie im Namen der betreffenden Eingabefelder das Schlüsselwort "_lingua" hinzufügen.
<input name="MELIN:myfield_lingua" type="text" />
Wenn Sie in einem Template Inhaltsbereiche für die mehrsprachige Eingabe definiert haben, blendet Melin im Edit-Modus des Dokuments für jede verfügbare Sprachversion neben dem Textfeld ein Icon mit der Landesflagge ein.
Mit dem Kommentar können Sie die gegenwärtige Sprache abfragen bzw. ausgeben:
#IF ("" EQ "DE")
...mach was...
#ENDIF
In beiden Fällen nimmt der Templateprozessor eine Ersetzung durch das Kürzel der gegenwärtigen Sprache des jeweiligen Abschnitts vor.
[bearbeiten] multilang-Tag
Wenn Sie größere Blöcke mehrsprachig verfügbar machen wollen können Sie diese in multilang-Blöcke einfassen:
<!--multilang_start--> ...Template-Code für mehrsprachige Eingabe... <!--multilang_end-->
Dieser fügt allen Tags automatisch das _lingua-Schlüsselwort hinzu. Der große Vorteil des Multilang-Tags is der einfache Umbau eines einsprachigen Templates zu einem Mehrsprachigen, da hier nur die Tags ergänzt werden müssen.
[bearbeiten] Aufruf der Seite
Jedes Template kann beliebig viele Sprachversionen erzeugen. Die Verknüpfung erfolgt in der Designvorlage (structure.xml) in dem ein Feld mit den Sprachversionen hinzugefügt wird:
language="de,fr,it,en"
zur Kontrolle kann man ein neues Dokument anlegen, in der URL muss custom_language erscheinen, zum Beispiel:
http://127.0.0.1:8200/melin/main.jsp?SECTION=101&page=cms_edit&template=/cms/themes/rexroth/newsletter_multilang.tmpl&custom_language=de,fr,it,en
[bearbeiten] Beispiel
In einem Template wird der folgende HTML-Code verbaut:
<!--multilang_start--> <tr> <td width=22 class=helptextBIG><!--XX-lingua--></td> <td width=22><img src="/melin/images/flags/<!--LC-lingua-->.gif" width=18 height=12></td> <td style="padding-right:5px"><INPUT NAME="MELIN:SUBJECT" VALUE="Drive and Control Newsletter" class="si_inputbox boxcolor<!--XX-lingua-->" style="width:100%"></td> </tr> <!--multilang_end-->
Hier sieht man auch einen Trick, durch das CSS-Element
boxcolor<!--XX-lingua-->
kann man jedem Eingabefeld über ein Stylesheet eine eigene Farbe zuordnen. In unserem Beispiel haben wir im Header des Templates eine CSS-Datei speziell für dieses Template/Theme eingebunden
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <!--MELINCONTENT:HEADER--> <script src="/melin/js/flexmodul.js"></script> <link rel="stylesheet" href="/melin/images/cms/themes/rexroth/editor.css" type="text/css" charset="utf-8"> <!--CODEINCLUDE:SITE-DIR/cms/themes/rexroth/multitemplate/newsletter_multilang.css--> <!--/MELINCONTENT:HEADER--> <title><!--XX-SUBJECT--></title> </head> ...
In der structure.xml wird das Template verknüpft
<navitem ID="101" navlevel="2" directory="/" name="English/German/French-Template" language="de,fr,it,en" clientID="1" description="A generic template for a multilanguage newsletter" template="newsletter_multilang.tmpl"></navitem>
In der Seite erscheinen dann die verschiedenen Sprachversionen:
