本地化消息生成到源代码中,而不是合成包。
摘要
#flutter
工具将不再生成合成 package:flutter_gen
或修改应用程序的 package_config.json
。以前引用 package:flutter_gen
的应用程序或工具将改为引用直接生成到应用程序中的源文件。
背景
#flutter_gen
是一个虚拟(合成)包,由 flutter
命令行工具创建,允许开发者导入该包以访问生成的符号和功能,例如用于 国际化。由于该包未列在应用的 pubspec.yaml
中,并且是通过重写(生成的)package_config.json
创建的,因此产生了大量问题。
迁移指南
#此更改仅影响 pubspec.yaml
中包含以下内容的用户
yaml
flutter:
generate: true
创建了一个合成包 (package:flutter_gen
) 并由应用程序引用
dart
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// ...
const MaterialApp(
title: 'Localizations Sample App',
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
);
有两种方法可以迁移到不再导入 package:flutter_gen
在随附的 l10n.yaml 文件中指定
synthetic-package: false
yamlsynthetic-package: false # The files are generated into the path specified by `arb-dir` arb-dir: lib/i18n # Or, specifically provide an output path: output-dir: lib/src/generated/i18n
启用
explicit-package-dependencies
功能标志shflutter config explicit-package-dependencies
时间线
#未发布
未发布 + 1,将删除 package:flutter_gen
支持。
参考
#相关问题
- 问题 73870,首次发现
package:flutter_gen
发布问题。 - 问题 102983,概述了
package:flutter_gen
问题。 - 问题 157819,讨论了
--implicit-pubspec-resolution
。
相关文章
- Flutter 应用程序国际化,该功能的规范文档。
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面上次更新时间:2024-11-18。 查看源代码 或 报告问题.