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.
Feltételes hívások
Szekció neve “Feltételes hívások”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.
A WPML késői aktiválása
Szekció neve “A WPML késői aktiválása”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.
Kapcsolódó fejezetek
Szekció neve “Kapcsolódó fejezetek”- A témák és bővítmények kódba írt szövegeinek regisztrálása: Gettext használata.
- Téma- vagy bővítménybeállítások regisztrálása: A wp_options táblában tárolt szövegek.
- Elemek csoportos fordítása: Sztringcsomagok készítése.
Készült: