Vertaal/wijzig tekst

Doel

Het realiseren van een snelle aanpassing via een functie voor het vertalen of anderszins wijzigen van teksten van WordPress, thema of plug-in.

Aanleiding/overwegingen

  • Ik ben de laatste tijd aan de gang gegaan met de vertalingen van mijn plug-ins en ontdekte zo geleidelijk hoe dit in elkaar steekt.
  • Ik stoor mij soms toch wel wat aan alle ge-jij en en ge-jou. Vooral bij bedrijven tegen hun klanten. Gebruik zelf naar onbekende lezers eerder u. Het zal wel met de leeftijd te maken hebben.
  • Ik bemerkte dat mijn eigen tekst daarbij een andere stijl krijgt, dan die gebruikt wordt in WordPress, Thema, Woocommerce en andere plug-ins.
  • Ik ben overgestapt op de vertaling ‘Nederlands (formeel)’.
  • PROBLEEM 1: Voor het thema TwentyTwelve van mijn andere website https://Peppink.nl, blijkt deze formele vertaling niet voor het thema te bestaan. Allerlei zinnen verschijnen dan ineens in het Engels. Dat is natuurlijk niet de bedoeling.
    OPLOSSING 1: Ik heb dit even omzeilt, door een kopie van nl_NL.po naar nl_NL_formal.po te maken, alle je en jouw aan te passen (met programma poedit) in u en uw, en deze op te slaan.
  • PROBLEEM 2: Het blijkt dat er wel een formal versie van Woocommerce is, maar die is maar ten dele vertaalt. Een aantal gebruikte zinnen komt er ook zelfs niet in voor.
    Zie voor de status van vertaling: https://translate.wordpress.org/locale/nl/formal/wp-plugins/woocommerce/
    OPLOSSING 2: Om terug te gaan naar het informele trekt me niet. Om deel te nemen aan het vertalen van het resterende deel van de plug-in overweeg ik, maar op korte termijn levert dan niets op. Een tussenoplossing is gewenst in afwachting van definitieve vertaling. Deze heb ik gevonden in een functie, waarmee tekst omgezet kan worden. Deze functie gaan we toevoegen aan het bestand functions.php.

Voorbereiding

  • Ik ga ervan uit dat u werkt met een zogenaamd child thema. We maken de aanpassing in /wp-content/themes/yourtheme-child/functions.php

Uitvoering

Voeg de volgende functie toe aan het bestand en pas de hier gegeven voorbeeld tekst aan waar nodig.

// Replace (untranslated or unwanted) text.
function pep_change_translate_text( $translation ) {
	$text = array(
	// For Woocommerce formal
	'You’ve received the following order from' => 'U heeft de volgende bestelling ontvangen van',
	'Thanks for your order.' => 'Bedankt voor uw bestelling.',
	'It’s on-hold until we confirm that payment has been received.' => 'Hij staat in de wacht tot we bevestigen dat de betaling is ontvangen.',
	'In the meantime, here’s a reminder of what you ordered:' => 'In de tussentijd vindt u hier een herinnering aan wat u heeft besteld:',
	'Terms and conditions' => 'Algemene voorwaarden',
	// For theme
	'Old text' => 'Oude tekst',
	);
	$translation = str_ireplace( array_keys( $text ), $text, $translation );
	return $translation;
}
add_filter( 'gettext', 'pep_change_translate_text', 20 );

Toelichting bij de regels

  • 1. Geeft in commentaar aan wat we gaan doen.
  • 2. Opent de functie
  • 3. Start de variabele $text met een array, die in de volgende regels wordt gevuld.
  • 4. Commentaar dat aangeeft dat de volgende regels gebruikt worden in Woocommerce.
  • 5-9. 5 regels, waarbij eerste string de tekst is die nog vertaald moet worden gevolgd door de tweede string met de gewenste tekst. Afgesloten met een komma
  • 10. Commentaar dat aangeeft dat het volgende gedeelte gebruikt wordt voor vertalingen in mijn thema. Zou kun je het een beetje overzichtelijk bundelen per thema of plug-in.
  • 11. Voorbeeld tekst, die ik maar even heb laten staan om te tonen hoe ‘Old text’ wordt gewijzigd in ‘Oude tekst’. het gedeelte voor dit thema heb ik weer laten vervallen, toen ik ontdekte hoe ik het formele bestand ook vlot zelf kon aanmaken.
  • 13. Hier wordt de doorgegeven tekst vervangen door de gewenste tekst.
  • 14. Hier wordt het resultaat teruggegeven.
  • 16. Voegt het filter toe aan ‘gettext’, waarbij de zojuist geplaatste functie wordt aangeroepen.

Resultaat

De Engelse tekst is vervangen.

Tips

Als veel tekst omgezet zou moeten worden, zou dit vermoedelijk vertragend kunnen werken. Het lijkt mij dat het dan de voorkeur verdient om de vertaalbestanden aan te passen. Maar voor snelle (tijdelijke) aanpassing blijkt het zeer geschikt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Meer informatie over hoe uw reactiegegevens worden verwerkt.