Możesz dostosować ustawienia języka i regionu używane na mapie, zmieniając
ustawienia regionalne w
Map. Może to
wpłynąć na etykiety i działanie mapy w zależności od określonego języka
oraz kraju lub terytorium.
Informacje o zasięgu pakietu Maps 3D SDK na iOS znajdziesz w tabeli zasięgu Map.
Lokalizacja języka
Domyślnie pakiet Maps 3D SDK na iOS używa ustawień regionalnych systemu skonfigurowanych na urządzeniu użytkownika (Locale.current), aby określić, którą wersję językową mapy wyświetlić. Możesz zastąpić to działanie domyślne, stosując modyfikator SwiftUI
.environment(\.locale, ...) do widoku
Map lub
dynamicznie aktualizować powiązaną zmienną stanu Locale w czasie działania.
Ustawienie języka wpływa na tłumaczenie elementów politycznych, opisów i elementów naturalnych – np. zmiana „Geneva” na „Genève” lub „lake” na „lac” – oraz zmienia kierunek renderowania tekstu w przypadku skryptów pisanych od prawej do lewej.
Pakiet Maps 3D SDK na iOS szuka preferencji lokalizacji w tej kolejności:
- Środowisko SwiftUI: wartość
Localeprzekazana do.environment(\.locale, ...)wMap. - Ustawienia urządzenia: ustawienie domyślne systemu regionalne skonfigurowane na urządzeniu z iOS.
Poniższy przykład wyświetla a
Map w
języku chińskim ("zh") i ustawia region na Chiny ("CN"):
import GoogleMaps3D
import SwiftUI
struct ContentView: View {
var body: some View {
Map(mode: .hybrid)
.environment(\.locale, Locale(identifier: "zh-CN"))
}
}
Możesz też dynamicznie aktualizować język i region w czasie działania, wiążąc ustawienia regionalne środowiska z właściwością @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")
}
}
}
}
}
Lokalizacja regionu
Ustawienie regionu w Locale przekazanym do .environment(\.locale, ...) w
Map może
spowodować wyświetlenie różnych kafelków mapy lub ukierunkować aplikację na wyniki odpowiednie dla danego regionu.
Ustawienie regionu pomaga też zapewnić, że aplikacja stosuje lokalizację regionalną dla kraju lub terytorium, w którym jest rozpowszechniana.
Aby zachować język urządzenia użytkownika podczas ustawiania określonego kodu regionu (np.
"JP"), utwórz Locale za pomocą Locale.Components:
var components = Locale.Components(locale: Locale.current)
components.region = Locale.Region("JP")
let regionBiasedLocale = Locale(components: components)