parse static method
StatsResult
parse({
- required BuildConfig buildConfig,
- required NamespaceTranslationMap translationMap,
- bool showPluralHint = false,
Implementation
static StatsResult parse({
required BuildConfig buildConfig,
required NamespaceTranslationMap translationMap,
bool showPluralHint = false,
}) {
final List<I18nData> translationList =
translationMap.getEntries().map((localeEntry) {
final locale = localeEntry.key;
final namespaces = localeEntry.value;
return TranslationModelBuilder.build(
buildConfig: buildConfig,
locale: locale,
map: buildConfig.namespaces ? namespaces : namespaces.values.first,
);
}).toList();
// sort: base locale, then all other locales
translationList.sort(I18nData.generationComparator);
Map<I18nLocale, StatsLocaleResult> result = {};
translationList.forEach((localeData) {
final keyCount = _countKeys(localeData.root) - 1; // don't include root
final translationCount = _countTranslations(localeData.root);
final wordCount = _countWords(localeData.root);
final characterCount = _countCharacters(localeData.root);
result[localeData.locale] = StatsLocaleResult(
keyCount: keyCount,
translationCount: translationCount,
wordCount: wordCount,
characterCount: characterCount,
);
});
return StatsResult(
localeStats: result,
globalStats: StatsLocaleResult(
keyCount: result.values.fold(0, (prev, curr) => prev + curr.keyCount),
translationCount:
result.values.fold(0, (prev, curr) => prev + curr.translationCount),
wordCount: result.values.fold(0, (prev, curr) => prev + curr.wordCount),
characterCount:
result.values.fold(0, (prev, curr) => prev + curr.characterCount),
),
);
}