home | sitemap

Talen: <!-- TMPL_VAR NAME="language" -->  

Bij de website-instellingen kan een redacteur de taal van de website opgeven. De instelling maakt dat de standaard teksten in de modules van het cms in die taal getoond worden. Deze instelling is beschikbaar in de language variabele.

De language variabele bevat de ISO 639 2-letter code van de ingestelde taal. De volgende talen zijn momenteel beschikbaar:

Naast de language variabele is ook een tweede variabele actief, namelijk lang_xx waarbij xx overeenkomst met de 2-letter code van de ingestelde taal. Als Nederlands is ingesteld als de taal, dan bevatten de variabelen:

De language variabele is voornamelijk bedoeld om de taal van de hele pagina aan te geven in de HTML-tag:

...
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<!-- TMPL_VAR NAME="language" -->" lang="<!-- TMPL_VAR NAME="language" -->">
...

 Hij kan echter ook worden gebruikt om bijvoorbeeld een vlag te tonen van de taal van de website:

...
<img src="/css/mijnstijl/gfx/vlag_<!-- TMPL_VAR NAME="language" -->.gif" alt="" />
...

 In combinatie met de lang_xx variabele is het mogelijk om bijvoorbeeld een taalkeuze op een website te presenteren waarbij de vormgeving automatisch alleen de vlag/keuze voor de andere talen laat zien; de vlag/keuze voor de huidige taal juist niet.
(De variabele tmplBaseWebsite is een stijl-variabele die aangeeft wat de 'gewone' naam is van de website. De gewone 'nl' website heet bijvoorbeeld mijnwebsite en de andere twee mijnwebsite-en en mijnwebsite-de.)

...
<ul id="sitewide">
<!-- TMPL_UNLESS NAME="lang_nl" -->
   <li><a <!-- TMPL_IF NAME="edit" -->href="#" onclick="parent.xcmsSwitchWebsite(0, '<!--  TMPL_VAR NAME="tmplBaseWebsite" -->'); return false;"<!-- TMPL_ELSE -->href="/<!-- TMPL_VAR NAME="tmplBaseWebsite" -->"<!-- /TMPL_IF -->><img src="/gfx/nl_flag_s.gif" alt="Nederlands" /></a></li>
<!-- /TMPL_UNLESS -->
<!-- TMPL_UNLESS NAME="lang_en" -->
  <li><a <!-- TMPL_IF NAME="edit" -->href="#" onclick="parent.xcmsSwitchWebsite(0, '<!-- TMPL_VAR NAME="tmplBaseWebsite" -->-en'); return false;"<!-- TMPL_ELSE -->href="/<!-- TMPL_VAR NAME="tmplBaseWebsite" -->-en"<!-- /TMPL_IF -->><img src="/gfx/en_flag_s.gif" alt="English" /></a></li>
<!-- /TMPL_UNLESS -->
<!-- TMPL_UNLESS NAME="lang_de" -->
  <li><a <!-- TMPL_IF NAME="edit" -->href="#" onclick="parent.xcmsSwitchWebsite(0, '<!-- TMPL_VAR NAME="tmplBaseWebsite" -->-de'); return false;"<!-- TMPL_ELSE -->href="/<!-- TMPL_VAR NAME="tmplBaseWebsite" -->-de"<!-- /TMPL_IF -->><img src="/gfx/de_flag_s.gif" alt="Deutsch" /></a></li>
<!-- /TMPL_UNLESS -->
</ul>
...

Teksten

Om een vormgeving geschikt te maken voor verschillende talen biedt het cms de mogelijkheid om vaste teksten, die niet door een redacteur aangepast hoeven te worden, op te slaan in een apart xml bestand. Aan de hand van de ingestelde taal voor de website zal het cms dan het bijbehorende xml bestand inlezen en de teksten als variabelen beschikbaar maken.

De naam van een xml bestand is altijd <taal>.xml. En bestand dat de Duitse teksten bevat heet dus de.xml.

De inhoud van het xml bestand is als volgt:

<?xml version="1.0" encoding="iso-8859-1"?>
<strings>
  <string id="strHome">Startseite</string>
  <string id="strPrint">Drucken</string>
  <string id="strSearch">Suchen</string>
  <string id="strSitemap">Übersicht</string>
  <string id="strExplanation">Bitte clicken Sie auf diesen Link.</string>
</strings>

Per tekst/woord dient een regel met een ID en de tekst te worden opgenomen. De ID en de tekst zijn vrij te kiezen met in achtneming van de 'strenge' regels die gelden voor xml bestanden. Een &-teken in de tekst is bijvoorbeeld niet toegestaan, dit moet als &amp; geschreven worden (als in "Bert &amp; Ernie".)

In de html pagina kan het ID nu worden gebruikt als gewone TMPL_VAR. De tekst van een link naar de homepage kan als volgt worden ingevoegd:

...
<a href="/<!-- TMPL_VAR NAME="site" -->"><!-- TMPL_VAR NAME="strHome" --></a>
...

 wat resulteert in

...
<a href="/mijnwebsite">Startseite</a>
...

Taal per pagina

Via pagina-instellingen > tabje Talen kan voor elke pagina een eigen taal worden ingesteld. Tevens kan daar per pagina worden aangegeven welke andere pagina's er zijn met dezelfde in een andere taal (al dan niet op dezelfde website). Zie ook http://www.site-supply.nl/help/p000801

Deze instellingen kunnen vervolgens worden gebruikt om automatisch hyperlinks naar die andere taal-pagina's aan te bieden. Met een stukje javascript kan namelijk de URL bij de gewenste taal worden bepaald:

function getUrlForLanguage(lang) { 
  var links = document.getElementsByTagName("link"); 
  for (var i = 0; i < links.length; i++) { 
    if (links[i].getAttribute("hreflang") == lang) { 
      return links[i].getAttribute("href"); 
    }
  } 
  // language not found... return some default hyperlink 
  return 'http://www.xyz.nl';
}

En in de HTML:

<a href="#" onclick="javascript:this.href=getUrlForLanguage('nl')">Nederlands</a>
<a href="#" onclick="javascript:this.href=getUrlForLanguage('en-GB')">English</a>
<a href="#" onclick="javascript:this.href=getUrlForLanguage('de')">Deutsch</a>