Olet luultavasti joskus nähnyt jossakin WordPress/WooCommerce -toteutuksessa napin, jossa on vääränkielinen teksti – tai artikkelien metatietoa, joissa lukee lukee ”By” eikä ”Kirjoittaja”? Ehkä tällainen on kerran tai kaksi piinannut sinuakin?
Hyvin laajalti käytetty apu (toimiva ja todella hyvä apu!) on esim. Loco translate -niminen lisäosa, jolla voi tehdä string-käännöksiä (string = merkkijono) lisäosien ja teemojen eri alueisiin.
Yksittäisiin tapauksiin on tosin olemassa täsmälääke, WordPressin coressa oleva gettext- filterhook.
Kopioi koodi lapsiteemasi functions.php:n jatkoksi.
/**
* @snippet Merkkijonojen muutokset gettextillä
* @author Jaakko Pöntinen - WPWoofi.com
* @testedwith WooCommerce 4.5.2
*/
// Aktivoidaan filter funktiolla
add_filter( 'gettext', 'mm_change_multiple_strings', 20 );
// Määritetään funktio
function mm_change_multiple_strings( $translated ) {
// Määritetään array, jossa listataan muutettavat stringit ja se, mikä tulee korvaavaksi. Muuta, poista tai kopioi lisää rivejä tarpeen mukaan - muutamia rivejä on syötetty esimerkin vuoksi.
$text = array(
'Näytä ostoskori' => 'Avaa kori',
'Laskutustiedot' => 'Tilaajan tiedot',
'Search Results for' => 'Hakutulokset',
'Laskutusosoite' => 'Tilaajan tiedot',
'(ei sis. alv.)' => 'alv0',
'You searched for' => 'Etsit tätä',
);
// Käsitellään yllä annetun arrayn mukaan
$translated = str_ireplace( array_keys($text), $text, $translated );
// Palautetaan käsitellyt tiedot
return $translated;
}