[Bug]: `Geocoding(locale: ...)` has no effect – locale is not forwarded to `_fromPlatformCreationParams`
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 1/5
- Tempo estimado
- Menos de uma hora
- Facilidade para iniciantes
- 92/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Domínio
- backend-api-design, mobile
Direção de pesquisa
Comece pelo construtor público Geocoding e por sua factory _fromPlatformCreationParams, que o issue identifica como o ponto onde locale é descartado. Verifique como a factory passa locale para a implementação da plataforma; em seguida, encaminhe o argumento do construtor e confirme que uma locale explícita chega até ela. O trabalho está concluído quando a locale alemã informada for usada no lugar da locale do dispositivo.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Please check the following before submitting a new issue.
- I have searched the existing issues.
- I have carefully read the documentation and verified I have added the required platform specific configuration.
Please select affected platform(s)
- Android
- iOS
Steps to reproduce
- Set the device language to something other than German (e.g. English).
- Create a
Geocodinginstance with an explicit locale:Geocoding(locale: const Locale('de', 'DE')). - Call
placemarkFromCoordinatesfor a location in Germany (e.g.52.5163, 13.3777, Brandenburger Tor, Berlin). - Inspect the returned
Placemark, e.g.placemark.country.
Expected results
The placemarks are returned in the locale passed to the constructor (de_DE), e.g. country == 'Deutschland'.
Actual results
The locale passed to the constructor is ignored. The placemarks come back in the device locale, e.g. country == 'Germany'.
The cause is in the public Geocoding constructor: it accepts locale, but does not forward it to the private factory Geocoding._fromPlatformCreationParams, so the value never reaches the platform implementation.
Proposed fix – forward the parameter:
Geocoding({Locale? locale})
: this._fromPlatformCreationParams(
pi.GeocodingCreationParams(),
locale: locale,
);
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: _reverseGeocode,
child: Text('Reverse geocode'),
),
),
),
);
}
}
Future<void> _reverseGeocode() async {
final geocoding = Geocoding(locale: const Locale('de', 'DE'));
final placemarks = await geocoding.placemarkFromCoordinates(52.5163, 13.3777);
// Device language set to English:
// Expected: "Deutschland"
// Actual: "Germany"
debugPrint(placemarks.first.country);
}
Screenshots or video
Version
5.0.0
Flutter Doctor output
Doctor output
(Irrelevant)
- Linguagem predominante
- Dart
- Estrelas
- 153
- Forks
- 92
- Merge médio
- 7d 21h
- PRs com merge (30d)
- 3
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Baseflow/flutter-geocoding
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 84/100
Baseflow/flutter-geocoding#311 · 2 comentários ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Baseflow/flutter-geocoding#309 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 49/100
Baseflow/flutter-geocoding#327 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
Baseflow/flutter-geocoding#287 · 1 comentário ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
Baseflow/flutter-geocoding#286 · 2 comentários ·
Todas as issues de Baseflow/flutter-geocoding
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Tencent/tdesign-flutter#1229 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
berkmancenter/frankly#732 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
rodydavis/signals.dart#510 ·
-
enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
pentakoron1/brazier#33 ·
Mantenedores costumam responder em até 1 dia
-
bug good first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
LonelyGriffin/noetec#51 ·