flutter gen-l10n如何使用
我在Flutter项目中使用gen-l10n命令生成了本地化文件,但运行后没有生效。具体操作步骤如下:
- 在pubspec.yaml中添加flutter_localizations依赖
- 执行
flutter gen-l10n命令 - 生成了arb文件和对应的dart文件
但App运行时仍然显示默认语言,请问还需要进行哪些配置才能让本地化正常工作?我是否漏掉了某些关键步骤?
2 回复
使用Flutter gen-l10n步骤:
- 在pubspec.yaml添加flutter_localizations依赖
- 创建l10n.yaml配置文件
- 在arb目录下创建翻译文件(如app_en.arb)
- 运行命令:flutter gen-l10n
- 在MaterialApp中配置localizationsDelegates和supportedLocales
自动生成本地化类,支持多语言。
更多关于flutter gen-l10n如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter 的 gen-l10n 是用于生成本地化(国际化)代码的工具,它基于 arb 文件自动创建本地化类。以下是使用步骤:
-
配置
pubspec.yaml: 在flutter部分添加generate: true并指定l10n.yaml文件(可选)。flutter: generate: true -
创建
l10n.yaml文件(可选): 在项目根目录创建此文件以自定义设置,例如:arb-dir: lib/l10n template-arb-file: app_en.arb output-localization-file: app_localizations.dart -
添加
arb文件: 在指定目录(如lib/l10n)创建.arb文件,例如:app_en.arb(英语):{ "hello": "Hello!", "@hello": { "description": "A simple greeting" } }app_es.arb(西班牙语):{ "hello": "¡Hola!" }
-
运行生成命令: 执行以下命令生成本地化代码:
flutter gen-l10n或直接运行应用(Flutter 会自动生成)。
-
在应用中使用: 在
MaterialApp中设置本地化委托:return MaterialApp( localizationsDelegates: AppLocalizations.localizationsDelegates, supportedLocales: AppLocalizations.supportedLocales, home: MyHomePage(), );在组件中调用:
Text(AppLocalizations.of(context)!.hello);
注意:
- 默认情况下,生成的文件在
lib/generated/目录中。 - 确保
pubspec.yaml中已包含flutter_localizations依赖。 - 如果修改了
arb文件,重新运行flutter gen-l10n以更新代码。
通过以上步骤,即可快速实现应用的本地化。

