Локализация карты в Carto Mobile SDK

Кто-нибудь знает, доступна ли локализация подписей объектов карты с помощью Carto Mobile SDK? И если это возможно, то как я могу его получить?

Например, я хотел бы видеть «Казахстан» вместо «Казахстан», однако надпись над объектами зависит от языка страны, в которой находится объект. Я хочу сделать его локализованным, скажем так, на английский язык. Нажмите на ссылку, чтобы увидеть скриншот.

На всякий случай это полезно и может помочь: я использую платформу Xamarin.iOS. Версия Carto Mobile SDK - 4.0.2.

Заранее спасибо.


person Artem Marakhovskyi    schedule 05.09.2017    source источник


Ответы (1)


CartoVectorTileLayer (и CartoOnlineVectorTileLayer, и CartoOfflineVectorTileLayer являются его подклассами) имеет для него метод setLanguage(String), например:

layer.setLanguage("en");

даст вам карты на английском языке.

В SDK 4.0.2 SDK и исходниках тайлов nutiteq.osm вы можете использовать следующие языки: локальный/по умолчанию (в вашем случае будет Казахстан), en, es , de, fr, it, ru, ж ( китайский), 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 используется только в том случае, если отсутствуют как ваше основное, так и английское имя.

person JaakL    schedule 05.09.2017