flutter arb插件如何使用

如何在Flutter项目中正确使用arb插件?我按照官方文档配置了l10n.yaml文件并添加了arb文件目录,但运行flutter gen-l10n命令后生成的localizations文件无法正常加载翻译内容。具体现象是:App运行时始终显示arb文件中的key而不是对应的value。请问需要检查哪些配置项?是否有完整的arb插件使用流程示例?

2 回复

Flutter ARB插件用于管理本地化资源。安装后,在pubspec.yaml中添加依赖,使用flutter pub get安装。通过arb文件定义多语言键值对,使用flutter gen-l10n生成本地化类,最后在代码中调用即可。

更多关于flutter arb插件如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter ARB 插件用于管理应用的本地化资源文件(.arb 格式)。以下是基本使用方法:

  1. 安装依赖pubspec.yaml 中添加:
dependencies:
  flutter_localizations:
    sdk: flutter
  intl: ^0.18.1

dev_dependencies:
  flutter_gen_runner: ^5.4.0
  build_runner: ^2.4.0
  1. 创建 ARB 文件 在项目根目录创建 l10n 文件夹,添加:
  • app_en.arb(英文)
{
  "helloWorld": "Hello World!",
  "@helloWorld": {
    "description": "欢迎文本"
  }
}
  • app_zh.arb(中文)
{
  "helloWorld": "你好世界!"
}
  1. 配置生成路径pubspec.yaml 中指定 ARB 文件路径:
flutter:
  generate: true
  l10n:
    arb-dir: lib/l10n
    output-dir: lib/gen
  1. 生成本地化类 运行命令生成代码:
flutter packages pub run build_runner build
  1. 在应用中使用
import 'gen/l10n.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: AppLocalizations.localizationsDelegates,
      supportedLocales: AppLocalizations.supportedLocales,
      home: Scaffold(
        body: Text(AppLocalizations.of(context)!.helloWorld),
      ),
    );
  }
}

关键说明

  • ARB 文件使用键值对存储翻译内容
  • 通过 @ 前缀添加元数据(如描述、占位符)
  • 每次修改 ARB 文件后需重新运行 build_runner
  • 支持参数化消息(使用 {param} 语法)

这样就完成了 Flutter 应用的国际化基础配置。

回到顶部