2017-09-05 33 views
2

有谁知道是否可以使用Carto Mobile SDK本地化地图对象的标题?如果可能的话,我如何获得它?Carto Mobile SDK中的地图本地化

例如,我希望看到“哈萨克斯坦”而不是“Казахстан”,但是对象上方的标题取决于对象所在的国家语言。我想让它本地化,让我说,英语。 Click the link to see screenshot.

以防万一它是有用的,可以帮助:我使用Xamarin.iOS平台。 Carto Mobile SDK版本 - 4.0.2。

预先感谢您。

回答

1

CartoVectorTileLayer(包括CartoOnlineVectorTileLayer和CartoOfflineVectorTileLayer是它的子类)的方法setLanguage(字符串)它,所以例如为:

layer.setLanguage("en"); 

会给你的英语语言地图。

在SDK 4.0.2 SDK和nutiteq.osm瓷砖源,您可以使用下列语言:本地/默认(会给Казахстан你的情况),ENESFRRUZH(中国),TR(土耳其)和(爱沙尼亚)作为语言

从CARTO SDK 4.1.0和新的carto.streets源可以使用任何OSM语言。我建议根据设备语言设置配置地图,例如:

// Android 
layer.setLanguage(Locale.getDefault().getLanguage()); 

// iOs/Xamarin 
layer.Language = Foundation.NSLocale.PreferredLanguages[0].Substring(0, 2); 

如果特定名称在给定语言中不可用,该怎么办?然后默认情况下,MapView将回退到“本地”语言,地图不会为空。但是,如果“本地”语言仍然不可读,那么我更喜欢拉丁字母名称?在SDK 4.1.0中,您可以配置主要和次要备用语言,例如你为德国人设置主要语言为'de',然后为了避免奇怪的字母(例如希伯来语,希腊语,亚洲大部分地区)将'en'设置为主要的回退;那么仅当您的主名和英文名都缺失时才使用本地。