'תרגום מחרוזות' של WPML מאפשר לך לתרגם את ערכות העיצוב והתוספים שלך.

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

  • הטקסטים חייבים להיות עטופים בקריאות GetText.
  • חייב להיות ארגומנט text-domain.

כל הטקסטים המוגדרים באופן מפורש (hard-coded) ב-PHP ולא עטופים בקריאות GetText עם text-domain, לא יתורגמו על ידי WPML.

דוגמאות

טקסט סטטי שאינו עטוף ב-GetText

<h2>Links</h2>

בעיה: המילה Links לא עטופה בקריאת GetText. היא לא ניתנת לתרגום.

פתרון: עטוף את הטקסט בקריאת GetText Echo:

<h2><?php _e('Links','theme-text-domain'); ?></h2>

עטפנו את Links בקריאת gettext _e() (echo הניתן לתרגום). עכשיו, WPML יכול לתרגם אותה.

הטקסט בפונקציה לא עטוף ב-GetText

by <?php echo(the_author('', false)); ?>

בעיה: לא ניתן לתרגם את הביטוי.

פתרון: ביטוי זה מורכב מטקסט סטטי ומטקסט דינמי. צריך לעטוף את הכל בקריאת GetText אחת ולהשתמש בארגומנטים.

<?php printf( __( 'by %s', 'theme-text-domain' ), the_author('', false) ); ?>

הטקסט שהמתרגם יקבל הוא 'על ידי %s'. זה טוב מפני שזה יאפשר למתרגם להחליף את סדר המילים, דבר הנדרש בחלק מהשפות.

שים לב כי במקרה זה השתמשנו בקריאת e __() GetText. קריאה זו דומה לקריאה _e(), אבל היא אינה כותבת לפלט (כפי ש-echo עושה). הקריאה printf מוציאה את הפלט.

הארגומנט text-domain חסר

<?php _e('Roadmap') ?>

בעיה: אין ארגומנט textdomain בקריאה ל-GetText.

פתרון: הוספה של text-domain.

<?php _e('Roadmap','theme-text-domain') ?>

text-domain אומר ל-GetText (ול-WPML) למה הטקסט שייך. זו מחרוזת שאינה אומרת דבר לאיש זולתך. תוכל לבחור איזו מחרוזת שאתה רוצה, אבל כדאי שתהיה עקבי. הערך של text-domain יקבץ יחד מחרוזות קשורות.

מובן שהשם theme-text-domain אינו טוב או ייחודי. לדוגמה, אם שם ערכת העיצוב שלך הוא star-geeks, זה יהיה שם טוב יותר עבור text-domain.