====== Mehrsprachigkeit mit Babel (MODX) ====== ===== Übersicht Anleitungen im Netz ===== ===== Eine knappe Schritt für Schrittanleitung ===== ... die meistens immer funktioniert. === 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 / [[babeltutorial|Weiter geht's mit der Schritt für Schritt-Anleitung mit Modx 2.8.1]] ===== Korrekte Datumsformate ===== Für die korrekte Übersetzung des Datumformats muss das Gateway-Plugin von Babel erweitert werden. Dazu wird für jede Sprache eine Zeile (im Beispiel Niederländisch/Dutch) eingefügt: setlocale(LC_ALL, 'nl_NL.UTF-8'); Das Plugin für drei Sprachen sieht dann aus: context->get('key') != "mgr" ) { /* grab the current langauge from the cultureKey request var */ switch ( $_REQUEST['cultureKey'] ) { case 'en': /* switch the context */ $modx->switchContext('en'); setlocale(LC_ALL, 'en_US.UTF-8'); break; case 'nl': /* switch the context */ $modx->switchContext('nl'); setlocale(LC_ALL, 'nl_NL.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']); } ===== Babel-Links =====
  • [[+cultureKey]]
  • [[https://docs.modx.com/extras/revo/babel/babel.babellinks|MODX Extras Documentation: BabelLinks]] ==== Babel ID einer bestimmten Sprachversion ==== [[BabelTranslation? &contextKey=`de`]] Referenz: https://docs.modx.com/3.x/en/extras/babel/babeltranslation So ganz richtig funktioniert das nicht, mit dem Snippet. Was funktioniert ist diese Vorhergehensweise, wenn man die ID der deutschen Version einer Seite nutzen will:

    Pagetitle: [[pdoField? &id=`[[BabelLinks? &tpl=`babel_id` &showCurrent=`1`]]` &field=`pagetitle`]]

    Dabei legt man im Template folgenden Code ab: [[+cultureKey:is=`de`:then=`[[+id]]`]] Quelle für diese Funktionsweise war https://forum.modmore.com/t/sync-images-between-translations-with-babel/806/2 ===== Links ===== * Neu: [[https://nathanaelmcmillan.com/blog/multilingual-websites-with-modx/nathanaelmcmillan.com|]] * Nicht mehr verfügbar: [[https://anyscreensize.com/blog/modx-multilingual/|Any Screen Size: MODX Multilingual]] * So wie ich es gerade ausprobiert habe, funktioniert obige Anleitung. ABER: Im Gateway Plugin werden die Namen der Contexte eingesetzt, das funktionierte in Revo 2.7.1 nicht. Es klappte mit dem Einsetzen von culturekeys. Statt Context-Name im gateway (z.B. english) den culturekey dort einsetzen (Für english dann en). Das klappte dann endlich. * [[http://www.multilingual-modx.com/|Babel: Multilingual MODX]] * [[http://www.multilingual-modx.com/|Babel: Multilingual Websites With MODX And Babel]] * [[http://www.multilingual-modx.com/blog/2011/seo-friendly-multilingual-websites-with-modx-and-babel.html|Babel: SEO Friendly Multilingual Websites With MODX And Babel]] * [[https://docs.modx.com/extras/revo/babel|MODX Extras Documentation: Babel]] Noch ein Tutorial, unter anderem auch mit Userrechten: * [[https://www.inside-creative.com/research-and-development/2018/10/30/creating-multilingual-modx-websites-using-babel/|Multilanguage Site with Babel]] Und ein Videotutorial * [[https://www.youtube.com/watch?v=fSa_CdinTUE|MODX Multilingual - Setting up Babel and have a website with multiple languages von Menno Pieterson]]