Artikelen

Multilingual CMSMS site

Gepost door joost op 16 aug 2010 in de categorie CMS
Een multilingual website in CMS Made Simple, hoe maak je dat? Dat is een vraag die waarschijnlijk veel mensen zich stellen. Verbazingwekkend genoeg is het heel erg makkelijk. Wij leggen het graag uit.


Stap 1. Getlang tag aanmaken en weblang definieren
Als eerste maak je een gebruikers gedefinieerde tag aan met de naam getlang.

session_start();
/* assigns the variable {$weblang} */
global $gCms;
if (isset($_GET["lang"])) {
/* Passed in the url: lang= ... */
$gCms->smarty->assign('weblang', $_GET["lang"]);
if ($_SESSION['MYlang']) {
$_SESSION['MYlang']='';
}
$_SESSION['MYlang']= $_GET["lang"];
}
elseif ($_SESSION['MYlang']) {
$gCms->smarty->assign('weblang', $_SESSION['MYlang']);
}
else {
$_SESSION['MYlang']="en";  $gCms->smarty->assign('weblang', "en");
}


Stap 2. Getlang in de template zetten
Vervolgens zet je deze {getlang} aan het begin van je template.


Stap 3. Input vakken aanpassen
Daarna maak je in je template de volgende nieuwe vakken aan (zie hieronder). Je zult zien dat deze inputvakken ook gelijk in je edit scherm verschijnen.

<h2>{content block="title_nl" wysiwyg="false" oneline="true"}</h2>
<h2 style="display: none;">{content block="menu_nl" wysiwyg="false" oneline="true"}</h2>
{content block='content_nl'}



Stap 4. Menu file aanpassen
Dit is nog niet uitgewerkt: zie http://forum.cmsmadesimple.org/index.php/topic,11756.0.html


Stap 5. Eventuele problemen met modules oplossen
Sommige modules werken alleen in het vak content. Dat betekent dat je een if statement moet schrijven in de contentvak en een uitzondering moet maken in je template voor die specifieke pagina (met de module erop).

{if $weblang!='nl'}...{else}...{/if}


Stap 6. Link voor switchen aanmaken
Je kunt nu eenvoudig switchen tussen talen door een link ?lang='nl' aan te maken (er van uitgaand dat Engels je standaard taal is, zoals in dit voorbeeld).


Inspiratie voor deze oplossing
Deze oplossing is gebaseerd op het volgende document:
http://forum.cmsmadesimple.org/index.php/topic,11756.0.html





Terug