Flutter 日历组件如何支持中文(国际化)

Flutter 日历组件如何支持中文(国际化)


在 App 开发中,我们通常需要用到国际化的支持。

Flutter 在默认情况下就是支持国际化,但是在没有进行特别的设置之前,它们无论在什么环境都是以英文的方式显示的。例如,我们显示一个日历组件,默认是英文展示的。

我们想要改成中文,或者添加其他语言支持应该怎么做呢?

设置语言支持步骤

本例中,我们将要为日历组件,添加中文支持。我们来看怎么做?

1. 在 pubspec.yaml 中添加如下依赖:

flutter_localizations:
    sdk: flutter

这一步是添加国际化支持的库。

2. 更新依赖包

直接在 Android Studio 中点击“Pub get"或者使用如下命令:

flutter pub get

将库,加载到项目中。

3. 在 main.dart 中 import 如下:

import 'package:flutter_localizations/flutter_localizations.dart';

这一步是导入类库。

4. MaterialApp 的配置

然后在 MaterialApp 的构造方法中给 localizationsDelegates 和 supportedLocales 两个可选参数赋值:

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        theme: ThemeData(
          primaryColor: Colors.green,
          //...
        ),
        localizationsDelegates: [
          GlobalMaterialLocalizations.delegate,//指定本地化的字符串和一些其他的值
          GlobalWidgetsLocalizations.delegate,//定义 widget 默认的文本方向,从左到右或从右到左。
          GlobalCupertinoLocalizations.delegate,//对应的 Cupertino 风格(Cupertino 风格组件即 iOS 风格组件)
        ],
        supportedLocales: [
          const Locale('zh', 'CH'),
          const Locale('en', 'US'),
        ],
        ……
    ……
}
  • localizationsDelegates:指定哪些 Widget 需要进行国际化。例如,本例中,指定了 Material、Widgets、Cupertino 都使用国际化。
  • GlobalMaterialLocalizations:指定本地化的字符串和一些其他的值。
  • GlobalWidgetsLocalizations:定义 widget 默认的文本方向,从左到右或从右到左。
  • GlobalCupertinoLocalizations:对应的 Cupertino 风格。

Widget 的配置

例如,这里配置的是日历组件,显示中文:

  _showDataPicker(int type) async {
    var picker = await showDatePicker(
        context: context,
        initialDate: DateTime.now(),
        firstDate: DateTime(1986),
        lastDate: DateTime(DateTime.now().year+2),
        locale: Locale("zh"));
    ……
    });

好了,我们的日历显示中文配置已经完成了,你也动手试试吧~


**PS:更多精彩内容,请查看 --> 《Flutter 开发》
**PS:更多精彩内容,请查看 --> 《Flutter 开发》
**PS:更多精彩内容,请查看 --> 《Flutter 开发》

你可能感兴趣的:(Flutter,开发,dart,android,flutter,中文,国际化)