Custom build_runner
builder for enhancing existing flutter_gen
directory that enables global localization access across all modules in a Flutter project.
- 🚀 Automatic package enhancement - Enhances existing
flutter_gen
directory with pubspec.yaml - 🌍 Global module access - All modules can use
import 'package:flutter_gen/app_localizations.dart';
- 📦 Multi-language support - Supports any number of languages dynamically
- ⚡ Build runner integration - Seamlessly integrates with Flutter's build system
- 🔄 No file duplication - Works directly with Flutter's generated files
- Generates Flutter localization files using
flutter gen-l10n
- Enhances existing flutter_gen directory in
.dart_tool/flutter_gen/
with pubspec.yaml - Updates package_config.json for main app and all modules
- Enables global imports like
package:flutter_gen/app_localizations.dart
build: ^3.1.0
- Build system integrationpath: ^1.8.0
- File path manipulationyaml: ^3.1.0
- l10n.yaml configuration reading
This builder is automatically used by the main client application when running:
dart run build_runner build --delete-conflicting-outputs
The builder implements the following workflow:
l10n.yaml → flutter gen-l10n → .dart_tool/flutter_gen/gen_l10n/*.dart
↓
Add pubspec.yaml to existing directory
↓
.dart_tool/flutter_gen/pubspec.yaml + lib/gen_l10n/*.dart
↓
Update package_config.json for all modules
↓
Enable: import 'package:flutter_gen/app_localizations.dart';
.dart_tool/flutter_gen_synthetic/
├── pubspec.yaml # Synthetic package metadata
└── lib/gen_l10n/
├── app_localizations.dart # Main localization class
├── app_localizations_en.dart # English localizations
├── app_localizations_es.dart # Spanish localizations
├── app_localizations_ru.dart # Russian localizations
└── app_localizations_*.dart # Other languages (dynamic)
- Clean separation - Builder logic separated from main application
- Reusable - Can be used in other Flutter projects
- Maintainable - Clear dependencies and isolated codebase
- Efficient - Only necessary dependencies in main application