แปลแผนที่เป็นภาษาท้องถิ่น

คุณสามารถปรับแต่งการตั้งค่าภาษาและภูมิภาคที่ใช้ในแผนที่ได้โดยการเปลี่ยน สภาพแวดล้อมภาษาใน Map ซึ่ง อาจส่งผลต่อป้ายกำกับและลักษณะการทำงานของแผนที่ตามภาษาที่ระบุ และประเทศหรือเขตแดน

ดูความครอบคลุมของ Maps 3D SDK สำหรับ iOS ใน ตารางความครอบคลุมของ Maps

การแปลภาษา

โดยค่าเริ่มต้น Maps 3D SDK สำหรับ iOS จะใช้ภาษาของระบบที่กำหนดค่าไว้ในอุปกรณ์ของผู้ใช้ (Locale.current) เพื่อกำหนดการแปลแผนที่ที่จะแสดง คุณสามารถลบล้างลักษณะการทำงานเริ่มต้นนี้ได้โดยใช้ตัวแก้ไข SwiftUI .environment(\.locale, ...) กับมุมมอง Map หรือ อัปเดตตัวแปรสถานะ Locale ที่ผูกไว้แบบไดนามิกในรันไทม์

การตั้งค่าภาษาจะส่งผลต่อการแปลฟีเจอร์ทางการเมือง คำอธิบาย และฟีเจอร์ทางธรรมชาติ เช่น เปลี่ยน "Geneva" เป็น "Genève" หรือ "lake" เป็น "lac" และเปลี่ยนทิศทางที่แสดงข้อความสำหรับสคริปต์ที่เขียนจากขวาไปซ้าย

Maps 3D SDK สำหรับ iOS จะมองหาค่ากำหนดการแปลภาษาตามลำดับต่อไปนี้

  1. สภาพแวดล้อม SwiftUI: ค่า Locale ที่ส่งไปยัง .environment(\.locale, ...) ใน Map
  2. การตั้งค่าอุปกรณ์: ภาษาเริ่มต้นของระบบที่กำหนดค่าไว้ในอุปกรณ์ iOS

ตัวอย่างต่อไปนี้แสดง Map เป็น ภาษาจีน ("zh") และตั้งค่าภูมิภาคเป็นจีน ("CN")

import GoogleMaps3D
import SwiftUI

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

นอกจากนี้ คุณยังอัปเดตภาษาและภูมิภาคแบบไดนามิกในรันไทม์ได้ด้วยการผูกภาษาของสภาพแวดล้อมกับพร็อพเพอร์ตี้ @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")
        }
      }
    }
  }
}

การแปลภูมิภาค

การตั้งค่าภูมิภาคใน Locale ที่ส่งไปยัง .environment(\.locale, ...) บน Map สามารถ แสดงไทล์แผนที่ที่แตกต่างกันหรือกำหนดให้แอปแสดงผลลัพธ์ที่เหมาะสมกับภูมิภาค การตั้งค่าภูมิภาคยังช่วยให้มั่นใจว่าแอปจะใช้การแปลภาษาสำหรับประเทศหรือเขตแดนที่จัดจำหน่ายแอป

หากต้องการใช้ภาษาของอุปกรณ์ของผู้ใช้ขณะตั้งค่ารหัสภูมิภาคที่เฉพาะเจาะจง (เช่น "JP") ให้สร้าง Locale โดยใช้ Locale.Components ดังนี้

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