flutter如何生成修改后的.arb文件

在Flutter项目中,我已经修改了.arb文件中的翻译内容,但不知道如何重新生成或更新对应的.arb文件。请问有什么工具或命令行方法可以自动生成修改后的.arb文件?是否需要运行特定的Flutter命令,还是需要借助第三方库来实现?

2 回复

使用Flutter生成或修改.arb文件的方法:

  1. 使用官方工具:flutter gen-l10n
  2. 手动编辑.arb文件内容
  3. 通过第三方工具如intl_translation

建议使用官方工具自动生成,确保格式正确。

更多关于flutter如何生成修改后的.arb文件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中,.arb 文件是用于国际化和本地化的资源文件,通常与 flutter_localizations 包配合使用。生成或修改 .arb 文件通常涉及以下步骤:

1. 手动创建或修改

  • 在项目根目录下的 lib/l10n 文件夹中(如无则手动创建),直接编辑或新建 .arb 文件(例如 app_en.arbapp_zh.arb)。
  • 文件内容为 JSON 格式,例如:
    {
      "helloWorld": "Hello World!",
      "@helloWorld": {
        "description": "A welcome message"
      }
    }
    
  • 修改后保存即可。

2. 使用代码生成工具(推荐)

  • 通过 flutter gen-l10n 命令自动生成本地化代码,但需先在 pubspec.yaml 中配置:
    flutter:
      generate: true
      l10n:
        arb-dir: lib/l10n
        template-arb-file: app_en.arb
        output-localization-file: app_localizations.dart
    
  • 运行命令生成代码:
    flutter gen-l10n
    
  • 此命令会根据 .arb 文件生成 app_localizations.dart,但不会直接修改 .arb 文件本身。

3. 通过脚本或工具自动修改

  • 若需编程方式修改 .arb 文件,可编写 Dart 脚本读取、编辑并保存 JSON 内容:
    import 'dart:convert';
    import 'dart:io';
    
    void updateArbFile() {
      final file = File('lib/l10n/app_en.arb');
      final content = json.decode(file.readAsStringSync());
      content['newKey'] = 'New Value'; // 添加或修改条目
      file.writeAsStringSync(json.encode(content));
    }
    
  • 运行脚本即可更新文件。

注意事项:

  • 修改后需重新运行 flutter gen-l10n 以更新生成的 Dart 代码。
  • 确保 .arb 文件格式正确(符合 JSON 标准),避免语法错误。

通过以上方法,您可以灵活生成或修改 .arb 文件,实现 Flutter 应用的本地化管理。

回到顶部