Tovább a tartalomhoz

Gettext használata a fordítható szövegekhez

Hogyan tedd fordíthatóvá a téma és a bővítmény szövegeit gettext függvényekkel: alapok, bevált gyakorlatok.

Hogy a témák és bővítmények szövegei fordíthatók legyenek és helyesen jelenjenek meg, két feltételnek kell teljesülnie:

  • a szöveget gettext függvénybe kell csomagolni;
  • meg kell adni a szövegtartomány (text domain) argumentumot.

Vegyük a „Thank you!” szöveget, amely a my-plugin-domain szövegtartományhoz tartozik:

__( 'Thank you!', 'my-plugin-domain' );

Ha ki akarod írni a böngészőbe, használd az _e() függvényt:

_e( 'Thank you!', 'my-plugin-domain' );

HTML-ben tedd HTML-címkék közé:

<h2><?php _e( 'Thank you!', 'my-plugin-domain' ); ?></h2>

Ha egy hivatkozás el van választva a környező szövegtől, használd az esc_html_e() függvényt:

<a href="https://example.com/" ><?php esc_html_e( 'Translated with WPML', 'my-domain' ); ?></a>

1. Soha ne csomagolj változót vagy konstanst gettext függvénybe

Szekció neve “1. Soha ne csomagolj változót vagy konstanst gettext függvénybe”

Így a szöveg nem olvasható be, ezért nem fordítható.

Hibás:

<?php
if ( $morning ) {
define( 'GREETING', 'Good morning' );
} else {
define( 'GREETING', 'Good afternoon' );
}
_e( GREETING, 'my-domain' );
?>

Helyes:

<?php
if ( $morning ) {
_e( 'Good morning', 'my-domain' );
} else {
_e( 'Good afternoon', 'my-domain' );
}
?>

2. Biztonsági okból escape-eld a kimenetet

Szekció neve “2. Biztonsági okból escape-eld a kimenetet”

Ha a szöveg azonnal megjelenik a kimenetben, használj escape-függvényeket, például az esc_html__() és esc_attr__() függvényt az XSS-támadások ellen:

echo '<div>' . esc_html__( 'Back to homepage', 'my-domain' ) . '</div>';

Ez segít a fordítóknak megérteni, milyen összefüggésben jelennek meg a szövegek vagy a változók:

/* translators: %1$s is status label (e.g. "active" and %2$s is quantity of bits/s (e.g. 12 Gbit/s) */
printf(
esc_html__( 'State of your network is %1$s. Maximum download speed is %2$s.', 'my-plugin-domain' ),
$state, $speed
);

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