generateAnalytics method
Generates comprehensive localization analytics
Implementation
Future<LocalizationAnalytics> generateAnalytics({
required List<NonLocalizedString> nonLocalizedStrings,
required Map<String, List<String>> existingTranslations,
required List<String> dartFiles,
}) async {
if (verbose) {
print('📊 Generating comprehensive localization analytics...');
}
final totalStrings = await _countTotalStrings(dartFiles);
final localizedStrings = _countLocalizedStrings(existingTranslations);
final duplicateStrings = _findDuplicateStrings(nonLocalizedStrings);
final unusedTranslations =
await _findUnusedTranslations(existingTranslations, dartFiles);
final filesCoverage =
await _analyzeFilesCoverage(dartFiles, nonLocalizedStrings);
final complexityAnalysis = _analyzeComplexity(nonLocalizedStrings);
final analytics = LocalizationAnalytics(
totalStringsFound: totalStrings,
localizedStrings: localizedStrings,
nonLocalizedStrings: nonLocalizedStrings.length,
duplicateStrings: duplicateStrings,
unusedTranslations: unusedTranslations,
coveragePercentage: _calculateCoveragePercentage(
totalStrings, nonLocalizedStrings.length),
filesCoverage: filesCoverage,
complexityScore: complexityAnalysis.complexityScore,
recommendations: _generateRecommendations(
nonLocalizedStrings,
duplicateStrings,
unusedTranslations,
complexityAnalysis,
),
summary: _generateSummary(
totalStrings, localizedStrings, nonLocalizedStrings.length),
);
if (verbose) {
print('✅ Analytics generation completed');
}
return analytics;
}