Tips & tricks WordPress thema volledig multi-language opzetten
Overzicht
WordPress websites vertalen
We'll help you a little
We krijgen veel vragen over hoe je een WordPress thema zo goed en solide mogelijk multi-language op kan zetten. Er zijn veel plugins waar je dit mee kunt bereiken, maar het blijft lastig om álles vertaald te krijgen.
Met een redelijk achterhaald if/else statement kan je nog redelijk ver komen, maar binnen WordPress zijn er natuurlijk betere oplossingen. Wat we in deze how-to gaan behandelen is onderstaande voorbeeld: Stel je hebt de pagina's, berichten en menu's volledig vertaald met bijvoorbeeld WMPL, maar je blijft tegen het probleem aanlopen dat de 404 pagina niet vertaald kan worden, "zoeken" in de zoekbalk maar in het Nederlands blijft staan en ook "Laat een reactie achter" krijg je niet eenvoudig vertaald.
Je zou dit - zoals net uitgelegd - met een if/else statement kunnen doen. Is de taal Nederlands, toon dan zoeken. Is de taal Engels, toon dan search en in alle andere situaties toon je... niks? Maar wat als er nu ineens twee talen bijkomen, bijvoorbeeld: Spaans en Italiaans. Dan moet je het volledige thema door om de if/else statements uit te breiden. Niet handig dus!
Oplossing
Wat we gaan doen, is werken met de textdomain functie die WordPress standaard ondersteund. Het enige dat je hiervoor hoeft te doen, is onderstaande functie kopiëren in functions.php van je huidige thema.
add_action( 'after_setup_theme', function () {
load_theme_textdomain( 'tsd_vertalen', WP_LANG_DIR . '/loco/themes/themeName-' );
});
Wat belangrijk is om te onthouden van deze functie, is "tsd_vertalen". Deze hebben we nodig in de rest van ons thema. En verander “themeName” in de naam van het thema, dit is de naam van de folder.
Vertaalbaar
De voorbereidingen zijn nu getroffen en vanaf nu wordt het nog simpeler. We gaan woorden en zinnen vertaalbaar maken! Wat we daarvoor gaan doen is het volgende. Open een bestand, bijvoorbeeld 404.php en zoek naar een zin die vertaald moet worden. Stel dat er een regel staat met "404 - Pagina niet gevonden", dan pas je deze aan naar de volgende code:
<?php esc_html_e( '404 - Pagina niet gevonden', 'tsd_vertalen' ); ?>
Met deze functie geven we aan dat de regel "404 - Pagina niet gevonden" vertaald moet worden via het textdomain van "tsd_vertalen" zoals in de functie is te zien die we net in functions.php hebben gezet. Meer dan dit is er niet nodig! Je kan op deze manier de kleinste woorden en de meest lange zinnen vertalen.
Hoe dan?
Dat is een goede vraag; hoe vertaal je deze zinnen nu dan naar het Engels, Duits, Spaans.. En oh ja, Italiaans. Dat kan heel eenvoudig via een plugin, namelijk Loco Translate.
Deze plugin is gratis te verkrijgen via de WordPress Repo en kan alle woorden en zinnen die op deze manier ter vertaling zijn aangeboden doorlopen. Door binnen de plugin naar het juiste thema te navigeren vind je alle instellingen om jouw thema te vertalen. De belangrijkste knop is hier vrij lastig te vinden, namelijk “bewerk sjabloon”. Deze vind je onder de tabbladen en onder de naam van het thema. Klik de knop aan. Wanneer je hier op “synchroniseren” klikt zal de plugin het hele thema doorzoeken naar alle vertaalbare teksten en vervolgens genereert de plugin automatisch een .po bestand. Klik nu op “opslaan”.
Ga nu terug naar het overzicht van het thema, het overzicht waar je op “bewerk sjabloon” hebt geklikt, en klik “nieuwe taal” aan. Je begint nu met het aanmaken van de vertalingen voor de geselecteerde taal. Selecteer de juiste taal en nu komt een belangrijke stap; Voor de locatie selecteer je “aangepast”! Hiermee zorg je ervoor dat vertalingen niet overschreven kunnen worden bij een update van WordPress of van het thema. Met deze locatie is ook rekening gehouden in de eerst gedeelde snippet in deze handleiding.
Klik nu op “begin met vertalen”. Wanneer je nog geen teksten ziet om te vertalen, klik dan eenmaal op “synchroniseren”. Zoek de tekst die je wil vertalen en onderaan de pagina kan je de vertaalde tekst invoeren. Klik vervolgens op de knop “bewaar”.
That's it!
De tekst zal nu vertaald weergegeven worden voor bezoekers in die taal.
Let op: De taalweergave aan bezoekers wordt bepaald door de instelling “Site taal” onder Instellingen → Algemeen. Of wanneer het om een ingelogde bezoeker gaat door de “Taal” instelling binnen de profielinstellingen. Daar kom je via “Profiel bewerken”.