切换MKMapView显示语言

是否有可能将MKMapView的基础语言切换到不同的系统区域设置?

例如,如果地址显示翻译的街道名称(英文),但我需要看本地语言翻译(例如在中国大陆或日本)。

一个替代scheme是包括一个本地地图引擎(如百度),但我希望看看iOS是否可以做到这一点。

地图将以所显示国家的语言显示,通常以英语(或者您的本地语言)作为第二语言。 例如,打开手机上的地图应用程序,然后input迪拜或埃及开罗,您将看到城市和街道的阿拉伯文字。

其他语言也是如此。 input中国的上海,你会得到中文文本,东京,日本,你会得到日文文本等。

目前还没有开放的框架function来手动改变input的语言。 我知道openstreetmap API有一些调用这个,但是这将需要滚动你自己的地图处理程序。

使用googlesdk这个。 我这样做,它根据本地位置太有用,地图将转换成本地语言,如果你担心注释和多个注释,你可以实现所有这些东西就像MKMapview

通过强制应用默认语言,可以克服这个限制。 虽然昂贵,它确实还清。

 let langCultureCode: String = "en" let defaults = UserDefaults.standard defaults.set([langCultureCode], forKey: "AppleLanguages") defaults.synchronize() 

在我的应用程序中,使用阿拉伯语设备的用户错误地从我的数据库中search出他们的阿拉伯国家和城市名称。

regionDidChangeAnimated?

  // الرياض, السعودية // دبي ، الإمارات // القاهرة، مصر 

强行忽略设备的默认语言并不是自由的。 恢复我的Mapviewfunction,使我的应用程序放弃任何本地化的string。 而且有很多。

在这里输入图像说明

regionDidChangeAnimated?

 // Riyadh, Saudi Arabia // Dubai , United Arab Emirates // Cairo , Egypt 
  • 奇怪的事情mapView忽略我的应用程序的默认语言设置,并用用户默认语言呈现标签。 这恰好是一个意外的优势