NanoCMS Mehrsprachige Eingabe

Aus Melin DokuWiki

Wechseln zu: Navigation, Suche

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: