jan 052012
 
WPTouch PRO translation problem

Problemen met de vertaling

Als je WordPress gebruikt als het tool van keuze om je weblog bij te houden, dan weet je dan WordPress ook in een Nederlandstalige versie beschikbaar is. En ook een (groot?) aantal van de plugins of themes die je voor WordPress kunt downloaden/aanschaffen zijn in het Nederlands beschikbaar. En dat soms best wel apart aangezien het een gratis omgeving is en je ook niet kunt verwachten dat al die makers van gratis plugins of themes al die vertalingen gaan onderhouden.

Gelukkig hoeft dat ook niet. Dat kunnen anderen namelijk voor hen doen. En dan zónder dat ze de code van de applicatie zelf hoeven te zien. De ‘technologie’ erachter (meer: de set afspraken erachter) is al tamelijk antiek, hij is oorspronkelijk begin jaren 90 ontwikkeld door Sun en heet gettext (grappig overigens dat juist dat Wikipedia bericht niet in het Nederlands beschikbaar is). En omdat gettext niet alleen meer in C en een aantal andere talen, maar ook in PHP ondersteund wordt en er voor alle gangbare besturingssystemen gratis software beschikbaar is om de vertalingen te maken en te onderhouden, is het niet vreemd dat WordPress hier gebruik van maakt.

.mo en .po
Hoewel gettext voor een vertaler eigenlijk heel eenvoudig is, moet je wel even weten hoe het werkt. En waarschijnlijk het meest verwarrende is het bestaan van twee bestanden met identieke namen, maar verschillende extensies: .mo en .po
Het verwarrende zit hem er in dat je het .po (soms ook .pot) bestand namelijk wel kunt lezen als je hem opent in Wordpad of een andere teksteditor, maar het .mo bestand niet. Terwijl je uiteindelijk eigenlijk alleen het .mo bestand nodig hebt in de online omgeving.
Wil je een vertaling aanpassen (of maken), dan heb je het .po bestand nodig. Dat wijzig je en dan genereer je op basis daarvan een .mo dat je dan weer in de online omgeving plaatst. Zonder .po bestand kun je dus niets. Maar ook geldt dat als je het .po bestand van een andere taal hebt (bijvoorbeeld het Engels of het Duits), jij zelf een .po en .mo bestand kunt maken voor de door jou gewenste taal.

Gelukkig is het zo dat, voor zover ik kon zien, de plugins en theme’s van WordPress die een vertaling bieden via gettext en ook WordPress zelf, allemaal zowel de .mo bestanden als de .po bestanden voor een taal bijleveren.
Dat gold ook voor WPTouch Pro, de betaalde plugin die ik gebruik voor de iPhone/iPad/Android skin voor dit weblog.
Zoals je in de screenshot hierboven kunt zien, zitten er in de oorsponkelijke Nederlandse vertaling een paar ‘fouten’. Geen taalfouten, maar woorden die in het Nederlands teveel ruimte innemen en daarom niet netjes in de skin passen. Die wilde ik aanpassen.

Downloaden van het .po bestand
De leverancier van WPTouch Pro heeft de vertaling op basis van gettext uitgevoerd en levert zowel de .mo als de .po bestanden voor een vertaling bij.

Downloaden van het .po bestand

Downloaden van het .po bestand

De .mo bestanden staan in dit geval in wp-content/plugins/wptouch-pro/lang/, maar die hebben we niet nodig, daar kunnen we niets mee. We moeten één map dieper gaan naar de wp-content/plugins/wptouch-pro/lang/src map. Daar staan de .po bestanden (vaak staan ze overigens gewoon in dezelfde map bij elkaar).
Ik wil iets wijzigen in de Nederlandse vertaling, dus heb ik het bestand wptouch-pro-nl_NL.pot nodig. Download dat naar je harde schijf.

[update] Hans Hak wees er via Twitter terecht op dat je in dit geval het .pot bestand niet van de server af zou moeten hoeven te halen. Je moet de WPTouch Pro plugin namelijk eerst als ZIP-bestand van de server van BraveNewCode downloaden na aanschaf. En in dat ZIP-bestand zit ook het .pot bestand. Je zou het dus al kunnen aanpassen voordat je de plugin importeert. Echter, ik wist uiteraard niet dat er teksten in zaten die ik zou willen aanpassen, dat zag ik pas na import. En bij achteraf aanpassen is het hoe dan ook handig om te weten waar de .mo en .po(t) bestanden te vinden zijn.

Installeren van Poedit
Ik weet niet of er nog andere programma’s zijn voor het bewerken van .po bestanden, maar Poedit is gratis, eenvoudig te gebruiken en beschikbaar voor Windows, Linux en Mac OSX, dus voor nu lijkt me dat voldoende.
Download Poedit van de website en installeer het programma.

Open het .po bestand dat je gedownload hebt.

Poedit

Poedit

De interface wijst zich eigenlijk haast vanzelf. Links in de kolom zie je de oorspronkelijke tekst. Die zal meestal in het Engels zijn omdat dat toch de breedst begrepen taal is in kringen van programmeurs. En rechts staat de vertaling in de betreffende taal.
Klik je op een regel dan zie je bronwoord en vertaling onder in de twee vakjes verschijnen. Daar kun je ze aanpassen.
Je kunt zoeken naar een woord met behulp van CTRL+F. Zo zocht ik het woord “Antwoord” op dat een te lange vertaling voor “Reply” was. Ik heb er voor gekozen om het woord te vervangen door “Antw.” zodat het wel past.
Let wel op. Als er andere plekken zijn waar die tekststring gebruikt wordt (op andere knoppen bijvoorbeeld), dan wordt nu ook op al die plekken de vertaling aangepast!
Wijzigingen kun je tussentijds opslaan, maar als je klaar bent met de aanpassingen, dan kies je Bestand > Exporteren. Poedit maakt nu een .mo bestand aan op basis van het .po bestand.

Het terug plaatsen van het nieuw .mo bestand ging niet helemaal zoals de makers van WPTouch beschreven. Zij adviseerden om het .po en .mo bestand te herbenoemen naar wptouch-pro-nl_NL2 en dan zou dat er voor zorgen dat je een nieuwe taal kon kiezen.
Dat bleek niet te werken. Ik heb daarom de bestaande wptouch-pro-nl_NL bestanden herbenoemd naar respectievelijk wptouch-pro-nl_NL.mo.bak en wptouch-pro-nl_NL.pot.bak en toen de gewijzigde wptouch-pro-nl_NL.mo en wptouch-pro-nl_NL.pot op de juiste plek online gezet.
Ik heb met opzet ook het .pot bestand terug gezet omdat ik dan tenminste de bron voor het .mo bestand ook daar heb staan. Als ik nou over een week of twee een andere aanpassing wil doen, dan heb ik het .pot bestand daar bij de hand. Ik zorg wel voor een eigen kopie op een andere plek omdat vaak plugins bij een upgrade ook automatisch de vertalingen op de server bijwerken (lees: overschrijven met hun eigen versie dus zonder jouw aanpassingen).

In het algemeen is het daarom ook handig om fouten die je aanpast ook terug te melden aan de makers van de plugin. Die spreken vaak de taal niet waar jij de vertaling voor aan het aanpassen bent en zijn dus ook afhankelijk van zulke terugmeldingen.

WPTouch PRO translation fixed

Het eindresultaat

Al met al best een lang verhaal. Gelukkig kost het aanpassen van de bestanden minder werk dan het beschrijven/uitleggen van de manier van aanpassen. 🙂

Deel dit bericht:

  3 reacties aan “Corrigeren van de vertaling van een WordPress plugin”

Sorry, het reactieformulier is momenteel gesloten.