本地化的訊息會產生到原始碼中,而不是合成的套件。
摘要
#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
的 pub 問題。 - 問題 102983,其中概述了
package:flutter_gen
的問題。 - 問題 157819,討論了
--implicit-pubspec-resolution
。
相關文章
- 國際化 Flutter 應用程式,此功能的規範文件。
除非另有說明,本網站上的文件反映 Flutter 的最新穩定版本。頁面最後更新於 2024-11-18。 檢視原始碼 或 回報問題。