באילו שפות כדאי ש-Splync יתמוך
כש-Splync הושק לראשונה, הוא היה אפליקציה בשפה אחת בלבד - זמינה רק באנגלית - למרות שהבלוג הזה מפורסם ב-42 שפות כיום. השפה שלי היא יפנית, ואפילו יש לי הסמכה רשמית ללמד אותה לאחר שעברתי את מבחן הכשירות להוראת השפה היפנית שמנוהל על ידי השירותים להחלפת חינוך יפן. עם זאת, אנגלית נראית השפה הנגישה ביותר בעולם של היום, ולכן הוצאתי את הגרסה הראשונה של Splync באנגלית כ-MVP (מוצר מינימלי בר קיימא). כשאני מסתכל סביבי, הרבה יפנים לא נראים נוחים להשתמש באנגלית, ולכן הוספת תמיכה ביפנית הרגישה לי לגמרי טבעית. הוספתי גם צרפתית, שדיברתי עם אנשים מבוגרים ברואנדה כשנכנסתי להתנדבות במים ותברואה במסגרת תוכנית המתנדבים לשיתוף פעולה של יפן בחו"ל. בנוסף, הוספתי סינית פשוטה, שאני יכול לקרוא באופן חלקי, רק כדי לראות איך האפליקציה תיראה במערכת כתיבה שונה.
מחד-לשוני לדובר ארבע שפות
Splync v1.3 תומך בארבע שפות: אנגלית, יפנית, צרפתית וסינית פשוטה. כשפתחתי את Splync מעבר לאנגלית, רציתי להפוך את התמיכה בשפות ליעילה ככל האפשר מבלי להוסיף סיבוכים מיותרים. במקום לרדוף אחר כמות, התמקדתי בהשפעה של כל שפה. אנגלית מכסה באופן טבעי את הקהל הבינלאומי הרחב ביותר. יפנית היא השפה שלי ומייצגת שוק מקומי גדול שבו אפליקציות לניהול תקציב משותף עדיין מתפתחות. צרפתית, לעומת זאת, מרחיבה את ההשפעה על פני יבשות רבות - לא רק בצרפת אלא גם בחלקים מאפריקה, קנדה ואירופה. לבסוף, סינית פשוטה פותחת גישה לאחת הקהילות הגדולות ביותר ברשת. יחד, ארבע השפות הללו מספקות כיסוי גלובלי מאוזן - צפון אמריקה, אירופה, אסיה ואפריקה - תוך שמירה על קלות תחזוקה עבור מפתח עצמאי. מבחינת יחס עלות-תועלת, זהו ההגדר הרב-לשוני היעיל ביותר בשלב זה. מאחר שזו הייתה הפעם הראשונה שניסיתי לוקליזציה של אפליקציה, כל התהליך היה ניסוי חשוב עבורי.
איך להתאים אפליקציות באמצעות מפתחות
ב-Splync, אני משתמש במסגרת הלוקליזציה המובנית של אפל עם קבצי .strings לכל שפה נתמכת, שמחזיקים את כל הטקסטים המופנים למשתמש במבנה מאורגן. כל טקסט מזוהה על ידי מפתח - למשל, "sign_up_button" - ומוצמד לו ביטוי מותאם לשפה בכל קובץ .strings. באנגלית, זה יכול להיות "Sign Up", בעוד שהקבצים האחרים מכילים את התרגומים המתאימים. בצורה זו, כל קובץ .strings פועל כמו קורפוס מקביל, מאחד על ידי מפתחות משותפים. מפתחות אלה שולטים באופן דינמי בכל הטקסטים המופיעים בממשק המשתמש של האפליקציה בהתבסס על השפה שהמשתמש בחר. בעוד שהמנגנון עצמו פשוט יחסית, שמירה על איכות תרגום גבוהה היא אתגר מורכב בהרבה. וכמובן — אני לא מדבר כמויות שפות כמו C-3PO!
בואו נשפר את איכות התרגום ביחד
לגרסה זו, השתמשתי ב-ChatGPT-4o כדי לתרגם את כל הטקסטים המופנים למשתמש ובדקתי ידנית כמה שיכולתי. כמפתח עצמאי, אני מתכנן להמשיך באוטומציה של תהליך התרגום באמצעות Python ו-OpenAI API, בדיוק כמו שאני עושה עבור הבלוג הזה. לוקליזציה מהווה אתגר הן לשוני והן טכני. תרגום טוב הוא לא רק מילולי - הוא חייב להתחשב בטון, בניסוח ובניואנסים התרבותיים. בעבר עבדתי בחברת תרגום ועריכה אקדמית גלובלית, מה שלימד אותי את ערך הבדיקה האנושית בזיהוי ההקשר העמוק והכוונה שהבינה המלאכותית לבדה עשויה להחמיץ. מגבלות ממשק משתמש הן גורם נוסף - לפעמים ביטוי מתורגם פשוט לא מתאים בכפתור או בתגית. לכן לוקליזציה אינה רק על שפה, אלא גם על עיצוב ומבנה. דרך ניסוי וטעיה, אמשיך לשפר את החוויה הרב-לשונית של Splync כדי להפוך אותה ליותר טבעית, עקבית וניתנת להרחבה. והמסע הזה אינו רק על קוד או פקודות — אשמח לשלב משוב משתמשים כדי להעלות את האיכות עוד יותר. אם אתם מזהים תרגומים לא טבעיים או מביכים, אל תהססו ליידע אותי. הדעות שלכם תמיד מבורכות.
Splync מבוסס על קהילה
בעבר עבדתי כמנהל חוויית משתמש בחברות גלובליות, ולמדתי כמה חשוב להקשיב למשתמשים. זו אחת הסיבות שאני רוצה לתמוך ביותר שפות — כך ש-Splync יוכל להבין ולצמוח עם יותר קולות. במקביל, שירותים ומוצרים מצוינים חייבים להגן על האינטרסים המשותפים של קהילות המשתמשים שלהם. אדם אחד עשוי לומר דבר זה, ואחר דבר אחר. חלק מהבקשות ניתן לפתור באמצעות התאמה אישית. אחרות עשויות לדרוש פשרה. בסופו של דבר, הדרך שבה נתקדם חייבת להתאים לחזון המרכזי שלנו. כפי שאמרתי בעבר: Splync מונחה חזון, ממוקד משתמש ומבוסס על קהילה. אני מקווה שנמשיך לגדול יחד — להפוך את Splync לאפליקציית התקציב הפשוטה ביותר שתעשה את החיים קצת שמחים יותר.