É possível personalizar as configurações de idioma e região usadas no mapa mudando
o ambiente de localidade no
Map, o que
pode afetar os rótulos e o comportamento do mapa com base no idioma
e no país ou território especificados.
Consulte a cobertura do SDK do Maps 3D para iOS na tabela de cobertura do Maps.
Localização de idioma
Por padrão, o SDK do Maps 3D para iOS usa a localidade do sistema configurada no dispositivo do usuário (Locale.current) para determinar qual tradução do mapa mostrar. É possível substituir esse comportamento padrão aplicando o modificador do SwiftUI
.environment(\.locale, ...) à visualização
Map ou
atualizar a variável de estado Locale vinculada dinamicamente no momento da execução.
A definição do idioma afeta a tradução de recursos políticos, descritores e recursos naturais, como mudar "Geneva" para "Genève" ou "lake" para "lac", e muda a direção em que o texto é renderizado para scripts da direita para a esquerda.
O SDK do Maps 3D para iOS procura preferências de localização na seguinte ordem:
- Ambiente do SwiftUI: o valor
Localetransmitido para.environment(\.locale, ...)emMap. - Configurações do dispositivo: a localidade padrão do sistema configurada no dispositivo iOS.
O exemplo a seguir mostra um
Map em
chinês ("zh") e define a região como China ("CN"):
import GoogleMaps3D
import SwiftUI
struct ContentView: View {
var body: some View {
Map(mode: .hybrid)
.environment(\.locale, Locale(identifier: "zh-CN"))
}
}
Também é possível atualizar o idioma e a região dinamicamente no momento da execução vinculando a localidade do ambiente a uma propriedade @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")
}
}
}
}
}
Localização de regiões
A definição da região no Locale transmitido para .environment(\.locale, ...) em
Map pode
veicular blocos de mapas diferentes ou direcionar o app para resultados regionalmente adequados.
A definição da região também ajuda a garantir que o app aplique a localização regional para o país ou território em que ele é distribuído.
Para manter o idioma do dispositivo do usuário ao definir um código de região específico (por
exemplo, "JP"), crie um Locale usando Locale.Components:
var components = Locale.Components(locale: Locale.current)
components.region = Locale.Region("JP")
let regionBiasedLocale = Locale(components: components)