WPML und andere Translation Tools können eine ganze Menge, wenn es darum geht WordPress oder WooCommerce Plugins zu übersetzen. In der Praxis ist aber leider nicht jeder String für diese Tools erreichbar. Bevor man in den Quellcode eines Plugins eingreift, gibt es einen eleganten Weg diese Ausreisser doch zu erwischen.

WooCommerce on the fly übersetzen

Bevor WordPress Inhalte anzeigt, schickt es alles durch die gettext() Funktion. Platziert man hier einen Filter, so können die Inhalte übersetzt werden, bevor sie im Browser angezeigt werden. Das folgende Beispiel übersetzt einige Strings diverser WooCommerce Plugins. Der gleiche Code funktioniert aber auch mit anderen WordPress-Erweiterungen:

add_filter( 'gettext', 'translate_woocommerce_strings', 999 );
 
function translate_woocommerce_strings( $translated ) {

  $translated = str_ireplace( 'You only need', 'Du benötigst nur noch', $translated );
  $translated = str_ireplace( 'more to get free shipping!', 'zur KOSTENLOSEN Lieferung!', $translated );
  $translated = str_ireplace( 'Continue Shopping', 'Weiter einkaufen', $translated );
  $translated = str_ireplace( 'Shipping', 'Versand', $translated );
 
  return $translated;
}