Vous pouvez personnaliser les paramètres de langue et de région utilisés dans votre carte en modifiant
l’environnement régional sur votre
Map, ce qui
peut avoir une incidence sur les libellés et le comportement de la carte en fonction de la langue
et du pays ou territoire spécifiés.
Consultez la couverture du SDK Maps 3D pour iOS dans le tableau de couverture Maps.
Localisation linguistique
Par défaut, le SDK Maps 3D pour iOS utilise les paramètres régionaux du système configurés sur l'appareil de l'utilisateur (Locale.current) pour déterminer la traduction de la carte à afficher. Vous pouvez ignorer ce comportement par défaut en appliquant le modificateur SwiftUI
.environment(\.locale, ...) à votre
Map vue ou
en mettant à jour la variable d'état liée Locale de manière dynamique au moment de l'exécution.
La définition de la langue affecte la traduction des caractéristiques politiques, des descripteurs et des caractéristiques naturelles (par exemple, "Geneva" devient "Genève" ou "lake" devient "lac") et modifie le sens de rendu du texte pour les scripts de droite à gauche.
Le SDK Maps 3D pour iOS recherche les préférences de localisation dans l'ordre suivant :
- Environnement SwiftUI : valeur
Localetransmise à.environment(\.locale, ...)surMap. - Paramètres de l'appareil : paramètres régionaux par défaut du système configurés sur l'appareil iOS.
L'exemple suivant affiche un
Map en
chinois ("zh") et définit la région sur la Chine ("CN") :
import GoogleMaps3D
import SwiftUI
struct ContentView: View {
var body: some View {
Map(mode: .hybrid)
.environment(\.locale, Locale(identifier: "zh-CN"))
}
}
Vous pouvez également mettre à jour la langue et la région de manière dynamique au moment de l'exécution en liant les paramètres régionaux de l'environnement à une propriété @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")
}
}
}
}
}
Localisation régionale
La définition de la région sur les Locale transmis à .environment(\.locale, ...) sur
Map peut
diffuser différentes tuiles de carte ou biaiser l'application vers des résultats adaptés à la région.
La définition de la région permet également de s'assurer que votre application applique la localisation régionale pour le pays ou le territoire où elle est distribuée.
Pour conserver la langue de l'appareil de l'utilisateur tout en définissant un code de région spécifique (par
exemple, "JP"), créez un Locale à l'aide de Locale.Components :
var components = Locale.Components(locale: Locale.current)
components.region = Locale.Region("JP")
let regionBiasedLocale = Locale(components: components)