用途:在 Flutter 项目中初始化国际化(i18n)与本地化(l10n)。Flutter 通过 flutter_localizations 和 intl 包实现,使用 .arb 资源文件定义本地化字符串,编译生成类型安全的 AppLocalizations 类供组件树访问。
主要能力:添加依赖、开启代码生成、创建配置文件、配置应用入口、定义与编辑 ARB 文件、生成本地化类、在组件中读取字符串,并支持占位符、复数(plural)和条件选择(select)等高级格式化。
使用方式:
- 添加依赖:flutter pub add flutter_localizations --sdk=flutter 与 flutter pub add intl:any。
- 在 pubspec.yaml 的 flutter 段开启 generate: true。
- 在项目根目录创建 l10n.yaml,配置 arb-dir、template-arb-file、output-localization-file、synthetic-package 等。
- 在 main.dart 导入 flutter_localizations 与生成的 app_localizations.dart,为 MaterialApp/CupertinoApp 注入 AppLocalizations.delegate、GlobalMaterialLocalizations.delegate、GlobalWidgetsLocalizations.delegate、GlobalCupertinoLocalizations.delegate 及 supportedLocales。
- 在 lib/l10n/app_en.arb 等文件定义键值,运行 flutter pub get 触发生成,再用 AppLocalizations.of(context)!.key 读取。
适用场景:需要多语言支持的 Flutter 应用,包括带参数、复数与性别等条件文本的界面。
限制:调用本地化字符串的组件必须是 MaterialApp 的后代;ARB 语法错误需根据终端输出修复后重新运行 flutter pub get;资料未提供具体平台、收费或效果信息。