Apro questo nuovo topic sulla questione multilingua dopo aver letto quanto scritto in questo
http://modxcms.com/forums/index.php/topic,10432.0.html in quanto voglio capire se quello che sono riuscito a fare è giusto o devo seguire un’altra strada.
In allegato c’è la struttura ad albero dei documenti che ho creato (albero_documenti.JPG)
Inoltre ho inserito anche le immagini dei due template (Template IT.JPG e Template EN.JPG)
Le cartelle IT ed EN contengono tutti i documenti nelle rispettive lingue. Entrambe le ho impostate come Container in Page Setting. Inoltre ho lasciato attiva l’opzione Show in menu.
Poi ho creato due template, uno per ogni lingua in modo da impostare le scritte statiche nella lingua relativa. Li ho chiamati rispettivamente Template IT e Template EN.
Ho utilizzato lo snippet UltimateParentPlus modificato da madmage trovato qui
http://modxcms.com/forums/index.php/topic,10434.0.html e il wayfinder per creare il menu.
Riporto qui il codice dei 2 template:
Template IT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>[(site_name)] - [*pagetitle*] - Template IT</title>
</head>
<body>
<div id="header">
<h1>Template IT</h1>
<h2>Lingua</h2>
<a href="http://localhost/modxlingua/index.php?id=3">Ita</a>
<a href="http://localhost/modxlingua/index.php?id=5">Eng</a>
</div>
<hr />
<div id="col-sx">
<h2>Menu</h2>
[!Wayfinder? &startId=`[[UltimateParentPlus? &active=`0`]]` !]
</div>
<hr />
<div id="content">
<h2>[*longtitle*]</h2>
[*content*]
</div>
<hr />
</body>
</html>
Template EN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>[(site_name)] - [*pagetitle*] - Template EN</title>
</head>
<body>
<div id="header">
<h1>Template EN</h1>
<h2>Language</h2>
<a href="http://localhost/modxlingua/index.php?id=3">Ita</a>
<a href="http://localhost/modxlingua/index.php?id=5">Eng</a>
</div>
<hr />
<div id="col-sx">
<h2>Menu</h2>
[!Wayfinder? &startId=`[[UltimateParentPlus? &active=`0`]]` !]
</div>
<hr />
<div id="content">
<h2>[*longtitle*]</h2>
[*content*]
</div>
<hr />
</body>
</html>
Dopo questo ho modificato in Tools -> Configuration l’opzione Site start a id=3, cioè impostando Pagina 1 come prima pagina da caricare quando viene avviato il sito.
Ora, navigando il sito, i menu funzionano correttamente, cioè viene visualizzato solo quello relativo al container dove mi trovo.
Se scelgo di passare ad English cliccando in link Eng, viene caricata la prima pagina (Page 1), viene visualizzato solo il menu in inglese e viene caricato anche il relativo template.
Quindi diciamo che sono riuscito ad ottenere un sito multilingua molto rudimentale.
Quello che invece volevo fare, ma non riesco, e che se l’utente sta navigando ad esempio su Pagina 2 e quindi sul sito in italiano, clicca il link Eng, la navigazione deve passare a Page 2 (traduzione di Pagina 2) e non a Page 1.
Naturalmente so che per come ho fatto il sistema e implementato i template, non posso aspettarmi un funzionamento del genere.
Non so se quello che ho fatto poteva farsi anche in modo diverso.
Forse non ho dato l’impostazione giusta al tutto per poter fare un sito multilingua come si deve.
Spero che qualcuno possa darmi una mano per migliorare questo sistema o suggerirmi uno migliore, magari anche spiegando passo passo come creare da zero un sito multilingua.
L’ideale sarebbe un "mini tutorial for dummies" fatto da chi è già riuscito a fare il tutto in modo professionale. Penso sia una cosa importante la questione multilingua che purtroppo l’amato MODx non implementa in modo nativo.
Spero di non aver chiesto troppo.