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.

Finalist - Drupal

Meer weten

fabian.de.rijk

Senior Drupal Developer0640869887[email protected]0640869887LinkedInTwitterDrupal
Meer van fabian.de.rijk

Meer artikelen

Integratie

Applicaties koppelen? Wij hebben een schat aan ervaring.

4 minuten lezen
Lees het artikel Applicaties koppelen? Wij hebben een schat aan ervaring.
cookiebot

Nieuwe cookiebanners

2 minuten lezen
Lees het artikel Nieuwe cookiebanners
maatwerksoftware

Software kiezen is net als een auto kopen

5 minuten lezen
Lees het artikel Software kiezen is net als een auto kopen