runComplete method
Runs the complete enhanced localization checking and automation process
Implementation
Future<EnhancedLocalizationResult> runComplete({
bool generateArb = true,
bool autoTranslate = false,
bool generateAnalytics = true,
bool generateCode = false,
String? arbOutputDir,
}) async {
if (verbose) {
print('🚀 Starting enhanced localization checking...');
}
// Phase 1: Run base localization check with enhanced patterns
if (verbose) {
print('📝 Phase 1: Detecting non-localized strings...');
}
await _baseChecker.run(
generateArb: generateArb, arbOutputDir: arbOutputDir);
final nonLocalizedStrings = _baseChecker.results;
// Phase 2: Generate analytics
LocalizationAnalytics? analytics;
if (generateAnalytics) {
if (verbose) {
print('📊 Phase 2: Generating analytics...');
}
analytics = await _generateAnalytics(nonLocalizedStrings);
}
// Phase 3: Auto-translation if enabled
Map<String, Map<String, dynamic>>? translatedArbs;
if (autoTranslate &&
enhancedConfig.enableAutoTranslation &&
enhancedConfig.translationApiKey.isNotEmpty) {
if (verbose) {
print('🌍 Phase 3: Auto-translating to multiple languages...');
}
translatedArbs =
await _performAutoTranslation(arbOutputDir ?? config.projectPath);
}
// Phase 4: Code generation if enabled
if (generateCode && enhancedConfig.enableCodeGeneration) {
if (verbose) {
print('🏗️ Phase 4: Generating localization code...');
}
await _generateCode(translatedArbs);
}
if (verbose) {
print('✅ Enhanced localization checking completed!');
}
return EnhancedLocalizationResult(
nonLocalizedStrings: nonLocalizedStrings,
analytics: analytics,
translatedArbs: translatedArbs,
generatedFiles: [], // Would be populated by code generation
);
}