תקלות כיווניות ב־GNOME

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

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

הפירוט די ארוך, לכן אני קורא כבר בהתחלה - דווחו על כל תקלת כיווניות בעברית ב־GNOME. אפילו כאן בנושא זה.

הערה: אני מריץ את גרסת הפיתוח של GNOME על המחשב שלי (‏‏FCGU על ארץ׳ לינוקס), ‏כרגע GNOME 42.beta.

אפרט לפי סוגי תקלות.

  1. שעה הפוכה. למשל, 42:17 במקום 17:42.
    בחלק מהיישומים הסיבה קשורה דווקא לתרגום, לשימוש בסימן הנקודתיים המתאים.
    כך בקבצים (Nautilus). תיקנתי את התקלה דרך קובץ ה־po.

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

if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL)
  gtk_widget_set_direction (label, GTK_TEXT_DIR_LTR);

די פשוט.

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


if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL)
{
  gtk_widget_set_direction (self->to_spinbuttons_box, GTK_TEXT_DIR_LTR);
  gtk_widget_set_direction (self->from_spinbuttons_box, GTK_TEXT_DIR_LTR);
}
  1. כיווניות משפטים הפוכה:

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

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

לדוגמה, את המחרוזת ‎‎%s requires a password‎.‎ אנו מתרגמים כך שבתחילת מופע התרגום יופיע תו הכיווניות, כך שגם במידה ו־‎%s‎ יוחלף עם מילה באנגלית, המשפט יופיע בצורה מסודרת.

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

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

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

  1. יישור מחרוזות לשמאל במקום לימין

ב־gnome-shell מצאתי כמה מחרוזות מיושרות לשמאל במקום לימין.
לרוב מדובר במקרים בהם הוגדר יישור לשמאל, מבלי להגדיר יישור מיוחד ל־RTL.

גם כאן התיקון די פשוט. הגדרה בקובץ CSS יישור מתאים ל־RTL.

&:ltr { text-align: left };
&:rtl { text-align: right };
  1. ריווח ושוליים לא מותאמים בעברית

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

&:ltr {margin-right: 1px;}
&:rtl {margin-left: 1px;}
  1. הפתעות

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

  1. מחרוזות שלא מתורגמות ביישומים מתורגמים

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

במקרים אחרים המחרוזת מגיעה מיישום אחר, שם הוא לא מתורגם.

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

  1. חצים הפוכים

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

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

יוסף אור בוצ׳קו

לייק 1

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

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

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

תודה על הכול :slight_smile:

כנראה יש קשר לסוג הנקודתיים.

אחרי שהמפתח של gnome-music לא רצה להכניס את ההיפוך הידני של מחרוזות הזמן, חיפשתי ומצאתי עכשיו שב־gnome-music משתמשים ב־„∶” (U+2236) במקום ב־„:” (U+003A), וזה מה שגורם להיפוך.

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

לגבי %s בהתחלה, לצערי אני לא רואה כאן אפשרות טובה יותר מהוספת תו RLM בהתחלה.