לוקליזציית משחקים בעזרת AI

Updated 2026-09-05

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

חלצו את המחרוזות שהשחקנים באמת פוגשים

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

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

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

הכינו טבלת מקור נקייה ל-Godot

Godot מתעד קלט תרגום CSV עם מפתחות ייחודיים ועמודות שפה. עמודה שמתחילה בקו תחתון יכולה לשאת הערות. הדוגמה היא קובץ מקור אנגלי מקורי; הוסיפו עמודות locale יעד לאחר בדיקת התרגום. השתמשו בעורך או במנתח שמודע ל-CSV כדי שמרכאות, פסיקים ומעברי שורה יישארו תקינים.

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

keys,en,_context
MENU_START,Start game,Title screen action
MENU_RESTART,Restart round,Shown after win or loss
SCORE_TOTAL,Score: {score},HUD; preserve the named placeholder
SAVE_FAILED,Progress could not be saved.,Error after a failed save

הגנו על מצייני מקום ועל עובדות המשחק

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

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

score_label.text = tr("SCORE_TOTAL").format({"score": score})

תרגמו לפי הקשר ובדקו הודעות קשות

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

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

ייבאו ורשמו את התרגומים

לאחר הייבוא אמתו את משאבי התרגום המיועדים תחת Godot's Project Settings, Localization, Translations. אל תניחו שרישום הצליח רק מפני שקובץ CSV קיים. השתמשו בתיעוד של גרסת המנוע שלכם ובדקו את רשימת המשאבים בפועל.

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

בדקו את הפריסה לפני תרגום הכול

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

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

שמרו על עקביות בין טקסט החנות לתמיכה בשפות

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

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

אשרו מסע מקומי ואז נהלו את ההפרש

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

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

שאלות נפוצות

האם לשלוח את תסריט המשחק כולו בבקשה אחת?

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

האם מודל יכול לשנות שמות של מפתחות תרגום?

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

מדוע המשחק מציג מפתח במקום תרגום?

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

האם pseudolocalization מוכיחה איכות תרגום?

היא עוזרת לחשוף בעיות פריסה ולוקליזציה. המשמעות בשפת היעד עדיין זקוקה לבדיקת שפה ולבדיקה בתוך המשחק.

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

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