Bạn có thể tuỳ chỉnh chế độ cài đặt ngôn ngữ và khu vực được dùng trong bản đồ bằng cách thay đổi môi trường ngôn ngữ trên Map. Việc này có thể ảnh hưởng đến nhãn và hành vi của bản đồ dựa trên ngôn ngữ và quốc gia hoặc lãnh thổ được chỉ định.
Xem phạm vi cung cấp của SDK Maps 3D dành cho iOS trong bảng phạm vi cung cấp của Maps.
Bản địa hoá ngôn ngữ
Theo mặc định, SDK Maps 3D dành cho iOS sử dụng ngôn ngữ hệ thống được định cấu hình trên thiết bị của người dùng (Locale.current) để xác định bản dịch nào của bản đồ sẽ hiển thị. Bạn có thể ghi đè hành vi mặc định này bằng cách áp dụng đối tượng sửa đổi SwiftUI
.environment(\.locale, ...) cho khung hiển thị
Map hoặc
cập nhật biến trạng thái Locale liên kết một cách linh động trong thời gian chạy.
Việc đặt ngôn ngữ sẽ ảnh hưởng đến bản dịch của các đối tượng chính trị, nội dung mô tả và đối tượng tự nhiên (chẳng hạn như thay đổi "Geneva" thành "Genève" hoặc "lake" thành "lac") và thay đổi hướng hiển thị văn bản cho các chữ viết từ phải sang trái.
SDK Maps 3D dành cho iOS tìm các lựa chọn ưu tiên về bản địa hoá theo thứ tự sau:
- Môi trường SwiftUI: Giá trị
Localeđược truyền đến.environment(\.locale, ...)trênMap. - Cài đặt thiết bị: Ngôn ngữ theo giá trị mặc định của hệ thống được định cấu hình trên thiết bị iOS.
Ví dụ sau đây cho thấy một Map bằng tiếng Trung ("zh") và đặt khu vực thành Trung Quốc ("CN"):
import GoogleMaps3D
import SwiftUI
struct ContentView: View {
var body: some View {
Map(mode: .hybrid)
.environment(\.locale, Locale(identifier: "zh-CN"))
}
}
Bạn cũng có thể cập nhật ngôn ngữ và khu vực một cách linh động trong thời gian chạy bằng cách liên kết ngôn ngữ môi trường với thuộc tính @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")
}
}
}
}
}
Bản địa hoá theo khu vực
Việc đặt khu vực trên Locale được truyền đến .environment(\.locale, ...) trên Map có thể phân phát các ô bản đồ khác nhau hoặc thiên về kết quả phù hợp với khu vực.
Việc đặt khu vực cũng giúp đảm bảo rằng ứng dụng của bạn áp dụng bản địa hoá theo khu vực cho quốc gia hoặc lãnh thổ nơi ứng dụng được phân phối.
Để giữ ngôn ngữ thiết bị của người dùng trong khi đặt một mã khu vực cụ thể (ví dụ: "JP"), hãy tạo một Locale bằng Locale.Components:
var components = Locale.Components(locale: Locale.current)
components.region = Locale.Region("JP")
let regionBiasedLocale = Locale(components: components)