Benutzer-Werkzeuge

Webseiten-Werkzeuge


modx:babel

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 /

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:

<?php
if ( $modx->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']);
}
Chunk
<ul class="babellinks">
 
  [[BabelLinks? &showCurrent=`1` &tpl=`babellink-template`]]
 
</ul>  
Template
<li><a href="[[+url]]" class="[[+cultureKey]] [[+active:notempty=`[[+active]]`]]">[[+cultureKey]]</a></li>

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:

Chunk
<p>Pagetitle: [[pdoField? &id=`[[BabelLinks? &tpl=`babel_id` &showCurrent=`1`]]` &field=`pagetitle`]]</p> 

Dabei legt man im Template folgenden Code ab:

Chunk
[[+cultureKey:is=`de`:then=`[[+id]]`]] 

Quelle für diese Funktionsweise war https://forum.modmore.com/t/sync-images-between-translations-with-babel/806/2

Noch ein Tutorial, unter anderem auch mit Userrechten:

Und ein Videotutorial

modx/babel.txt · Zuletzt geändert: 2023-01-04 16:40 von t.schuermann