Benutzer-Werkzeuge

Webseiten-Werkzeuge


modx:babeltutorial

Dies ist eine alte Version des Dokuments!


Eine knappe Schritt für Schrittanleitung für Babel (MODX) ...

… die immer funktioniert.

Diese Anleitung beruht auf der ausgezeichneten englischen Version von any screen size.

Schritt 1: .htaccess

Im Rootverzeichnis die ht.access-Datei sichern und in .htaccess umbenennen Überprüfen, ob die Zeile 'RewriteBase' korrekt ist. Wenn die Website im Stammverzeichnis der Domain installiert ist, dann diese Schreibweise verwenden:

	RewriteEngine On
	RewriteBase /

Wenn die Website in einem Unterverzeichnis installiert ist:

	RewriteEngine On
	RewriteBase /your-sub-folder/

Sicherstellen, dass die URL www.tripleorange.de unter # Rewrite richtig geschrieben wird:

        # Rewrite www.tripleorange.de -> tripleorange.de -- used with SEO Strict URLs plugin
	RewriteCond %{HTTP_HOST} .
	RewriteCond %{HTTP_HOST} !^tripleorange.de\.com [NC]
	RewriteRule (.*) http://tripleorange.de/$1 [R=301,L]

Für eine Subdomain wie devel.tripleorange.de nutze ich:

        # Rewrite devel.tripleorange.de -> devel.tripleorange.de -- used with SEO Strict URLs plugin
	RewriteCond %{HTTP_HOST} .
	RewriteCond %{HTTP_HOST} !^devel\.tripleorange\.de [NC]
	RewriteRule (.*) http://devel.tripleorange.de/$1 [R=301,L]

Als nächstes fügen Sie zu Ihrer .htaccess-Datei (direkt unter # The Friendly URLs part, replace the existing code of the Friendly URLs) folgendes hinzu:

# redirect all requests to /de/favicon.ico and /nl/favicon.ico
	# to /favicon.ico
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^(en|nl|de)/favicon.ico$ favicon.ico [L,QSA]
 
	# redirect all requests to /de/assets* and /nl/assets* to /assets*
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^(en|nl|de)/assets(.*)$ assets$2 [L,QSA]
 
	# redirect all other requests to /de/* and /nl/*
	# to index.php and set the cultureKey parameter
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(en|nl|de)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
Der Teil mit den Sprachen

Als nächstes der .htaccess-Datei (direkt unter # The Friendly URLs part, replace the existing code of the Friendly URLs) folgendes hinzufügen.

Hier ist „de“ die Default-Sprache

# redirect all requests to /nl/favicon.ico and /en/favicon.ico
	# to /favicon.ico
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^(de|nl|en)/favicon.ico$ favicon.ico [L,QSA]
 
	# redirect all requests to /nl/assets* and /en/assets* to /assets*
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^(de|nl|en)/assets(.*)$ assets$2 [L,QSA]
 
	# redirect all other requests to /nl/* and /en/*
	# to index.php and set the cultureKey parameter
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(de|nl|en)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]

Vergessen Sie nicht, die your-website-URL in der Domain-Rewrite-Regel zu ändern!

In diesem Beispiel gibt es drei Sprachen, Niederländisch (nl), Englisch (de) und das Standard-Deutsch(web). Wenn Sie andere/andere Sprachen haben, stellen Sie sicher, dass Sie die Sprachcodes (de|nl) entsprechend ändern.

Jetzt die .htaccess-Datei in das Stammverzeichnis der Website hochladen. (die alte ht.access-Datei entfernen)

Schritt 2: Kontexte anlegen

In diesem Schritt werden die Kontexte (Context) erstellt. Im Beispiel haben wir 3 Sprachen:

Deutsch (de) - Defaultsprache, der Kontext heißt Web Niederländisch (nl) Englisch (en)

Für die beiden weiteren Sprachen müssen zusätzliche Kontexte erstellt werden. Dies unter

Systemeinstellungen > Kontexte > Neu erstellen

Holländisch
  • Kontextschlüssel: nl
  • Name: nederlands
  • Beschreibung: Het Nederlandse deel van de website
  • Rang: 2 (nl steht dann unterhalb der Standardsprache de/web)
Englisch
  • Kontextschlüssel: en
  • Name: english
  • Beschreibung: The English part of the website
  • Rang: 3 (en steht dann unterhalb der Standardsprache de/web)

Das sieht im Ergebnis so aus:

Schritt 3: Kontexte bearbeiten

In diesem Schritt werden Einstellungen für die Kontexte angelegt. Das erfolgt dreimal, für web, nl und de.

Dazu rechte Maustaste > Kontext bearbeiten > Reiter Kontext-Einstellungen > Neu erstellen

Deutsch (web)

Base URL

  • Key: base_url
  • Name: Base URL
  • Lexikon-Eintrag für den Bereich: language
  • Value: /

Culture key

  • Key: cultureKey
  • Name: Culture key
  • Lexikon-Eintrag für den Bereich: language
  • Value: de

Site start

  • Key: site_start
  • Name: Site start
  • Lexikon-Eintrag für den Bereich: language
  • Wert: 1

Site URL

Href Language

  • Key: hreflang
  • Name: Href Language
  • Lexikon-Eintrag für den Bereich: language
  • Wert: x-default

Niederländisch (nl)

Base URL

  • Key: base_url
  • Name: Base URL
  • Lexikon-Eintrag für den Bereich: language
  • Value: /nl/

Culture key

  • Key: cultureKey
  • Name: Culture key
  • Lexikon-Eintrag für den Bereich: language
  • Wert: nl

Site start

  • Key: site_start
  • Name: Site start
  • Lexikon-Eintrag für den Bereich: language
  • Wert: 2

Site URL

Href Language

  • Key: hreflang
  • Name: Href Language
  • Lexikon-Eintrag für den Bereich: language
  • Wert: nl

English (en)

Base URL

  • Key: base_url
  • Name: Base URL
  • Lexikon-Eintrag für den Bereich: language
  • Value: /en/

Culture key

  • Key: cultureKey
  • Name: Culture key
  • Lexikon-Eintrag für den Bereich: language
  • Wert: en

Site start

  • Key: site_start
  • Name: Site start
  • Lexikon-Eintrag für den Bereich: language
  • Wert: 2

Site URL

Href Language

  • Key: hreflang
  • Name: Href Language
  • Lexikon-Eintrag für den Bereich: language
  • Wert: en

Schritt 4: Gateway-Plugin erstellen

Um Urls den richtigen Kontext zuzuweisen, erstellen wie ein Gateway-Plugin.

IM MODX Manager > Reiter Elemente > Plugins > Rechtsklick > Neues Plugin

Das Plugin mit dem Namen „gateway“ benennen, den folgenden Plugin-Code hinzufügen (Namen und Kontexttitel ändern, wenn andere Sprachen vorliegen):

Das Plugin für die drei Sprachen de, nl und en sieht dann aus:

<?php
if ( $modx->context->get('key') != "mgr" ) {
	/* grab the current langauge from the cultureKey request var */
	switch ( $_REQUEST['cultureKey'] ) {
		case 'nl':
			/* switch the context */
			$modx->switchContext('nl');
			setlocale(LC_ALL, 'nl_NL.UTF-8');
			break;
		case 'en':
			/* switch the context */
			$modx->switchContext('en');
			setlocale(LC_ALL, 'en_US.UTF-8');
			break;
		default:
			/* Set the default context here */
			$modx->switchContext('web');
			setlocale(LC_ALL, 'de_DE.UTF-8');            
			break;
	}
 
	/* unset GET var to avoid
	 * appending cultureKey=xy to URLs by other components */
	unset($_GET['cultureKey']);
}

Schritt 5: Babel-installieren

Es ist fast geschafft! Jetzt kann das Babel-Paket installiert werden.

Im MODX-Manager zu Extras > Packageverwaltung, klicken Sie auf Download Extras und suchen Sie nach Babel. Wenn Sie es gefunden haben, laden Sie das Paket Babel herunter und klicken Sie auf Fertig stellen.

Jetzt können wir Babel installieren, klicken Sie auf Installieren und eine Fenster öffnet sich. Zweimal auf Ich stimme zu und Weiter klicken, bis die Setup-Optionen angezeigt werden. Hier sollten die bereits ausgefüllten Kontexte unter Context Keys (comma-separated) zu sehen sein: falls nicht, fügen Sie sie bitte jetzt hinzu. (Meine sind: en,nl,web)

Andere Einstellungen belassen.

modx/babeltutorial.1604756695.txt.gz · Zuletzt geändert: 2020-11-07 14:44 von t.schuermann