חיפוש זריז במילון

חשוב ללמוד ולשנן רק מה שמבינים. אם משהו לא ברור יהיה טיפשי לנסות ללמוד אותו ולהמשיך ולשנן אותו: גם כי אין בזה ערך, גם כי מה שלא מבינים לא נדבק טוב לזכרון, וגם כי אם הוא כן נדבק יכול להיות שלמדנו באופן שגוי ונצטרך לעשות unlearning, שזה הרבה יותר קשה מללמוד. בלימוד שפה נתקלים כל הזמן במילים לא מוכרות, שאנחנו רוצות להבין, ללמוד ולהכיר. בחלק מהמקרים המשמעות שלהן ברורה לגמרי מההקשר או מהתרגום בטקסט דו־לשוני, ובחלק מהמקרים יש צורך לבדוק במילון, בין אם בגלל שהמשמעות לא ברורה לנו או בגלל שהמבנה של המילה או צורת הנטיה שלה לא ברורים. באמצע סשן של אנקי לעבור לפתוח מילון מודפס, או אפילו לעבור לאתר או לאפליקציה של המילון ולהקליד ידנית את המילה לבירור, זה קוטע. לו רק יכולנו ללחוץ על מילה בכרטיס ולעבור מיד לערך המתאים לה במילון… בעזרת טריק שלמדתי מ־Neri אפשר לעשות בדיוק את זה.

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

1. הוראות

השינוי נעשה ברמה של סוג הרשומה; כלומר, כל הרשומות מסוג מסויים (note type) יושפעו. נבחר ב־Tools → Manage Note Types מהתפריט. בחלון שיפתח נבחר בסוג הכרטיס שאנחנו רוצות לשנות ואז נלחץ על Cards. יפתח לנו חלון כזה:

תמונה 1: מסך העריכה של הכרטיסים

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

1
<p id="lookup">{{Esperanto}}</p>

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<script>
var content = document.getElementById("lookup").innerHTML;

var punctuationless = content.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g, "");
var mixedCase = punctuationless.replace(/\s{2,}/g, " ");
var finalString = mixedCase.toLowerCase();

var words = (finalString).split(" ");

var punctuatedWords = (content).split(" ");

var processed = "";
for (i = 0; i < words.length; i++) {
    processed += "<a href = \"https://en.wiktionary.org/wiki/" + words[i] + "#Esperanto\">";
    processed += punctuatedWords[i];
    processed += "</a> ";
}

document.getElementById("lookup").innerHTML = processed;
</script>

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

1
2
3
4
#lookup a {
    color: inherit;
    text-decoration: inherit;
}

1.1. התאמות

1.1.1. מילונים אחרים

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

1
processed += "<a href = \"https://en.wiktionary.org/wiki/" + words[i] + "#Esperanto\">";

אם נרצה, לדוגמה, להשתמש ב־Plena Ilustrita Vortaro de Esperanto המעולה נשנה אותה לזו:

1
processed += "<a href = \"http://vortaro.net/#" + words[i] + "\">";

החלק words[i] מייצג את המילה בכתובת של המילון המקוון. לא יודעת איך נראית הכתובת? חפשי מילה במילון ובשורת הכתובת של הדפדפן תוכלי לראות מה המבנה שלה.

כך, חיפוש מילה במילון מורפיקס (עברית ↔ אנגלית) יעשה באופן הזה:

1
processed += "<a href = \"https://www.morfix.co.il/" + words[i] + "\">";

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

1.1.2. רֵישִׁיוּת

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

1
var finalString = mixedCase.toLowerCase();

בזו

1
var finalString = mixedCase;

כלומר, פשוט נסיר את הפקודה שמקטינה את האותיות.

1.2. יפנית וסינית

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

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

לסינית יש כמה אופציות, אבל אני לא מכיר אותן ממקור ראשון; חפשו כאן.