Flutter如何根据CSV生成easy_localize.g.dart文件

在Flutter项目中,如何根据CSV文件自动生成easy_localize.g.dart文件?我尝试使用easy_localization插件进行多语言支持,但文档中没有详细说明如何从CSV格式的翻译文件生成对应的Dart代码。具体需要哪些步骤?是否需要额外的工具或命令行参数?

2 回复

使用easy_localization库,通过以下步骤生成:

  1. pubspec.yaml添加依赖:
dependencies:
  easy_localization: ^3.0.0
dev_dependencies:
  easy_localization_generator: ^3.0.0
  build_runner: ^2.0.0
  1. 创建CSV文件(如assets/i18n.csv),格式:
key,en,es
hello,Hello,Hola
  1. 运行命令生成:
flutter pub run easy_localization:generate -S assets -f csv -o locale_keys.g.dart
flutter pub run build_runner build

生成的文件包含所有翻译键。

更多关于Flutter如何根据CSV生成easy_localize.g.dart文件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,根据CSV文件生成 easy_localize.g.dart 文件,需要使用 easy_localization 包提供的命令行工具。以下是具体步骤:

1. 安装依赖

pubspec.yaml 中添加:

dependencies:
  easy_localization: ^3.0.0  # 使用最新版本

dev_dependencies:
  easy_localization_generator: ^3.0.0  # 代码生成器
  build_runner: ^2.0.0  # 构建工具

运行:

flutter pub get

2. 准备CSV文件

  • 在项目根目录创建 assets/csv 文件夹(或其他路径)。
  • CSV文件格式示例(lang.csv):
key,en,es,fr
hello,Hello,Hola,Bonjour
welcome,Welcome,Bienvenido,Bienvenue
  • 第一列为键(key),后续列为语言代码和对应翻译。

3. 配置 pubspec.yaml

添加资源路径:

flutter:
  assets:
    - assets/csv/

4. 生成代码

运行以下命令生成 easy_localize.g.dart

flutter pub run easy_localization:generate -S assets/csv -O lib/generated
  • -S:CSV文件所在目录。
  • -O:输出目录(默认在 lib/generated)。

5. 在代码中使用

import 'generated/easy_localize.g.dart';

Text(LocaleKeys.hello.tr()), // 输出对应语言的翻译

注意事项

  • 确保CSV文件编码为 UTF-8
  • 若CSV文件更新,需重新运行生成命令。
  • 可通过 -f 参数指定输入文件格式(默认自动检测)。

完成以上步骤后,即可通过CSV文件自动生成多语言资源文件。

回到顶部