Gids

Wat WordPress i18n is en waarom het belangrijk is: hier vind je alles wat je moet weten!

Weglot productafbeelding
Merve Alsan
Geschreven door
Merve Alsan
Herzien door
Bijgewerkt op
2 februari 2026

Voor wie het nog niet wist: WordPress vormt de basis van bijna 43 procent van alle websites wereldwijd. Bovendien is het Content Management Systeem (CMS) beschikbaar in 205 verschillende talen. Aangezien het platform wereldwijd actief is, is lokalisatie van groot belang. Het i18n-proces van WordPress speelt hierbij een cruciale rol.

De ‘lift pitch’ voor i18n is dat het een manier is om de code van je thema en plug-in voor te bereiden op vertaling. Van daaruit kun je nauwkeurige vertalingen naar andere talen toepassen, je aanpassen aan andere culturen en regio’s, en de vruchten daarvan plukken.

In dit artikel gaan we dieper in op WordPress i18n en laten we je zien hoe je dit kunt toepassen. Hoewel enige kennis van programmeren wel handig is, zullen we de stappen ook stap voor stap uitleggen – en daarbij uitleggen wat WordPress i18n precies is (en wat het doet).

Waar staat i18n voor?

Hoewel ‘leet speak’ een overblijfsel is uit een vervlogen tijdperk, is het in kringen van webontwikkelaars nog steeds springlevend. Je zult weliswaar niet veel ‘l33t’ en ‘n00b’ tegenkomen, maar wel heel veel numeroniemen: bijvoorbeeld ‘a11y’ als het over toegankelijkheid gaat.

Eigenlijk is i18n ook een numeroniem. Het staat voor ‘internationalisering’ en bestaat uit de eerste en laatste letter, gecombineerd met een getal dat aangeeft hoeveel andere letters er tussen zitten. Je zult ook merken dat lokalisatie zijn eigen numeroniem heeft: l10n. Er zijn nog meer numeroniemen, zoals globalisering (g11n), europeanisering (e13n) en nog veel meer.

Hier gaan we specifiek in op internationalisering. In de officiële toelichting van het World Wide Web Consortium (W3C) wordt opgemerkt dat het ontwerp en de ontwikkeling hier een eenvoudige lokalisatie mogelijk maken voor gebruikers uit verschillende culturen, regio’s, talen en meer.

Het is belangrijk om te weten dat internationalisering slechts een eerste stap is in het vertaalproces. Vervolgens voer je de lokalisatie uit met behulp van een geschikte vertaaloplossing.

De basisprincipes van het i18n-lokalisatieproces

Wat het i18n-proces zelf betreft, zijn er een aantal stappen die de WordPress-ontwikkelaar doorloopt voordat hij het werk aan de vertaler overdraagt. Kort samengevat verloopt het lokalisatieproces als volgt:

  • Voeg een ‘text domain’-tag toe aan de kopteksten van je pagina’s.
  • Laad een taalbestand met behulp van een aantal speciale WordPress-functies.
  • ‘Markeer’ tekststrings met behulp van ‘gettext’-functies (we komen hier straks op terug).
  • Maak eenPOT-bestand(Portable Object Template) voor je thema of plug-in aan en voeg het toe.
  • Misschien wilt u een Cascading Style Sheets (CSS)-bestand maken voor tekst die van rechts naar links (RTL) wordt voorgelezen.

De vertaler gebruikt het .pot-bestand om de lokalisatie uit te voeren; het is dus een belangrijk onderdeel van het proces.

Een korte inleiding tot de gettext-tool

Voor wie het nog niet weet: POT-bestanden zijn een voorbeeld van bestanden die je met de GNU gettext-tool kunt genereren. Dit is technologie en software uit de jaren 80 die nog steeds van onschatbare waarde is voor iedereen die zich vandaag de dag bezighoudt met i18n.

Je hoeft niet precies te weten wat dit is om WordPress i18n uit te voeren, maar het is handig om in grote lijnen te begrijpen wat het doet en wat het oplevert. Beschouw gettext als een framework dat WordPress helpt bij het genereren van meertalige berichten.

Je zult vaak een aantal bestanden tegenkomen die verband houden met gettext:

  • POT-bestanden. Dit is het sjabloon voor je i18n-werkzaamheden, en het is wat de vertaler gebruikt om zijn of haar deel van het proces op gang te brengen.
  • PO-bestanden (Portable Object). In de praktijk is er geen wezenlijk verschil tussen POT- en PO-bestanden. Tijdens het vertaalproces bevat het PO-bestand tekststrings in zowel de brontaal als de doeltaal.
  • Machine Object (MO)-bestanden. Je kunt MO-bestanden beschouwen als de voor WordPress-code geschikte versie van een PO-bestand. Dit bestand wordt opgeslagen in de thema- of plug-inmap van je installatie en levert de vertalingen aan wanneer WordPress deze nodig heeft.

Met dit alles in gedachten kun je bijna aan het i18n-proces beginnen. Allereerst is het verstandig om je WordPress-site voor te bereiden op het werk dat voor je ligt.

Voordat u begint met het uitvoeren van het WordPress i18n-proces

Zoals bij elk project dat betrekking heeft op de kernbestanden van WordPress, moet je ervoor zorgen dat je installatie ‘schoon’ is voordat je begint. Zorg er ook voor dat je eventuele wijzigingen ongedaan kunt maken, voor het geval het ergste scenario zich voordoet en je de installatie moet herstellen.

Er zijn dus twee vrijwel onontkoombare ‘voorbereidende stappen’ die voorafgaand aan het i18n-proces moeten worden doorlopen:

  • Maak een volledige back-up van je website. Dit zou vanzelfsprekend moeten zijn, want een volledige back-up is de enige manier om je website te beschermen als je helemaal opnieuw moet beginnen.
  • Voer een plug-in-controle uit. Het is een goed idee om alle plug-ins op je site eens onder de loep te nemen en jezelf twee vragen te stellen: is er een update beschikbaar en heb ik de plug-in nodig?

Wat dat laatste betreft, raden we u aan de plug-ins die u wilt behouden bij te werken en de overbodige plug-ins te verwijderen.

We gaan opnieuw aan de slag met de kernbestanden van WordPress, dus het is handig als je weet hoe deze werken en wat erin staat. Sommige begrippen die we in deze tutorial bespreken, worden niet per se uitgelegd, maar de stappen zelf wel.

Zodra al deze punten zijn afgehandeld, kun je aan de slag gaan met het i18n-proces.

Hoe voer je het WordPress i18n-proces uit voor je thema’s en plug-ins?

In de komende paar hoofdstukken laten we je zien hoe je WordPress i18n kunt toepassen op je thema’s en plug-ins. Hoewel sommige hoofdstukken hier en daar veel code bevatten en technisch van aard zijn, zullen we alles zo gedetailleerd mogelijk uitleggen en verwijzen naar aanvullende bronnen die je mogelijk nodig hebt.

We beginnen met uit te leggen hoe je je thema’s kunt internationaliseren.

Hoe maak je een WordPress-thema dat klaar is voor vertaling

De eerste stap is het aanpassen van de header van het thema, zodat deze een tekstdomein en een domeinpad bevat. Kort gezegd:

  • Het tekstdomein helpt WordPress te begrijpen welke tekstreeksen bij het thema ‘horen’. Dit moet overeenkomen met de slug van je thema (en die van je plug-in).
  • Het domeinpad is de map binnen de bestanden van je thema waar de vertaalbestanden worden opgeslagen. De map /languages/ is de gebruikelijke en standaardnaam, maar je kunt desgewenst ook een andere naam gebruiken.

Hiervoor hoef je alleen maar een paar woorden toe te voegen aan het header-bestand van het thema:

/*
Themanaam: My Custom Theme
Auteur: Weglot
Tekstdomein: my-theme
Domeinpad: /languages/
*/‍

Vervolgens moet je dat tekstdomein laden met behulp van een ‘action’ en een ‘function’:

add_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup() {
load_theme_textdomain( 'my-theme', get_template_directory() . '/languages' );
}

Deze code moet in het bestand `functions.php` van je thema worden geplaatst, en niet in dat van je website. Zodra je dit hebt gedaan, kun je beginnen met het uitvoeren van een ‘string-audit’. Hiervoor moet je alle tekstreeksen in je thema omringen met vertaalfuncties. Er zijn twee functies die je vaak zult gebruiken:

  • __(). Dit omvat een dubbele onderstreping (of ‘dunder’) en levert een vertaalde tekenreeks op.
  • _e(). Dit geeft de vertaalde tekenreeks weer (of drukt deze af) zoals deze wordt weergegeven.

Deze functies vereisen twee argumenten: de tekstreeks en het tekstdomein. Bijvoorbeeld:

__()
$welcome = __( ‘Hallo! Welkom op het dashboard!’, ‘my-theme’ );
_e( ‘Weer hallo!’, ‘my-theme’ );

Hoewel de details van de verschillende vertaalfuncties buiten het bestek van dit artikel vallen, bevat het WordPress Theme Developers’ Handbook vrijwel alle informatie die je nodig hebt om deze klus te klaren.


Nu kun je een POT-bestand aanmaken. Er zijn tal van manieren om dit te doen, maar WordPress raadt Poedit aan – een gratis en open-sourceprogramma.

Zodra je Poedit hebt gedownload en geïnstalleerd, ga je in de werkbalk naar Bestand > Nieuw:

Een nieuw bestand aanmaken in Poedit

Maak vervolgens een nieuwe catalogus aan. Je kunt in het hoofdscherm op de link ‘Uit bronnen extraheren’ klikken:

Bronbestanden importeren in Poedit

Vul vervolgens op het tabblad ‘Vertalingseigenschappen’ de velden voor de projectnaam, het taalteam en de primaire taal in:

Het tabblad ‘Vertalingseigenschappen’ in Poedit

Als het bestand nieuw is, kun je het hier opslaan (de bestandsnaam moet dezelfde zijn als de slug van je thema). Selecteer vervolgens het tabblad ‘Bronpaden’ en zoek de map /languages/ op je computer:

Pad naar bronbestanden in Poedit

Op het laatste tabblad ‘Bronnen – Trefwoorden’ vind je een lijst met de vertaalfuncties die je in je thema hebt gebruikt:

Bron-trefwoorden in Poedit

Je kunt ze hier het beste toevoegen, hoewel het misschien lastig is om de juiste trefwoorden te vinden. Om te beginnen kun je de volgende lijst gebruiken:

__
_e
_x
_ex
_n
_nx
_n_noop
_nx_noop
translate_nooped_plural
number_format_i18n
date_i18n
esc_html__
esc_html__
esc_html_x
esc_attr__
esc_attr_e
esc_attr_x‍

Zodra je op ‘Bevestigen’ hebt geklikt, sla je de wijzigingen op en bekijk je je nieuwe bestanden: je ziet dan MO- en PO-bestanden op je computer staan. Als je het PO-bestand dupliceert, kun je de extensie .POT toevoegen, waarna je verder kunt gaan met de lokalisatie.

Hoe maak je een WordPress-plug-in die klaar is voor vertaling?

Je eerste taak hier lijkt op een thema: werk eerst de velden voor het tekstdomein en het domeinpad van de plug-in in de header bij:

/*
Naam plug-in: My Custom Plugin
URI plug-in:weglot
Beschrijving: Een aangepaste plug-in om vertaling en i18n te demonstreren.
Auteur: Weglot
Versie: 1.0
URI auteur:weglot
Tekstdomein: my-plugin
Domeinpad: /languages/
*/‍

We raden aan om een map /languages/ aan te maken voor het domeinpad en deze in te stellen als het domeinpad. Van daaruit kun je het tekstdomein voor de plug-in laden, maar deze keer kun je de volgende functie aan je code toevoegen, in plaats van via functions.php:

load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path );

Dit laat WordPress echter alleen weten dat er een vertaalbestand beschikbaar is. Om het te laden, moet je de functie in een actie plaatsen:

add_action( 'plugins_loaded', 'plugin_load_td' );function plugin_load_td() {
load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}

Een groot deel van de string-audit verloopt op dezelfde manier als bij thema-i18n. De laatste stap is het genereren van een POT-bestand volgens dezelfde procedure als eerder; het gegenereerde bestand komt in de huidige werkdirectory terecht.

Wat zijn de beperkingen van WordPress i18n?

Je hebt inmiddels vast wel door hoe geweldig WordPress i18n kan zijn. Het is ideaal als je thema’s of plug-ins ontwikkelt en deze vertaalbaar wilt maken. Maar zoals bij alle geweldige dingen zijn er ook enkele nadelen.

Als een plug-in bijvoorbeeld door gebruikers gegenereerde inhoud bevat, maakt deze geen deel uit van de i18n-vertaling.

Het i18n-proces maakt vertalingen mogelijk voor statische elementen die je programmeert, zoals knoptekst. Als de gebruiker echter een specifieke zin voor een veld wil invoeren, unieke labels wil aanmaken of andere ‘client-side’ elementen wil toevoegen, kun je hier geen rekening mee houden. Dat zou weliswaar mogelijk zijn, maar het is een complexe taak die buiten het bestek van een artikel als dit valt.

Als je geen ontwikkelaar bent, helpt i18n je bovendien niet bij het vertalen van je website. Hiervoor heb je een plug-in nodig, en misschien kun je beter meteen doorgaan naar het volgende gedeelte voor een geschikte optie.

Het is ook goed om te weten dat, hoewel vertaalplugins op veel manieren kunnen helpen, een website gemiddeld vijf plugins nodig heeft om volledig meertalig te zijn. Een oplossing als Weglot snel werkt, alle vertaalbare onderdelen van een website kan detecteren en compatibel is met vrijwel elk thema en elke plug-in. Dit geldt ongeacht of die thema’s en plug-ins vertaalbaar zijn.

Bovendien Weglot het thema, de plug-in en de belangrijkste inhoudselementen uit de HTML-pagina van de frontend en maakt deze vertaalbaar. Er zijn dus geen .pot- en .po-bestanden nodig, en de gettext-methode is evenmin vereist.

Hoe Weglot WordPress-i18n Weglot

In technische termen gaan we het nu hebben over de lokalisatie van uw inhoud – het daadwerkelijke vertaalproces.

Een goede vertaalstrategie is geen sinecure. Het is hard werken en vergt veel planning om ervoor te zorgen dat je content op de juiste manier verschillende culturen, regio’s en talen bereikt. Het gaat hierbij niet alleen om de vertaalde tekst in de hoofdtekst van je content. Je moet ook rekening houden met alle volgende punten:

  • Die mooie permalinks die je gebruikt.
  • Metagegevens van berichten en pagina’s.
  • Media, zoals afbeeldingen, video’s, GIF’s, pictogrammen en meer – inclusief de bijbehorende metagegevens.

Als je gebruikmaakt van e-commerce, zijn er ook hier tal van zaken waar je rekening mee moet houden. Je moet er bijvoorbeeld voor zorgen dat elk onderdeel op je afrekenscherm volledig vertaald is – met name de velden voor de valuta en de btw:

Nikon-camera - Franse versie

Bovendien is verzendinformatie een cruciaal onderdeel dat volledig en in hoge kwaliteit moet worden vertaald. Je wilt immers dat klanten geen enkel excuus hebben om niet op de knop ‘Kopen’ te klikken, ongeacht de taal die je gebruikt.

Afrekenpagina voor Nikon-producten

Weglot neemt een groot deel van het zware werk voor je uit handen. Het is een waardevolle bondgenoot bij je WordPress i18n-inspanningen, omdat het elk aspect van je site detecteert dat je kunt vertalen. Vervolgens voert het voor je een eerste laag machinevertaling uit:

Vertaallijst op een WordPress-website

Dit is misschien al voldoende voor uw behoeften, maar Weglot u helpen om nog een stap verder te gaan. U kunt professionele vertalingen invoeren, de bestaande vertalingen bewerken en nog veel meer. Dit biedt u alle flexibiliteit die u nodig hebt om uw website volledig te lokaliseren.

Conclusie

WordPress is bijna overal ter wereld beschikbaar. Daarom zijn geïnternationaliseerde thema’s en plug-ins een uitkomst bij het vertalen naar andere talen. WordPress i18n is een onmisbaar onderdeel voor ontwikkelaars die met het platform werken.

Als je je thema kunt internationaliseren zodat gebruikers vertalingen kunnen maken zonder de broncode aan te passen, zit je goed. Maar het feit dat je i18n-concepten toepast, betekent nog niet dat je thema of plug-in ook daadwerkelijk vertaald is.

Om deze stap uit te voeren, kun je het beste gebruikmaken van een oplossing zoals Weglot. Deze oplossing is compatibel met tal van verschillende platforms en technologieën en werkt uitstekend samen met WordPress. Zodra je het i18n-gedeelte van je workflow hebt afgerond, kun je Weglot inzetten Weglot nauwkeurige en eenvoudig te implementeren vertalingen in vrijwel elke taal Weglot genereren.

Om het zelf te ontdekken, Weglot een gratis proefperiode van 10 dagen Weglot , zonder aankoopverplichting.

In deze gids gaan we kijken naar:
Hoe betrouwbaar is AI-vertaling voor deze website?
nauwkeurigheidsscore
Wil je de nauwkeurigheidsscore van je website en vertaalde talen weten? Gebruik onze gratis tool voor een goede inschatting en persoonlijke tips.

Lees meer over werken met Weglot

FAQ-pictogram

Veelgestelde vragen

Geen items gevonden.
Aan de slag

Klaar om te beginnen

Bereik binnen enkele minuten nieuwe doelgroepen, zonder de tijd van je team op te offeren. Iedereen kan het installeren.