تحديد اللغة المناسبة للخريطة

يمكنك تخصيص إعدادات اللغة والمنطقة المستخدَمة في خريطتك من خلال تغيير بيئة الإعدادات المحلية على Map، ما قد يؤثر في التصنيفات وسلوك الخريطة استنادًا إلى اللغة والبلد أو المنطقة المحدّدة.

يمكنك الاطّلاع على التغطية في حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" الثلاثية الأبعاد لأجهزة iOS في الـ جدول تغطية "خرائط Google".

تحديد اللغة

تستخدِم حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" الثلاثية الأبعاد لأجهزة iOS تلقائيًا الإعدادات المحلية للنظام التي تم ضبطها على جهاز المستخدِم (Locale.current) لتحديد الترجمة التي سيتم عرضها للخريطة. يمكنك إلغاء هذا السلوك التلقائي من خلال تطبيق المعدِّل SwiftUI‏ .environment(\.locale, ...) على طريقة العرض Map، أو تعديل متغير حالة Locale المرتبط ديناميكيًا في وقت التشغيل.

يؤثر ضبط اللغة في ترجمة المعالم السياسية والأوصاف والمعالم الطبيعية، مثل تغيير "Geneva" إلى "Genève" أو "lake" إلى "lac"، ويغيّر اتجاه عرض النص للبرامج النصية من اليمين إلى اليسار.

تبحث حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" الثلاثية الأبعاد لأجهزة iOS عن تفضيلات تحديد اللغة بالترتيب التالي:

  1. بيئة SwiftUI: القيمة Locale التي تم تمريرها إلى .environment(\.locale, ...) على Map.
  2. إعدادات الجهاز: الإعداد التلقائي للنظام للموقع الجغرافي الذي تم ضبطه على جهاز iOS.

يعرض المثال التالي a 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)