Как получить локализованное отображение в UWP?

#c# #uwp #bing-maps #uwp-maps

#c# #uwp #bing-карты #uwp-карты

Вопрос:

Я использую простой метод, который возвращает местоположение на карте для меня, но я хотел бы получить этот адрес только на английском языке.

 public static async Task<MapLocation> ResolveLocationForGeopoint(Geopoint geopoint)
{
    MapLocationFinderResult result = await MapLocationFinder.FindLocationsAtAsync(geopoint);

    if (result.Status == MapLocationFinderStatus.Success)
    {
        if (result.Locations.Count != 0)
            // Check if the result is really valid
            if (result.Locations[0].Address.Town != "")
                return result.Locations[0];
    }
    return null;
}
  

Моя проблема в том, что когда мой язык Windows русский, он возвращает кириллические символы.

Я попытался переопределить язык приложения:

 ApplicationLanguages.PrimaryLanguageOverride = "en";
  

Но, похоже, это не работает…

Как я мог бы получить локализованную строку из этого метода?

Комментарии:

1. Может быть, название города или местоположения написано кириллицей, почему вы хотите его изменить?

2. Потому что я использую карту в Венгрии, и ни в одном названии венгерского города нет кириллических символов. : D Он просто отображает каждое имя на системном языке.

Ответ №1:

MapLocationFinder.Метод FindLocationsAtAsync теперь не предоставляет механизм для указания языка, используемого в возвращаемом адресе. Он всегда автоматически использует язык отображения Windows. И в большинстве случаев улица и город локализованы в соответствии с местной культурой. Например, если вы запрашиваете местоположение во Франции, названия улиц локализуются на французском языке.

В качестве обходного пути мы можем использовать REST-сервисы Bing Maps, которые предоставляют REST API, которые могут указывать параметр Culture. Для FindLocationsAtAsync метода мы можем использовать Поиск местоположения по точке, например, следующим образом:

 http://dev.virtualearth.net/REST/v1/Locations/47.64054,-122.12934?c=en-USamp;key=BingMapsKey
  

Кроме того, вы можете отправить запрос функции на WPDev User Voice, чтобы запросить эту функцию.