Terug

Wagtailtrans: uitgebreide meertaligheid in Wagtail

Ruim 1,5 jaar geleden is er bij Lukkien een liefde voor Wagtail ontstaan. Een gebruiksvriendelijk Content Management Systeem (CMS) wat zich makkelijk laat koppelen met externe systemen, maar ook een CMS waarbij we nog de volledige vrijheid hebben om een creatief eindresultaat neer te zetten.

Afgelopen juni hadden we het voorrecht om een sprint te organiseren samen met de bedenkers van Wagtail (Torchbox) waarbij (inter)nationale collega-ontwikkelaars 2 dagen aan nieuwe functionaliteiten en verbeteringen hebben gewerkt.

Een van de onderwerpen die wij als Lukkien tijdens de sprint wilden tackelen was de implementatie van geavanceerdere meertaligheid in Wagtail. Omdat een tijdsbestek van 2 dagen onvoldoende voortgang zou betekenen heeft het toen de sprint niet gehaald.

Wagtail heeft al de mogelijkheid om meerdere talen te ondersteunen, maar vanuit het perspectief van de content manager blijkt dat dit een tijdsintensieve onderneming is om dit te onderhouden, zeker wanneer een website uit meer dan 2 talen bestaat.

Bij Lukkien zijn meertalige sites aan de orde van de dag. Veel van onze klanten opereren immers als multinational of zijn over de hele wereld actief en willen dus zoveel mogelijk bezoekers bereiken. Op basis van deze ervaringen is Lukkien aan de slag gegaan met een voorstel voor een plugin: Wagtailtrans.

Meertaligheid

Bij de ontwikkeling van een plugin is het altijd streven deze modulair op te bouwen. Hoewel meertaligheid behapbaar klinkt, leert ervaring ons ook dat er geen “one size fits all” oplossing voor bestaat. 

Scenario 1: 

Voor Klant X is het relevant om de Nederlandse content 1-op-1 door te vertalen naar het Engels en Spaans. Waarbij de content en het menu door alle talen heen gelijk is.

Scenario 2:

Voor Klant Y is het relevant om in het Spaans andere content te publiceren of een andere menustructuur dan de Nederlandse vertaling te hanteren. Bijvoorbeeld omdat de Spaanstalige markt een andere contextuele invalshoek hanteert ten opzichte van de Nederlandse markt.

Deze beide scenarios zijn de fundering voor Wagtailtrans. In de uitwerking hiervan zijn deze twee uitgangspunten doorvertaald naar een configuratie optie die bij de start van een project bepaalt hoe je paginaboom eruit komt te zien. 

“Mag de paginaboom in sync zijn in alle talen?”

Wanneer de paginaboom in sync mag zijn (scenario 1) dan zorgt Wagtailtrans ervoor dat bij het aanmaken van een pagina in de standaardtaal, automatisch een concept wordt klaargezet in alle andere geconfigureerde talen. Waardoor het publiceren van een pagina in een andere taal enkel nog een kwestie van vertalen is.

Indien dit niet het geval is dan zal de pagina per taal moeten worden toegevoegd (scenario 2). De afgevaardigde van de taal in kwestie is hiermee regisseur over zijn eigen pagina structuur en bijbehorende content.

Wagtail

Workflow

In het geval van scenario 2 komen dan extra vereisten aan het licht op het gebied van workflows.

Een internationaal opererende klant kan een vestiging per land hebben waarbij de online marketing in eigen beheer wordt uitgevoerd. Zij zullen hun eigen afbeeldingen, documenten en teksten in hun taal willen beheren. 

Sinds Wagtail 1.4 is het mogelijk om middels een collectie structuur aan te brengen binnen afbeeldingen en documenten. Door een taalcode te koppelen aan een collectie binnen afbeeldingen en documenten zorgen we er voor dat dit van elkaar gescheiden wordt en de algehele organisatie van mediabestanden overzichtelijk blijft. Daarnaast is het met Wagtailtrans mogelijk om de rollen en rechten binnen Wagtail zo in te delen dat bijvoorbeeld een Spaanse vestiging niet zomaar de pagina’s, afbeeldingen en documenten van de Nederlandse vestiging mag wijzigen.

Wagtail

Multisite en multilanguage

“Mogen de ingevoerde talen identiek zijn over verschillende sites?”

Een laatste vereiste voor de eerste release van Wagtailtrans is het ondersteunen van verschillende talen in een multisite omgeving. Voor een corporate site kan het relevant zijn om deze enkel in het Engels uit te voeren, maar een consumenten site zal eerder uitgevoerd worden in meerdere talen. Wagtail faciliteert ons van een multisite configuratie, Wagtailtrans faciliteert het toevoegen van meertaligheid. Combineer deze beide elementen en we maken het middels een configuratie instelling mogelijk om per site een reeks van talen op te geven.

Wagtail

Resultaat

Na een testperiode hebben we op 14 december een eerste versie van Wagtailtrans (0.1) online gezet. Met daarin ook bijdragen van (inter)nationale collega’s die een kritische blik hebben geworpen. Dit levert de volgende voordelen op voor contentmanagers in Wagtail:

  • Wagtailtrans ondersteunt verschillende talen in een multisite omgeving.
  • Beheer van teksten, documenten en afbeeldingen zijn per taal en site mogelijk inclusief het toewijzen van rollen en rechten.
  • Pagina's kunnen eenvoudig gekopieerd worden, zodat de content alleen nog vertaald hoeft te worden.  
  • Het is tevens mogelijk om pagina's in te richten met een eigen structuur en content per taal.

Contentmanagers kunnen vanaf heden in Wagtail profiteren van de gebruiksvriendelijkheid en de tal van mogelijkheden die Wagtailtrans biedt. Het inrichten van meertalige websites en de bijbehorende rechten, rollen en workflows is nu een stuk efficiënter. 

Op dit moment hebben we vanuit Lukkien een tweetal projecten gelanceerd die gebruik maken van Wagtrailtrans. Neem een kijkje op:

What’s next?

De eerste versie van Wagtailtrans bevat in onze optiek de eerste reeks aan functionaliteiten die er in ieder geval in moeten zitten. Voor de volgende iteratie gaan we onze learnings van de eerste release evalueren en ook op basis van de feedback van de community en onze klanten kijken welke nieuwe functionaliteiten een plek op de roadmap krijgen.

Technisch nieuwsgierig?

Omdat Wagtail een open-source initiatief is, kun je het Wagtailtrans open-source initiatief terug vinden op het GitHub account van Lukkien.