Laad vertalingen van maatwerk Drupal8 modules

3 minuten lezen

Wanneer je een Drupal 8 module hebt gebouwd voor een applicatie die niet (of niet alleen) Engels heeft als taal ben je tegen dit probleem aangelopen. Er zitten in de code stukken Engelse tekst die vertaal worden door middel van de t() functie, maar deze moeten vertaald worden tijdens een release. Hoe werkt dit nu eigenlijk?


De voorwaarden

Ten eerste hebben we een module nodig die de Engelse teksten uit de maatwerk module haalt. Hiervoor kun je Translation template extractor gebruiken.

Download de module: composer require drupal/potx --dev

Zet deze aan: drush pm:enable potx (let op, alleen aanzetten op ontwikkel omgevingen)

Nu is de module geinstalleerd.Vanaf nu kun je de module gebruiken op het pad admin/config/regional/translate/extract. Wat je nu moet doen is jouw maatwerk module selecteren, de taal waar je naar wilt exporteren en op "Extract" klikken.

Wat moet ik doen met het gedownloade bestand?

Het geexporteerde bestand kan geplaatst worden in een submap van jouw module (bijvoorbeeld 'translations') en kan bewerkt worden met iedere tekst bewerker of IDE.

Een voorbeeld vertaling kan zijn:

msgid "The description of my module."
msgstr "De beschrijving van mijn module."

Het msgid is de tekst die vertaal moet wordenen het msgstr is vertaalde tekst. In dit voorbeeld gaat de vertaling van het Engels naar het Nederlands.

Als eenmaal de teksten zijn vertaald dient de maatwerk module zich bewist gemaakt te worden van de vertalingen. Dit is te doen door een aantal regels toe te voegen aan het module_name.info.yml bestand.

name: 'My module name'
type: module
description: 'My module description'
core: 8.x
interface translation project: my_module
interface translation server pattern: 'modules/custom/my_module/translations/my_module.%language.po'

De laatste 2 regels in het bovenstaand voorbeeld tonen hoe de module zich bewust wordt van de vertalingen. Zie je de %language variabele? Deze zorgt ervoor dat er meerdere vertalingsbestanden gebruikt kunnen worden voor verschillende talen. Het enige wat gedaan moet worden is de taal code toevoegen aan de bestandsnaam. Bijvoorbeeld 'nl' voor Nederlands of 'se' voor Spaans.

De vertalingen importeren.

Het importeren van de vertalingen is zo simpel als het draaien van 2 drush commando's. Het is aangeraden om deze ook elke release te draaien.

Eerst: drush locale-check

Dit commando checked voor beschikbare vertalingen van de geinstaleerde modules. (zowel contributed als maatwerk), thema's en Drupal core op zowel de Drupal localization server als het lokale bestandssysteem.

Volgende: drush locale-update

Dit commando importeert de daadwerkelijke vertalingen. Dit importeert alleen nieuwe of nog niet vertaalde teksten, dus je hoeft niet bang te zijn om handmatig vertaalde teksten kwijt te raken.

Meer weten

Fabian de Rijk

Senior Drupal Developer0640869887[email protected]0640869887LinkedInTwitterDrupal
Meer van Fabian de Rijk

Meer artikelen

drupal
drupal 7
drupal 9

Drupal 7 support verlengd, toch slim om nu te upgraden

Tom van Vliet
5 minuten lezen
Lees het artikel Drupal 7 support verlengd, toch slim om nu te upgraden
digitoegankelijk
drupal

Drupal 9 verbindt mensen door digi-toegankelijkheid

Celil Tan
4 minuten lezen
Lees het artikel Drupal 9 verbindt mensen door digi-toegankelijkheid
liferay
upgrade
dxp

Last call: Hoogste tijd om te upgraden van Liferay 6.2 naar DXP

Geert van der Ploeg
7 minuten lezen
Lees het artikel Last call: Hoogste tijd om te upgraden van Liferay 6.2 naar DXP