Knowledgebase:Mehrsprachigkeit

From Cloudrexx Development Wiki
Jump to: navigation, search


Einführung

Contrexx ermöglicht es mehrsprachige Websites zu betreiben. Dabei wird jede Sprachversion der Website in einem virtuellen Sprachverzeichnis betrieben. Als Sprachverzeichnis wird der ISO 639-1 Code der jeweiligen Sprache verwendet. Die deutsche Sprachversion einer Website wird z.B. im virtuellen Sprachverzeichnis /de (www.example.com/de/) betrieben.

Template Integration

Sprachnavigation

Bei einer mehrsprachigen Website können die verschiedenen Sprachversionen der Website über eine Sprachnavigation verknüpft werden.
Sprachnavigation

Die Sprachnavigation kann entweder automatisch oder manuell generiert werden.

Automatische Generierung

Mit dem Platzhalter [[LANGUAGE_NAVBAR]] (siehe auch [[LANGUAGE_NAVBAR_SHORT]] weiter unten) kann eine automatisch generierte Sprachnavigation ins Website-Template (z.B. in der index.html des Templates) eingebunden werden.

Der Platzhalter erzeugt dabei für jede Sprachversion einer Website die folgenden HTML-Ausgabe:

<a class="CLASS" href="PATH" title="LANG_NAME">LANG_NAME</a>

Die Variablen haben dabei folgende Bedeutung:

Variable Beschreibung Beispiel
CLASS Der ISO 639-1 Code der jeweiligen Sprache. Bei der aktiven Sprache wird zusätzlich noch der Wert active (getrennt durch ein Leerzeichen) ausgegeben. de active en
PATH Der Pfad (Slug-Pfad) der Webseite. Bei der aktiven Sprache wird der Pfad der aktuell geladenen Webseite ausgegeben. Bei den anderen Sprachen wird der Pfad der jeweils korrespondierenden Sprache ausgegeben. /de/Willkommen /en/Welcome
LANG_NAME Der Name der jeweiligen Sprache, welche in der Administrationskonsole definiert wurde (Administration > Sprachen) Deutsch English

Die erzeugte Ausgabe einer zweisprachigen Website (Deutsch und Englisch) könnte wie folgt aussehen:

<a class="de active" href="/de/Willkommen" title="Deutsch">Deutsch</a>
<a class="en" href="/en/Welcome" title="English">English</a>

Bei diesem Beispiel ist die deutsche Sprachversion aktiv, daher beinhaltet der deutsche Link die CSS-Klasse active.


Zusätzlich besteht noch der Platzhalter [[LANGUAGE_NAVBAR_SHORT]], welcher genau gleich funktioniert wie der Platzhalter [[LANGUAGE_NAVBAR]], mit dem Unterschied, dass anstelle der Variable LANG_NAME, die Variable CODE verwendet wird. Wobei es sich bei letzterem um den ISO 639-1 Code der jeweiligen Sprache in Grossbuchstaben handelt:

<a class="CLASS" href="PATH" title="CODE">CODE</a>

Analoge Ausgabe zu obigem Beispiel würde somit wie folgt aussehen:

<a class="de active" href="/de/Willkommen" title="DE">DE</a>
<a class="en" href="/en/Welcome" title="EN">EN</a>

Manuelle Generierung

Je nach Situation, besteht der Bedarf die Verlinkung der einzelnen Sprachversionen einer Website manuell aufzubauen, da mit der Ausgabe der automatisch generierten Sprachnavigation ([[LANGUAGE_NAVBAR]]) nicht das gewünschte Ziel erreicht werden kann.

Eine Sprachnavigation kann manuell mit den Platzhaltern [[LANG_CHANGE_<CODE>]] und [[LANG_SELECTED_<CODE>]] erzeugt werden. Bei diesen Platzhaltern ist die Variable <CODE> jeweils mit dem ISO 639-1 Code der jeweiligen Sprache zu ersetzen.

Bei einer zweisprachigen Website, Deutsch und Englisch, kann z.B. mittels folgendem HTML-Konstrukt die nachfolgende Sprachnavigation erzeugt werden.

HTML-Konstrukt:

<ul>
    <li>
        <a class="[[LANG_SELECTED_DE]]" href="[[LANG_CHANGE_DE]]" title="Deutsch">DE</a>
    </li>
    <li>
        <a class="[[LANG_SELECTED_EN]]" href="[[LANG_CHANGE_EN]]" title="English">EN</a>
    </li>
</ul>

Erzeugte Sprachnavigation:

<ul>
    <li>
        <a class="selected" href="/de/Willkommen" title="Deutsch">DE</a>
    </li>
    <li>
        <a class="" href="/en/Welcome" title="English">EN</a>
    </li>
</ul>

Aktuelle Sprache

Mit dem Platzhalter [[ACTIVE_LANGUAGE_NAME]] kann der ISO 639-1 Code (z.B. de) der aktuellen Sprachversion (aktuelle Sprache) ausgegeben werden.

Übersicht Platzhalter

Dynamische Sprachnavigation

Innerhalb des Blockes locale_navbar können folgende Platzhalter verwendet werden:

Platzhalter Bedeutung Beispiel Bemerkung
[[PAGE_LINK]] Link zu der aktuellen Seite in der entsprechenden Locale https://example.cloudrexx.com/de-CH/Willkommen
[[PAGE_TITLE]] Titel der aktuellen Seite in der entsprechenden Locale Willkommen bei Cloudrexx
[[LOCALE]] RFC 3066 Angabe der entsprechenden Locale de-CH
[[LOCALE_LABEL]] Bezeichnung der Sprachversion Schweizerdeutsch Verfügbar ab 5.0.2
[[LANGUAGE_CODE]] ISO-639-1 Sprachcode der aktiven Locale de
<-- BEGIN current_locale --><-- END current_locale --> Wird nur für die aktuelle Sprache geparst

Beispiel einer dynamischen Sprachnavigation:

<ul>
<!-- BEGIN locale_navbar -->
<li>
<a href="[[PAGE_LINK]]" <!-- BEGIN current_locale -->class="current"<!-- END current_locale -->>[[LOCALE]]</a>
</li>
<!-- END locale_navbar -->
</ul>


Deprecated

Die folgenden Platzhalter werden nicht mehr unterstützt und sollten daher nicht mehr genutzt werden. Anstelle dessen wird ausschlisslich die Verwendung von <!-- BEGIN/END locale_navbar --> empfohlen.

Platzhalter Beschreibung Beispiel
[[LANGUAGE_NAVBAR]]Deprecated Automatisch generierte Sprachnavigation (Namen der Sprachen als Link)
<a class="de active" href="/de/Willkommen" title="Deutsch">Deutsch</a>
<a class="en" href="/en/Welcome" title="English">English</a>
[[LANGUAGE_NAVBAR_SHORT]]Deprecated Automatisch generierte Sprachnavigation (ISO 639-1 Code der Sprachen als Link)
<a class="de active" href="/de/Willkommen" title="DE">DE</a>
<a class="en" href="/en/Welcome" title="EN">EN</a>
[[ACTIVE_LANGUAGE_NAME]]Deprecated ISO 639-1 Code der aktiven Sprache de
[[LANG_CHANGE_<CODE>]]Deprecated Der Pfad zur jeweiligen Sprachversion der aktuellen Webseite /de/Willkommen
[[LANG_SELECTED_<CODE>]]Deprecated Status über die aktuell geladene Sprachversion selected

Liste der Locales ausgeben

Innerhalb des Blockes locale_alternate_list können folgende Platzhalter verwendet werden (Die ausgegrauten Platzhalter sind vorgesehen, aktuell aber noch nicht verfügbar.):

Platzhalter Bedeutung Beispiel
[[PAGE_LINK]] Link zu der aktuellen Seite in der entsprechenden Locale https://example.cloudrexx.com/de-CH/Willkommen
[[PAGE_TITLE]] Titel der aktuellen Seite in der entsprechenden Locale Willkommen bei Cloudrexx
[[LOCALE]] RFC 3066 Angabe der entsprechenden Locale de-CH
[[LANGUAGE_CODE]] ISO-639-1 Sprachcode der entsprechenden Locale de
[[LOCALE_LABEL]] Label der entsprechenden Locale Schweizerdeutsch
[[COUNTRY_NAME]] Name des Landes in der aktuellen Locale Switzerland
[[COUNTRY_CODE]] ISO-3166-2 Ländercode der entsprechenden Locale de

Damit kann eine Liste der Sprach- und Länderversionen einer Seite erstellt werden. Dies ist u.a. nützlich für SEO, indem damit eine Liste von alternate hreflang Tags erstellt werden kann:

<!-- BEGIN locale_alternate_list -->
<link rel="alternate" href="[[PAGE_LINK]]" hreflang="[[LOCALE]]" />
<!-- END locale_alternate_list -->

Weitere Sprache aktivieren

In der Administrationskonsole...

  1. aktivieren Sie unter Administration > Sprachen bei der gewünschten Sprache die Option Frontend
  2. integrieren Sie eine Sprachnavigation im Layout-Template, damit auf der Website zwischen den einzelnen Sprachversionen der Website navigiert werden kann
  3. wählen Sie für die neu aktivierte Sprache unter Administration > Layout das gewünschte Layout-Template

Weitere Sprachen hinzufügen

Weitere Sprachen können momentan nicht automatisch hinzugefügt werden. Wenden Sie sich an den Hersteller Support für eine unverbindliche Kostenanfrage für die Implementation einer weiteren Sprache.

Ältere Contrexx Versionen

Die folgenden Informationen beziehen sich auf die Contrexx Versionen 2.

Aufruf der Mehrsprachigkeit (manuell)

  • Mittels Hyperlink auf die entsprechende Sprache. Beispiel:
index.php?langId=1 // Zeigt die Seite in der Deutschen Sprache an (es wird kein Cookie gesetzt)
index.php?setLang=1 // Zeigt die Deutsche Sprache an und setzt ein Cookie

Platzhalter

  • [[LANGUAGE_NAVBAR]] Zeigt eine Sprachnavigation in der Form: [ Deutsch ] [ English ] an
  • [[ACTIVE_LANGUAGE_NAME]] Zeigt das Sprachkürzel der aktiven Sprache an. Beispielsweise de .