language_helper_generator 0.7.5
language_helper_generator: ^0.7.5 copied to clipboard
A generator for language_helper helps you create a base structure for language_helper.
Language Helper Generator #
A fast and reliable generator for language_helper that automatically creates translation files from your Dart code.
What it does #
Scans your project for text using language_helper extensions (tr, trP, trT, trF) and translate method, then generates organized translation files with your existing translations preserved.
Quick Start #
- Add to your project:
dev_dependencies:
language_helper_generator: ^0.7.0
- Generate translations:
dart run language_helper_generator --languages=en,vi --ignore-todo=en
This creates:
lib/languages/codes.dart- Language mappinglib/languages/data/en.dart- English translationslib/languages/data/vi.dart- Vietnamese translations (with TODO markers for missing translations)
Common Options #
| Option | Description | Example |
|---|---|---|
--languages |
Language codes to generate | --languages=en,vi,es |
--ignore-todo |
Skip TODO markers for specific languages | --ignore-todo=en |
--path |
Custom output directory | --path=./lib/resources |
--json |
Generate JSON files instead of Dart | --json |
Examples #
Basic usage:
dart run language_helper_generator --languages=en,vi
Skip TODOs in English (your base language):
dart run language_helper_generator --languages=en,vi --ignore-todo=en
Generate JSON files for assets:
dart run language_helper_generator --languages=en,vi --json
Custom output path:
dart run language_helper_generator --path=./assets/languages --languages=en,vi
Generated Files #
Dart format (default):
lib/languages/
├── codes.dart # Language mapping
└── data/
├── en.dart # English translations
└── vi.dart # Vietnamese translations
JSON format (with --json flag):
assets/languages/
├── codes.json # Language mapping
└── data/
├── en.json # English translations
└── vi.json # Vietnamese translations
Usage in your app #
Dart Generated Data:
await LanguageHelper.instance.initial(
data: [LanguageDataProvider.lazyData(languageData)],
initialCode: LanguageCodes.en,
isDebug: !kReleaseMode,
);
JSON Generated Data:
await LanguageHelper.instance.initial(
data: [
LanguageDataProvider.asset('assets/languages'),
LanguageDataProvider.network('https://example.com/languages'),
],
initialCode: LanguageCodes.en,
isDebug: !kReleaseMode,
);
Features #
- Fast: Uses Dart Analyzer, no build_runner dependency
- Smart: Preserves existing translations
- Organized: Groups translations by file path
- Helpful: Adds TODO markers for missing translations
- Clean: Removes unused translation keys automatically
Contributing #
Questions or suggestions? Please file an issue or submit a pull request!