שיחת מדיה ויקי:סקריפטים/92.js

תגובה אחרונה: לפני 6 שנים מאת Mikey641 בנושא שאלה

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

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

התקנה עריכה

אפשר להתקין את הסקריפט כך שיפעל עבורכם בכל מיזמי קרן ויקימדיה, או להתקין אותו במיזם מסוים. כדי להתקין בצורה גלובלית, היכנסו להעדפות ← מראה, ולחצו על קובצי CSS/JavaScript משותפים לכל אתרי הוויקי. (מידע נוסף): => קובץ JavaScript מותאם אישית. יתכן שתצטרכו ליצור את הדף. בדף זה הוסיפו את השורה

mw.loader.load('//he.wikipedia.org/w/index.php?title=Mediawiki:סקריפטים/92.js&action=raw&ctype=text/javascript');

התקנה במיזם ספציפי היא דומה, אלא שאת אותה שורה בדיוק יש להוסיף לדף הסקריפטים האישיים שלכם באותו מיזם (היכנסו במיזם המדובר ל"העדפות => מראה", ולחצו על קובצי CSS/JavaScript משותפים לכל העיצובים: => קובץ JavaScript מותאם אישית ).

הפעלה עריכה

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

קונפיגורציה עריכה

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

בסעיף זה, "דף הסקריפט" הוא אותו דף בו התקנתם את הסקריפט, כמתואר בסעיף #התקנה.

שינוי שפת היעד עריכה

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

ניתן לבחור שפת יעד שונה, בעזרת שימוש בקידומת של השפה בוויקיפדיה ('en' לאנגלית, 'de' לגרמנית וכן הלאה, כמו בבוינוויקי): למשל כדי שהסקריפט יחליף את הקישורים הפנימיים בבינוויקי שלהם בפולנית, יש להוסיף לדף הסקריפט שורה נוספת:

window.translatelinks_target = 'pl';

בחירת שפת יעד אינטראקטיבית עריכה

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

 window.translatelinks_interactive = 'שפת יעד';

ההתקנה המומלצת לוויקיפד עברי עריכה

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

  • בסעיפים הבאים קישור לדף, וקטע קוד. ביצוע ההתקנה הוא חזרה על הצעדים הבאים עבור כל קטע קוד:
    • סימון הקוד
    • "העתק"
    • הקשה על הקישור
    • עריכת הדף
    • "הדבק"
    • שמירה
  • בדף הסקריפטים הגלובלי שלכם במטא: m:Special:MyPage/global.js, רשמו את הקוד הבא. התוצאה תהיה הפעלת הסקריפט בכל השפות, עם שפת יעד עברית:
window.translatelinks_target = 'he';
mw.loader.load('//he.wikipedia.org/w/index.php?title=Mediawiki:סקריפטים/92.js&action=raw&ctype=text/javascript');
.interwiki-substituted { padding: 2px; border: 1px solid green; }
  • בדף הסקריפטים האישי שלכם בוויקיפדיה בעברית, מיוחד:הדף שלי/common.js, הוסיפו את הקוד הבא, כדי לעבור למוד "אינטראקטיבי" שישאל מה שפת היעד הרצויה, עם ברירת מחדל 'en':
window.translatelinks_target = 'en';
window.translatelinks_interactive = 'שפת יעד';

ההתקנה מומלצת אלטרנטיבית עריכה

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

  • בסעיפים הבאים קישור לדף, וקטע קוד. ביצוע ההתקנה הוא חזרה על הצעדים הבאים עבור כל קטע קוד:
    • סימון הקוד
    • "העתק"
    • הקשה על הקישור
    • עריכת הדף
    • "הדבק"
    • שמירה
  • בדף הסקריפטים הגלובלי שלכם במטא: m:Special:MyPage/global.js, רשמו את הקוד הבא. התוצאה תהיה הפעלת הסקריפט בכל השפות, במוד "אינטראקטיבי", שתמיד שואל על שפת יעד:
window.translatelinks_target = 'he';
window.translatelinks_interactive = 'שפת יעד';
mw.loader.load('//he.wikipedia.org/w/index.php?title=Mediawiki:סקריפטים/92.js&action=raw&ctype=text/javascript');
  • בדף הסגנונות הגלובלי שלכם במטא, m:Special:MyPage/global.css, רשמו את הקוד הבא. זה העיצוב של קישורים שהסקריפט החליף בבינוויקי - ביכולתכם לבחור עיצוב שונה:
.interwiki-substituted { padding: 2px; border: 1px solid green; }

שינוי הכותרת בתפריט הנסתר עריכה

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

window.translatelinks_prompt = 'ציירי לי שפם';

הוספת עיצוב לקישורים שהוחלפו עריכה

כדי לשנות את העיצוב של קישורים שהוחלפו, יש לערוך את "דף ה-CSS האישי". ההוראות דומות להוראות בסעיף #התקנה, אלא שבמקום לערוך את דף ה-Javascript, יש לערוך את דף ה-CSS. אם התקנתם את הסקריפט גלובלית, ערכו את דף העיצוב הגלובלי, ואם התקנתם אותו מקומית במיזם ספציפי, ערכו את דף העיצוב באותו מיזם. בדף העיצוב יש להוסיף קטע שמגדיר מחלקה חדשה, בשם interwiki-substituted. בדוגמה הבאה מוגדר עיצוב שמקיף את הקישורים שהוחלפו במסגרת ירקרקה:

.interwiki-substituted { padding: 2px; border: 1px solid green; }

הפעלה אוטומטית עריכה

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

window.translatelinks_autoreplace = true;

שאלה עריכה

קיפודנחש. אני רוצה להפעיל את הסקריפט גלובלית כך שאם זה בוויקיפדיה העברית - זה יפנה לאנגלית. ואם בשפות אחרות - לעברית. איך אפשר לעשות זאת.--‏Mikey641שיחה 15:57, 15 ביוני 2017 (IDT)תגובה

אתה יכול לעשות משהו כמו
window.translatelinks_target = mw.config.get('wgUserLanguage') === 'he' 
    ? 'en' 
    : 'he';
הבחירה בדוגמה היא לפי שפת הממשק, לא שפת הדף. אפשר להחליף את wgUserLanguage ב-wgPageContentLanguage, כדי לעשות זאת לפי שפת הדף במקום. אם מישהו קורא זאת: צריך כנראה להעביר את החלק של התיעוד לדף אחר, או לנהל את השיחות בדף אחר... קיפודנחש 17:28, 15 ביוני 2017 (IDT)תגובה
תודה!--‏Mikey641שיחה 17:48, 15 ביוני 2017 (IDT)תגובה
חזרה לדף "סקריפטים/92.js".