Example #1
0
        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();
            }
        }
Example #2
0
        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();
        }
Example #4
0
        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);
        }
Example #5
0
 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);
 }
Example #6
0
 private void SaveTemplate(ILanguageResourcesContainer languageResourcesContainer)
 {
     languageResourcesContainer.Save();
 }
Example #7
0
        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);
            }
        }
Example #8
0
 private void AddGlobalSettings(ILanguageResourcesContainer languageResourcesContainer, BuiltinRecognizers recognizers, WordCountFlags wordCountFlags)
 {
     languageResourcesContainer.Recognizers    = recognizers;
     languageResourcesContainer.WordCountFlags = wordCountFlags;
 }