如何在颤振中更改显示日期选择器的语言

Yas*_*liz 12 dart flutter flutter-dependencies flutter-layout flutter-animation

我想在显示日期选择器中将语言从英语更改为法语,请在下面找到我正在使用的代码和一个应该解决该问题的类似代码,但它使代码不适用于此部分:

              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,
            ),
Run Code Online (Sandbox Code Playgroud)

Dar*_*han 36

为了以本地语言显示日期选择器,您需要使用flutter_localizations插件并在主代码中指定localizationDelegatessupportedLocalesinside MaterialApp。以下是显示日期选择器的示例工作代码French

  1. 添加flutter_localizations插件pubspec.yaml并运行pub get.

在此处输入图片说明

  1. 在 dart 文件中导入插件。
  2. 在里面MaterialApp,添加以下内容:

    return MaterialApp(
          localizationsDelegates: [
            GlobalMaterialLocalizations.delegate
          ],
          supportedLocales: [
            const Locale('en'),
            const Locale('fr')
          ],
    
    Run Code Online (Sandbox Code Playgroud)

    ....

    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,
                      );
                    }
                  );
                },
              )
            )
    
    Run Code Online (Sandbox Code Playgroud)
  3. 再次运行应用程序(热重启)并看到日期选择器出现在French.

在此处输入图片说明

希望这能回答你的问题。

  • 导入是 import 'package:flutter_localizations/flutter_localizations.dart'; (5认同)