Example #1
0
        public static AnonymizeTranslationMemory ServerBasedTmGetTranslationUnits(TranslationProviderServer translationProvider, string tmPath,
                                                                                  ObservableCollection <SourceSearchResult> sourceSearchResult, List <Rule> selectedRules)
        {
            var allTusForLanguageDirections = new List <TranslationUnit>();

            System.Windows.Application.Current.Dispatcher.Invoke(delegate
            {
                var translationMemory  = translationProvider.GetTranslationMemory(tmPath, TranslationMemoryProperties.All);
                var languageDirections = translationMemory.LanguageDirections;
                var pi = new PersonalInformation(selectedRules);

                foreach (var languageDirection in languageDirections)
                {
                    var unitsCount       = languageDirection.GetTranslationUnitCount();
                    var tmIterator       = new RegularIterator(unitsCount);
                    var translationUnits = languageDirection.GetTranslationUnits(ref tmIterator);
                    if (translationUnits != null)
                    {
                        allTusForLanguageDirections.AddRange(translationUnits);
                        foreach (var translationUnit in translationUnits)
                        {
                            var sourceText = translationUnit.SourceSegment.ToPlain();
                            if (pi.ContainsPi(sourceText))
                            {
                                var searchResult = new SourceSearchResult
                                {
                                    Id          = translationUnit.ResourceId.Guid.ToString(),
                                    SourceText  = sourceText,
                                    MatchResult = new MatchResult
                                    {
                                        Positions = pi.GetPersonalDataPositions(sourceText)
                                    },
                                    TmFilePath    = tmPath,
                                    IsServer      = true,
                                    SegmentNumber = translationUnit.ResourceId.Id.ToString()
                                };
                                var targetText = translationUnit.TargetSegment.ToPlain();
                                if (pi.ContainsPi(targetText))
                                {
                                    searchResult.TargetText        = targetText;
                                    searchResult.TargetMatchResult = new MatchResult
                                    {
                                        Positions = pi.GetPersonalDataPositions(targetText)
                                    };
                                }
                                sourceSearchResult.Add(searchResult);
                            }
                        }
                    }
                }
            });
            return(new AnonymizeTranslationMemory
            {
                TmPath = tmPath,
                TranslationUnits = allTusForLanguageDirections
            });
        }
Example #2
0
        public static AnonymizeTranslationMemory FileBaseTmGetTranslationUnits(string tmPath,
                                                                               ObservableCollection <SourceSearchResult> sourceSearchResult, List <Rule> selectedRules)
        {
            var tm =
                new FileBasedTranslationMemory(tmPath);
            var unitsCount = tm.LanguageDirection.GetTranslationUnitCount();
            var tmIterator = new RegularIterator(unitsCount);
            var tus        = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);

            System.Windows.Application.Current.Dispatcher.Invoke(delegate
            {
                var pi = new PersonalInformation(selectedRules);

                foreach (var translationUnit in tus)
                {
                    var sourceText = translationUnit.SourceSegment.ToPlain();
                    if (pi.ContainsPi(sourceText))
                    {
                        var searchResult = new SourceSearchResult
                        {
                            Id          = translationUnit.ResourceId.Guid.ToString(),
                            SourceText  = sourceText,
                            MatchResult = new MatchResult
                            {
                                Positions = pi.GetPersonalDataPositions(sourceText)
                            },
                            TmFilePath    = tmPath,
                            IsServer      = false,
                            SegmentNumber = translationUnit.ResourceId.Id.ToString()
                        };
                        var targetText = translationUnit.TargetSegment.ToPlain();
                        if (pi.ContainsPi(targetText))
                        {
                            searchResult.TargetText        = targetText;
                            searchResult.TargetMatchResult = new MatchResult
                            {
                                Positions = pi.GetPersonalDataPositions(targetText)
                            };
                        }
                        sourceSearchResult.Add(searchResult);
                    }
                }
            });
            return(new AnonymizeTranslationMemory
            {
                TmPath = tmPath,
                TranslationUnits = tus.ToList()
            });
        }