Karte lokalisieren

Sie können die Sprach- und Regionseinstellungen in Ihrer Karte anpassen, indem Sie die Gebietsschemaumgebung in Ihrer Map ändern. Dies kann sich auf die Labels und das Verhalten der Karte auswirken, je nach angegebener Sprache und Land oder Gebiet.

Informationen zur Verfügbarkeit des Maps 3D SDK for iOS finden Sie in der Tabelle zur Verfügbarkeit von Google Maps.

Sprachlokalisierung

Standardmäßig verwendet das Maps 3D SDK for iOS das auf dem Gerät des Nutzers konfigurierte Systemgebietsschema (Locale.current), um zu bestimmen, welche Übersetzung der Karte angezeigt werden soll. Sie können dieses Standardverhalten überschreiben, indem Sie den SwiftUI .environment(\.locale, ...) Modifikator auf Ihre Map Ansicht anwenden oder die gebundene Locale Statusvariable zur Laufzeit dynamisch aktualisieren.

Wenn Sie die Sprache festlegen, wirkt sich das auf die Übersetzung von politischen Merkmalen, Beschreibungen und natürlichen Merkmalen aus. So wird beispielsweise „Geneva“ in „Genève“ oder „lake“ in „lac“ geändert. Außerdem ändert sich die Richtung, in der Text für Rechts-nach-links-Schriften gerendert wird.

Das Maps 3D SDK for iOS sucht in der folgenden Reihenfolge nach Lokalisierungseinstellungen:

  1. SwiftUI-Umgebung: Der Locale Wert, der an .environment(\.locale, ...) in Map übergeben wird.
  2. Geräteeinstellungen: Das auf dem iOS-Gerät konfigurierte Standardgebietsschema des Systems.

Im folgenden Beispiel wird eine Map auf Chinesisch ("zh") angezeigt und die Region auf China ("CN") festgelegt:

import GoogleMaps3D
import SwiftUI

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

Sie können die Sprache und Region auch zur Laufzeit dynamisch aktualisieren, indem Sie das Gebietsschema der Umgebung an eine @State-Property binden:

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")
        }
      }
    }
  }
}

Regionslokalisierung

Wenn Sie die Region für das Locale festlegen, das an .environment(\.locale, ...) in Map übergeben wird, können verschiedene Kartenkacheln bereitgestellt oder die App auf regional passende Ergebnisse ausgerichtet werden. Wenn Sie die Region festlegen, wird außerdem sichergestellt, dass Ihre App die regionale Lokalisierung für das Land oder Gebiet anwendet, in dem die App vertrieben wird.

Wenn Sie die Gerätesprache des Nutzers beibehalten und gleichzeitig einen bestimmten Regionscode festlegen möchten (z B. "JP"), erstellen Sie ein Locale mit Locale.Components:

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