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 开发》