Как поменять язык выбора даты в флаттере - PullRequest
1 голос
/ 30 апреля 2020

Я хотел бы изменить язык с engli sh на французский в окне выбора даты шоу. Пожалуйста, найдите ниже код, который я использую, и такой, который должен решить эту проблему, но из-за этого код не работает для этой части:

              new Step(
              title: new Text("Quelle est la date de 1er immatriculation?"),
              content: Column(
                children: <Widget>[
                 Text(_datetime == null ? "Vous n'avez pas encore choisi de date" : _datetime.toString().substring(0, 10)),

                  RaisedButton(
                      child: Text('choisissez une date'),
                    onPressed: () {
                    showDatePicker(context: context,
                      locale : const Locale("fr","FR"),//this line making the code not working too
                      builder: (BuildContext context, Widget child) {
                        return Theme(
                          data: ThemeData.fallback(),
                          child: child,
                        );
                      },
                     // locale: const Locale('eu', 'FR'),
                      initialDate: DateTime.now(),
                        firstDate: DateTime(1920),
                          lastDate: DateTime(2100),
                      ).then((date) {
                      setState(() {
                        _datetime =  date;
                      });
                      });
                    }
                 ),
                ],
              ),
              isActive: _currentStep >= 0,
              state:
              _currentStep >= 2 ? StepState.complete : StepState.disabled,
            ),

1 Ответ

0 голосов
/ 01 мая 2020

Чтобы показать средство выбора даты на местном языке, необходимо использовать плагин flutter_localizations и указать localizationDelegates и supportedLocales внутри MaterialApp в основном коде. Ниже приведен пример рабочего кода, который показывает средство выбора даты в French:

  1. Добавить flutter_localizations плагин в pubspec.yaml и запустить pub get.

enter image description here

Импорт плагина в файл дротика.

Внутри MaterialApp, добавьте следующее:

return MaterialApp(
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate
      ],
      supportedLocales: [
        const Locale('en'),
        const Locale('fr')
      ],

....

body: Center(
          child: RaisedButton(
            child: Text('Tap'),
            onPressed: () {
              showDatePicker(
                context: context,
                  locale : const Locale("fr","FR"),
                initialDate: DateTime.now(),
                firstDate: DateTime(2018),
                lastDate: DateTime(2030),
                builder: (BuildContext context, Widget child) {
                  return Theme(
                    data: ThemeData.dark(),
                    child: child,
                  );
                }
              );
            },
          )
        )

Запустите приложение снова (горячий перезапуск) и убедитесь, что указатель даты отображается в French.

enter image description here

Надеюсь, что это отвечает на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...