בניית אתר דו לשוני בוורדפרס באמצעות פולילנג

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

התוסף Polylang (או בעברית פולילנג) הוא סוג של הרחבה המאפשרת לכם ליצור אתר וורדפרס מרובה שפות או בעל ריבוי שפות. אתם יוצרים עמודים, פוסטים, קטגוריות ותגיות כפי שאתם עושים בצורה הרגילה, מגדירים שפה לכל אחד מאותם תכנים והתוסף פולילנג עושה את שאר העבודה.

במדריך זה אנסה להסביר כיצד להקים אתר וורדפרס דו לשוני באמצעות Polylang ולהראות לכם כמה קל השימוש בו. לפני שנתחיל, מספר מילים על האפשרויות והפיצ׳רים שהתוסף מציע.

אפשרויות התוסף פולילנג

  • באפשרותכם ליצור כמה שפות שרק תרצו. ישנה תמיכה בשפות מימין לשמאל (RTL). כאשר ניתן, התוסף מוריד אוטומטית את קבצי השפה הרלוונטים לשפות שהוספתם.
  • התוסף נותן לכם את האפשרות לתרגם עמודים, פוסטים, קטגוריות, תגיות, תפריטים וווידג׳טים. כמו גם, סוגי תוכן מותאמים (Custom Post Types), טקסונומיות שיצרתם, פוסטים דביקים, פורמטים של פוסטים ואף פידים (RSS).
  • במידה ותבחרו, קטגוריות, תגיות ועוד שדות מטא יועתקו אוטומטית כאשר אתם מוסיפים תרגום לעמוד או פוסט מסויים. ישנה גם האפשרות לסנכרן אלו בין פוסט מסויים למקביל שלו בשפה הנוספת.
  • התוסף תומך Multisite, קישורים יפים (Pretty Permalinks) ועמוד בית סטטי.
  • האפשרות להחליף שפה מגיעה יחד עם התוסף או כווידג׳ט או כחלק מהתפריט של אתר הוורדפרס שלכם.
  • התוסף מציע API למפתחים שביניכם.
  • התוסף ידידותי לקידום האתר ו SEO ויודע לעבוד עם רוב תוספי ה SEO השולטים בשוק, כמו כן הוא דואג ליצירת תגיות hreflang ותגיות opengraph בצורה אוטומטית.

התקנה והוספת שפות בפולילנג

שימו לב – לפני שאתם מתקינים את התוסף, בטלו כל תוסף שפות אחר (כגון WPML) או שהתוצאות יהיו בלתי צפויות. מעבר לכך, חשוב לציין כי השרת שלכם צריך להיות עם PHP5 ומעלה וגירסת MySQL 5 ומעלה, אך זה די סטנדרטי בימיניו ברוב חברות האחסון.

התקינו את התוסף ותמצאו תפריט חדש בלוח הבקרה של וורדפרס בשם שפות.

התקנת פולילנג

לצורך המדריך נתייחס למצב בו אתר הוורדפרס שלנו הוא בעברית ונוסיף לו את השפה האנגלית.

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

שפת ברירת מחדל לפוסטים - Polylang

הוסיפו גם את השפה האנגלית באותה דרך (en_US). עכשיו תראו… עד כמה שזה נשמע הזוי לא נשאר לכם לעשות כלום חוץ מלתרגם את התוכן שלכם וכמובן להוסיף את האפשרות להחליף שפה בתפריט הראשי או כווידג׳ט. עם זאת, נראה בדיוק את השלבים לבצע זאת וכמובן שנגיע אחר כך להגדרות קצת יותר מתקדמות של התוסף.

הצטרפו לרשימת התפוצה!


החלפת שפה בפולילנג

התוסף Polylang מספק לכם שתי אפשרויות להוספה של כפתור החלפת שפה או בשמו האחר ״מחליף שפות״ (Language Switcher). הראשונה היא באמצעות התפריט הראשי של האתר והשנייה היא באמצעות ווידג׳ט אשר יופיע בסרגל הצדדי (או בכל מקום שניתן להכניס ווידג׳טים בתבנית שלכם).

הוספת מחליף השפות בתפריט הראשי

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

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

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

מחליף השפות - תפריטים - Polylang

הוספת מחליף השפות באיזור הווידג׳טים

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

מחליף השפות - ווידג׳טים - Polylang


תרגום תוכן באמצעות פולילנג

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

הוספת תוכן בשפה אחרת - Polylangבכדי להוסיף תרגום לעמוד זה לחצו על הפלוס ברובריקת השפות ליד הדגל של השפה המבוקשת. לחיצה על כפתור זו תפתח עמוד עריכה חדש של אותו עמוד בשפה שבחרתם. במקרה שלנו, ניתן לראות באותה רובריקה כי עמוד זה הוא התרגום באנגלית לעמוד שיצרנו בעברית.

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

תהליך הוספת השפה דיי זהה בכל סוגי התוכן, בין אם זה תגיות או בין אם זה פוסטים. די פשוט…


הגדרות התוסף Polylang

ניתן מבט הגדרות התוסף הנמצאות תחת שפות > הגדרות בלוח הבקרה של וורדפרס.

הגדרות התוסף Polylang

לתוסף Polylang אין הגדרות יותר מדי מתוחכמות (וטוב שכך). נעבור על ההגדרות ונסביר כל אחת מהן:

1. שינויי URL – בחלק זה יש באפשרותכם לבחור את מבנה הקישורים (URL) של השפות השונות. ישנן מספר אפשרויות:

  • השפה מוגדרת רק בתוכן – ניתן לקבוע כי ה URL של הפוסטים העמודים ושאר סוגי התוכן אינו ישתנה ויוצג בהתאם לתוכן ללא שום שינויי בהתאם למזהה הכתובת (slug) של אותו תוכן.
  • במבנה הקישורים השפה מופיעה כתיקיה – השפה תופיע במבנה הקישורים כתיקייה. לדוגמא – http://test-wp/en/my-post.
  •  במבנה הקישורים השפה מופיעה כסאב דומיין – השפה תופיע במבנה הקישורים כסאב דומיין. לדוגמא – http://en.test-wp/my-post.
  • השפות מופיעות בדומיינים שונים –  לכל אחת מהשפות ישנו דומיין אחר לגמרי.
  • הסרת שינוי כתובת עבור שפת ברירת מחדל – ניתן לקבוע כי שינוי מבנה הקישורים אינו יתבצע עבור שפת ברירת המחדל.
  • למחוק /language/ לפני שם השפה במבנה הקישורים – הבחירה האם להסיר את המילה language לפני השפה ממבנה הקישורים. לדוגמא http://test-wp/en
  • לשמור /language/ לפני שם השפה במבנה הקישורים – ההפך מהסעיף הקודם. לדוגמא – http://test-wp/language/en
  • כתובת עמוד הבית מכילה את קוד השפה במקום שם העמוד או מזהה (ID) העמוד – הבחירה האם הכתובת של עמוד הבית תכיל את השפה ולא את שם העמוד או המזהה שלו. לדוגמא – במקום http://test-wp.com/home יופיע http://test-wp.com/en.

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

שינויי URL - תוסף Polylang - ריבוי שפות

2. זיהוי שפת הדפדפן (Detect Browser Language) – ניתן לקבוע האם Polylang תפנה אוטומטית לעמוד בשפה מסויימת בהתאם לשפה של הדפדפן בו הוא משתמש.

3. מדיה (Media) – האם לאפשר בחירת מדיה שונה לכל שפה בספריית המדיה. ניתן לבחור מדיה שונה עבור כל שפה בדיוק כפי שמבצעים זאת לשאר סוגי התוכן.

4. סוגי תוכן מותאמים וטקסונומיות (CPT & Taxonomies) – מאפשר לכם לבחור לאיזה סוגי תוכן מותאמים אישית ולאילו טקסונומיות מותאמות אישית תופיע האפשרות להוספת שפה.

5. סנכרון (Synchronisation) –  כאשר אתם יוצרים תרגום לעמודים או לפוסטים, אולי תרצו להמנע מפעולות שחוזרות על עצמן כגון בחירת הקטגוריות, התגיות, התמונה הראשית וכדומה. בחלק זו תוכלו לקבוע אילו הגדרות יעברו אוטומטית לפוסט המתורגם שאתם יוצרים.

6. כלים (Tools) – מאפשר לקבוע האם למחוק ממסד הנתונים את כל המידע וההגדרות של Polylang במידה ואתם מוחקים את התוסף.


מחרוזות תרגומים

התוסף Polylang מאפשר לכם לתרגם מחרוזות כגון שם האתר, תיאור האתר וכותרות של ווידג׳טים. תוכלו בחלק זה אף לשנות את הפורמט של התאריכים באתר פר שפה. תוספים ותבניות למינהן יכולים להוסיף מחרוזות לחלק זה.

תרגום מחרוזות - ריבוי שפות - וורדפרס


השימוש של פולילנג בתבניות וורדפרס

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

pll_the_languages( $args );

כאשר $args הוא מערך אופציונלי והאפשרויות הינן:

  • ‘dropdown’ => displays a list if set to 0, a dropdown list if set to 1 (default: 0)
  • ‘show_names’ => displays language names if set to 1 (default: 1)
  • ‘display_names_as’ => either ‘name’ or ‘slug’ (default: ‘name’)
  • ‘show_flags’ => displays flags if set to 1 (default: 0)
  • ‘hide_if_empty’ => hides languages with no posts (or pages) if set to 1 (default: 1)
  • ‘force_home’ => forces link to homepage if set to 1 (default: 0)
  • ‘echo’ => echoes if set to 1, returns a string if set to 0 (default: 1)
  • ‘hide_if_no_translation’ => hides the language if no translation exists if set to 1 (default: 0)
  • ‘hide_current’=> hides the current language if set to 1 (default: 0)
  • ‘post_id’ => if set, displays links to translations of the post (or page) defined by post_id (default: null)
  • ‘raw’ => use this to create your own custom language switcher (default:0)

שימו לב כי במידה ואינכם משתמשים באפשרות ה dropdown, עליכם להדפיס בעצמכם את תגיות ה ul.

הנה מספר דוגמאות לשימוש בפונקציה זו


<!-- outputs a list of languages names -->
<ul>
    <?php pll_the_languages(); ?>
</ul>

<!-- outputs a flags list (without languages names) -->
<ul>
    <?php pll_the_languages( array( 'show_flags' => 1, 'show_names' => 0 ) ); ?>
</ul>

<!-- outputs a dropdown list of languages names -->
<?php pll_the_languages( array( 'dropdown' => 1 ) ); ?>

אם האופציות אינן מספקות אתכם, פולילנג מאפשר בנייה של מחליף שפות מותאם משלכם באמצעות השימוש בארגומנט 'raw':

$translations = pll_the_languages( array( 'raw' => 1 ) );

הפונקציה תחזיר מערך של מערכים, לכל שפה מערך משלה. אפשרות זו מאד שימושית אם אתם מעוניינים ליצור מחליף שפות משלכם שמעוצב בהתאם לדרישות ובהתאמה לתבנית.

  • [id] => language id
  • [slug] => language code used in urls
  • [name] => language name
  • [url] => url of the translation
  • [flag] => url of the flag
  • [current_lang] => true if this is the current language, false otherwise
  • [no_translation] => true if there is no available translation, false otherwise

בכדי ליצור את מחליף השפות באתר של חברה (מגניבה אני חייב לציין) בשם Startapp, הייתי חייב להשתמש באפשרות זו. תנו מבט

פונקציה נוספת שסביר להניח ותשתמשו בה הינה pll_current_language אשר מחזירה את השפה הנוכחית של העמוד. הארגומנט $value הוא אופציונלי ומאפשר לבחור האם להחזיר את שם השפה, את ה locale שך אותה שפה או את המזהה של השפה (slug) – שהוא גם ברירת המחדל.

תוכלו לתת מבט על כל הפונקציות ש Polylang מציעה בדוקומנטציה של התוסף.

לסיכום

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

שתפו אותנו במחשבות לגבי התוסף, יתרונות וחסרונות לגבי תוספים אחרים או כל מה שעולה לכם בראש… 🙂

 

רועי יוסף
רועי יוסף

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

{ 3 תגובות… הוסף אחת }
  • שגב שובל 3 במרץ 2018, 18:42

    היי רועי תודה על המאמר המפורט, אחלה מדריך.

    האמת היא שאני נתקל בקושי שדיי משגע אותי, אני עובד עם אתר בערכת עיצוב POJO ואני מנסה לתרגם את הווידג'טים של הפוטר והסרגל העליון . אני דיי אוכל חרא – גם אחרי שהבנתי שבשביל לתרגם טופס ב – Contact form 7, אני צריך להוריד:

    Contact Form 7 Polylang extension
    Smart Grid-Layout Design for Contact Form 7

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

    • רועי יוסף 3 במרץ 2018, 19:02

      היי שגב 🙂

      איני מכיר את אלמנטור או את אותן הרחבות, אך אם אני צריך לעצב טופס או לשנות כיוון טקסט וכדומה בהתאם לשפה אני עושה זאת ב CSS עם lang attribute.

      משהו בסגנון של הקוד הבא אמור לעבוד:

      .yourFormClass input:lang(en) {
          direction: ltr !important;
          text-align: left !important;
      }

השאירו תגובה

פעימות
קראו גם את:
היררכיה של תבניות עמוד Single Pages
היררכיה של תבניות עמוד (Page Templates) בוורדפרס

אם אתם מפתחים תבניות וורדפרס בעצמכם, או במידה ואתם משתמשים בתבנית בת בכדי לשנות תבנית...