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.
Fokko
Hoi Petra,
Bedankt voor deze duidelijke uitleg!
Ik heb er dankbaar gebruik van gemaakt.
Groet, Fokko
Petra Blankwaard
In reactie op FokkoAuteur
Leuk om te horen, dank!
aad
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 de taal bestanden in de hoofd map worden gezet werken ze wel
de fout zit kennelijk ergens in het functions.php bestand
weet jij wat daar fout aan is ?
ik zou je erg dankbaar zijn als je dat probleem voor mij weet op te lossen.
vriendelijke groet Aad
Petra Blankwaard
In reactie op aadAuteur
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.
Melissa
Bedankt voor je duidelijke instructie! Ik heb er al meermalen-met succes- gebruik van gemaakt.
Petra Blankwaard
In reactie op Melissa
Hoi Melissa, goed bezig 🙂 Dank voor je feedback!
Daan
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?
Petra Blankwaard
In reactie op Daan
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.
Michel
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 !
Michel
Socrates, is niet zoveel werk denk ik.
Petra Blankwaard
In reactie op MichelAuteur
Klopt, zijn maar 3 files.
Michel
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 ?
Petra Blankwaard
In reactie op MichelAuteur
Hoi Michel, dat verschilt per theme, welke theme gaat het om? Dan spiek ik even 🙂
michel
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 codes overschrijft, daar kan ik bijna niets over te vinden.
Maar goed, alvast bedankt voor eventuele hulp,
Michel
Petra Blankwaard
In reactie op michel
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.
Michel
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.
Petra Blankwaard
In reactie op Michel
Hoi Michel, welke vertaalmogelijkheid biedt je theme? Zit er een .po/.pot bestand in? Gr. Petra
Lillibel
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.
Petra Blankwaard
In reactie op LillibelAuteur
Dank voor je tip!
HPvH
Wat ik gebruik is de gratis plugin CodeStyling Localization hiermee kun je heel snel en makkelijk vertalingen doen.
Succes
Petra Blankwaard
In reactie op HPvHAuteur
Die plugin ken ik nog niet, dank voor je tip!