… die (hoffentlich) immer funktioniert.
Diese Anleitung beruht auf der ausgezeichneten englischen Version von any screen size. Wichtiger Hinweis: In der Textanleitung von anyscreensize fehlt der Hinweis auf die Aktivierung des Eventhandlers.
Die Anleitung beruht auf der Annahme, dass eine dreisprachige Website mit den Sprachen deutsch(de), niederländisch(nl) und englisch(en) unter der Subdomain devel.tripleorange.de erstellt wird.
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]
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)
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
Das sieht im Ergebnis so aus:
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
Base URL
Culture key
Site start
Site URL
Href Language
Base URL
Culture key
Site start
Site URL
Href Language
Base URL
Culture key
Site start
Site URL
Href Language
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']); }
Ganz wichtig ist es, beim Anlegen des neuen Plugins unter dem Reiter > System-Ereignisse, den Handle „OnHandleRequest“ zu aktivieren.
Es ist fast geschafft! Jetzt kann das Babel-Paket installiert werden.
Im MODX-Manager zu Extras > Packageverwaltung, auf Downloads Extras klicken und nach Babel suchen. Das Paket Babel herunterladen und auf fertig stellen klicken.
Jetzt können wir Babel installieren, auf installieren klicken und ein neues 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, bitte jetzt hinzufügen. (Meine sind: en,nl,web)
Andere Einstellungen belassen.