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:
- SwiftUI-Umgebung: Der
LocaleWert, der an.environment(\.locale, ...)inMapübergeben wird. - 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)