Tovább a tartalomhoz

Más bővítmények és témák szövegeinek fordíthatóvá tétele

Hogyan regisztrálhatod a felhasználók által bevitt szövegeket a WPML sztringtáblájában, hogy a String Translation fordíthassa őket.

Ha egy téma vagy bővítmény a felhasználó által megadott szövegeket tárol (például egy widget címét vagy szövegmezőjét), ezeket regisztrálni kell a WPML sztringtáblájában. A regisztrált szövegeket a String Translation fordítja.

Felhasználói szövegek regisztrálása

Szekció neve “Felhasználói szövegek regisztrálása”

Amikor a felhasználó új szöveget hoz létre vagy egy meglévőt módosít, a szöveget regisztrálni kell. Ezt a wpml_register_single_string action hookkal teheted meg:

do_action( 'wpml_register_single_string', string $context, string $name, string $value )
  • $context: a bővítmény vagy a téma neve, olvasható formában.
  • $name: a sztring neve, amely segít a fordítónak megérteni, mit fordít.
  • $value: a lefordítandó szöveg.

Példa egy egyedi widgetre, amelynek van címe, egysoros beviteli mezője és szövegterülete. A widget update() függvényében a mentéskor regisztrálod a mezőket:

function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = strip_tags( $new_instance['title'] );
$instance['custom_input'] = strip_tags( $new_instance['custom_input'] );
$instance['custom_textarea'] = $new_instance['custom_textarea'];
// WPML: a sztringek regisztrálása fordításra
do_action( 'wpml_register_single_string', 'Widgets', 'Custom Widget - input field', $instance['custom_input'] );
do_action( 'wpml_register_single_string', 'Widgets', 'Custom Widget - textarea field', $instance['custom_textarea'] );
return $instance;
}

A példában a bemeneti mező és a szövegterület szövege a Widgets kontextusban, a Custom Widget - input field és a Custom Widget - textarea field néven jelenik meg a sztringek között. A regisztrált szövegek fordítását a frontenden a wpml_translate_single_string hookkal jeleníted meg.

Integráció témákkal és bővítményekkel

Szekció neve “Integráció témákkal és bővítményekkel”

A String Translation beépítésekor figyelj arra, hogy a hívások akkor is működjenek, ha a WPML nincs jelen.

Tedd a hívásokat függvény-létezési vizsgálatba, hogy ha a WPML aktív, meghívódjon, ha nem, a normál működés maradjon.

Gondolj arra az esetre is, hogy a felhasználó csak jóval később aktiválja a WPML-t. Ilyenkor a korábban létrehozott szövegek nem fordíthatók, mert a wpml_register_single_string hívás a létrehozásukkor nem futott le. Ennek elkerülésére regisztráld az összes felhasználói szöveget minden alkalommal, amikor a bővítmény adminoldala betöltődik. Ez elhanyagolható futásidőt jelent, de garantálja, hogy a sztringek mindig eljutnak a fordításhoz, és naprakészek.

A kód először azt vizsgálja, hogy létezik-e a wpml_register_single_string függvény, és ha igen, meghívja az összes felhasználói szövegre. Működése:

  • Ha üres vagy NULL értékkel hívod, a WPML figyelmen kívül hagyja.
  • Ha a sztring már létezik és nem módosult, a WPML figyelmen kívül hagyja a hívást.
  • Csak új vagy módosított sztring regisztrálásakor történik tényleges művelet.

A teljes fordítási tábla a memóriában van gyorsítótárazva, ezért az ismételt hívás nagyon kevés erőforrást igényel.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások