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

Flutter国际化:如何将.arb文件拆分为多个独立文件

Flutter拆分ARB国际化文件的实现方法

当然可以拆分ARB文件,具体实现步骤如下:

1. 创建分类后的ARB文件

在项目的本地化目录(通常为lib/l10n)下,新建对应业务分类的ARB文件,比如:

  • buttons_en.arb:存放按钮相关文本
    {
      "loginBtn": "Login",
      "submitBtn": "Submit",
      "cancelBtn": "Cancel"
    }
    
  • messages_en.arb:存放提示消息相关文本
    {
      "welcomeMsg": "Welcome to our app!",
      "errorNetworkMsg": "No internet connection"
    }
    

2. 配置l10n.yaml文件

修改项目根目录下的l10n.yaml(无此文件则新建),确保配置包含所有拆分的ARB文件:

arb-dir: lib/l10n
template-arb-file: app_en.arb # 保留原模板文件,可存放通用文本或仅作为元数据载体
output-localization-file: app_localizations.dart
included-patterns:
  - '*.arb' # 扫描目录下所有ARB文件

注意:模板文件(app_en.arb)需保留必要元数据,示例如下:

{
  "@@locale": "en"
}

3. 生成本地化代码

在终端运行以下命令,Flutter工具会自动合并所有ARB文件内容并生成统一的本地化类:

flutter gen-l10n

4. 使用拆分后的本地化文本

生成完成后,可直接通过生成的类调用对应文本,示例:

// 调用按钮文本
Text(AppLocalizations.of(context)!.loginBtn)

// 调用消息文本
Text(AppLocalizations.of(context)!.welcomeMsg)

注意事项

  • 所有同语言的ARB文件后缀需保持一致(如_en、_zh),确保语言匹配正确。
  • 不同ARB文件中禁止出现重复键名,否则生成代码时会抛出冲突错误,拆分前需做好键名规划。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:01:13