PVTRO
PathVerse Translation Orchestrator - A CLI helper tool for multi-package Flutter apps using slang.
Overview
With slang 4.0+, locale synchronization across packages is handled natively via streams. PVTRO serves as a helper and checker tool rather than a complete solution—it assists with:
- 🔍 Package Discovery: Scans your project for slang-enabled packages
- 🏗️ Wrapper Generation: Generates nested
TranslationProviderwrappers - ✅ Validation (planned): Version compatibility and locale matching checks
Installation
Add to your dev_dependencies:
dev_dependencies:
pvtro:
path: ../path/to/pvtro # or git/pub reference
Usage
# Generate TranslationProvider wrapper
dart run pvtro
# With options
dart run pvtro --output lib/pvtro.g.dart --verbose
CLI Options
| Option | Short | Description |
|---|---|---|
--output |
-o |
Output file path (default: lib/pvtro.g.dart) |
--verbose |
-v |
Show detailed output |
--help |
-h |
Show help |
Generated Output
import 'package:main_app/i18n/translations.g.dart' as _$0;
import 'package:package_a/i18n/translations.g.dart' as _$1;
import 'package:package_b/i18n/translations.g.dart' as _$2;
import 'package:flutter/widgets.dart';
Widget pvtroWrapper({required Widget child}) {
return _$0.TranslationProvider(
child: _$1.TranslationProvider(
child: _$2.TranslationProvider(
child: child,
),
),
);
}
Using the Generated Wrapper
void main() {
runApp(pvtroWrapper(child: const MyApp()));
}
Changing Locale
Use slang directly—all packages sync automatically:
LocaleSettings.setLocale(AppLocale.es);
Roadmap
xPackage discovery and wrapper generationSlang version compatibility check across packagesLocale/language matching validationWeb source integration for local builds
Why "Helper Tool"?
Slang 4.11+ made significant improvements to multi-package locale sync. PVTRO doesn't replace slang—it assists by:
- Automating the tedious
TranslationProvidernesting - Checking for potential issues across packages (planned)
- Bridging web translation sources to local builds (planned)
Requirements
- Dart SDK ^3.10.4
- slang ^4.11.0 (in your project)
- Flutter project with slang-enabled packages
License
MIT