generateAnalytics method

Future<LocalizationAnalytics> generateAnalytics({
  1. required List<NonLocalizedString> nonLocalizedStrings,
  2. required Map<String, List<String>> existingTranslations,
  3. required List<String> dartFiles,
})

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;
}