WPML יכול לקרוא קובץ תצורה שאומר לו מה צריך תרגום בערכות עיצוב ובתוספים. הקובץ נקרא wpml-config.xml והוא ממוקם בתיקיית השורש של התוסף או ערכת העיצוב.
תוכן
- מטרת קובץ תצורת השפה
- יצירת הקובץ wpml-config.xml באופן אוטומטי
- מבנה ותחביר
- שימוש בקובץ תצורת השפה של WPML עם ערכות עיצוב בנות
תכלית
כחלק מהשגת תאימות עם WPML, עליך גם ליצור קובץ תצורה שיעזור לך בשמירה על תאימות בגרסאות עתידיות שלך. WPML יכול לתרגם כל דבר באתר WordPress שלך, אך עליך לומר לו מה צריך תרגום. קובץ זה עושה זאת.
עבור אל העמוד WPML ← הגדרות.
עמוד זה אומר ל-WPML את כל מה שהוא צריך לדעת, כולל אילו שדות מותאמים אישית לתרגם או לסנכרן, אילו סוגי פוסטים מותאמים אישית וטקסונומיות צריכות להיות רב-לשוניות ואפילו אילו טקסטים של אדמין לתרגם.
קובץ תצורת השפה כולל מידע זה כך שכל משתמש ומשתמש אינו צריך להזין אותו באופן ידני בעמוד הניהול.
עבור חלק ממערכות העיצוב והתוספים, אנו מארחים את קבצי תצורת השפה בשרתים שלנו. אתה יכול לראות את הרשימה כאן. הוא מוגדר לחלוש על קובץ התצורה של השפה המקומית הממוקם בתוך תיקיית השורש של ערכת העיצוב או התוסף.
WPML גם מאפשר לך לחלוש באופן ידני על כל ההגדרות שנטענו על-ידי קבצי תצורת שפה של ערכת עיצוב או תוסף. עקרון זה חל על קבצי תצורת שפה בתוך תיקיית השורש של ערכת העיצוב או התוסף וגם על קבצי תצורת השפה המתארחים בשרתים שלנו.
יצירת הקובץ wpml-config.xml באופן אוטומטי
אם אינך בקיא ביצירת קבצי XML, הצוות שלנו יצר את התוסף כלים רב-לשוניים שהופך משימה זו לקלה יותר. למרות שבתחילה הוא נתפס ככלי המסייע למפתחי ערכות עיצוב ותוספים להפוך את המוצרים שלהם להיות מוכנים לשימוש באתרים רב-לשוניים, ניתן להשתמש בו בקלות כדי ליצור קובץ wpml-config.xml משלך.
לקבלת מידע נוסף על יצירת הקובץ wpml-config.xml משלך, בקר בדף התוסף כלים רב-לשוניים. באופן ספציפי, עיין תחת הסעיף כיצד ניתן ליצור קבצי תצורת שפה באמצעות כלים רב-לשוניים?
לאחר שיהיה לך את קובץ התצורה, הוסף אותו לשורש התיקיה של ערכת העיצוב. אם כבר יש לך אחד, אל תחליף אותו. במקום זאת, ערוך את קובץ ה- XML המקורי והוסף את הקוד שנוצר באמצעות התוסף כלים רב-לשוניים.
לתשומת לבך, תוסף זה אינו מיועד לשימוש באתרים חיים – כלומר באתרים ש"באוויר".
כדי לקרוא מדריך זה ולבנות קבצי תצורה של שפה עבור ערכות העיצוב והתוספים שלך, תוכל להתחיל עם הקובץ לדוגמה הזה – wpml-config.zip.
יהיה עליך לערוך אותו, אך תוכל להשתמש במקטעים ובמבנה של קובץ זה.
מבנה ותחביר
יש לעטוף את התוכן של הקובץ wpml-config.xml בתגים אלה
<wpml-config>
ו
</wpml-config>
נכון לעכשיו, באפשרותך לקבוע את התצורה של הנתונים והגדרות התרגום הבאים בקובץ תצורה זה:
- תוכן של בונה עמודים
- שדות מותאמים אישית
- מונחים מותאמים אישית
- סוגי פוסטים מותאמים אישית
- טקסונומיות מותאמות אישית
- בלוקים של גוטנברג
- טקסט אדמין (Admin texts) / wp_options
- תצורת מעביר שפה
1. שורטקודים ותוכן לבניית עמודים
WPML מאפשר לך להשתמש בקובץ WPML-config.xml כדי להגדיר שורטקודים שיש להוסיפם לתרגום תוכן.
בדוגמאות שלהלן, אנו מראים לך כיצד לרשום שורטקודים של בונה עמודים. אתה יכול להשתמש באותו מבנה קוד כדי לרשום את כל סוגי השורטקודים לתרגום.
1.1 תרגום מחרוזות
הבה נבחן דוגמה שבה יש לך מפריד טקסט שנוסף לדף באמצעות Visual Composer. למפריד זה יש כותרת, והשורטקוד שלו נראה כך:
[vc_text_separator title="Separator Title"]
כדי לתרגם את הכותרת של מפריד טקסט זה, עלינו להוסיף כמה שורות לקובץ wpml-config.xml שלנו. בדרך זו, WPML "יידע" שהכותרת של המפריד זקוקה לתרגום. פעולה זו למעשה פועלת לפי אותו היגיון בדיוק כמו זה המשמש עבור סוגי פוסטים מותאמים אישית, שדות מותאמים אישית ואחרים.
הקוד הבא הוא דוגמה למה שעלינו להוסיף לקובץ wpml-config.xml במקרה זה.
<wpml-config> <shortcodes> <shortcode> <tag>vc_text_separator</tag> <attributes> <attribute>title</attribute> </attributes> </shortcode> </shortcodes> </wpml-config>
בוא נעבור על המבנה של הדוגמה לעיל:
- נתחיל עם תג השורטקוד. כל השורטקודים באתר שלך שצריך לתרגמם צריכים להיות ממוקמים תחת תג זה.
- לאחר מכן השתמש בתג השורטקוד כדי לעטוף את כל התגים השייכים לשורטקוד אחד ויחיד.
- התג שנקרא tagמשמש להגדרת שם השורטקוד. במקרה זה זה vc_text_separator. באפשרותך להוסיף תוויות מותאמות אישית של אפשרויות שיוצגו הן בעורך התרגום המתקדם והן בעורך התרגום הקלאסי. תוויות אלה כלולות גם בעת ייצוא לקבצי XLIFF. ראה את הדוגמה שלהלן בתג ובתוויות (lables) של תכונה (attribute).
- שורטקודים יכולים לכלול תכונה אחת או יותר, ולכן אנו עוטפים אותם בתג התכונות (רבים) ומשתמשים בתג התכונה (יחיד) כדי להגדיר את הכותרת של כל תכונה.
בוני עמודים כוללים (לפעמים) רכיבי עיצוב בעלי תכונות קישור.
ניתן לגרום לקישורים פנימיים להצביע באופן אוטומטי על הגרסה המתורגמת של אותו פוסט באמצעות אפשרות השורטקוד החדשה של קובץ ה wpml-config.xml. אפשרות הקישור: type="link".
באפשרותך להשתמש בתכונת ה encoding (קידוד) עם תכונה זו. הוא מטפל בקידוד מיוחד שבוני עמודים שונים משתמשים בו. תכונת הקידוד היא בדרך כלל ספציפית לבונה העמודים שבו נעשה שימוש. הוא מקבל את הערכים הבאים:
- base64 – ויז'אל קומפוזר (Visual Composer) שורטקוד HTML גולמי (raw). ה- HTML מאוחסן כמחרוזת מסוג base64 בשורטקוד.
- vc_link – עיצוב קישורים מיוחד עבור ויז'אל קומפוזר.
- av_link – עיצוב קישורים מיוחד עבור Enfold.
- allow_html_tags – בדרך כלל תגי HTML מופשטים מתכונות (attributes) של שורטקודים. הגדר את הקידוד ל- allow_html_tags אם תכונת השורטקוד אמורה לאפשר תגי HTML. יש להשתמש בכך בזהירות מכיוון שהתרת תגי HTML במצבים מסוימים עלולה לשבש את העיצוב ועלולה להוות בעיית אבטחה
<wpml-config> <shortcodes> <shortcode> <tag>av_button</tag> <attributes> <attribute>label</attribute> <attribute type="link" encoding="av_link">link</attribute> </attributes> </shortcode> </shortcodes> </wpml-config>
אם אתה חושב על שימוש בשורטקודים מסוג urlencoded , הקפד לקרוא דף על תרגום שורטקודים מסוג urlencoded.
<wpml-config> <shortcodes> <shortcode> <tag label="My shortcode label">my_shortcode</tag> <attributes> <attribute label="Shortcode title">title</attribute> </attributes> </shortcode> </shortcodes> </wpml-config>
הוספת תוויות לתג ולתכונות מאפשרת לך להציג תוויות מותאמות אישית בעורך התרגום המתקדם או בעורך התרגום הקלאסי. זה יכול לעזור למתרגם להבין טוב יותר את ההקשר של המחרוזת.
1.2 תרגום מדיה
ניתן להשתמש בתרגום המדיה של WPML כדי לתרגם תמונות בתוכן של בונה עמודים. זה נעשה על ידי המרה של מזהי תמונות וכתובות URL של תמונות. יש צורך לומר לבונה העמודים המשתמש בשורטקודים כיצד לבצע המרה זו. הקוד הבא הוא דוגמה למה שעלינו להוסיף לקובץ ה wpml-config.xml במקרה זה.
<wpml-config> <shortcodes> <shortcode> <!-- Convert media IDs in `gallery_ids` attribute, and ignore the shortcode content --> <tag ignore-content="1">et_pb_gallery</tag> <attributes> <attribute type="media-ids">gallery_ids</attribute> <attributes> </shortcode> <shortcode> <!-- Convert the media URL in the content, translate some string attributes for `title` and `alt`, convert media URL in `src` attribute --> <tag type="media-url">et_pb_image</tag> <attributes> <attribute>title_text</attribute> <attribute>alt</attribute> <attribute type="media-url">src</attribute> </attributes> </shortcode> </shortcodes> </wpml-config>
באפשרותך להשתמש בערכים הבאים:
- ignore-content – ניתן להשתמש בתוך רכיב tag. ערך זה הוא אופציונלי והוא יכול להיות 0 או 1. באפשרותך להשתמש בתכונה זו כדי להשיג תאימות לאחור עבור שורטקודים של מדיה חדשה. אם הערך מוגדר ל – 1 , תוכן השורטקוד לא יעובד.
- type – ניתן להשתמש בתוך רכיב tag. באפשרותך גם להשתמש בתוכן שורטקוד המכיל כתובת URL של מדיה כערך אופציונלי בתוך media-url.
- type – יכול לשמש גם בתוך אלמנט attribute . במקרה זה, הוא יכול לכלול אחד מהערכים האופציונליים הבאים:
- media-ids – רשימה מופרדת באמצעות פסיקים של מזהי מדיה.
- media-url – כתובת URL של מדיה
- link – מצביע על דף אחר באתר ו-WPML ימיר אותו באופן אוטומטי לכתובת ה-URL של תרגום הדף
1.3 תרגם ווידג'טים של בונה עמודים
החל מ-WPML 4.4.4, תוכל כעת לרשום ווידג'טים של בונה עמודים בקובץ תצורת השפה שלך. אנא עיין בדף התיעוד שלנו כיצד לרשום ווידג'טים של בונה עמודים לתרגום.
1.4 המרה אוטומטית של מזהי שורטקוד
החל מ-WPML גירסה 4.5.9, תוכל להצהיר על מזהי (ID) הפוסטים או מונחי הטקסונומיה הממוקמים בתכונות השורטקוד. לאחר מכן ניתן להמיר מזהים אלה באופן אוטומטי בחזית (פרונטאנד) האתר שלך.
לדוגמה, כמו במקרה של השורטקוד הבא:
[foo_product_list product_ids="12,34,56"]
אנו יכולים להצהיר שהתכונה product_ids מחזיקה מזהה פוסט עם התצורה הבאה:
<shortcode> <tag ignore-content="1">foo_product_list</tag> <attributes> <attribute type="post-ids" sub-type="product">product</attribute> </attributes> </shortcode>
בחזית, השורטקוד יומר באופן אוטומטי ל:
[foo_product_list product_ids="13,35,57"]
באפשרותך להשתמש בתכונות התצורה הבאות:
- type – או post-ids או taxonomy-ids
- sub-type (אופציונלי) – יכול להיות הישות הספציפית של ה type אם הוא כבר ידוע. לדוגמה, מוצר עבור סוג הפוסט המותאם אישית Product. אם היא לא מוגדרת, הישות הספציפית תשוער.
המרת המזהים (ID) היא רב-תכליתית ומנסה להסתגל לרוב הפורמטים האפשריים של מזהים (מזהה יחיד, רשימת מזהים, מערך סידורי (serialized array), מערך מקודד מסוג JSON).
2. שדות מותאמים אישית
יש לספק את שם השדה המותאם אישית וגם את הפעולה ש-WPML מצופה לבצע: לתרגם (translate), להעתיק (copy), להעתיק פעם אחת (copy-once), להתעלם (ignore).
<wpml-config> <custom-fields> <custom-field action="copy">quantity</custom-field> <custom-field action="translate">custom-title</custom-field> <custom-field action="copy">weight</custom-field> <custom-field action="copy-once">bg-color</custom-field> <custom-field action="translate">custom-description</custom-field> <custom-field action="ignore">date-added</custom-field> </custom-fields> </wpml-config>
בלוק זה יצטרך להיות מקונן תחת התג <wpml-config> .
באפשרותך להגדיר את אפשרויות התרגום הבאות עבור שדות מותאמים אישית:
- translate: מאפשר למשתמש שלך לתרגם את הערך של השדה המותאם אישית. שדות אלה מוצגים במסך עורך התרגום וניתן לשלוח אותם לכל אחד משירותי התרגום המקצועיים.
- copy: פעולה זו מעתיקה את ערך השדה המותאם אישית של שפת ברירת המחדל לשפות המשניות. משמעות הדבר היא שעדכון ערך השדה המותאם אישית של שפת ברירת המחדל יועתק תמיד לשפה המשנית. השדות המותאמים אישית המוגדרים copy אינם מוצגים במסך עורך התרגום.
- copy-once: הערך של השדה המותאם אישית מועתק לשפה המשנית בתהליך התרגום הראשוני. השדות המותאמים אישית המשתמשים בפעולת copy-once לא יופיעו במסך עורך התרגום. עם זאת, המשתמש יכול לשנות את ערך השדה המותאם אישית של השפה המשנית כך שיהיה שונה משפת ברירת המחדל באמצעות מסך עריכת הפוסטים. עדיף להגדיר את השדות המותאמים אישית המכילים הגדרות כגון צבע רקע, צבע גופן, גודל גופן ואחרים, copy-once. זה מאפשר למשתמש לקבל הגדרות שונות עבור תוכן מתורגם מאלה שהוגדרו עבור הפוסטים והדפים בשפת ברירת המחדל. לדוגמה, המשתמש רוצה להגדיר את צבע הרקע של אותו רכיב להיות צהוב בשפת ברירת המחדל וכחול בשפה המשנית. שים לב שעריכת שדה המוגדר copy-once לא תסמן את השדה כזקוק לעדכון. הסיבה לכך היא שהשדה לא יועתק לתרגום קיים, אלא יועתק רק בעת יצירת התרגום.
- ignore: פעולה זו מונעת את העתקת השדה המותאם אישית לשפה המשנית.
ניתן להוסיף תכונות לתגי > custom-field<. תכונות אלה מתאימות אישית את הטקסטים של ההוראות ב'עורך התרגום המתקדם' או ב'עורך התרגום הקלאסי'.
- style יכול להיות line textarea visual, להצגת שורה בודדת, אזור טקסט או WYSIWYG.
- label מוצג לצד השדה.
- group מצייi אם השדה המותאם אישית שייך לקבוצה מסויימת ומה צריכה להיות התווית של הקבוצה. כאשר שדה נמצא בקבוצה:
* השדה מוסר ממקטע השדה המותאם אישית
* השדה נוסף למקטע של הקבוצה הקשורה
<wpml-config> <custom-fields> <custom-field action="translate" style="line" label="Title">custom-title</custom-field> <custom-field action="translate" style="textarea" label="Description">custom-description</custom-field> <custom-field action="translate" style="visual" label="Some content" group="Custom group">custom-wysiwyg</custom-field> </custom-fields> </wpml-config>
ניתן גם להוסיף תכונות encode אופציונליות לשינוי הקידוד מערך ברירת המחדל (ללא קידוד). תכונת encode מקבלת את הערכים הבאים:
- json
- base64
- urlencode
התכונה מאפשרת לך להשתמש בקידוד מרובה. במקרה כזה, יש להפריד ערכים באמצעות פסיק, למשל encoding="json,base64"
.
<wpml-config> <custom-fields> <custom-field action="translate" encoding="json,base64">keywords</custom-field> </custom-fields> </wpml-config>
כאשר נעשה שימוש בתוכן זה של wpml-config.xml, שדות מותאמים אישית אלה מוצגים בעורך התרגום המתקדם או בעורך התרגום הקלאסי, כפי שמוצג בתמונה הבאה.
2.1 תרגום מפתחות משנה (sub-keys) בשדות מותאמים אישית
WPML מתרגם את כל מפתחות המשנה בשדות מותאמים אישית כברירת מחדל. ניתן לעקוף התנהגות כזו על ידי ציון אילו מפתחות משנה יש לתרגם.
<wpml-config> <custom-fields> <custom-field action="translate">with_attributes</custom-field> <custom-field action="translate">with_deep_attributes</custom-field> <custom-field action="translate">no_attributes</custom-field> </custom-fields> <custom-fields-texts> <key name="with_attributes"> <key name="attribute1" /> <key name="attribute2" /> </key> <key name="with_deep_attributes"> <key name="attribute1" /> <key name="attribute2"> <key name="level1"> <key name="level2"> </key> </key> </key> </key> </custom-fields-texts> </wpml-config>
ניתן גם להשתמש בתווים כלליים באותו אופן שבו הם משמשים עבור טקסטים של מנהל מערכת (Admin texts):
- התאם את כל שדות המשנה המתחילים title- באמצעות קוד:
<key name="title-*" />
- התאם את כל שדות המשנה ומשמש בדרך כלל להתאמת אינדקס מערך (array index) באמצעות קוד:
<key name="*" />
- כדי לקבל
[{"title":"First title"},{"title":"Second title"}]
השתמש בקודExample of configuration file with wildcards
<wpml-config> <custom-fields-texts> <key name="key-name"> <key name="*"> <key name="title" /> </key> </key> </custom-fields-texts> </wpml-config>
3. מונחים מותאמים אישית
יש לספק את שם המונח המותאם אישית וגם את הפעולה ש-WPML מצופה לבצע: לתרגם (translate), להעתיק (copy), להעתיק פעם אחת (copy-once), להתעלם (ignore).
<wpml-config> <custom-term-fields> <custom-term-field action="copy">term_meta_A</custom-term-field> <custom-term-field action="translate">term_meta_B</custom-term-field> <custom-term-field action="ignore">term_meta_C</custom-term-field> <custom-term-field action="copy-once">term_meta_D</custom-term-field> </custom-term-fields> </wpml-config>
בלוק זה יצטרך להיות מקונן תחת התג <wpml-config> .
באפשרותך להגדיר את אפשרויות התרגום הבאות עבור שדות מותאמים אישית:
- translate: מאפשר למשתמש שלך לתרגם את הערך של המונח המותאם אישית. מונחים אלה מוצגים במסך עורך התרגום וניתן לשלוח אותם לכל אחד משירותי התרגום המקצועיים.
- copy: פעולה זו מעתיקה את ערך המונח המותאם אישית של שפת ברירת המחדל לשפות המשניות. משמעות הדבר היא שעדכון ערך המונח המותאם אישית של שפת ברירת המחדל יועתק תמיד לשפה המשנית. התנאים המותאמים אישית המוגדרים copy אינם מופיעים במסך עורך התרגום.
- copy-once: הערך של המונח המותאם אישית מועתק לשפה המשנית בתהליך התרגום הראשוני. המונחים המותאמים אישית המשתמשים בפעולת copy-once לא יופיעו במסך עורך התרגום. עם זאת, המשתמש יכול לשנות את ערך המונח המותאם אישית של השפה המשנית כך שיהיה שונה משפת ברירת המחדל באמצעות מסך עריכת הפוסטים.
- ignore: פעולה זו מונעת העתקה של המונח המותאם אישית לשפה המשנית.
4. סוגי פוסט מותאמים אישית
סוגי הפוסטים המותאמים אישית (custom post types) ש-WPML אמור לתרגם.
<wpml-config> <custom-types> <custom-type translate="1">book</custom-type> <custom-type translate="1">DVD</custom-type> </custom-types> </wpml-config>
באפשרותך להוסיף את התכונה "display-as-translated" לתג כדי להציג את סוגי הפוסטים בשפת ברירת המחדל אם לא קיים תרגום.
<wpml-config> <custom-types> <custom-type translate="1" display-as-translated="1">movie</custom-type> </custom-types> </wpml-config>
אתה יכול להוסיף את התכונה "automatic" לתג כדי לא לכלול סוג פוסט בתרגום אוטומטי בעת שימוש במצב תרגם הכל (Translate Everything). שים לב, אם תשתמש בתכונה זו, כל קובץ תצורת השפה שלך יפעל רק בגרסאות 4.5.0 ומעלה של WPML.
<wpml-config> <custom-types> <custom-type translate="1" automatic="0">contact_form</custom-type> </custom-types> </wpml-config>
5. טקסונומיות מותאמות אישית
הטקסונומיות המותאמות אישית שהתוסף שלך עשוי להשתמש בהן ושהן כבר רשומות ב- WP.
<wpml-config> <taxonomies> <taxonomy translate="1">genre</taxonomy> <taxonomy translate="1">type</taxonomy> <taxonomy translate="0">publisher</taxonomy> </taxonomies> </wpml-config>
הערה: ניתן פשוט להשמיט את הטקסונומיות שאינן זקוקות לתרגום מרשימה זו.
ניתן להוסיף את התכונה "display-as-translated" לתג כדי להציג את הטקסונומיות בשפת ברירת המחדל אם לא קיים תרגום.
<wpml-config> <taxonomies> <taxonomy translate="1" display-as-translated="1">wild-west</taxonomy> </taxonomies> </wpml-config>
6. בלוקים של גוטנברג
עם עורך גוטנברג, אתה בונה תוכן באמצעות בלוקים.
ניתן לציין אילו חלקים של בלוק גוטנברג יש לתרגם על-ידי הוספת הגדרות לwpml-config.xml.
Xpath משמש להגדרת חלקים מהטקסט שיש לתרגם.
6.1 רישום בלוקים של גוטנברג כניתנים לתרגום
נניח שיש לנו תמונה המוצגת באמצעות הקוד הבא:
<!-- wp:image {"id":3} --> <figure class="wp-block-image"><img src="http://example.com/wp-content/uploads/2018/07/figure-2.png" alt="Image alt text" class="wp-image-3"/><figcaption>Image Caption</figcaption></figure> <!-- /wp:image -->
אנו רוצים לתרגם את ערכי figcaption
ואת ערכי alt
של התכונה של תמונה זו.
כדי להשיג זאת, יש להכניס את הקוד הבא לתוך קובץ ה wpml-config.xml:
<wpml-config> <gutenberg-blocks> <gutenberg-block type="core/image" translate="1"> <xpath>//figure/figcaption</xpath> <xpath>//figure/img/@alt</xpath> </gutenberg-block> </gutenberg-blocks> </wpml-config>
זכור כי type הוא core/image
ולא wp:image
מכיוון שזהו הערך המוחזר על-ידי ה- API של הבלוק.
ניתן לציין אילו שדות בלוק של גוטנברג הם קישורים. לאחר מכן, WPML יחליף את כל הקישורים בתרגומים שלהם, אם הם זמינים.
<wpml-config> <gutenberg-blocks> <gutenberg-block type="core/some-block" translate="1"> <xpath type="link">//a/@href</xpath> </gutenberg-block> </gutenberg-blocks> </wpml-config>
6.2 תרגום תכונות (attributes) של בלוק
הנה דוגמה אחת לפורמט להגדרה של בלוק עורך:
<wpml-config> <gutenberg-blocks> <gutenberg-block type="my-plugin/my-block" translate="1"> <xpath label="My Block">//p</xpath> <key name="title" /> <key name="foo"> <key name="bar1" /> <key name="bar2" /> </key> <key name="/^[^_]\S+$/" search-method="regex" /> <key name="something" search-method="wildcards" /> </gutenberg-block> </gutenberg-blocks> </wpml-config>
אתה יכול להשתמש באלמנט key באותו אופן שבו הוא משמש עם טקסט אדמין (Admin texts) / wp_options. משמעות הדבר היא גם שרכיבי מפתח יכולים להכלל בתוך רכיבי מפתח אב.
באפשרותך להשתמש בתכונת label כדי להוסיף תוויות מותאמות אישית אופציונליות המוצגות בעורך התרגום המתקדם לצד רכיבי הבלוק. כאשר תכונת התווית היא חלק מתג gutenberg-block, היא תשמש כתווית בסיס לרכיבים של הבלוק שלא הוגדרה להם תווית ספציפית.
<wpml-config> <gutenberg-blocks> <gutenberg-block type="my-plugin/mybutton" translate="1" label="My fallback block label"> <xpath>//span</xpath> <xpath>//a@href</xpath> </gutenberg-block> </gutenberg-blocks> </wpml-config>
התכונה search-method יכולה לכלול אחד משני ערכים:
- תווים כלליים (wildcard) (ברירת מחדל)
- regex.
ניתן להשתמש בתווים כלליים באותו אופן שבו הם משמשים לטקסטים של מנהל מערכת. משמעות הדבר היא שניתן להשתמש בכוכבית (*) בתכונת השם. הנה דוגמה לבלוק אחד:
<!-- wp:my-plugin/my-block { "myp": { "mypTitle":"The title", "mypContent":"The Content", "_mypSystem:"Meta attribute to not translate" } } /-->
אנו יכולים להגדיר את הגדרת הבלוק באמצעות תו כללי:
<wpml-config> <gutenberg-blocks> <gutenberg-block type="my-plugin/my-block" translate="1"> <key name="myp"> <key name="myp*" /> </key> </gutenberg-block> </gutenberg-blocks> </wpml-config>
זה יאפשר לנו לתרגם את "הכותרת" ו"התוכן" מכיוון שאלו התכונות היחידות המתחילות ב myp.
regex מאפשר לנו לשים ביטוי רגולרי בתכונת השם. זה יכול להיות שימושי מאוד עבור תצורות מורכבות. הנה דוגמה לבלוק אחד:
<!-- wp:my-plugin/my-block { "data": { "title":"The title", "_title":"e980759463943209f6f1ae09a239e353", "content":"The Content", "_content":"1502a7b825dfe7b789c63830609f1701" } } /-->
אנו יכולים להגדיר את הבלוק עם ביטוי רגולרי:
<wpml-config> <gutenberg-blocks> <gutenberg-block type="my-plugin/my-block" translate="1"> <key name="data"> <key name="/^[^_]\S+$/" search-method="regex" /> </key> </gutenberg-block> </gutenberg-blocks> </wpml-config>
זה יאפשר לנו לתרגם את "הכותרת" ו"התוכן" מכיוון שאלו התכונות היחידות שאינן מתחילות ב _.
תוספי בלוקים מסוימים שומרים נתונים במחרוזת JSON ב URL-encoded בתוך התכונה של בלוק. תכונת encoding מאפשרת לך לפענח את המחרוזת ולרשום את מפתחות המשנה שלה לתרגום.
לדוגמה, התוסף LazyBlocks מאחסן תוכן שדה משחזר (repeater field) במחרוזת JSON מקודדת:
<!-- wp:lazyblock/testwpml {"name":"%5B%7B%22firstname%22:%22Shekhare%22,%22lastname%22:%22Bhandari%22%7D,%7B%22firstname%22:%22Compatibility%22,%22lastname%22:%22Escalation%22%7D%5D","blockId":"Z169b0O","blockUniqueClass":"lazyblock-testwpml-Z169b0O"} /-->
באפשרותך לרשום את מפתחות המשנה של firstname ו lastname באמצעות תצורת ה XML הבאה:
<wpml-config> <gutenberg-blocks> <gutenberg-block type="lazyblock/team" translate="1"> <key name="name" encoding="json"> <key name="*"> <key name="firstname" /> <key name="lastname" /> </key> </key> </gutenberg-block> </gutenberg-blocks> </wpml-config>
6.3 מרחב שם הבלוק (Block Namespace)
באפשרותך להגדיר תצורה כללית עבור מרחב השמות של הבלוק.
אם תצורת הבלוקים זהה עבור כל הבלוקים במרחב שם מסוים, ניתן לכתוב אותה כך:
<wpml-config> <gutenberg-blocks> <gutenberg-block type="my-plugin" translate="1"> <key name="data"> <key name="/^[^_]\S+$/" search-method="regex" /> </key> </gutenberg-block> </gutenberg-blocks> </wpml-config>
6.4 המרה אוטומטית של מזהים (ID) בבלוקים
המרת המזהים (ID) היא רב-תכליתית ומנסה להסתגל לרוב הפורמטים האפשריים של מזהים (מזהה יחיד, רשימת מזהים, מערך סידורי (serialized array), מערך מקודד מסוג JSON).
בהתחשב בבלוק הבא:
<!-- wp:foo/form {"ids":[27,28]} --> <div class="wp-block-foo-form-wrap"> <form class="foo-form" action="" method="post"> <input type="hidden" name="foo_form_post_ids" value="27,28" /> <input type="submit" /> </form> </div> <!-- /wp:foo/form -->
אנו יכולים להכריז, כמזהי פוסט, את מזהי תכונות הבלוק ואת ערך תכונת תג ה HTML foo_form_post_ids כמפורט להלן:
<gutenberg-block type="foo/form" translate="0"> <key name="ids"> <key name="*" type="post-ids" sub-type="post" /> </key> <xpath type="post-ids" sub-type="post">//*[@name="foo_form_post_ids"]/@value</xpath> </gutenberg-block>
והבלוק יומר בעדיפות הגבוהה ביותר במסנן render_block_data כמפורט להלן:
<!-- wp:foo/form {"ids":[42,43]} --> <div class="wp-block-foo-form-wrap"> <form class="foo-form" action="" method="post"> <input type="hidden" name="foo_form_post_ids" value="42,43" /> <input type="submit" /> </form> </div> <!-- /wp:foo/form →
באפשרותך להשתמש בתכונות התצורה הבאות:
- type – יכול להיות post-ids או taxonomy-ids
- sub-type (אופציונלי): יכולה להיות הישות הספציפית של type אם היא כבר ידועה. לדוגמה, מוצר עבור סוג הפוסט המותאם אישית Product. אם היא לא מוגדרת, הישות הספציפית תשוער.
7. טקסט אדמין (Admin texts) / wp_options
מחרוזות המהוות חלק מהאפשרויות שהתוספים או ערכות עיצוב שומרים בטבלה wp_options.
כאשר ערכות עיצוב ותוספים משתמשים get_option, הם קוראים ערכים מהטבלה wp_options. WPML יכול לסנן קריאות אלה ולספק תרגום לערכים של אפשרויות אלה.
זה פועל אם רשומת ה wp_option היא מחרוזת פשוטה אך גם כאשר היא מערך סידורי (serialized array).
כדי לתרגם אפשרות בודדת, הוסף ערך key תחת admin-texts. כדי לתרגם מערך סידורי, הוסף מספר מקשים (keys) תחת key, כפי שניתן לראות my_plugin_options בדוגמה שלהלן.
<wpml-config> <admin-texts> <key name="my_plugins_options"> <key name="option_name_1" /> <key name="option_name_2" /> <key name="options_group_1"> <key name="sub_option_name_11" /> <key name="sub_option_name_12" /> </key> <key name="options_group_2"> <key name="sub_option_name_21" /> <key name="sub_option_name_22" /> </key> </key> <key name="simple_string_option"/> </admin-texts> </wpml-config>
ניתן להשתמש בתו wildcard * במפתחות משנה כמו במקרה הבא.
<wpml-config> <admin-texts> <key name="testing_option"> <key name="*"/> </key> </admin-texts> </wpml-config>
זה שווה לקוד זה:
<wpml-config> <admin-texts> <key name="testing_option"> <key name="sub_key_1"/> <key name="sub_key_2"> <key name="sub_sub_21"> <key name="sub_sub_211"/> </key> <key name="sub_sub_21"/> </key> <key name="more_sub_keys"/> </key> </admin-texts> </wpml-config>
אנא שימו לב כי wildcard * אינו עובד במפתחות אב.
<wpml-config> <admin-texts> <key name="some_option_*" /> <key name="*"/> </admin-texts> </wpml-config>
8. תצורת מעביר שפה
מאפשר תצורה ספציפית עבור מעביר השפה המובנה של WPML. ניתן להשתמש בו גם לאיפוס תצורת מעביר השפה אם הוא השתנה מהבקאנד (מהערכים ההתחלתיים שלו).
כדי לראות שינויים חדשים, הקפד ללחוץ על לחצן שחזר את ברירת המחדל בתחתית הדף WPML ← שפות.
<wpml-config> <language-switcher-settings> <key name="additional_css">{inline CSS styles}</key> <key name="link_empty">{0 or 1}</key> <key name="copy_parameters">{parameter1, parameter2}</key> <key name="sidebars"> <key name="{sidebar slug}"> <key name="display_flags">{0 or 1}</key> <key name="display_names_in_current_lang">{0 or 1}</key> <key name="display_names_in_native_lang">{0 or 1}</key> <key name="display_link_for_current_lang">{0 or 1}</key> <key name="widget_title">{widget title}</key> <key name="template">{template slug}</key> <!-- color picker keys --> <key name="background_normal">#{hex color}</key> <key name="border_normal">#{hex color}</key> <key name="font_current_normal">#{hex color}</key> <key name="font_current_hover">#{hex color}</key> <key name="background_current_normal">#{hex color}</key> <key name="background_current_hover">#{hex color}</key> <key name="font_other_normal">#{hex color}</key> <key name="font_other_hover">#{hex color}</key> <key name="background_other_normal">#{hex color}</key> <key name="background_other_hover">#{hex color}</key> </key> </key> <key name="statics"> <key name="footer"> <key name="show">{0 or 1}</key> <key name="display_flags">{0 or 1}</key> <key name="display_names_in_current_lang">{0 or 1}</key> <key name="display_names_in_native_lang">{0 or 1}</key> <key name="display_link_for_current_lang">{0 or 1}</key> <key name="template">{template slug}</key> <!-- color picker keys --> <key name="background_normal">#{hex color}</key> <key name="border_normal">#{hex color}</key> <key name="font_current_normal">#{hex color}</key> <key name="font_current_hover">#{hex color}</key> <key name="background_current_normal">#{hex color}</key> <key name="background_current_hover">#{hex color}</key> <key name="font_other_normal">#{hex color}</key> <key name="font_other_hover">#{hex color}</key> <key name="background_other_normal">#{hex color}</key> <key name="background_other_hover">#{hex color}</key> </key> <key name="post_translations"> <key name="show">{0 or 1}</key> <key name="display_flags">{0 or 1}</key> <key name="display_names_in_current_lang">{0 or 1}</key> <key name="display_names_in_native_lang">{0 or 1}</key> <key name="display_link_for_current_lang">{0 or 1}</key> <key name="display_before_content">{0 or 1}</key> <key name="display_after_content">{0 or 1}</key> <key name="template">{template slug}</key> <key name="availability_text">{string like "See post translations: %s"}</key> </key> <key name="shortcode_actions"> <key name="display_flags">{0 or 1}</key> <key name="display_names_in_current_lang">{0 or 1}</key> <key name="display_names_in_native_lang">{0 or 1}</key> <key name="display_link_for_current_lang">{0 or 1}</key> <key name="template">{template slug}</key> <!-- color picker keys --> <key name="background_normal">#{hex color}</key> <key name="border_normal">#{hex color}</key> <key name="font_current_normal">#{hex color}</key> <key name="font_current_hover">#{hex color}</key> <key name="background_current_normal">#{hex color}</key> <key name="background_current_hover">#{hex color}</key> <key name="font_other_normal">#{hex color}</key> <key name="font_other_hover">#{hex color}</key> <key name="background_other_normal">#{hex color}</key> <key name="background_other_hover">#{hex color}</key> </key> </key> </language-switcher-settings> </wpml-config>
לא כל הסעיפים האלה חייבים להיות בקובץ התצורה, אלא רק אלה שחלים על התוסף או ערכת העיצוב שלך.
שימוש בקובץ תצורת השפה של WPML עם ערכות עיצוב בנות
אם אתה משתמש בערכת עיצוב בת, דע כי לקובץ תצורת השפה של ערכת העיצוב הראשית יש קדימות והוא זה שיבוצע בפועל. WPML מספק דף תצורה המאפשר לך לעקוף זאת בקלות באמצעות הגדרות מותאמות אישית.
הבה נבחן דוגמה שבה קובץ תצורת השפה של ערכת העיצוב הראשית מגדיר את סוג הפוסט המותאם אישית "Property" כך שיהיה ניתן לתרגום.
אם אתה משתמש בערכת עיצוב בת וברצונך להגדיר את סוג הפוסט המותאם אישית "Property" כך שאינו ניתן לתרגום, נווט אל הדף WPML ← הגדרות ולחץ על הכרטיסיה תצורת XML מותאמת אישית. השתמש בעורך כדי להגדיר את סוג הפוסט המותאם אישית "Property" כך שאינו ניתן לתרגום. בפשטות, הגדר את ערך התכונה translate ל- 0 במקום ל- 1.
ההגדרות בכרטיסיה תצורת XML מותאמת אישית מקבלות עדיפות על פני ההגדרות בקובץ תצורת השפה בערכת העיצוב הראשית.