התאמה לשוק המקומי

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

בטבלת הזמינות של מפות Google מפורטת הזמינות של Maps 3D SDK ל-iOS.

לוקליזציה של שפה

כברירת מחדל, Maps 3D SDK ל-iOS משתמש בהגדרות הלוקאל של המערכת במכשיר של המשתמש (Locale.current) כדי לקבוע באיזו שפה להציג את המפה. כדי לשנות את התנהגות ברירת המחדל, אפשר להחיל את המשתנה SwiftUI .environment(\.locale, ...) על התצוגה Map, או לעדכן את משתנה המצב Locale המקושר באופן דינמי בזמן הריצה.

הגדרת השפה משפיעה על התרגום של מאפיינים פוליטיים, מתארים ומאפיינים טבעיים – למשל, שינוי של "Geneva" ל-"Genève" או של "lake" ל-"lac" – ומשנה את כיוון הטקסט שמוצג בכתב מימין לשמאל.

‫Maps 3D SDK ל-iOS מחפש העדפות לוקליזציה בסדר הבא:

  1. סביבת SwiftUI: הערך של Locale שמועבר אל .environment(\.locale, ...) ב-Map.
  2. הגדרות המכשיר: שילוב השפה והאזור שמוגדר כברירת המחדל של המערכת במכשיר iOS.

בדוגמה הבאה מוצג Map בסינית ("zh") והאזור מוגדר לסין ("CN"):

import GoogleMaps3D
import SwiftUI

struct ContentView: View {
  var body: some View {
    Map(mode: .hybrid)
      .environment(\.locale, Locale(identifier: "zh-CN"))
  }
}

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

import GoogleMaps3D
import SwiftUI

struct LocalizationExampleView: View {
  @State private var mapLocale: Locale = .current

  var body: some View {
    VStack {
      Map(mode: .hybrid)
        .environment(\.locale, mapLocale)

      HStack {
        Button("Français") {
          mapLocale = Locale(identifier: "fr-FR")
        }
        Button("日本語") {
          mapLocale = Locale(identifier: "ja-JP")
        }
        Button("中文") {
          mapLocale = Locale(identifier: "zh-CN")
        }
      }
    }
  }
}

לוקליזציה של אזור

הגדרת האזור ב-Locale שמועבר אל .environment(\.locale, ...) ב-Map יכולה להציג משבצות מפה שונות או להטות את האפליקציה לתוצאות שמתאימות לאזור. הגדרת האזור גם עוזרת לוודא שהאפליקציה תתאים ללוקליזציה האזורית של המדינה או הטריטוריה שבהן היא מופצת.

כדי להשאיר את שפת המכשיר של המשתמש ולהגדיר קוד אזור ספציפי (לדוגמה, "JP"), צריך ליצור Locale באמצעות Locale.Components:

var components = Locale.Components(locale: Locale.current)
components.region = Locale.Region("JP")
let regionBiasedLocale = Locale(components: components)