עברית תקינה ב-ChatGPT Desktop: פאצ' RTL ל-Windows ול-Mac

אפליקציית ChatGPT למחשב, זו שמאחדת את ChatGPT Work ואת Codex, מסתדרת עם עברית רק חלקית. תשובה שנפתחת במילה באנגלית נצמדת לשמאל והנקודה שלה קופצת לתחילת השורה. גם בולטים של רשימה יכולים לשבת בצד הלא נכון ומונח באנגלית באמצע משפט משבש את סדר המילים. בערבית זה קורה באותה צורה.
RT-AI ChatGPT RTL Patch הוא פאצ' חינמי בקוד פתוח שבניתי כדי לסגור את הפערים האלה. הוא מתקין עותק של האפליקציה שבו כל פסקה מקבלת כיוון לפי השפה שלה וקוד נשאר משמאל לימין, בלי להזיז אף כפתור של ChatGPT. מתקינים אותו בשורה אחת ב-Windows או ב-Mac, בלי הרשאות מנהל והאפליקציה המקורית נשארת כמו שהיא.
כך הפאצ' מחליט על כל חלק בתשובה אחת:
- 1ספירה: הפסקה נפתחת ב-Vite, אבל רוב האותיות בה עבריות
- 2יישור: הפסקה והרשימה עוברות לימין, הקוד נשאר משמאל
- 3בדיקה: הכפתורים בשורת הכלים לא זזו
מה צריך לפני ההתקנה
- אפליקציית ChatGPT למחשב. ב-Windows מתקינים אותה מ-Microsoft Store, מהדף שנקרא ChatGPT. יש בחנות גם ChatGPT Classic, האפליקציה הישנה והפאצ' לא נוגע בה. ב-Mac מורידים את האפליקציה מעמוד ההורדה של ChatGPT.
- Node.js בגרסת LTS מ-nodejs.org. המתקין משתמש בו כדי לפתוח את קבצי האפליקציה ולארוז אותם מחדש.
התקנה ב-Windows
פותחים את תפריט Start.

מקלידים PowerShell ופותחים את Windows PowerShell. אין צורך להריץ אותו כמנהל.

מדביקים את השורה הזו ולוחצים Enter:
PowerShellirm https://raw.githubusercontent.com/rt25ai/chatgpt-desktop-rtl-rt-ai/v0.7.2/install-online.ps1 | iex
המתקין מוריד את v0.7.2 מ-GitHub, בונה את העותק ופותח אותו. בסוף הריצה מופיעה השורה RT-AI ChatGPT RTL patch installed.

מעכשיו קיצור הדרך ChatGPT על שולחן העבודה ובתפריט Start פותח את העותק המתוקן, שנמצא בתיקייה %LOCALAPPDATA%\Programs\ChatGPT-RT-AI.
Windows Defender חסם את הפקודה?
Defender עלול לעצור את השורה ולהציג Trojan:Win32/ClickFix. השורה מורידה סקריפט ומריצה אותו מיד. מתקפות ClickFix משכנעות אנשים להדביק בדיוק פקודות כאלה (Microsoft מסבירה איך הן עובדות). לפי התיעוד בריפו, מה שמפעיל את ההתרעה הוא צורת הפקודה. לכן כדאי לקרוא קודם את סקריפט ההתקנה ב-GitHub. אחרי שבדקתם, אפשר לאשר את הפריט ב-Windows Security, תחת היסטוריית ההגנה ולהריץ שוב.
מעדיפים לא להדביק פקודה?
בריפו יש גם קובץ install.bat שמריץ את אותו מתקין. מורידים את קוד המקור של v0.7.2 מעמוד הגרסה ב-GitHub, מחלצים את הקובץ ולוחצים פעמיים על install.bat.
התקנה ב-Mac
פותחים Terminal, מדביקים את השורה ולוחצים Enter:
curl -fsSL https://raw.githubusercontent.com/rt25ai/chatgpt-desktop-rtl-rt-ai/v0.7.2/install-online.sh | bash
הסקריפט מעתיק את /Applications/ChatGPT.app אל ~/Applications/ChatGPT-RT-AI.app, מוסיף לעותק את אותו קובץ JavaScript שמותקן ב-Windows, חותם עליו מחדש כדי ש-macOS יסכים להריץ אותו ופותח אותו. לפני כן צריך Node.js (brew install node) ואת כלי הפיתוח של Xcode (xcode-select --install).
גרסת ה-Mac עדיין ניסיונית
לא בדקתי אותה בעצמי על אפליקציית ChatGPT הנוכחית. הסקריפט עוד לא מעדכן את טביעת האצבע של הארכיון הפנימי, שב-Mac נשמרת בקובץ Info.plist. אם האפליקציה בודקת אותה, העותק לא ייפתח. במקרה כזה, דיווח ב-GitHub יעזור לתקן את זה.
מה משתנה על המסך
הפאצ' מטפל רק בתוכן: בתשובות של ChatGPT ובתיבת הכתיבה.
מה הפאצ' מיישר
- כל פסקה מקבלת כיוון לפי השפה שלה. עברית וערבית נצמדות לימין, אנגלית נשארת משמאל, גם בתוך אותה תשובה.
- פסקה שנפתחת במילה באנגלית נבדקת לפי רוב האותיות שבה. אם רובן עבריות, היא עוברת לימין, כמו בהמחשה למעלה.
- רשימות וציטוטים עוברים לימין יחד עם הבולטים, המספרים וקו הציטוט. הכיוון של רשימה נקבע לפי רוב הפריטים שלה, כך שפריט אחד באנגלית לא מושך אותה שמאלה.
- קוד נשאר משמאל לימין, גם בבלוק נפרד וגם כשהוא מופיע באמצע משפט בעברית.
- בתיבת הכתיבה כל שורה מתיישרת לפי השפה שלה בזמן ההקלדה.
מה נשאר כמו שהוא
- הממשק של האפליקציה עצמה: הכפתורים, התפריטים ורשימת השיחות לא זזים. לכן תוויות מעורבות בממשק, כמו תאריך בעברית בתוך משפט באנגלית, עדיין יכולות להופיע בסדר לא נכון.
- כששפת הממשק מוגדרת לעברית, האפליקציה כבר קובעת בעצמה כיוון מימין לשמאל לכל העמוד. הפאצ' לא מתערב בזה ומשלים רק את מה שנשאר פתוח.
מה קורה כש-ChatGPT מתעדכן
העותק לא מתעדכן מהחנות. החנות מעדכנת את האפליקציה המקורית. ב-Windows המתקין רושם משימה מתוזמנת בשם ChatGPT RT-AI RTL Auto-Update שבונה את העותק מחדש מהגרסה החדשה. המשימה רצה בכל כניסה למחשב ופעם ביום, בלי הרשאות מנהל. מי שמריץ את שורת ההתקנה מ-PowerShell שנפתח כמנהל מקבל גם הפעלה אוטומטית כדקה אחרי שהחנות מעדכנת את ChatGPT.
כשהעותק פתוח, המשימה לא סוגרת אותו. היא מחכה לפעם הבאה ש-ChatGPT סגור לגמרי. ב-Mac את אותו תפקיד ממלא סוכן launchd שרץ בכניסה למחשב ופעם בשעה.
00:14 Update available (26.917.6896.0) but the patched app is running; deferring. 00:15 Updating patch from [26.915.4065.0] to [26.917.6896.0]. 00:16 Re-patched successfully to 26.917.6896.0. 03:45 Updating patch from [26.917.6896.0] to [26.917.8451.0]. 03:46 Re-patched successfully to 26.917.8451.0.
במחשב שלי כל בנייה מחדש לקחה בין חצי דקה לדקה וקצת. כדי לבדוק מאיזו גרסה העותק נבנה, מריצים ב-PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\Programs\ChatGPT-RT-AI-patcher\patch.ps1" -Status
בשורה Patched copy built from version מופיעה הגרסה של העותק. אם הוא מפגר אחרי הגרסה שבחנות, מופיעה מתחתיה אזהרה צהובה.
Updates Unavailable בתוך העותק זה תקין
בדיקת העדכונים בתוך העותק תציג תמיד Updates Unavailable. מנגנון העדכון של ChatGPT ב-Windows עובד רק מתוך חבילת ה-Microsoft Store. העותק רץ מחוץ לה. העדכונים מגיעים דרך החנות והמשימה.
ואם העותק מפסיק להיפתח אחרי עדכון, מריצים שוב את שורת ההתקנה. היא בונה אותו מחדש מהגרסה הנוכחית, עם כל ההתאמות שהגרסה הזו צריכה.
איך זה עובד מבפנים
ChatGPT למחשב היא אפליקציית Electron: הממשק שלה הוא דף אינטרנט שרץ בתוך חלון. ב-Windows המתקין עושה את השלבים האלה על עותק, אף פעם לא על המקור:
מאתר את ChatGPT מהחנות, חבילה בשם
OpenAI.Codexומעתיק אותה לתיקיית המשתמש.פותח את הארכיון
app.asarשבו יושב הממשק ומצרף קובץ JavaScript אחד לקובץ הכניסה של הממשק.אורז את הארכיון מחדש ומעדכן את טביעת האצבע שלו בתוך קובץ ההפעלה, כי ChatGPT בודק אותה בכל הפעלה ומסרב לעלות אם הארכיון השתנה.
מכבה בעותק את הדגל
codexWindowsAppContainedCore, שמריץ את הליבה של Codex בבידוד ודורש את זהות החבילה של החנות. בלי הדגל, העותק מריץ את הליבה שמגיעה עם האפליקציה.יוצר את קיצורי הדרך ChatGPT ורושם את משימת העדכון.
ב-Mac הסקריפט מעתיק את האפליקציה, מצרף את אותו קובץ JavaScript וחותם על העותק מחדש בחתימה מקומית (ad-hoc).
למה הכפתורים לא זזים
הקובץ שמתווסף לממשק לא כותב אף פעם dir או lang על אלמנטים. הממשק של ChatGPT בנוי ב-Tailwind. מספיק dir="rtl" על אלמנט אחד כדי להדליק אצל כל מה שבתוכו כללים שהופכים שורות, מסובבים חצים ומזיזים תפריטים והלחיצות נוחתות על מקום ריק.
הכיוון נקבע ב-CSS בלבד. unicode-bidi: plaintext נותן לכל פסקה כיוון לפי האות הראשונה שלה והקוד רק מוסיף class לפסקאות ולרשימות שבתוך התשובות. גיליון הסגנונות נטען בשכבה החלשה ביותר, כך שכל כלל של האפליקציה גובר עליו. בריפו יש בדיקה שמודדת כל אלמנט בממשק עם הפאצ' ובלעדיו ונכשלת אם משהו זז אפילו בפיקסל אחד.
עקיפה לבאג של האפליקציה עצמה
בבילד 26.831 נמדד שכמה שכבות שקופות מעל שורת הכלים העליונה מסומנות גם כאזור שגוררים ממנו את החלון. לכן לחיצה על הפעמון, על החיפוש או על מחליף המצבים Chat, Work ו-Codex גררה את החלון במקום ללחוץ עליהם, גם בהתקנה נקייה בלי הפאצ'. הפאצ' מבטל את אזור הגרירה רק בשכבות שממילא לא מקבלות לחיצות והחלון עדיין נגרר מהפס העליון. אם OpenAI יתקנו את זה, הקוד פשוט לא ימצא מה לתקן.
הסרה
שורה אחת מסירה את העותק ואת משימת העדכון וב-Windows גם את קיצורי הדרך. ChatGPT המקורי ממשיך לעבוד כרגיל.
irm https://raw.githubusercontent.com/rt25ai/chatgpt-desktop-rtl-rt-ai/v0.7.2/uninstall-online.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/rt25ai/chatgpt-desktop-rtl-rt-ai/v0.7.2/uninstall-online.sh | bash
שאלות ותשובות
הפאצ' משנה את ChatGPT המקורי?
לא. הוא בונה עותק נפרד בתיקיית המשתמש והאפליקציה המקורית נשארת כמו שהיא. אפשר להסיר את העותק בשורה אחת ולחזור למקור.
צריך להתחבר מחדש לחשבון?
לפי התיעוד בריפו, העותק משתמש באותה תיקיית נתונים כמו האפליקציה המקורית ולכן החשבון וההיסטוריה אמורים להופיע בו בלי התחברות נוספת.
Windows Defender מציג Trojan:Win32/ClickFix. מה עושים?
Defender חושד בפקודות מסוג irm ... | iex שמדביקים ב-PowerShell, כי כך פועלות מתקפות ClickFix. לפי התיעוד בריפו, מה שמפעיל את ההתרעה הוא צורת הפקודה. קוראים קודם את סקריפט ההתקנה ב-GitHub ואם מחליטים להמשיך, מאשרים את הפריט ב-Windows Security תחת היסטוריית ההגנה ומריצים שוב.
למה בתוך העותק כתוב Updates Unavailable?
מנגנון העדכון של ChatGPT ב-Windows עובד רק מתוך חבילת ה-Microsoft Store. העותק רץ מחוץ לה. העדכונים מגיעים בדרך אחרת: החנות מעדכנת את המקור ומשימת העדכון של הפאצ' בונה את העותק מחדש.
העותק הפסיק להיפתח אחרי עדכון. מה עושים?
מריצים שוב את שורת ההתקנה. היא בונה את העותק מחדש מהגרסה הנוכחית של ChatGPT, עם ההתאמות שהגרסה הזו צריכה.
זה עובד על Mac?
יש סקריפט ל-Mac, אבל הוא ניסיוני ולא בדקתי אותו בעצמי על האפליקציה הנוכחית. אם העותק לא נפתח, דיווח ב-GitHub יעזור לתקן את זה.
אחריות ורישיון
- הפאצ' מופץ ברישיון MIT, כמו שהוא (AS-IS) ובלי אחריות מכל סוג. השימוש בו על אחריות המשתמש.
- הוא לא מוצר של OpenAI ולא מאושר על ידה. ChatGPT ו-OpenAI הם סימנים מסחריים של OpenAI.
- העותק כבר לא נושא את החתימה המקורית: ב-Windows הוא רץ מחוץ לחבילת החנות וב-Mac הוא חתום בחתימה מקומית.
- אם OpenAI ישנו את מבנה הקבצים הפנימי של האפליקציה, המתקין יעצור עם הודעת שגיאה ולא ישנה קובץ אחר במקום.
- הקוד פתוח לקריאה ב-GitHub וכדאי לעבור עליו לפני ההתקנה.
המקורות
- הריפו של הפאצ' ב-GitHub: הקוד, ההוראות והמגבלות הידועות.
- הגרסה v0.7.2: הגרסה ששורות ההתקנה במדריך מצביעות עליה.
- הקובץ שמתווסף לממשק: הקוד שקובע את הכיוון של כל פסקה ורשימה.
- ChatGPT ב-Microsoft Store: האפליקציה שהפאצ' מיועד לה, בחבילה OpenAI.Codex.
- עמוד ההורדה של ChatGPT: ההורדה הרשמית ל-Windows ול-Mac.
- Microsoft על ClickFix: למה Defender חושד בפקודות שמדביקים ב-PowerShell.
- unicode-bidi ב-MDN: התכונה ב-CSS שנותנת לכל פסקה כיוון משלה.
- Node.js: נדרש כדי להריץ את המתקין.
הירשמו לעדכונים במייל
רוצים להישאר צעד אחד קדימה?
עדכונים על כלי AI, מדריכים וטיפים - ישר למייל. בלי ספאם.
