Multiple languages support?

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
purplerain12
Forum Members
Forum Members
Posts: 110
Joined: Thu Aug 14, 2008 10:33 am

Re: Multiple languages support?

Post by purplerain12 »

Hallo Bert,

Voor zover ik weet word multi language nog niet standaard ondersteund. Vanaf versie 2 zal dit wel het geval zijn.

Alby heeft wel een onoficieel multi language systeem geschreven, deze kun je hier downloaden:
http://dev.cmsmadesimple.org/project/fi ... ackage-201

Hier zit ook een handleiding bij, deze kun je hier downloaden:
http://forum.cmsmadesimple.org/index.ph ... 458.0.html

Het is niet de beste oplossing, je zult er wat tabellen voor moeten wijzigen in je database. Maar het is wel de enigste oplossing op dit moment.

Groet,

Bas
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Multiple languages support?

Post by Rolf »

Hallo Bert,

Ook binnen de normale CMSMS installatie zou je een meertalige site kunnen maken.
Zie http://forum.cmsmadesimple.org/index.ph ... 589.0.html
Voor erg grote sites zou dit toch wat lastig kunnen worden... Bomen en het bos en zo  ;)

Zelf heb ik eens gekozen voor drie aparte installaties op één database, werkt op zich prima.
Alleen iedere keer 3x upgrade uitvoeren, iets minder handig.  :-\

Groet, Rolf
Last edited by Rolf on Fri Sep 18, 2009 1:33 pm, edited 1 time in total.
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
RonnyK
Support Guru
Support Guru
Posts: 4962
Joined: Wed Oct 25, 2006 8:29 pm
Location: Raalte, the Netherlands

Re: Multiple languages support?

Post by RonnyK »

Ikzelf gebruik nog wel eens de volgende logica....

Structuur van de pagina's:

- Home
- NL
  - NLpage1
  - NLpage2
- EN
  - Enpage1
  - Enpage2
- FR
  - FRpage1
  - FRpage2

Code:
   
              {cms_selflink page="en" image="uploads/flags/lang_en.gif" alt="English" imageonly=1}
              {cms_selflink page="fr" image="uploads/flags/lang_fr.gif" alt="French" imageonly=1}
              {cms_selflink page="nl" image="uploads/flags/lang_nl.gif" alt="Nederlands" imageonly=1}
   
{menu} dient met de parameter (start_level) te worden uitgebreidt, zodat enkel de sub-pagins's van de gekozen taal getoond worden.

Code:
{menu template='simple_navigation.tpl' start_level='2' collapse='1'}

Wat ik een voordeel vind van deze methode, is dat de structuur onder de verschillende talen niet identiek hoeft te zijn.

De logica hieronder kan EXTRA worden gebruikt, maar is niet noodzakelijk voor de werking.

Extra 1:

Mocht je ook nog willen dat gebaseerd op de taal van de bezoeker, deze automatisch naar zijn specifieke taal homepage gaat, dan als extraatje ....

Maak een UDT "browserlanguage" aan:

Code:
{
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
if (substr($lang, 0, 2) == 'en')
{
header("Location: index.php?page=en");
} elseif (substr($lang, 0, 2) == 'fr')
{
header("Location: index.php?page=fr");
} else {
header("Location: index.php?page=nl");
}
}
De logica hierbij is dat gekeken wordt wat zijn taal is, en dat als deze bekend is, als hoofdpagina je daarheen stuurt, anders naar de standaard-pagina, hierboven 'nl'. Let wel, dit zijn de aliassen....

'Home' bevat enkel deze UDT als content, en aangezien Home mijn default pagina is, doet deze een re-direct naar de taal-homepage.

Extra 2:

Overigens heb ik ook nog wel een voorbeeld, hoe je middels smarty, binnen 1 template de logica kunt laten meelopen, waarmee je search e.d. ook als label, afhankelijk van de taal in de goede taal weergeeft...

Ook dit is niet nodig voor de werking, je kunt ook met meerdere templates werken, of 1 als je geen search e.d. gebruikt.
   
   {get_root_page_alias assign="root_page_alias"}
   {if $root_page_alias eq 'fr'}
   {search searchtext="frans" lang="fr_FR"}
   {elseif $root_page_alias eq 'en'}
   {search searchtext="engels" lang="en_US"}
   {else}
   {search searchtext="nederlands" lang="nl_NL"}
   {/if}
   
   
Hierbij wordt de toppagina (zijnde de gekozen taal) uitgelezen middels een UDT, genaamd "get_root_page_alias".
global $gCms;
global $smarty;

$manager =& $gCms->GetHierarchyManager();

$var = 'root_page_alias';
if( isset($params['assign']) && $params['assign'] != '' )
{
  $var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
while( isset($currentNode) && $currentNode->getLevel() >= 0 )
{
    $currentContent =& $currentNode->getContent();
    $result = $currentContent->Alias();
    $currentNode =& $currentNode->getParentNode();
}
$smarty->assign($var,$result);
Ronny
Last edited by RonnyK on Wed Mar 11, 2009 10:19 am, edited 1 time in total.
RonnyK
Support Guru
Support Guru
Posts: 4962
Joined: Wed Oct 25, 2006 8:29 pm
Location: Raalte, the Netherlands

Re: Multiple languages support?

Post by RonnyK »

Bert,

je kunt hem i.i.g. plaatsen in de Tips & Trucs onder het NL-board, met uitleg over de werking. Daarnaast kan het ook in het Tips & Tricks board op het Engelstalige deel van het Forum.

Ronny
Post Reply

Return to “Dutch - Nederlands”