Пакет геолокации Flutter не указывает местоположение на английском языке - PullRequest
0 голосов
/ 09 июля 2020

Я использую последнюю версию пакета геолокации Flutter, и он дает местоположение и названия стран на английском языке sh для большинства стран, но для некоторых стран, таких как Германия, Испания, Франция и др. c .. он не дает имен на энгли sh вернее родной язык пользователя. Как это изменить?

Position position = await geolocator.getCurrentPosition(
    desiredAccuracy: LocationAccuracy.medium);

List<Placemark> placemark =
    await geolocator.placemarkFromCoordinates(
        position.latitude, position.longitude);
_location = {
  'country': placemark[0].country,
  'postalCode': placemark[0].postalCode,
  'state': placemark[0].administrativeArea,
  'city': placemark[0].subAdministrativeArea,
  'latitude': placemark[0].position.latitude,
  'longitude': placemark[0].position.latitude
};
_city = placemark[0].subAdministrativeArea;

1 Ответ

0 голосов
/ 09 июля 2020

Как placemarkFromAddress, так и placemarkFromCoordinates принимают необязательный параметр localeIdentifier. Этот параметр можно использовать для принудительного форматирования (и перевода) результирующей метки в соответствии с указанным языковым стандартом. LocaleIdentifier должен быть отформатирован с использованием синтаксиса: [languageCode] _ [countryCode]. Используйте стандарт ISO 639-1 или ISO 639-2 для кода языка и двухбуквенный стандарт ISO 3166-1 для кода страны.

Значение:

List<Placemark> placemark =
    await geolocator.placemarkFromCoordinates(
        position.latitude, position.longitude);

Должно быть:

List<Placemark> placemark =
    await geolocator.placemarkFromCoordinates(
        position.latitude, position.longitude, localeIdentifier: localeIdentifierValue);

https://pub.dev/packages/geolocator для получения дополнительной информации о параметрах localeIdentifierValue

...