Standaard taal
Doorgaans worden WordPress thema’s aangeboden in het Engels. Op zich is dat ook geen probleem, tenslotte zet je Nederlandse teksten in je website of blog, voor zover deze bedoeld is voor Nederlandse bezoekers.
Toch zie je dan vaak verdwaalde Engelstalige woorden of zinnen staan, zoals ‘Leave a comment’ in plaats van ‘Laat een reactie achter’, ‘Categories’ in plaats van ‘Categorieën’ etc. Hoe kun je een WordPress thema vertalen?
WordPress thema vertalen
In de betere thema’s, doorgaans premium thema’s, vind je vertaalbestanden. Bij de beschrijving van het thema wordt vermeld dat het ‘Localization ready’ is en/of .po bestanden bevat. Er staat in de map met thema-bestanden in dat geval een map ‘lang’ of ‘languages’ of ‘locale’. Daarin staat tenminste 1 .po bestand of een .pot bestand.
In de screenshot zie je de bestanden nl_NL.mo en nl_NL.po staan.
Dit thema heeft al een Nederlandse vertaling, en bovendien een Spaanse en Italiaanse vertaling.
Als je de nl_NL bestanden niet ziet staan is het thema nog niet beschikbaar in het Nederlands.
Je zult dan (delen van) je thema zelf moeten vertalen.
Wat zijn dit voor bestanden?
.mo staat voor Machine Object
.po staat voor Portable Object
.pot staat voor Portable Object Template
Het .pot bestand is de basis voor alle varianten .po/.mo. Als dit het enige bestand is dat in je theme beschikbaar is, zul je dit bestand gebruiken als basis.
Het .po bestand is het bestand dat je kiest bij ontbreken van een .pot bestand. Het .mo bestand is het bestand dat automatisch gekoppeld is aan het .po bestand, het .mo bestand wordt door WordPress gebruikt.
Hoe vertaal je deze bestanden?
Ik heb een uitgebreide beschrijving gemaakt hoe je deze bestanden kunt vertalen met behulp van Poedit. Om te voorkomen dat dit artikel veel te lang wordt bied ik deze beschrijving aan als PDF:
Tot slot
Beschikt je WordPress thema niet over de bestanden zoals hierboven beschreven, dan is je thema alleen te vertalen door de php bestanden te openen en de vertaling daarin door te voeren. Dit is af te raden voor wie niet thuis is in php taal. Mocht je in de code gaan vertalen, maar dan een backup van je originele thema voor je begint.
Wat ik gebruik is de gratis plugin CodeStyling Localization hiermee kun je heel snel en makkelijk vertalingen doen.
Succes
Die plugin ken ik nog niet, dank voor je tip!
Prima uitleg, heeft me goed geholpen! Kleine aanvulling: het .mo-bestand wordt pas automatisch opgeslagen als bij Bestand -> Voorkeuren -> Bewerker het vinkje voor ‘Automatisch ‘.mo’-bestand compileren bij opslaan’ aan staat.
Dank voor je tip!
Hi, ik wil graag mijn engelstalige theme vertalen met een childtheme alleen weet ik niet hoe je die codes moet invoeren,
Moet je gewoon b.v het gehele index.php bestand kopieren naar je childtheme en daar de vertaling maken ? Hoe voer je dat in ? Heb je misschien een screenshot ?
Alvast bedankt.
Hoi Michel, welke vertaalmogelijkheid biedt je theme? Zit er een .po/.pot bestand in? Gr. Petra
Hoi Petra, dank je voor je snelle reactie, er zit geen .po of .potbestand in, die vertaling moet ik echt in de phpcode vertalen : comments, posts enz, vandaar mijn vraag, ik weet niet hoe je dat in moet voeren, heb al geprobeerd om b.v de hele index.php te kopieren naar de functions.php van het childtheme en daarin de vertaling te maken, het childtheme zou dan de phpcodes in het parenttheme moeten overschrijven Maar kreeg meteen een error te zien. Het gaat er mij alleen om hoe je die phpcodes zo moet invoeren in je childtheme dat deze de orginele… Lees verder »
Hoi Michel, voordat je je een hoop werk op de hals haalt, kun je eens kijken of de plugin Codestyling Localization voor jou uitkomst biedt? Er zijn themes die vanuit WordPress Dashboard te vertalen zijn zonder dat ze beschikken over een .po bestand, lijkt me het proberen waard. Laat even weten of dit een werkende oplossing is.
Hoi Petra, dank je nog voor je reactie ! Ik wil die plugin wel proberen maar dan toch met een childtheme, aks het thema een update krijgt kan ik weer overnieuw beginnen of is het niet zoveel werk ?
Hoi Michel, dat verschilt per theme, welke theme gaat het om? Dan spiek ik even 🙂
Socrates, is niet zoveel werk denk ik.
Klopt, zijn maar 3 files.
Dan moet die files zelf maar rechtstreeks vertalen, die plugin werkt niet bij het socratestheme, probeer er wel achter te komen hoe je dat in moet voeren in een childtheme, bedankt nog voor je hulp Petra en succes nog !
Hoi Petra, dank voor je tekst! De plugin werkt bij mij helaas niet.. hij doet niks als ik op de bewerk knop druk.
Het gekke is dat ook als ik het .po bestand aanpas in een editor en via ftp vervang, gebeurt er niks.
Heb ik dan het verkeerde .po bestand of doe ik iets anders fout?
Hoi Daan, gaat net even anders: je moet het .po bestand in het programma Poedit openen en dan regels vertalen (een deel of alles). Als je vertaald hebt wat je wilt vertalen, dan kies je ‘opslaan’, daarbij wordt het .po opgeslagen en daarbij wordt (als ‘setje’) ook een .mo bestand aangemaakt of bijgewerkt. Zowel .po als .mo kun je weer uploaden via FTP naar de juiste locatie op de server. Het .mo bestand bepaalt e vertaling aan de voorkant van de website.
Bedankt voor je duidelijke instructie! Ik heb er al meermalen-met succes- gebruik van gemaakt.
Hoi Melissa, goed bezig 🙂 Dank voor je feedback!
Beste Petra / indigo ik beschik over de Nederlandse taal bestanden van het Hueman thema die zijn geplaatst in de map languages in het hueman child thema om dat werkend te moest ik ook een functions.php bestand in de child map plaatsen met de volgende inhoud <?php /* ————————————————————————- * * Custom functions /* ————————————————————————- */ // Add your custom functions here, or overwrite existing ones. Read more how to use: // http://codex.wordpress.org/Child_Themes function alx_load() { // Load theme languages /* get_template_directory verandert in get_stylesheet_directory */ load_theme_textdomain( 'hueman', get_stylesheet_directory().'/languages' ); } maar ik krijg steeds de melding server fout indien… Lees verder »
Hoi Aad, zo te zien mis je wat code, kun je eens kijken naar dit voorbeeld: http://codex.wordpress.org/Function_Reference/load_child_theme_textdomain
Houd ook de spaties in stand als die er tussen staan. Laat nog even weten of dat de oplossing was.
Hoi Petra,
Bedankt voor deze duidelijke uitleg!
Ik heb er dankbaar gebruik van gemaakt.
Groet, Fokko
Leuk om te horen, dank!