תמיכה « נושאים כלליים « מעוניין לטעון/לא-לטעון את rtl.css לפי שפת הדף (lang). מה הדרך ה

  • שלום,
    אני משתמש בתוסף Polylang בשביל שפה נוספת (en-US) באתר שלי.

    כאשר הדפים הם בשפה האנגלית, אני מעוניין שהקובץ rtl.css לא ייטען.

    ערכת העיצוב שלי היא graphin.

    מה הדרך היחסית הפשוטה (איני מומחה php) הכי נכונה לעשות את זה?

    המון תודה.

מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
  • יש כמה דרכים לעשות את זה, ולמרות שאינך מומחה php תיאלץ לפתוח קבצי php ולעשות בהם שינויים.

    הקובץ rtl.css אמור להיקרא אך ורק אם אתה עובר לשפה העברית, באופן אוטומטי, ולא להיקרא כאשר אתה באנגלית.

    ההתקנה שלך של וורדפרס, איזה היא? בעברית? על שרת משלך?
    אתה יכול לתת קישור?

    היי, תודה רבה!

    ההתקנה הכי חדשה, 3.3.1 בעברית.
    יש לי ידע בתכנות, אבל לא php.
    לא בטוח שהבנתי את שאלת השרת אבל יש לי אפשרות להעלות קבצים לשרת.

    קישור לאתר:
    http://www.gary-tv.com/garymain/

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

    איזה קטע איתך

    ממש לפני כמה ימים היתה אצלי לקוחה שביקשה לעשות לינק לאתר שלך 🙂 ע"ע המתכון הסודי

    בכל מקרה

    לענייננו

    לדעתי המערכת שלך קוראת בכל מקרה ל- rtl.css משתי סיבות אפשריות:

    1. או שהקישור ל – rtl.css הוא הארד-קודד לתוך header.php – פשוט תפתח את הקובץ וחפש אותו, אם הוא שם, תמחק את השורה.

    2. או שהמערכת שלך קוראת ל- rtl.css באוטומט בגלל שהיא התקנה בעברית, במקרה זה תפתח את wp-config.php וחפש שורה שכתוב בה WPLANG. אם היא שם והיא מוגדרת לעברית, שים את כל השורה ב- comment.

    בהצלחה

    היי, תודה רבה.
    באמת מצחיק 🙂

    בקובץ ה-header.php אין טעינה של קובץ ה-rtl.css.

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

    היכן עליי לשים את הקוד הדינאמי שיעשה את זה ומה אמור להיות תוכנו.
    זה אמור להיות per page, משהו בסגנון הבא:

    if(get_bloginfo('language')=="he-IL")
    {
    	//Load rtl.css
    }
    else
    {
    	// do nothing
    }

    שוב, תודה רבה על העזרה שלך, אני מאד מעריך את זה.

    הקוד שצירפת נראה כאילו מקומו דווקא ב- header.php… בכל מקרה ממש לא הייתי ממליץ לך לעבוד per page כי לא תצא מזה.

    אתה אמור לשים את ה- wplang בהערה ולעשות טריגר ידני ל- rtl.css – מרבית התוספים שאני מכיר (הרב לשוניים כמובן) עושים את זה אוטומטית

    ואם לא- אתה יכול לשים conditional עם is_rtl()

    תודה. לא התכוונתי לצרף את הקוד לכל דף, אלא לשים במקום כמו דף ה-header.
    הפונקציה is_rtl() לא תעזור לי כיוון שהיא פועלת לפי locale ולא לפי שפת הדף (lang).

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

    1. בקובץ wp-fonfig.php, כפי שהצעת, אשים בהערה את השורה:

    define ('WPLANG', 'he_IL');

    2. בקובץ header.php אשים ממש מעל תגית הסיום של הכותר (</head>) את הקוד הבא:

    <?php if(get_bloginfo('language')=='he-IL') : ?>
        <link rel="stylesheet" href="http://.../rtl.css" type="text/css" />
    <?php endif; ?>

    אעדכן אם עובד.
    שוב תודה.

    בהצלחה 🙂

    זה עובד חלקית.
    כיוון פריסת הדף הוא נכון (התפריט מימין לשמאל, למשל) לאחר השינוי אבל לא כיוון היישור של הטקטס ופקדים נוספים. הם מיושרים לשמאל. כנראה שלשים את השורה
    define ('WPLANG', 'he_IL');
    בהערה משפיעה על עוד דברים.

    עשיתי השוואה בין קובץ לפני וקובץ אחרי וראיתי שנוספים בסך הכל 3 קבצי CSS rtl (הראשי + 2 אחרים של תוספים).

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

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

    תודה על כל העזרה.

    הבעיה הייתה שלאחר השמת השורה ההיא בהערה, הכיוון (dir) תמיד מוגדר משמאל לימין באלמנט הראשי html, גם בדפים עבריים.
    (המספר 10 מופיע למעלה ואין לי מושג למה)

    אז בנוסף לקבצי ה-CSS, גם שיניתי את ההגדרה הזאת בקובץ ה-header.php באמצעות הקוד שלמטה ועעכשיו זה עובד. אני מודה לך מקרב לב.

    <?php if(get_bloginfo('language')=='he-IL') : ?>
        <link rel="stylesheet" href="http://www.gary-tv.com/garymain/wp-content/themes/graphene/rtl.css" type="text/css" media="screen" />
    
    <style type="text/css" media="screen">
    html { direction: rtl; }
    </style>
    
    <?php endif; ?>

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

    הבעיה:
    כאשר WordPress בא להציג את הדף, הוא אינו מסתכל על כיוון שפת הדף אלא על כיוון התקנת WordPress ב- domain כולו. ערך זה שמור בכל domain בתיקיה WordPress, בקובץwp-config.php , בשורה שכתוב בה 'WPLANG'. אם התקנת WordPress היא בעברית, באופן אוטומטי WordPress ישתמש בקובץ rtl.css של ה-theme, דבר שישבש הצגת הדפים שאמורים להיות מוצגים משמאל לימין.

    הפתרון:
    א) אם ברצונך ששפת ההתקנה תהיה עברית, הדרך היחיד לבטל את השימוש הגורף ב- rtl.css הוא למחוק את השורה הנ"ל. כמובן, זה יגרום להצגת כל הדפים, גם העבריים, משמאל לימין, אך לזה יש כמה פתרונות. אציין כאן רק אחד שנראה לי הטוב ביותר מכל הבחינות:

    ב) עבור SEO מרבי, Google ממליץ לארגן domain רב-שפתי עם כל שפה בתת-אתר משלו (subdomain או subdirectory). השימוש ב- WordPress Multisite מאפשר את זה. וכן Google ממליץ על השימוש ב- anchor text links (הטקסט הכחול עם קו תחתי, שעושה קישור) במקום תפריטים drop-down לניווט האתר, ואם עושים את זה ביחד עם Multisite, יכולים להשתמש ב- anchor text links כדי להחליף בקלות בין האתרים (ז"א השפות) ללא תוסף [ללא plugin]. (לדעתי, ככלל מוטב להימנע מ-plugin כי מצוי שהם פוגמים במהירות הביצוע, וכן בעיות נוספות שלזמן ממושך אינם באים על פתרונן ב-forum התמיכה, וכן מפסיקים לספק תמיכה בכלל או תמיכה בחינם, וכו'.) Multisite גם מאפשר את השימוש ב- theme נפרד לכל תת-אתר, וכך בתוך domain אחד, נהיה קל מאד להשתמש ב- parent theme לתת-אתרים בכיוון שמאל לימין, וב-child theme לתת-אתרים בכיוון ימין לשמאל. לצורך זה, זקוקים רק לקובץ אחד ב- child theme , את זה שתמיד נדרש, style.css . לאחר השורה בתוכו שתמיד נדרש, זו שמייבא את הקובץ ה- style.css של ה-parent theme, צריכים רק עוד שורה אחת כדי לייבא את rtl.css . (השתמשתי ב- theme בשם "bouquet", אך כל "theme" עם קובץ rtl.css יעשה את הנדרש.)

    /*
    Theme Name:     Bouquet RTL
    Description:    child theme for RTL subdirectory of bi-directional domain
    Author:         CKatzman
    Template:       bouquet
    */
    @import url("../bouquet/style.css");
    @import url("../bouquet/rtl.css");

    למרות שאשכול זה נפתח לפני כשנה, אוסיף עוד טיפ קטן. כשאתם משתמשים באתר מרובה-שפות, בין אם מדובר ברשת-אתרים או בתוסף כגון WPML או Polylang, וורדפרס תחפש בתיקיית התבנית הפעילה קבצי CSS עם השם של השפה הפעילה. לדוגמה, אם האתר הפעיל כרגע בעברית, וורדפרס תחפש קובץ בשם he_IL.css, ואם הוא יימצא, הוא ייטען. כנ"ל לכל שפה אחרת… fr_FR.css, en_UK.css וכו'.

מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
  • הדיון ‘מעוניין לטעון/לא-לטעון את rtl.css לפי שפת הדף (lang). מה הדרך ה’ סגור לתגובות חדשות