private static async Task StartApp(string inputPath, string outputPath, string manualTranslationsPath)
        {
            var loader                    = new XmlLoader();
            var document                  = loader.Load(inputPath);
            var manualTranslations        = loader.Load(manualTranslationsPath);
            var translator                = new Translator();
            var localizationManager       = new DivinityLocalizationTranslator(translator, document);
            var manualTranslationsApplier = new ManualTranslationsApplier(translator, manualTranslations, document);
            var fixer = new GeneralTranslationMistakesFixer(document);

            Console.WriteLine("Translating...");
            await localizationManager.TranslateAll(() => loader.Save(outputPath, document));

            Console.WriteLine("Applying manual translations...");
            await manualTranslationsApplier.Apply(() => loader.Save(outputPath, document));

            Console.WriteLine("Fixing general translation mistakes");
            fixer.FixAll();

            loader.Save(outputPath, document);
            Console.WriteLine("Finished...");
        }
        private static async Task StartApp(string englishPath, string translatedPath, string outputPath)
        {
            Console.WriteLine("Initializing update...");
            var loader                = new XmlLoader();
            var englishDoc            = loader.Load(englishPath);
            var translatedDoc         = loader.Load(translatedPath);
            var needingTranslationDoc = CreateNeedingTranslationOnlyDoc(englishDoc, translatedDoc);
            var translator            = new Translator();
            var localizationManager   = new DivinityLocalizationTranslator(translator, needingTranslationDoc);
            var fixer = new UpdateMistakesFixer(needingTranslationDoc);

            Console.WriteLine("Translating new lines...");
            await localizationManager.TranslateAll(() => {});

            Console.WriteLine("Fixing general translation mistakes");
            fixer.FixAll();

            Console.WriteLine("Building final artifact...");
            var finalArtifact = CreateDocumentWithUnionOfTwo(needingTranslationDoc, translatedDoc);

            loader.Save(outputPath, finalArtifact);
            Console.WriteLine("Finished...");
        }