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

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