คุณสามารถปรับแต่งการตั้งค่าภาษาและภูมิภาคที่ใช้ในแผนที่ได้โดยการเปลี่ยน
สภาพแวดล้อมภาษาใน
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 จะมองหาค่ากำหนดการแปลภาษาตามลำดับต่อไปนี้
- สภาพแวดล้อม SwiftUI: ค่า
Localeที่ส่งไปยัง.environment(\.locale, ...)ในMap - การตั้งค่าอุปกรณ์: ภาษาเริ่มต้นของระบบที่กำหนดค่าไว้ในอุปกรณ์ 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)