public void ApplyTemplateToTms(ILanguageResourcesContainer languageResourcesContainer, List <TranslationMemory> translationMemories, Settings settings) { foreach (var translationMemory in translationMemories) { var sourceLang = translationMemory.LanguageDirection.SourceLanguage; var targetLang = translationMemory.LanguageDirection.TargetLanguage; var lrContainer = languageResourcesContainer.LanguageResourceBundles; //take just the bundles the TM supports var newBundles = new List <LanguageResourceBundle> { lrContainer[sourceLang], lrContainer[targetLang] }; if (newBundles.All(bundle => bundle == null)) { return; } ExcludeWhatIsNotNeeded(settings, newBundles); AddNewBundles(newBundles, translationMemory); translationMemory.Save(); } }
public void ImportResourcesFromExcel(string excelFilePath, ILanguageResourcesContainer languageResourcesContainer, Settings settings) { var newLanguageResourceBundles = _excelResourceManager.GetResourceBundlesFromExcel(excelFilePath); ExcludeWhatIsNotNeeded(settings, newLanguageResourceBundles); AddNewBundles(newLanguageResourceBundles, languageResourcesContainer); var(recognizers, wordCountFlags) = _excelResourceManager.GetTemplateGlobalSettings(excelFilePath, settings); AddGlobalSettings(languageResourcesContainer, recognizers, wordCountFlags); SaveTemplate(languageResourcesContainer); }
public void ExportResourcesToExcel(ILanguageResourcesContainer resourceContainer, string filePathTo, Settings settings) { using var package = GetExcelPackage(filePathTo); int lineNumber; foreach (var languageResourceBundle in resourceContainer.LanguageResourceBundles) { if (languageResourceBundle == null) { continue; } var worksheet = package.Workbook.Worksheets.Add(languageResourceBundle.Language.Name); PrepareWorksheet(worksheet); lineNumber = 1; if (settings.AbbreviationsChecked && languageResourceBundle.Abbreviations != null) { foreach (var abbreviation in languageResourceBundle.Abbreviations.Items) { worksheet.Cells["A" + ++lineNumber].Value = abbreviation; } } lineNumber = 1; if (settings.OrdinalFollowersChecked && languageResourceBundle.OrdinalFollowers != null) { foreach (var ordinalFollower in languageResourceBundle.OrdinalFollowers.Items) { worksheet.Cells["B" + ++lineNumber].Value = ordinalFollower; } } lineNumber = 1; if (settings.VariablesChecked && languageResourceBundle.Variables != null) { foreach (var variable in languageResourceBundle.Variables.Items) { worksheet.Cells["C" + ++lineNumber].Value = variable; } } lineNumber = 1; if (settings.SegmentationRulesChecked && languageResourceBundle.SegmentationRules != null) { foreach (var segmentationRule in languageResourceBundle.SegmentationRules.Rules) { var stringWriter = new Utf8StringWriter(); var xmlSerializer = new XmlSerializer(typeof(SegmentationRule)); xmlSerializer.Serialize(stringWriter, segmentationRule); worksheet.Cells["D" + ++lineNumber].Value = stringWriter.ToString(); } } lineNumber = 1; if (settings.DatesChecked && languageResourceBundle.LongDateFormats != null) { var longDates = new List <string>(); if (languageResourceBundle.LongDateFormats != null) { longDates.AddRange(languageResourceBundle.LongDateFormats); } foreach (var date in longDates) { worksheet.Cells["E" + ++lineNumber].Value = date; } } lineNumber = 1; if (settings.DatesChecked && languageResourceBundle.ShortDateFormats != null) { var shortDates = new List <string>(); if (languageResourceBundle.ShortDateFormats != null) { shortDates.AddRange(languageResourceBundle.ShortDateFormats); } foreach (var date in shortDates) { worksheet.Cells["F" + ++lineNumber].Value = date; } } lineNumber = 1; if (settings.TimesChecked && languageResourceBundle.LongTimeFormats != null) { var longTimes = new List <string>(); if (languageResourceBundle.LongTimeFormats != null) { longTimes.AddRange(languageResourceBundle.LongTimeFormats); } foreach (var time in longTimes) { worksheet.Cells["G" + ++lineNumber].Value = time; } } lineNumber = 1; if (settings.TimesChecked && languageResourceBundle.ShortTimeFormats != null) { var shortTimes = new List <string>(); if (languageResourceBundle.ShortTimeFormats != null) { shortTimes.AddRange(languageResourceBundle.ShortTimeFormats); } foreach (var time in shortTimes) { worksheet.Cells["H" + ++lineNumber].Value = time; } } lineNumber = 1; if (settings.NumbersChecked && languageResourceBundle.NumbersSeparators != null) { foreach (var separator in languageResourceBundle.NumbersSeparators) { worksheet.Cells["I" + ++lineNumber].Value = $"{{{separator.GroupSeparators} {separator.DecimalSeparators}}}"; } } lineNumber = 1; if (settings.MeasurementsChecked && languageResourceBundle.MeasurementUnits != null) { foreach (var unit in languageResourceBundle.MeasurementUnits) { worksheet.Cells["J" + ++lineNumber].Value = unit.Key; } } lineNumber = 1; if (settings.CurrenciesChecked && languageResourceBundle.CurrencyFormats != null) { foreach (var currency in languageResourceBundle.CurrencyFormats) { worksheet.Cells["K" + ++lineNumber].Value = $"{currency.Symbol} - {currency.CurrencySymbolPositions[0]}"; } } } var globalSettingsWorksheet = package.Workbook.Worksheets.Add(PluginResources.GlobalSettings); PrepareGlobalSettingsWorksheet(globalSettingsWorksheet); if (settings.RecognizersChecked && resourceContainer.Recognizers != null) { var recognizers = resourceContainer.Recognizers.ToString().Split(','); lineNumber = 1; foreach (var recognizer in recognizers) { globalSettingsWorksheet.Cells[$"A{++lineNumber}"].Value = recognizer; } } if (settings.WordCountFlagsChecked && resourceContainer.WordCountFlags != null) { var wordCountFlags = resourceContainer.WordCountFlags.ToString().Split(','); lineNumber = 1; foreach (var wordCountFlag in wordCountFlags) { globalSettingsWorksheet.Cells[$"B{++lineNumber}"].Value = wordCountFlag; } } package.Save(); }
public void ImportResourcesFromSdltm(List <TranslationMemory> translationMemories, ILanguageResourcesContainer languageResourcesContainer, Settings settings) { var newLanguageResourceBundles = GetResourcesFromTMs(translationMemories); if (newLanguageResourceBundles.Count == 0) { _messageService.ShowWarningMessage(PluginResources.Warning, PluginResources.No_Resources_in_TMs); } ExcludeWhatIsNotNeeded(settings, newLanguageResourceBundles); AddNewBundles(newLanguageResourceBundles, languageResourcesContainer); SaveTemplate(languageResourcesContainer); }
public void ExportResourcesToExcel(ILanguageResourcesContainer languageResourcesContainer, string filePathTo, Settings settings) { //TODO: refactor so settings don't have to be passed to the _excelResourceManager; use ExcludeWhatIsNotNeeded method _excelResourceManager.ExportResourcesToExcel(languageResourcesContainer, filePathTo, settings); }
private void SaveTemplate(ILanguageResourcesContainer languageResourcesContainer) { languageResourcesContainer.Save(); }
private void AddNewBundles(List <LanguageResourceBundle> newLanguageResourceBundles, ILanguageResourcesContainer languageResourcesContainer) { foreach (var newBundle in newLanguageResourceBundles) { if (newBundle == null) { continue; } var correspondingBundleInTemplate = languageResourcesContainer.LanguageResourceBundles[newBundle.Language]; if (correspondingBundleInTemplate == null) { correspondingBundleInTemplate = new LanguageResourceBundle(newBundle.Language); languageResourcesContainer.LanguageResourceBundles.Add(correspondingBundleInTemplate); } //to be able to deal with all the resources uniformly and easily, we must ensure that none are null InitializeBundle(correspondingBundleInTemplate); AddWordlists(correspondingBundleInTemplate, newBundle); AddSegmentationRulesToBundle(newBundle, correspondingBundleInTemplate); AddSimpleResources(correspondingBundleInTemplate, newBundle); AddMeasurementUnits(newBundle, correspondingBundleInTemplate); } }
private void AddGlobalSettings(ILanguageResourcesContainer languageResourcesContainer, BuiltinRecognizers recognizers, WordCountFlags wordCountFlags) { languageResourcesContainer.Recognizers = recognizers; languageResourcesContainer.WordCountFlags = wordCountFlags; }