Map cihazınızdaki yerel ortamı değiştirerek haritanızda kullanılan dil ve bölge ayarlarını özelleştirebilirsiniz. Bu işlem, belirtilen dil ve ülke ya da bölgeye göre haritanın etiketlerini ve davranışını etkileyebilir.
iOS için Haritalar 3D SDK'sının kapsamını Haritalar kapsam tablosunda görebilirsiniz.
Dil yerelleştirmesi
iOS için Haritalar 3D SDK'sı, haritanın hangi çevirisinin gösterileceğini belirlemek için varsayılan olarak kullanıcının cihazında yapılandırılan sistem yerel ayarını (Locale.current) kullanır. SwiftUI .environment(\.locale, ...) değiştiricisini Map görünümünüze uygulayarak bu varsayılan davranışı geçersiz kılabilir veya bağlı Locale durum değişkenini çalışma zamanında dinamik olarak güncelleyebilirsiniz.
Dilin ayarlanması, siyasi özelliklerin, tanımlayıcıların ve doğal özelliklerin çevirisini etkiler (ör. "Geneva"yı "Genève" veya "lake"i "lac" olarak değiştirme) ve sağdan sola yazılan diller için metnin oluşturulma yönünü değiştirir.
iOS için Haritalar 3D SDK'sı, yerelleştirme tercihlerini aşağıdaki sırayla arar:
- SwiftUI ortamı:
Mapüzerinde.environment(\.locale, ...)öğesine iletilenLocaledeğeri. - Cihaz ayarları: iOS cihazda yapılandırılan sistem varsayılan yerel ayarı.
Aşağıdaki örnekte, Çince ("zh") dilinde bir Map gösterilmekte ve bölge Çin ("CN") olarak ayarlanmaktadır:
import GoogleMaps3D
import SwiftUI
struct ContentView: View {
var body: some View {
Map(mode: .hybrid)
.environment(\.locale, Locale(identifier: "zh-CN"))
}
}
Ortam yerel ayarını bir @State özelliğine bağlayarak dili ve bölgeyi çalışma zamanında dinamik olarak da güncelleyebilirsiniz:
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")
}
}
}
}
}
Bölge yerelleştirmesi
Map üzerinde .environment(\.locale, ...) öğesine iletilen Locale için bölge ayarlandığında farklı harita karoları sunulabilir veya uygulama, bölgeye uygun sonuçlara yönlendirilebilir.
Bölgeyi ayarlamak, uygulamanızın dağıtıldığı ülke veya idari bölge için bölgesel yerelleştirmenin uygulanmasını da sağlar.
Belirli bir bölge kodu (ör. "JP") ayarlarken kullanıcının cihaz dilini korumak için Locale.Components kullanarak bir Locale oluşturun:
var components = Locale.Components(locale: Locale.current)
components.region = Locale.Region("JP")
let regionBiasedLocale = Locale(components: components)