diff --git a/I18N Commander/Processor/TranslationProcessor.cs b/I18N Commander/Processor/TranslationProcessor.cs index f2d2494..7e771b6 100644 --- a/I18N Commander/Processor/TranslationProcessor.cs +++ b/I18N Commander/Processor/TranslationProcessor.cs @@ -51,4 +51,15 @@ public static class TranslationProcessor return updateException.ToProcessorResult(); } } + + public static async Task> CalculateTranslationProgress() + { + await using var db = ProcessorMeta.ServiceProvider.GetRequiredService(); + var numCultures = (await AppSettings.GetCultureIndices()).Count; + var numTextElements = await db.TextElements.CountAsync(); + var numTotalTranslations = numCultures * numTextElements; + var numTextElementsTranslated = await db.Translations.CountAsync(n => !string.IsNullOrWhiteSpace(n.Text)); + + return new ProcessorResult(numTextElementsTranslated * 100 / numTotalTranslations); + } } \ No newline at end of file