Carto Mobile SDK中的地图本地化

时间:2017-09-05 08:15:02

标签: ios xamarin xamarin.ios cartodb carto-mobile

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

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

以防它有用并可以提供帮助:我正在使用Xamarin.iOS平台。 Carto Mobile SDK版本 - 4.0.2。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

CartoVectorTileLayer(CartoOnlineVectorTileLayer和CartoOfflineVectorTileLayer都是它的子类)有方法 setLanguage(String),所以例如:

layer.setLanguage("en");

会给你英文语言地图。

在SDK 4.0.2 SDK和 nutiteq.osm 磁贴源中,您可以使用以下语言:local / default(在您的情况下会给出Казахстан), en ,< strong> es , de fr it ru zh (中文), tr (土耳其语)和 et (爱沙尼亚语)语言

从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'设为主要后备;只有在缺少主要和英文名称时才使用local。