मैप को स्थानीय भाषा में दिखाना

अपने मैप में इस्तेमाल की जाने वाली भाषा और इलाके की सेटिंग को पसंद के मुताबिक बनाया जा सकता है. इसके लिए, आपको अपने Map पर स्थानीय भाषा का एनवायरमेंट बदलना होगा. इससे, चुनी गई भाषा और देश या इलाके के आधार पर, मैप के लेबल और उसके काम करने के तरीके पर असर पड़ सकता है.

Maps कवरेज टेबल में, iOS के लिए Maps 3D SDK की कवरेज देखें.

लैंग्वेज लोकलाइज़ेशन

iOS के लिए Maps 3D SDK, डिफ़ॉल्ट रूप से उपयोगकर्ता के डिवाइस (Locale.current) पर कॉन्फ़िगर किए गए सिस्टम लोकेल का इस्तेमाल करता है. इससे यह तय होता है कि मैप का कौनसा अनुवाद दिखाना है. SwiftUI .environment(\.locale, ...) मॉडिफ़ायर को अपने Map व्यू पर लागू करके, इस डिफ़ॉल्ट व्यवहार को बदला जा सकता है. इसके अलावा, रनटाइम के दौरान बाउंड Locale स्टेट वैरिएबल को डाइनैमिक तौर पर अपडेट किया जा सकता है.

भाषा सेट करने से, राजनैतिक सुविधाओं, जानकारी देने वाले शब्दों, और प्राकृतिक सुविधाओं के अनुवाद पर असर पड़ता है. जैसे, "Geneva" को "Genève" या "lake" को "lac" में बदलना. साथ ही, इससे दाएं से बाएं लिखी जाने वाली स्क्रिप्ट के लिए, टेक्स्ट रेंडर होने की दिशा बदल जाती है.

iOS के लिए Maps 3D SDK, स्थानीय भाषा की सेटिंग को इस क्रम में ढूंढता है:

  1. SwiftUI environment: Map पर .environment(\.locale, ...) को पास की गई Locale वैल्यू.
  2. डिवाइस की सेटिंग: iOS डिवाइस पर कॉन्फ़िगर की गई सिस्टम की डिफ़ॉल्ट भाषा.

यहां दिए गए उदाहरण में, चाइनीज़ ("zh") में Map को दिखाया गया है. साथ ही, देश/इलाके को चीन ("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")
        }
      }
    }
  }
}

क्षेत्र के हिसाब से स्थानीय भाषा में उपलब्ध कराना

Map पर .environment(\.locale, ...) को पास किए गए Locale पर क्षेत्र सेट करने से, अलग-अलग मैप टाइल दिख सकती हैं या ऐप्लिकेशन को क्षेत्र के हिसाब से सही नतीजों की ओर झुकाया जा सकता है. क्षेत्र सेट करने से यह भी पक्का होता है कि आपका ऐप्लिकेशन, उस देश या इलाके के लिए स्थानीय भाषा के हिसाब से उपलब्ध हो जहां ऐप्लिकेशन को उपलब्ध कराया गया है.

किसी खास देश/इलाके का कोड (उदाहरण के लिए, "JP") सेट करते समय, उपयोगकर्ता के डिवाइस की भाषा को बनाए रखने के लिए, Locale.Components का इस्तेमाल करके Locale बनाएं:

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