איך מתרגמים (תכנות לזמן וכסף)

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

לפני מספר שנים, כשעבדתי כמתרגם טכני שכיר בחברת תרגום, נחשפתי לנושא של TM – "זכרון תרגום" (Translation Memory). בתרגום טכני, במיוחד, אפשר להתקל לעתים קרובות מאד בביטויים שחוזרים על עצמם במדויק או כמעט-במדויק באותו פרויקט, וזה מתסכל גם למתרגם ("למה אני צריך להקליד את אותו הטקסט אלף פעם?") וגם ללקוח ("למה אני צריך לשלם על אותו טקסט אלף פעם?"). הפתרון הוא תוכנות תרגום ששוברות את הטקסט למשפטים, שומרות עבור כל משפט את התרגום האנושי שהוקלד, ומציעות אותו למתרגם בפעם הבאה שהמשפט הזה מופיע – או אפילו מכניסות אותו בכוחות עצמן לטקסט המתורגם. ככל שהתוכנות משוכללות יותר, כך הן מסוגלות לנתח את המשפט טוב יותר, וכך לזהות משפטים וחלקי משפט דומים ולהציע להם תרגום אוטומטי על סמך הנתונים הקיימים.

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

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

למה הכוונה? ניקח דוגמה פיקטיבית של משפט מקור כזה: "Press the right button to continue". נניח שתרגמתי את המשפט עבור מוצר מסוים, ושם הכוונה היתה לכפתור שנמצא מימין, כלומר "לחץ על הכפתור הימני כדי להמשיך". כעת אני מקבל מאותו לקוח טקסט אחר, שהוא בכלל הנחיות לנבחן במבחן אמריקאי, ושם הכוונה בעצם ל-"הקש על הכפתור הנכון כדי להמשיך". מבחינת הלקוח, המשפט המקורי זהה בשני המקרים ("100% התאמה"), ולכן הוא לא ירצה לשלם לי עבורו בטקסט השני – הרי זה דבר שהתוכנה אמורה להשלים אוטומטית באפס מאמץ מצדי…

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

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

לא, לא ביטורנט. דלפי, סביבת הפיתוח לשפת Object Pascal ב-Windows. דלפי מוגדרת כתוכנת RAD, כלומר Rapid Application Development (פיתוח יישומים מהיר), וזה בדיוק מה שהיה כאן. בתוך 10 דקות, כולל דיבוג, כתבתי תוכנת TM בסיסית ופרימיטיבית שמעלה לי תרגומים למשפטים שכבר תרגמתי. איך זה עובד?

MyTM Screenshot
חלון תוכנת ה-TM הפרימיטיבית שלי

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

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

  1. סימון והעתקה של קטע טקסט מעורך הטקסט בו אני מתרגם
  2. לחיצה על חלון תוכנת התרגום כדי להעביר אליו את הפוקוס
  3. הדבקה של הטקסט המועתק בתיבה העליונה
  4. סימון והעתקה של הטקסט המתקבל בתיבה התחתונה
  5. לחיצה על חלון עורך הטקסט כדי להחזיר אליו את הפוקוס
  6. הדבקה של הטקסט המתורגם שהועתק

מתיש, נכון? למרבה המזל, דלפי מעניקה גישה קלה ל-Clipboard של Windows, וזהו כלי רב עוצמה. מסתבר שהוא לא סתם מאגר פסיבי של נתונים, אלא אובייקט "חי": הוא מחזיק ברשימה של יישומים, ושולח לכולם הודעה כאשר התוכן שלו משתנה. הסוד הוא לצרף את היישום שלי לרשימה הזו (את הקוד לכך מצאתי והעתקתי מהאינטרנט), ואז – כאשר מתקבלת הודעה כזו – להעתיק את התוכן מה-Clipboard אוטומטית לתיבה העליונה. כך נחסך הצורך בשלבים 2 ו-3.

באמצעות פקודה מתאימה אפשר גם לכתוב מהתוכנה ל-Clipboard מה שרוצים. אם התוכנה שלי גילתה תרגום קיים לטקסט שהועתק, היא מבצעת את פקודת הכתיבה הזו על התוכן שבתיבה התחתונה וחוסכת לי את השלבים 4 ו-5. כעת, בלי לצאת בכלל מחלון עורך הטקסט, אני פשוט מסמן את המשפט הרלוונטי, לוחץ Ctrl+C – ואם מתקבל אור ירוק בתוכנה שלי שמציין שקיים תרגום, אני לוחץ Ctrl+V. שתי פעולות בלבד, בלי לגעת בעכבר.

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

להרשמה
הודע לי על
6 Comments
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

אם היית עובד בלינוקס, הייתי מציע לך לעבוד עם הsmall clipboard במקום עם הclipboard הרגיל, ככה היית חוסך לעצמך כמה לחיצות על ctrl+c (הsmall clipboard מכיל את הטקסט האחרון שנבחר עם העכבר)

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

[הערה: הספאם הזה הגיע עם קישור לאתר של litera נקודה co.il שמציע "תרגום מקצועי". אני מבין שזו רמת השפה שהם מציעים – ראו הוזהרתם! לתרגומים ועריכה איכותיים באמת, אתם מוזמנים ליצור קשר איתי. -עידו]

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

רעיון יפה וביצוע יפה.