public void UpdateTranslationFiles() { progress.OperationDescription = "Updating translation files"; progress.StepDescription = String.Format("Preparing files list..."); progress.CurrentStep = 0; var projects = visualStudioAdapter.GetProjects().Where(projDescr => settingsService.IsProjectHandled(projDescr)).ToList(); var settings = settingsService.GetSolutionSettings(); var cultures = new List <string>(); cultures.Add(settings.DevelepmentCulture); cultures.AddRange(settings.LocalizationCultures.Where(cul => cul != settings.DevelepmentCulture)); progress.TotalSteps = projects.Count * cultures.Count; foreach (var projDescr in projects) { var resources = bamlResourceCollector.GetResources(projDescr); if (resources == null) { continue; //Skip projects without localizable resources } for (int i = 0; i < cultures.Count; i++) { var culture = cultures[i]; bool isDevCulture = (i == 0); string fileName = isDevCulture ? "Translate.resx" : String.Format("Translate.{0}.resx", culture); progress.StepDescription = String.Format("Processing Project: {0}, File: {1}", projDescr.Name, fileName); var resourceFile = visualStudioAdapter.GetTranslationFile(projDescr, fileName); UpdateResourceFile(resources, resourceFile, isDevCulture, settings.DevelepmentCulture); } } progress.CurrentStep = progress.TotalSteps; progress.OperationDescription = "Updating translation files complete"; progress.StepDescription = ""; }