WPML

למד כיצד להשתמש בפונקציות gettext כדי להפוך טקסטים בתבניות ובתוספים לניתנים לתרגום ב־WPML.

כדי להבטיח שטקסטים בתבניות ובתוספים יהיו ניתנים לתרגום, ויופיעו כראוי באתר שלך, עליך לעמוד בשני תנאים:

  • עטוף טקסטים בפונקציית gettext
  • כלול ארגומנט text domain

יסודות Gettext

קח לדוגמה את המחרוזת הבאה, "Thank you!", ששייכת לדומיין "my-plugin-domain":

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

כדי להדפיס את המחרוזת לדפדפן, השתמש בפונקציה _e() :

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

בעת שימוש ב־HTML, עטוף אותה בתוך תגיות HTML:

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

אם יש לך קישור שמופרד מהטקסט שסביבו, השתמש בפונקציה esc_html_e():

<a href="http://wpml.org/" ><?php esc_html_e( 'Translated with WPML', 'my-domain' ); ?></a>

שיטות עבודה מומלצות עבור Gettext

1. לעולם אל תעטוף משתנה או קבוע בפונקציית gettext

הדבר יהפוך את המחרוזות לבלתי ניתנות לסריקה, ולכן לא ניתנות לתרגום.

לא נכון

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

נכון

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

2. בצע Escape לפלט לאבטחה

אם מחרוזת מוצגת מיד בפלט, השתמש בפונקציות escape, כמו esc_html_ ו־esc_attr_ כדי להגן מפני מתקפות XSS.

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

3. הוסף הערות למתרגמים

הדבר עוזר למתרגמים להבין את ההקשר שבו הטקסטים או המשתנים מופיעים.

/* 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
);

משאבים נוספים

כדי ללמוד עוד על gettext, עיין בקודקס WordPress הרשמי.

נכתב על ידי Amir · עודכן לאחרונה: 21 בפברואר 2025