Das Schöne an Modx ist ja, dass es immer verschiedene Lösungswege gibt. Hier ist meiner, der zugegebenermaßen simpel aber recht praktikabel ist:
Ich arbeite grundsätzlich mit UTF-8, man weiß nie, welche Sprachen noch hinzu kommen. Dann erstelle ich für jede Sprache einen eigenen Folder, also etwa
Meine Site
|
|-English
| |
| |-subfolder
| |
| |-subfolder 2 etc.
|
|-Polski
| |
| |-subfolder
| |
| |-subfolder 2 etc.
|
|-Deutsch
| |
| |-subfolder
| |
| |-subfolder 2 etc.
etc.
Jeder Sprachfolder erhält eine TemplateVariable "Language" mit einem @INHERIT-binding, also etwa "@INHERIT en" oder eben "@INHERIT pl". Somit wird das Sprachkürzel "en" oder "pl" an alle darunter liegenden Folder oder Dokumente vererbt.
Auch ich benutze nur ein einziges Template für alle Sprachen. Mit Hilfe von Chunks, in denen ich die TV "Language" als Namensbestandteil benutze, kann ich ganz einfach die benötigten Bausteine in der richtigen Sprache einfügen. Steht im Template etwa
wird in einer "englischen" Seite daraus
Natürlich existiert dazu ein Chunk namens "slogan_en", in dem ich den englischsprachigen Slogan für meine Website hinterlegt habe. Einfach, oder? Ganz ohne Parameterübergabe in der URL...
Die Menüs bekomme ich ebenso dynamisch, indem ich Dropmenu mit einem weiteren Snippetcall für den Parameter "startID" aufrufe:
[!DropMenu? &startDoc=`[[UltimateParent]]`&weitere=`Parameter`!]
Das Snippet "UltimateParent" findest Du im Repository hier im Forum.
Als [[Site_Start]] gebe ich dann einfach ein Home-Dokument in der gewünschten Sprache an, welches auch immer...
Nur meine 2cents, vielleicht gefällt Dir ja eine der anderen Lösungen besser