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

如何在Dart/Flutter中通过内置重构将字符串转为ARB资源?

Flutter遗留项目逐个字符串国际化的自动化方法

先完成本地化基础配置(前提步骤)

要让IDE的重构工具生效,得先搭好项目的本地化框架:

  • 在pubspec.yaml里添加依赖并启用生成:
    dependencies:
      flutter_localizations:
        sdk: flutter
      intl: ^0.18.1 # 版本可根据当前Flutter版本调整
    
    flutter:
      generate: true
    
  • 在项目根目录创建l10n.yaml,配置ARB文件路径和生成规则:
    arb-dir: lib/l10n
    template-arb-file: app_en.arb
    output-localization-file: app_localizations.dart
    
  • 执行flutter pub get,IDE会自动生成AppLocalizations类。

逐个提取字符串到ARB并替换

配置完成后,就能用IDE内置工具逐个处理字符串:

  • 打开目标Dart文件,选中要国际化的硬编码字符串(比如"欢迎使用")。
  • 按Alt+Enter(Windows/Linux)或Option+Enter(Mac)调出快速修复菜单,找到Extract to ARB选项(如果没显示,确保光标在字符串内部,或者更新Flutter插件到最新版)。
  • 点击后弹出配置框,设置资源键名(比如welcomeText),选择要添加的目标ARB文件(默认是app_en.arb),确认后:
    • IDE会自动在ARB文件中添加条目:"welcomeText": "欢迎使用"
    • 原字符串会被替换为AppLocalizations.of(context)!.welcomeText(空安全写法,可根据项目情况调整)。
  • 重复上述步骤,只处理需要翻译的字符串,跳过不需要的即可。

补充注意事项

  • 如果在无context的场景(比如工具类)使用本地化字符串,可以封装一个全局获取Localizations的工具类,或者传递context到对应方法中。
  • 后续添加其他语言时,只需复制app_en.arb并重命名为对应语言后缀(比如app_zh.arb),修改里面的翻译内容即可。

内容的提问来源于stack exchange,提问作者Thomas W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 02:52:12