Ga naar hoofdinhoud

Contacteer ons op +32 2 306 02 11 of mail ons op info@desk02.be

Strategieën voor meertaligheid in Drupal 7

Introductie

In deze post zal ik uiteenzetten welke mogelijke strategieën er zijn om een meertalige website in Drupal te maken samen met de voor- en nadelen van elk van deze strategieën.

Historiek

Drupal 4.x

In Drupal 4.x was er helemaal geen support voor meertaligheid in Drupal. Je moest toen de i18n module installeren en manueel specifieke tabellen aanmaken als je iets met meertaligheid wou doen.

Op de Drupalcon in Brussel werd toen ook de eerste sessie mbt meertaligheid gegeven door José, de originele en huidige beheerder van de i18n module.

Drupal 5.x

Bij het ontwikkelen van Drupal 5 werden de eerste concepten van meertaligheid, geïntroduceerd door de i18n module, opgenomen in core.

Drupal 6.x

Gábor Hojtsy, een student uit Hongarije, doet zijn thesis rond meertaligheid en Drupal. Hij wordt tevens maintainer van Drupal 6 en zo komt het concept van node vertalingen in Drupal core.

Drupal 7.x

Met de introductie van velden in core worden ook deze vertaalbaar gemaakt. Voor de UI is er echter een aparte module nodig.

Er wordt ook een eerste poging gedaan om dynamische data vertaalbaar te maken.

Strategieën voor taal afhankelijke nodes

Taalonafhankelijke nodes

Als je na een standaard Engelstalige installatie van Drupal nodes aanmaakt zal elk van deze nodes geen specifieke taal hebben. Ook niet het Engels. In Drupal termen heet dit LANGUAGE_NONE of und in ISO 639-2 termen.
Elke node staat dus volledig los van de andere nodes en bevat ook geen taalinformatie.

Nodes zonder taal.

Taal per node

Van zodra je de locale module activeert zal je in het content type edit scherm kunnen aangeven of het content type al dan niet meertaligheid ondersteund.

Meertaligheidsopties na het activeren van de locale module.

Als je dat instelt dan kan je per node een taal ingeven. Het resultaat is dat je alleenstaande nodes hebt met elk een taal:

Nodes met taal.

Dit is de makkelijkste manier om meertalige inhoud aan te maken en te beheren voor kleine brochure sites. Per taal maak je gewoon de gewenste content aan en daarmee houdt het op. Wat er dan wel ontbreekt is de mogelijkheid om te zien of een pagina al dan niet in elke taal bestaat of als men een aanpassing doet in een bepaalde taal kunnen aangeven dat de vertaling ook moet aangepast worden. Dit kan niet omdat er geen relatie bestaat tussen nodes die een vertaling van elkaar zijn.

Taal per node met een vertaling relatie

De content translation module introduceert een extra mogelijkheid in het edit scherm van de content types. Namelijk meertalige inhoud met vertaling. Dit is bijna hetzelfde als het vorige, alleen dat er tussen nodes ook kan bijgehouden worden dat ze een vertaling van elkaar zijn. Zo kan je bij het bewerken van een node in één taal makkelijk de content terugvinden in de andere talen.

Meertaligheids opties na het activeren van de content translation module.

Conceptueel ziet dit er bijna uit als het vorige met de uitzondering dat er een relatie bestaat tussen translation sets:

Nodes met taal en een vertaling relatie.

Vertaalbare velden

In Drupal 7 is het concept van velden (CCK in Drupal 6) opgenomen in core. Tegelijkertijd werd de functionaliteit om velden te vertalen ook geïmplementeerd. Om deze functionaliteit beschikbaar te maken in de UI moet je de entity translation module installeren.

Na het activeren krijg je ook de optie om nodes te vertalen doch de methode is hier anders dan de vorige. Conceptueel ziet het er als volgt uit:

Nodes met vertaalbare velden.

Bij het aanmaken van velden krijg je dan de optie om aan te geven of het veld vertaalbaar is:

Optie om velden te vertalen.

Deze methode is nogal nieuw en zou ik alleen aanraden voor sites of content types die zeker vertaald worden. Bijvoorbeeld voor producten in een e-commerce shop.

Epiloog

Over het algemeen zijn er twee grote kampen in het i18n verhaal. Diegenen die zweren bij translation sets en diegenen die zweren bij vertaalbare velden. De beheerders van de huidige entity translation module wouden zelfs het concept van translation sets helemaal uit core verdrijven. Ondertussen is er toch een soort van concensus gegroeid en zullen beide concepten behouden blijven. De kans is echter wel groot dat vertaalbare velden de standaard manier om content te vertalen in core wordt voor Drupal 8.

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.
  • Adressen van webpagina's en e-mailadressen worden automatisch naar links omgezet.
  • Toegelaten HTML-tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Regels en paragrafen worden automatisch gesplitst.
  • U kan syntax highlighting toepassen door gebruik te maken van volgende tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby> De ondersteunde tag formaten zijn: <foo>, [foo]
  • Feweb
  • Drupal
  • AnySurfer, Belgisch kwaliteitslabel voor toegankelijke websites

© Desk02 • Sitemap