כיצד לבצע לוקליזציה לאפליקציית ה־iOS שלכם: מדריך בינאום ב־SwiftUI
הכינו את אפליקציית ה־Xcode שלכם, תרגמו את .xcstrings בעזרת בינה מלאכותית, ולאחר מכן העלו צילומי מסך כדי ש־PTC (Private Translation Cloud) תסקור את אפליקציית ה־iOS המרונדרת בכל שפה. מדריך זה מפרט את התהליך המלא באמצעות SwiftUI וקטלוגי מחרוזות (String Catalogs) של Xcode 15 ומעלה, הדרך המודרנית והמומלצת על ידי Apple. לסקירה כללית של השירות חוצה הפלטפורמות שמכסה גם iOS וגם Android, ראו תרגום אפליקציות iOS ו־Android מבוסס בינה מלאכותית.
חלק 1: כיצד פועלת לוקליזציה ב־iOS
לוקליזציה ב־iOS היא התהליך של התאמת הטקסט, העיצוב והמשאבים (assets) של האפליקציה שלכם לתמיכה במספר שפות ואזורים. עם קטלוגי מחרוזות (String Catalogs) שהוצגו ב־Xcode 15, התהליך פשוט משמעותית מהגישה הישנה של .strings / .stringsdict.
בינאום (Internationalization) לעומת לוקליזציה (Localization)
אלו הם שני שלבים נפרדים, והם חייבים להתרחש בסדר הזה:
- בינאום (i18n) הוא התשתית הטכנית. אתם מבנים את הקוד שלכם כך שטקסט, תמונות ועיצוב יוכלו להשתנות לפי אזור (locale) ללא שינויי קוד. מבוצע פעם אחת, באופן אידיאלי לפני השחרור הראשון שלכם.
- לוקליזציה (l10n) היא העבודה המתמשכת שבאה לאחר מכן. כתיבת תרגומים, התאמת פריסות ואספקת משאבים ספציפיים לאזור עבור כל שפה חדשה.
הטעות הנפוצה ביותר היא להתייחס ללוקליזציה כמשימה שלאחר ההשקה, רק כדי לגלות שבסיס הקוד אינו מוכן. חזרה לאחור כדי לתקן מחרוזות hardcoded, פריסות בעלות כיוון קבוע ורכיבי עיצוב (formatters) שאינם מודעים לאזור ברחבי אפליקציה קיימת, לוקחת הרבה יותר זמן מאשר בנייה מתוך מחשבה על לוקליזציה מהרגע הראשון.
כיצד Xcode 15 ומעלה משתמש ב־Localizable.xcstrings כמקור האמת היחיד
מודל הלוקליזציה של Apple ב־Xcode 15 ומעלה מתמקד בקובץ יחיד לכל יעד (target): Localizable.xcstrings. קובץ זה הוא קטלוג מחרוזות בפורמט JSON שמכיל את שפת המקור שלכם יחד עם כל תרגום, כולל צורות רבים, וריאציות ספציפיות למכשיר והחלפות (substitutions).
Xcode מחלץ אוטומטית מחרוזות הניתנות ללוקליזציה (localizable strings) מקוד ה־SwiftUI שלכם (כל Text("..."), Label("...", systemImage:), Button("..."), וכל שרשור מחרוזות (string interpolation) שמשתמש ב־LocalizedStringKey). הרצת ה־build של האפליקציה שלכם מאכלסת את Localizable.xcstrings בכל מחרוזת מקור שחולצה.
Apple תומכת במספר פורמטים. .strings (מפתח-ערך ישן), .stringsdict (צורות רבים ישנות), ו־.xcstrings (מודרני). פרויקטים חדשים צריכים להתחיל עם .xcstrings. פרויקטים קיימים המבוססים על .strings יכולים לעבור דרך File > New > File > String Catalog ואפשרות הייבוא של Xcode. התיעוד הרשמי של Apple ללוקליזציה מכסה את הרקע המלא.
חלק 2: הגדרת פרויקט ה־Xcode שלכם ללוקליזציה
שלב 1: הפעלת לוקליזציה. פתחו את הפרויקט שלכם ב־Xcode ובחרו את קובץ הפרויקט ב־Navigator. תחת הלשונית Info, גללו אל Localizations. אנגלית כבר מופיעה כשפת הבסיס. לחצו על + כדי להוסיף כל שפת יעד (ספרדית, צרפתית, ערבית וכו').
שלב 2: יצירת קטלוג מחרוזות. לחצו לחיצה ימנית על הפרויקט שלכם ובחרו ב־New File from Template. חפשו String Catalog והוסיפו אותו. שמרו על שם ברירת המחדל Localizable.xcstrings. הריצו build לפרויקט פעם אחת עם Cmd+B. Xcode יסרוק את הקוד שלכם, ימצא כל מחרוזת שניתנת ללוקליזציה, ויאכלס את הקטלוג באופן אוטומטי.
שלב 3: סימון מחרוזות ללוקליזציה. ב־SwiftUI, כל מחרוזת ליטרלית (literal string) שמועברת אל Text(_:), Label, תוויות פעולה של Button, כותרות ניווט וכו', מוגדרת אוטומטית כ־LocalizedStringKey:
import SwiftUI
struct WelcomeView: View {
let userName: String
let unreadCount: Int
var body: some View {
VStack {
Text("Welcome, \(userName)!")
Text("You have \(unreadCount) unread messages")
Button("Get Started") {
// action
}
}
}
}
ישנן שתי תבניות שבהן Xcode אינו יכול לחלץ מחרוזות באופן אוטומטי. שתיהן נכשלות בשקט (fail silently):
טיפ 1: הימנעו מהעברת משתנים אל Text. כאשר אתם מעבירים משתנה לתצוגת Text במקום מחרוזת ליטרלית, SwiftUI מתייחס אליו כמחרוזת רגילה ומדלג לחלוטין על חיפוש בקטלוג:
// NOT localized - SwiftUI treats the variable as a plain String
let title = "welcome_title"
Text(title)
// Localized correctly
Text(LocalizedStringKey(title))
טיפ 2: השתמשו ב־String(localized:) מחוץ לתצוגות. עבור מחרוזות שאתם צריכים לבצע להן לוקליזציה בתוך view model, פונקציית עזר, או בכל מקום מחוץ לתצוגת SwiftUI, השתמשו ב־String(localized:) במקום במחרוזת רגילה:
let errorMessage = String(localized: "error_generic")
שלב 4: הוספת צורות רבים וגרסאות למכשירים. מחרוזות זקוקות לעיתים קרובות לצורות שונות בהתאם להקשר.
עבור צורות רבים, התחילו עם המחרוזת בתצוגת ה־SwiftUI שלכם:
Text("\(bookCount) books on your shelf")
פתחו את קטלוג המחרוזות, לחצו לחיצה ימנית על המפתח ובחרו ב־Vary by Plural. Xcode ייצר את קטגוריות הרבים באופן אוטומטי וימלא אותן מראש במחרוזת המקור. עבור אנגלית תראו One ו־Other. תקנו את השדה One ל־"%lld book on your shelf". סמנו את שניהם כסקורים (reviewed).
כאשר תשלחו מאוחר יותר את הקטלוג אל PTC, מבנה הרבים יעבור יחד עם הקובץ. עבור ערבית, PTC מייצרת תרגומים לכל שש קטגוריות הרבים (zero, one, two, few, many, other) מכיוון שהדקדוק הערבי דורש את כולן. ספרדית זקוקה לשתיים, בדיוק כמו אנגלית.
עבור וריאציות למכשירים (למשל, “Tap to continue” ב־iPhone לעומת “Click to continue” ב־Mac), לחצו לחיצה ימנית על המפתח ובחרו ב־Vary by Device. הוסיפו את המכשירים שברצונכם להתאים אישית והזינו את המחרוזת המתאימה לכל אחד. iOS יציג את הגרסה שתואמת למכשיר הנוכחי בזמן ריצה.
חלק 3: תרגום קובצי ה־.xcstrings שלכם בעזרת PTC
בפרויקטים קטנים תוכלו לפתוח כל עמודת שפה בקטלוג ולהקליד תרגומים ישירות. ככל שהאפליקציה שלכם תגדל, זה יהפוך לבלתי אפשרי לניהול על פני מאות מפתחות ועשרות שפות. PTC מטפלת בהעלאה, בתרגום ובסנכרון.
שלב 1: ייצוא קטלוג המחרוזות שלכם מ־Xcode. עברו אל Product > Export Localizations. Xcode יארוז את קטלוג המחרוזות שלכם לקובץ .xcloc לכל שפת יעד. עבור PTC, תזדקקו רק לקובץ .xcstrings שבתוך החבילה .xcloc. לחצו לחיצה ימנית על קובץ ה־.xcloc שיוצא ב־Finder ובחרו ב־Show Package Contents כדי למצוא את Localizable.xcstrings.
אם אתם רואים התראה בסגנון “Unable to build project for localization string extraction”, הפרויקט שלכם משתמש ב־APIs בלעדיים ל־iOS ש־Xcode אינו יכול לקמפל מול ה־macOS SDK הפנימי שלו במהלך חילוץ מחרוזות. לתיקון: בחרו את יעד הפרויקט תחת TARGETS, עברו אל Build Settings, חפשו את “Use Compiler to Extract Swift Strings”, ושנו את הערך ל־No. לאחר מכן בצעו ייצוא מחדש.
שלב 2: הרשמה ל־PTC. תקופת הניסיון מכסה 20,000 מילים ל־2 שפות, כמות שמספיקה כדי לבצע לוקליזציה לרוב האפליקציות. לאחר תקופת הניסיון, PTC פועלת במודל תשלום לפי שימוש (Pay-As-You-Go). ללא מנוי, 500 המילים הראשונות בכל חודש הן בחינם.
שלב 3: הגדרת הפרויקט שלכם ותרגום. גררו את Localizable.xcstrings אל תוך PTC. השאירו את שם קובץ הפלט כ־Localizable.xcstrings. Xcode מצפה לשם המדויק הזה בעת פענוח מחרוזות שעברו לוקליזציה. בחרו את שפות היעד שלכם.
PTC מייצרת אוטומטית תיאור של האפליקציה שלכם מתוך הקובץ שהועלה. סקרו אותו וערכו במידת הצורך. אם יש לכם קובצי תרגום קיימים, העלו אותם כדי ש־PTC תוכל להתאים את עצמה לסגנון שלכם. אחרת, בצעו תרגום מאפס. הוסיפו מונחים למילון מונחים. PTC מוסיפה את שם האפליקציה שלכם באופן אוטומטי. הוסיפו כל טרמינולוגיה ספציפית למותג שצריכה להיות מתורגמת בדרך מסוימת או לא להיות מתורגמת כלל. לחצו על Start Translation.
שלב 4: סקירה והורדה. לאחר שהתרגום מסתיים, הלשונית Translations (תרגומים) מציגה כל מחרוזת מקור לצד התרגום שלה. כל אדם שתוסיפו לפרויקט יוכל לערוך תרגומים ישירות. אם משהו נראה לא תקין, דווחו על בעיה בתרגום ספציפי ובקשו תרגום מחדש בחינם מבוסס בינה מלאכותית. PTC לומדת מהמשוב ומיישמת אותו על מחרוזות עתידיות באותו פרויקט.
אם מחרוזת מתורגמת כלשהי חורגת ממגבלת האורך שלה, היא תודגש. עומדות בפניכם שלוש אפשרויות. לאשר את התרגום הארוך יותר אם ממשק המשתמש שלכם יכול להכיל אותו. לבקש תרגום מחדש שמתאים למגבלה הנוכחית. להתאים את המגבלה תחת הגדרות > אורכי תרגום.
חלק 4: שילוב קובצי .xcstrings מתורגמים בפרויקט ה־Xcode שלכם
עומדות בפניכם שלוש אפשרויות.
אפשרות 1: הורדה ידנית של קבצים מ־PTC. עברו אל הלשונית Resource Files (קובצי משאבים) והורידו את קובץ ה־ZIP. הוא מכיל קובץ Localizable.xcstrings יחיד עם מחרוזות המקור שלכם באנגלית וכל התרגומים. סגרו את Xcode, החליפו את קובץ ה־Localizable.xcstrings הקיים בתיקיית הפרויקט שלכם בזה שהורדתם מ־PTC, ולאחר מכן הפעילו מחדש את Xcode. התרגומים שלכם יופיעו בקטלוג המחרוזות עם סימן וי לצד כל שפה שתורגמה במלואה.
אפשרות 2: אינטגרציית Git. אם הפרויקט שלכם מאוחסן ב־GitHub, ב־GitLab או ב־Bitbucket, חברו את PTC ישירות. אינטגרציית Git היא תכונת Pro. הפעילו את מסלול תשלום לפי שימוש (Pay-As-You-Go) כדי לגשת אליה. בלוח הבקרה שלכם ב־PTC, עברו אל הגדרות > Merge Requests ולחצו על Add Git Integration (חיבור מאגר). ספקו את כתובת ה־URL של המאגר שלכם, העניקו ל־PTC הרשאת גישה, ובחרו את הענף ואת קובצי המקור שלכם. PTC תשלח merge request עם התרגומים.
אפשרות 3: שימוש ב־API. ה־API של PTC מעניק לכם שליטה מלאה על מתי וכיצד התרגומים נמשכים אל תוך צינור ה־build שלכם. כשהמסלול תשלום לפי שימוש (Pay-As-You-Go) מופעל, עברו אל הגדרות > ניהול אסימוני API, לחצו על Add access token, ולאחר מכן עיינו בתיעוד ה־API של PTC עבור נקודות הקצה (endpoints).
בורר שפה בתוך האפליקציה (חלק מהאפליקציות זקוקות לכך) יכול לדרוס את הגדרת האזור (locale) של המערכת ברמת התצוגה, דרך סביבת ה־SwiftUI:
import SwiftUI
@MainActor
class LocaleManager: ObservableObject {
@Published var currentLocale: Locale = .current
func setLocale(_ identifier: String) {
currentLocale = Locale(identifier: identifier)
UserDefaults.standard.set([identifier], forKey: "AppleLanguages")
}
}
struct LanguageSettingsView: View {
@EnvironmentObject var localeManager: LocaleManager
var body: some View {
List {
Button("English") { localeManager.setLocale("en") }
Button("Español") { localeManager.setLocale("es") }
Button("Français") { localeManager.setLocale("fr") }
}
.environment(\.locale, localeManager.currentLocale)
}
}
שינוי של AppleLanguages בזמן ריצה דורש הפעלה מחדש של האפליקציה עבור חלק ממחרוזות המערכת. דריסת סביבת ה־SwiftUI נכנסת לתוקף באופן מיידי עבור תצוגות שנמצאות בטווח (scope) הזה.
חלק 5: בדיקת אפליקציית ה־iOS שלכם שעברה לוקליזציה
בדיקה עם הגדרת השפה של ה־scheme. הדרך המהירה ביותר לבדוק שפה ספציפית היא דרך ה־scheme שלכם ב־Xcode. עברו אל Product > Scheme > Edit Scheme, לחצו על הלשונית Options, שנו את App Language ואת App Region לאזור הרצוי, והריצו עם Cmd+R. זה עובד היטב עבור רוב השפות. אתם אמורים לראות את אותה פריסה ועיצוב כמו באנגלית, כשכל הטקסט מוחלף.
בדיקת ערבית ושפות מימין לשמאל (RTL) אחרות. הגדרת השפה של ה־scheme עלולה להיות בלתי אמינה ב־Simulator עבור RTL. השתמשו בהגדרות השפה של ה־Simulator עצמו:
- הריצו את האפליקציה עם Cmd+R כדי לפתוח את ה־Simulator.
- לחצו על Cmd+Home כדי לעבור למסך הבית.
- פתחו את Settings > General > Language & Region.
- הקישו על Add Language, בחרו בערבית (Arabic), והגדירו אותה כשפה הראשית.
- ה־Simulator יופעל מחדש. פתחו את האפליקציה שלכם ממסך הבית.
בדקו שהטקסט מופיע בערבית ושהפריסה משתקפת (mirrors) כראוי, כך שכותרת הניווט והתוכן מיושרים לימין. לבדיקה מקדימה מבלי להתחייב לשפה, האפשרות Edit Scheme > Options > Application Language > Right-to-Left Pseudolanguage מהווה בדיקה מהירה יותר. לבדיקת התרחבות טקסט (text-expansion), השתמשו ב־Double-Length Pseudolanguage כדי לראות כיצד הפריסות מתמודדות עם מחרוזות ארוכות יותר ב־30% עד 40% לפני שאתם מתחייבים לשפת יעד.
שיטות עבודה מומלצות ללוקליזציה ב־iOS
- בדקו את ממשק המשתמש שלכם לאורכי טקסט משתנים. גרמנית ארוכה בכ־30% מאנגלית. צרפתית וספרדית בכ־20%. השתמשו במערכת הפריסה הגמישה של SwiftUI, אפשרו לתוויות (labels) לגדול ולגלוש באופן טבעי, הימנעו מאילוצי רוחב קבוע על רכיבי טקסט, ובדקו במספר שפות שונות במהלך הפיתוח.
- אל תדלגו על וריאציות של צורות רבים. ברוסית יש שלוש קטגוריות רבים, בערבית יש שש, ביפנית אין בכלל. קטלוגי מחרוזות מעבדים זאת כשאתם מוסיפים את השפה. ודאו שכל השדות שנוצרו מלאים לפני השחרור.
- בצעו לוקליזציה לתמונות ולמשאבים. תמונות עם טקסט או אלמנטים חזותיים ספציפיים לתרבות זקוקות לווריאציות שעברו לוקליזציה. ב־
Assets.xcassets, בחרו את התמונה וב־Attributes Inspector לחצו על Localize. בחרו את השפות שעבורן תרצו וריאציות והחליפו כל אחת בגרסה המתאימה. iOS מציג את התמונה הנכונה בהתבסס על האזור (locale) של המשתמש. - שמרו על שפת הבסיס שלכם שלמה. שפת הבסיס שלכם (בדרך כלל אנגלית) היא החלופה (fallback) לכל תרגום חסר. בסיס חסר עלול לגרום לחלופות בלתי צפויות אפילו בשפות שתורגמו במלואן. Xcode מסמן מחרוזות בסיס חסרות או לא מעודכנות (stale) במהלך ה־build.
- בצעו לוקליזציה לדף האפליקציה בחנות. אפליקציה שעברה לוקליזציה עם דף אפליקציה בחנות (listing) באנגלית בלבד מאבדת משתמשים בשלב הגילוי. ב־App Store Connect תוכלו לבצע לוקליזציה לשם האפליקציה, לכותרת המשנה, לתיאור ולמילות המפתח לכל טריטוריה. מילות מפתח הן בעלות ערך רב במיוחד. Apple מאנדקסת מילות מפתח ממספר אזורים לכל טריטוריה, מה שמכפיל למעשה את תקציב התווים של מילות המפתח שלכם מעבר ל־100 התווים הסטנדרטיים. השתמשו בתכונת Paste to Translate (טקסט חופשי) של PTC עבור תוכן ה־App Store.
- השתמשו ברכיבי עיצוב מודעי אזור. רכיבי עיצוב מודעי
Date.FormatStyle,Decimal.FormatStyle, ו־Locale. לעולם אל תכתבו hardcode ל־"$"או ל־"MM/DD/YYYY". - השתמשו ב־
%lldעבור ספירת מספרים שלמים וב־String(localized: "You have ^[\(count) message](inflect: true)")היכן שחלה ההתאמה הדקדוקית האוטומטית של Apple.
סקירה חזותית של התרגום של אפליקציית ה־iOS שלכם - לשחרר ללא סבב QA ידני לכל שפה
לאחר ש־PTC מתרגמת את קובץ ה־.xcstrings שלכם, עדיין עליכם לאמת את האפליקציה הרצה בכל שפה. באופן מסורתי, מדובר בסבב QA ידני של מספר ימים לכל שחרור גרסה. תווית מתורגמת עלולה לגרום להצפה של סרגל ניווט בגרמנית. המילה “Send” עשויה להיות מתורגמת כשם עצם בצרפתית, כאשר הכפתור דרש פועל. מחרוזת אנגלית hardcoded מחוץ ל־Text(_:) תישאר בולטת ובלתי מתורגמת באפליקציית ה־iOS הרצה.
ה־AI Visual QA של PTC מחליף את הסבב הזה. עבור אפליקציות iOS נייטיב (תהליך ה־extension של הדפדפן אינו רלוונטי כאן), השתמשו בהעלאת צילומי מסך. צלמו את המסכים הקריטיים של האפליקציה הרצה בכל שפת יעד (התחברות, הלשונית הראשית, הגדרות, מקרי קצה) והעלו אותם ל־PTC. בינת הראייה המלאכותית של PTC בוחנת כל מסך:
- מתקנת בעיות ב־
.xcstringsכאשר PTC שולטת בהן. מתרגמת מחדש חלק דיבר שגוי, בוחרת מילה נרדפת קצרה יותר שמתאימה לסרגל הניווט, ומייצרת מחדש צורת רבים עם התאמה דקדוקית נכונה. - מייצרת פרומפט ל־Cursor / Claude Code כאשר הבעיה נמצאת בקוד ה־Swift שלכם.
LocalizedStringKeyחסר,Stringשהוא hardcoded מחוץ למערכת הלוקליזציה, או משפט שנבנה על ידי שרשור במקום החלפה.
התוצר: אפליקציית iOS מאומתת בכל שחרור גרסה. לא קובץ .xcstrings מתורגם כשעדיין ממתין לכם סבב QA ידני.
תרגום דף האפליקציה בחנות, הערות הגרסה והודעות ה־Push שלכם
תיאור ה־App Store שלכם, הערות הגרסה (מה חדש), וטקסט הודעות ה־Push נמצאים מחוץ ל־Localizable.xcstrings. ה־Paste to Translate (טקסט חופשי) של PTC מעבד את הטקסט השיווקי הזה באותו פרויקט. הדביקו את טקסט המקור בלוח הבקרה של PTC, בחרו שפות יעד, וקבלו חזרה תרגומים שמשתמשים באותו מילון מונחים ובאותו טון המותג כמו מחרוזות הממשק שלכם. Apple מאנדקסת מילות מפתח ממספר אזורים לכל טריטוריה, ולכן דפי אפליקציה בחנות שעברו לוקליזציה הם בעלי ערך רב במיוחד לגילוי האפליקציה.
תרגום תוכן משתמשים בתוך האפליקציה בעזרת ה־API של PTC
צ'אט בתוך האפליקציה, פוסטים חברתיים וביקורות משתמשים דורשים תרגום עם הגעת התוכן. ה־REST API של PTC מתרגם את התוכן הזה לפי דרישה עם אימות טוקן Bearer, תוך שימוש באותו מילון מונחים ובאותו טון המותג כמו התרגומים שלכם ב־.xcstrings.
תיקון לוקליזציה ב־iOS שאינה עובדת
הסיבה הנפוצה ביותר היא שקובץ הלוקליזציה אינו כלול ביעד (target) האפליקציה. לחצו על Localizable.xcstrings ב־Navigator, פתחו את ה־File Inspector, ובדקו שיעד האפליקציה שלכם מסומן תחת Target Membership. אשרו גם שהשפה מופיעה בסעיף ה־Localizations של הפרויקט שלכם תחת הלשונית Info. אם שניהם נראים תקינים, נקו את תיקיית ה־build בעזרת Shift+Cmd+K והריצו build מחדש.
פורמטים של קובצי לוקליזציה ב־iOS: .xcstrings, .strings, .stringsdict, .xliff
.xcstrings (קטלוג מחרוזות) הוא ברירת המחדל הנוכחית מאז Xcode 15. קובץ יחיד מבוסס JSON המאגד את כל המחרוזות, כללי צורות הרבים והווריאציות הספציפיות למכשיר. .strings הוא פורמט מפתח-ערך ישן, שעדיין תקף בבסיסי קוד ישנים יותר, ומשולב עם .stringsdict עבור צורות רבים. .xliff ו־.xcloc הם פורמטים של ייצוא להעברה (handing off) למתרגמים. הם אינם פורמטים לאחסון.
לוקליזציה לשם האפליקציה שלכם עם InfoPlist.strings
צרו קובץ InfoPlist.strings ובצעו לו לוקליזציה עבור כל שפה נתמכת. בכל גרסת שפה, הוסיפו את CFBundleDisplayName = "Your Translated App Name";. בחרו את הקובץ ב־Navigator, פתחו את ה־File Inspector, ולחצו על Localize כדי להוסיף וריאציות שפה. iOS יציג את שם האפליקציה הנכון בהתבסס על שפת המכשיר.
שינוי שפת אפליקציית ה־iOS ללא הפעלה מחדש
iOS אינה מספקת API נייטיב עבור פעולה זו. הגישה הסטנדרטית היא להגדיר את AppleLanguages בתוך UserDefaults ולבקש מהמשתמש להפעיל מחדש:
UserDefaults.standard.set(["es"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
השינוי נכנס לתוקף בפעם הבאה שהאפליקציה מופעלת. אם אתם זקוקים להחלפה בתוך הפעלה קיימת (in-session) ללא הפעלה מחדש, עליכם לנהל את הלוקליזציה באופן ידני על ידי טעינת ה־bundle המתאים לשפה שנבחרה.
מדוע iOS עוברת לאנגלית כחלופה עבור שפות שאינן נתמכות
iOS משתמשת בשפת הבסיס שלכם כחלופה (fallback) כאשר תרגום אינו זמין. זוהי התנהגות צפויה. כדי למזער שימוש בחלופות, ודאו שקטלוג המחרוזות שלכם אינו מציג מחרוזות חסרות או לא מעודכנות (stale) לפני כל שחרור גרסה.
עד כמה מדויקת לוקליזציה מבוססת בינה מלאכותית עבור אפליקציית iOS שלמה
PTC משתמשת בבינה מלאכותית כדי לתרגם קובצי .xcstrings, .strings, ו־.stringsdict בתוך דקות, תוך שמירה אוטומטית על כללי צורות הרבים ומצייני המיקום. רוב המחרוזות המתורגמות עולות לאוויר ללא עריכות. לקבלת התוצאות הטובות ביותר, ספרו ל־PTC על האפליקציה שלכם במהלך ההגדרה כדי שהתרגומים ישקפו את הטון והטרמינולוגיה הנכונים.
לאילו שפות ב־iOS כדאי לבצע לוקליזציה קודם
ספרדית, צרפתית, גרמנית, יפנית וסינית מפושטת הן נקודות פתיחה נפוצות מעבר לאנגלית. אם לאפליקציה שלכם יש כבר משתמשים באזור מסוים, תנו עדיפות לשפה שלהם תחילה. לעלות ההתאמה הנמוכה ביותר, התחילו עם שפות שקרובות גיאוגרפית או תרבותית לשוק הבסיס שלכם.
בצעו לוקליזציה לאפליקציית ה־iOS שלכם
התחילו את תקופת הניסיון של 30 יום ב־PTC - 20,000 מילים על חשבוננו, ללא כרטיס אשראי. העלו את קובץ ה־Localizable.xcstrings שלכם, תרגמו אותו בתוך דקות, ולאחר מכן העלו צילומי מסך ותנו ל־PTC לאמת את האפליקציה המרונדרת.
מאמרים קשורים:
- תרגום אפליקציות iOS ו־Android מבוסס בינה מלאכותית - סקירה כללית של השירות חוצה הפלטפורמות.
- כיצד לבצע לוקליזציה לאפליקציית ה־Android שלכם - המדריך המקביל עבור Android Studio.
- תיעוד ה־API של PTC - נקודות קצה (endpoints) של REST לאינטגרציית CI.