Localiser la carte

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 :

  1. Environnement SwiftUI : valeur Locale transmise à .environment(\.locale, ...) sur Map.
  2. 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)