You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Intl插件为何指定模板后仍生成错误文件?

Flutter Intl插件重复生成intl_en.arb文件的问题根源分析

问题场景

按照Flutter官方《Flutter应用国际化》教程操作,在Android Studio Giraffe(2022.3.1 Patch1)中初始化Flutter Intl插件后,已在l10n.yaml中指定自定义模板文件为app_en.arb,但插件仍会在lib/l10n目录下自动生成多余的intl_en.arb文件,导致目录中出现重复的英文ARB文件。

相关配置

l10n.yaml内容

arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart

临时解决方案

在pubspec.yaml中禁用Flutter Intl插件:

flutter_intl:
  enabled: false

之后每次修改ARB文件,需手动执行以下命令重新生成翻译:

flutter gen-l10n

问题根源

这是Flutter Intl插件与Flutter官方原生flutter gen-l10n工具的配置冲突及兼容性问题导致的:

  • Flutter Intl插件作为第三方扩展,自带独立的默认配置逻辑,默认会以intl_en.arb作为模板生成文件。即便你在l10n.yaml(官方原生工具的配置文件)中指定了自定义模板,部分版本的插件无法完全兼容解析该配置,仍会按照自身默认规则生成文件。
  • 当同时启用Flutter Intl插件并配置l10n.yaml时,插件的生成逻辑与官方flutter gen-l10n的逻辑产生重叠,两者各自按照自己的规则生成文件,最终导致intl_en.arb被重复创建。
  • 你使用的Android Studio Giraffe版本与对应的Flutter Intl插件版本存在兼容性适配问题,插件对l10n.yaml中自定义模板的识别逻辑存在缺陷,无法正确覆盖默认行为。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 12:35:14