Localiza el mapa

Para personalizar la configuración de idioma y región que se usa en tu mapa, cambia el entorno de configuración regional en tu Map, lo que puede afectar las etiquetas y el comportamiento del mapa según el idioma y el país o territorio especificados.

Consulta la cobertura del SDK de Maps 3D para iOS en la tabla de cobertura de Maps.

Localización de idiomas

De forma predeterminada, el SDK de Maps 3D para iOS usa la configuración regional del sistema configurada en el dispositivo del usuario (Locale.current) para determinar qué traducción del mapa mostrar. Puedes anular este comportamiento predeterminado aplicando el modificador de SwiftUI .environment(\.locale, ...) a tu vista Map o actualizar la variable de estado Locale vinculada de forma dinámica en el tiempo de ejecución.

Configurar el idioma afecta la traducción de las funciones políticas, los descriptores y las funciones naturales, como cambiar "Geneva" a "Genève" o "lake" a "lac", y cambia la dirección en la que se renderiza el texto para las secuencias de comandos de derecha a izquierda.

El SDK de Maps 3D para iOS busca las preferencias de localización en el siguiente orden:

  1. Entorno de SwiftUI: El valor Locale que se pasa a .environment(\.locale, ...) en Map.
  2. Configuración del dispositivo: La configuración regional predeterminada del sistema configurada en el dispositivo iOS.

En el siguiente ejemplo, se muestra un Map en chino ("zh") y se establece la región en China ("CN"):

import GoogleMaps3D
import SwiftUI

struct ContentView: View {
  var body: some View {
    Map(mode: .hybrid)
      .environment(\.locale, Locale(identifier: "zh-CN"))
  }
}

También puedes actualizar el idioma y la región de forma dinámica en el tiempo de ejecución vinculando la configuración regional del entorno a una propiedad @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")
        }
      }
    }
  }
}

Localización regional

Configurar la región en el Locale que se pasa a .environment(\.locale, ...) en Map puede proporcionar diferentes mosaicos de mapas o sesgar la app hacia resultados adecuados para la región. Configurar la región también ayuda a garantizar que tu app aplique la localización regional para el país o territorio en el que se distribuye.

Para mantener el idioma del dispositivo del usuario mientras configuras un código de región específico (por ejemplo, "JP"), crea un Locale con Locale.Components:

var components = Locale.Components(locale: Locale.current)
components.region = Locale.Region("JP")
let regionBiasedLocale = Locale(components: components)