Flutter项目国际化配置
Flutter国际化配置备忘
Flutter国际化是为Flutter项目添加多语言支持,有两种方法,一种是官网提供的步骤 Flutter 应用里的国际化
还有一种是开发工具的插件Flutter Intl ,提供的有Android studio(以下简称as)和VSCode的插件
使用插件的方式步骤简单一点,配置完成后全局的类名是S 写起来也方便
安装好插件后,在as中依次点击菜单 Tools -> Flutter Intl -> Initialize for the Project (如果没有这个菜单,可能是没安装插件或安装后没重启IDE)
点击后会在项目的lib目录生成对应的目录和文件
第二步需要手动在pubspec.yaml中添加两个包
dependencies: ... flutter_localizations: sdk: flutter intl: ^0.17.0
第三步,打开main.dart, 在 MaterialApp 中添加对应的属性
import 'package:flutter_localizations/flutter_localizations.dart'; import 'generated/l10n.dart'; //... return MaterialApp( title: 'App Demo' onGenerateTitle: (BuildContext context){ return S.of(context).app_title; }, ... localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, S.delegate, ], supportedLocales: [ const Locale('en', ''), const Locale('zh', 'CN'), ], ... );
这里 onGenerateTitle 就是调用多语言配置的title , 直接在title属性上调用是不生效的
第四步是添加语言,默认只有一个en 在Flutter Intl菜单中 Add Locale,简体中文就填 zh_CN
最后一步,就是把项目里用到的需要多语言化的地方,全部收集到 lib/l10n 下的arb文件中,然后在项目中对应的地方调用 S.of(context).xxx
需要注意的是改完arb文件项目就会调用一遍多语言生成