Exemple #1
0
        public List <ErrorReporting> Verify(ISegmentPair segmentPair, List <ExcludedRange> sourceExcludedRanges = null, List <ExcludedRange> targetExcludedRanges = null)
        {
            var errors = new List <ErrorReporting>();

            if (!VerificationSettings.ReportNumberFormatErrors)
            {
                return(errors);
            }

            var sourceText         = TextGenerator.GetPlainText(segmentPair.Source, false);
            var sourceNumberTokens = GetNumbersTokens(sourceText,
                                                      VerificationSettings.GetSourceDecimalSeparators(),
                                                      VerificationSettings.GetSourceThousandSeparators(), sourceExcludedRanges);

            var targetText         = TextGenerator.GetPlainText(segmentPair.Target, false);
            var targetNumberTokens = GetNumbersTokens(targetText,
                                                      VerificationSettings.GetTargetDecimalSeparators(),
                                                      VerificationSettings.GetTargetThousandSeparators(), targetExcludedRanges);

            foreach (var numberToken in targetNumberTokens.Where(a => !a.Valid))
            {
                errors.AddRange(GetErrorMessages(numberToken, false));
            }

            return(errors);
        }
Exemple #2
0
        public static TranslateRequest CreateTranslateRequest(ISegmentPair segmentPair, EngineMappingDetails engine)
        {
            var translateRequest = new TranslateRequest
            {
                Content = new Content
                {
                    InputFormat = "plain",
                    Text        = new[] { HttpUtility.UrlEncode(segmentPair.Source.ToString()) }
                },
                Definition = new Definition
                {
                    Resources = new List <Resource>()
                },
                LanguagePair = new LanguagePair
                {
                    Source = engine.SourceLang,
                    Target = engine.TargetLang
                }
            };
            var resource = new Resource
            {
                Type       = "MT",
                ResourceId = engine.Id
            };

            translateRequest.Definition.Resources.Add(resource);
            return(translateRequest);
        }
Exemple #3
0
 private static bool HasCommonSegment(ISegmentPair x, ISegmentPair y)
 {
     return(AreEqualSegments(x.BaseSegment, y.BaseSegment) ||
            AreEqualSegments(x.BaseSegment, y.RelatedSegment) ||
            AreEqualSegments(x.RelatedSegment, y.BaseSegment) ||
            AreEqualSegments(x.RelatedSegment, y.RelatedSegment));
 }
Exemple #4
0
 private void SetConformationLevel(ISegmentPair segmentPair)
 {
     if (Settings.ToSetDraft)
     {
         segmentPair.Properties.ConfirmationLevel = ConfirmationLevel.Draft;
     }
 }
Exemple #5
0
        private string GetContextType(ISegmentPair segmentPair)
        {
            var paragraphUnitProperties = segmentPair?.GetParagraphUnitProperties();
            var contextType             = GetContextType(paragraphUnitProperties);

            return(contextType);
        }
Exemple #6
0
        public static FeedbackRequest CreateFeedbackRequest(string translatedText, ISegmentPair segmentPair, EngineMappingDetails engine)
        {
            var feedbackRequest = new FeedbackRequest
            {
                LanguagePair = new LanguagePair
                {
                    Source = engine.SourceLang,
                    Target = engine.TargetLang
                },
                Source         = segmentPair.Source.ToString(),
                OriginalOutput = HttpUtility.HtmlDecode(translatedText),
                PostEdited     = segmentPair.Target.ToString(),
                Definition     = new Definition
                {
                    Resources = new List <Resource>()
                }
            };
            var resource = new Resource
            {
                Type       = "MT",
                ResourceId = engine.Id
            };

            feedbackRequest.Definition.Resources.Add(resource);

            return(feedbackRequest);
        }
Exemple #7
0
        public static List <string> GetColors(ISegmentPair segmentPair, DisplayFilterSettings.ContentLocation foundIn)
        {
            var paragraphUnit = ColorPickerHelper.GetParagraphUnit(segmentPair);

            var colors = new List <string>();

            if (foundIn == DisplayFilterSettings.ContentLocation.SourceAndTarget)
            {
                var sourceColors = paragraphUnit != null
                                        ? GetColorsList(paragraphUnit.Source, segmentPair.Source)
                                        : GetColorsList(segmentPair.Source);

                var targetColors = paragraphUnit != null
                                        ? GetColorsList(paragraphUnit.Target, segmentPair.Target)
                                        : GetColorsList(segmentPair.Target);

                foreach (var color in sourceColors)
                {
                    if (targetColors.Contains(color))
                    {
                        colors.Add(color);
                    }
                }
            }
            else if (foundIn == DisplayFilterSettings.ContentLocation.SourceOrTarget)
            {
                var sourceColors = paragraphUnit != null
                                        ? GetColorsList(paragraphUnit.Source, segmentPair.Source)
                                        : GetColorsList(segmentPair.Source);

                var targetColors = paragraphUnit != null
                                        ? GetColorsList(paragraphUnit.Target, segmentPair.Target)
                                        : GetColorsList(segmentPair.Target);

                colors = sourceColors;

                foreach (var color in targetColors)
                {
                    if (!colors.Contains(color))
                    {
                        colors.Add(color);
                    }
                }
            }
            else if (foundIn == DisplayFilterSettings.ContentLocation.Source)
            {
                colors = paragraphUnit != null
                                        ? GetColorsList(paragraphUnit.Source, segmentPair.Source)
                                        : GetColorsList(segmentPair.Source);
            }
            else if (foundIn == DisplayFilterSettings.ContentLocation.Target)
            {
                colors = paragraphUnit != null
                                        ? GetColorsList(paragraphUnit.Target, segmentPair.Target)
                                        : GetColorsList(segmentPair.Target);
            }

            return(colors);
        }
        public string GetSourceText(ISegmentPair segmentPair)
        {
            _textStringBuilder = new StringBuilder();

            VisitChildren(segmentPair.Source);

            return(_textStringBuilder.ToString());
        }
        public string GetSegmentPairId(ISegmentPair segmentPair)
        {
            var paragraphId   = segmentPair.GetParagraphUnitProperties().ParagraphUnitId.Id;
            var segmentId     = segmentPair.Properties.Id.Id;
            var segmentPairId = paragraphId + ";" + segmentId;

            return(segmentPairId);
        }
        private void UpdateTargetSegment(ISegmentPair segmentPair, SegmentPair importedSegmentPair, SegmentPairInfo segmentPairInfo)
        {
            var sourceSegment = segmentPair.Source;
            var targetSegment = segmentPair.Target;

            var originalSource = (ISegment)sourceSegment.Clone();
            var originalTarget = (ISegment)targetSegment.Clone();

            if (_importBackTranslations &&
                importedSegmentPair.TranslationOrigin != null &&
                importedSegmentPair.TranslationOrigin.MetaDataContainsKey("back-translation"))
            {
                var backTranslation       = importedSegmentPair.TranslationOrigin.GetMetaData("back-translation");
                var backTranslationTokens = JsonConvert.DeserializeObject <List <Token> >(backTranslation);
                targetSegment = _segmentBuilder.GetUpdatedSegment(targetSegment,
                                                                  backTranslationTokens, sourceSegment);
            }
            else
            {
                // clear the existing content from the target segment
                targetSegment.Clear();

                var containers = new Stack <IAbstractMarkupDataContainer>();
                containers.Push(targetSegment);

                var lockedContentId = 0;
                foreach (var element in importedSegmentPair.Target.Elements)
                {
                    if (element is ElementComment elementComment)
                    {
                        UpdateComment(elementComment, containers);
                    }

                    if (element is ElementTagPair elementTagPair)
                    {
                        UpdateTagPair(elementTagPair, originalTarget, originalSource, containers);
                    }

                    if (element is ElementLocked elementLocked)
                    {
                        lockedContentId = UpdateLockedContent(elementLocked, lockedContentId, originalTarget,
                                                              originalSource, containers);
                    }

                    if (element is ElementPlaceholder elementPlaceholder)
                    {
                        UpdatePlaceholder(elementPlaceholder, originalTarget, originalSource, containers);
                    }

                    if (element is ElementText elementText && !string.IsNullOrEmpty(elementText.Text))
                    {
                        UpdateText(elementText, containers);
                    }
                }
            }

            UpdateTranslationOrigin(originalTarget, targetSegment, segmentPairInfo, importedSegmentPair.ConfirmationLevel);
        }
        private bool SkipSegment(ISegmentPair segmentPair)
        {
            ITranslationOrigin origin    = segmentPair.Properties.TranslationOrigin;
            ConfirmationLevel  confLevel = segmentPair.Properties.ConfirmationLevel;

            if (_convertSettings.ExcludeExportType == GeneratorSettings.ExclusionType.Locked &&
                segmentPair.Properties.IsLocked)
            {
                return(true);
            }
            else
            {
                if (_convertSettings.ExcludeExportType == GeneratorSettings.ExclusionType.Status)
                {
                    if (_convertSettings.ExcludedStatuses.Contains(confLevel))
                    {
                        return(true);
                    }
                }
                else
                {
                    if (origin == null)
                    {
                        if (_convertSettings.DontExportNoMatch)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }

                    if ((origin.TextContextMatchLevel == TextContextMatchLevel.SourceAndTarget) &&
                        _convertSettings.DontExportContext)
                    {
                        return(true);
                    }
                    else
                    {
                        if (origin.MatchPercent == 100 && _convertSettings.DontExportExact)
                        {
                            return(true);
                        }
                        if ((origin.MatchPercent > 0 && origin.MatchPercent < 100) && _convertSettings.DontExportFuzzy)
                        {
                            return(true);
                        }
                        if (origin.MatchPercent == 0 && _convertSettings.DontExportNoMatch)
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
Exemple #12
0
 private bool FilterSegmentPairs(ISegmentPair segmentPair)
 {
     return((VerificationSettings.ExcludeLockedSegments.Value == false ||
             segmentPair.Properties.IsLocked == false) &&
            (VerificationSettings.Exclude100Percents.Value == false ||
             ((segmentPair.Properties.TranslationOrigin.OriginType != "auto-propagated" &&
               segmentPair.Properties.TranslationOrigin.OriginType != "tm") ||
              segmentPair.Properties.TranslationOrigin.MatchPercent != 100)));
 }
        public void RemoveTm(ISegmentPair segmentPair, IBatchAnonymizerSettings anonymizerSettings)
        {
            var translationOrigin = segmentPair?.Properties?.TranslationOrigin;

            if (translationOrigin != null && IsTmTransaltion(translationOrigin))
            {
                AnonymizeTranslationOrigin(segmentPair, anonymizerSettings, translationOrigin);
            }
        }
 public static OriginType GetOriginType(this ISegmentPair segmentPair)
 {
     if (segmentPair == null ||
         segmentPair.Properties == null ||
         segmentPair.Properties.TranslationOrigin == null)
     {
         return(OriginType.None);
     }
     return(segmentPair.Properties.TranslationOrigin.GetOriginType());
 }
 private static void AddSegmentPair(List <ISegmentPair> selectedSegmentPairs, ISegmentPair newSegmentPair)
 {
     if (newSegmentPair == null)
     {
         return;
     }
     if (selectedSegmentPairs.All(sp => sp.Properties.Id != newSegmentPair.Properties.Id))
     {
         selectedSegmentPairs.Add(newSegmentPair);
     }
 }
Exemple #16
0
 private bool FilterSegmentPairs(ISegmentPair segmentPair)
 {
     return((VerificationSettings.ExcludeLockedSegments == false ||
             segmentPair.Properties.IsLocked == false) &&
            (VerificationSettings.Exclude100Percents == false ||
             ((segmentPair.Properties.TranslationOrigin.OriginType != "auto-propagated" &&
               segmentPair.Properties.TranslationOrigin.OriginType != "tm") ||
              segmentPair.Properties.TranslationOrigin.MatchPercent != 100)) &&
            !(VerificationSettings.ExcludeUntranslatedSegments == true && segmentPair.Properties.ConfirmationLevel == ConfirmationLevel.Unspecified) &&
            !(VerificationSettings.ExcludeDraftSegments == true && segmentPair.Properties.ConfirmationLevel == ConfirmationLevel.Draft));
 }
Exemple #17
0
        public void SetMergedParagraphMarker(ISegmentPair segmentPair)
        {
            var translationOrigin = segmentPair.Properties.TranslationOrigin ?? _segmentBuilder.CreateTranslationOrigin();

            if (translationOrigin != null)
            {
                translationOrigin.OriginSystem = Constants.MergedParagraph;
            }

            segmentPair.Properties.TranslationOrigin = translationOrigin;
            segmentPair.Properties.IsLocked          = true;
        }
Exemple #18
0
        private int GetSelectedIndex(IReadOnlyList <ISegmentPair> segmentPairs, ISegmentPair selectedSegmentPair)
        {
            for (var index = 0; index < segmentPairs.Count; index++)
            {
                var segmentPair = segmentPairs[index];
                if (segmentPair.Properties.Id == selectedSegmentPair.Properties.Id)
                {
                    return(index);
                }
            }

            return(-1);
        }
Exemple #19
0
        public void AnonymizeCreatedByAndEdited(ISegmentPair segmentPair, IBatchAnonymizerSettings anonymizerSettings)
        {
            var translationOrigin = segmentPair.Properties.TranslationOrigin;

            if (anonymizerSettings.CreatedByChecked)
            {
                EditUserMetadata(translationOrigin, "created_by", anonymizerSettings.CreatedByName);
            }
            if (anonymizerSettings.ModifyByChecked)
            {
                EditUserMetadata(translationOrigin, "last_modified_by", anonymizerSettings.ModifyByName);
            }
        }
        public static bool IsSourceEqualsToTarget(ISegmentPair segmentPair, bool caseSensitive)
        {
            if (segmentPair.Source.ToString() != string.Empty && segmentPair.Target.ToString() != string.Empty)
            {
                var textVisitor = new SegmentTextVisitor();
                var sourceText  = textVisitor.GetText(segmentPair.Source);
                var targetText  = textVisitor.GetText(segmentPair.Target);

                var isEqual = string.Compare(sourceText, targetText, !caseSensitive);
                return(isEqual.Equals(0));
            }
            return(false);
        }
Exemple #21
0
        private void UpdateTargetSegment(ISegmentPair segmentPair, SegmentPair importedSegmentPair, SegmentPairInfo segmentPairInfo)
        {
            var targetSegment = segmentPair.Target;

            var originalSource = (ISegment)segmentPair.Source.Clone();
            var originalTarget = (ISegment)targetSegment.Clone();

            // clear the existing content from the target segment
            targetSegment.Clear();

            var containers = new Stack <IAbstractMarkupDataContainer>();

            containers.Push(targetSegment);

            var lockedContentId = 0;

            foreach (var element in importedSegmentPair.Target.Elements)
            {
                if (element is ElementComment elementComment)
                {
                    UpdateComment(elementComment, containers);
                }

                if (element is ElementTagPair elementTagPair)
                {
                    UpdateTagPair(elementTagPair, originalTarget, originalSource, containers);
                }

                if (element is ElementLocked elementLocked)
                {
                    lockedContentId = UpdateLockedContent(elementLocked, lockedContentId, originalTarget, originalSource, containers);
                }

                if (element is ElementPlaceholder elementPlaceholder)
                {
                    UpdatePlaceholder(elementPlaceholder, originalTarget, originalSource, containers);
                }

                if (element is ElementGenericPlaceholder genericPlaceholder)
                {
                    UpdateGenericPlaceholder(genericPlaceholder, originalTarget, originalSource, containers);
                }

                if (element is ElementText elementText && !string.IsNullOrEmpty(elementText.Text))
                {
                    UpdateText(elementText, containers);
                }
            }

            UpdateTranslationOrigin(originalTarget, targetSegment, segmentPairInfo);
        }
 // Ignore when translations exists and segments are merged.
 // When segments are merged, always the last one becomes empty and is removed. Eg: when merging segment 4 and 5, the text is added inside segment 4,
 // and segment 5 becomes empty and hidden from Editor
 private bool CheckMergedSegments(SearchResults[] results, ISegmentPair activeSegmentPair, int segmentIndex)
 {
     if (activeSegmentPair != null)
     {
         var activeSegmentPairId = int.TryParse(activeSegmentPair.Target.Properties.Id.Id, out _) ? int.Parse(activeSegmentPair.Target.Properties.Id.Id) : 0;
         var nextSegmentPair     = _editorController?.ActiveDocument?.SegmentPairs?.SkipWhile(s => s.Properties.Id.Id != activeSegmentPairId.ToString()).Skip(1)?.FirstOrDefault();
         if (activeSegmentPair.Target.Count > 0 && (nextSegmentPair == null || nextSegmentPair.Source.Count() == 0))
         {
             results[segmentIndex] = null;
             return(true);
         }
     }
     return(false);
 }
        private void AddComments(ISegmentPair segmentPair)
        {
            var paragraphInfo = segmentPair?.GetParagraphUnitProperties();

            if (paragraphInfo?.Comments?.Comments == null)
            {
                return;
            }

            foreach (var comment in paragraphInfo.Comments.Comments)
            {
                _comments.Add(comment);
            }
        }
Exemple #24
0
        public void RemoveMt(ISegmentPair segmentPair, IBatchAnonymizerSettings anonymizerSettings)
        {
            var translationOrigin      = segmentPair?.Properties?.TranslationOrigin;
            var originBeforeAdaptation = segmentPair?.Properties?.TranslationOrigin?.OriginBeforeAdaptation;

            if (translationOrigin != null && IsAutomatedTranslated(translationOrigin))
            {
                AnonymizeMtTranslationOrigin(segmentPair, anonymizerSettings, translationOrigin);
            }
            if (originBeforeAdaptation != null && IsAutomatedTranslated(originBeforeAdaptation))
            {
                AnonymizeMtTranslationOrigin(segmentPair, anonymizerSettings, originBeforeAdaptation);
            }
        }
Exemple #25
0
        public void RemoveTm(ISegmentPair segmentPair, IBatchAnonymizerSettings anonymizerSettings)
        {
            var translationOrigin      = segmentPair?.Properties?.TranslationOrigin;
            var originBefereAdaptation = segmentPair?.Properties?.TranslationOrigin.OriginBeforeAdaptation;

            if (translationOrigin != null && IsTmTransaltion(translationOrigin))
            {
                AnonymizeTmTransaltionOrigin(anonymizerSettings, translationOrigin);
            }
            if (originBefereAdaptation != null && IsTmTransaltion(originBefereAdaptation))
            {
                AnonymizeTmTransaltionOrigin(anonymizerSettings, originBefereAdaptation);
            }
        }
Exemple #26
0
        public void SetMergedParagraphMetaData(ISegmentPair segmentPair)
        {
            var translationOrigin = segmentPair.Properties.TranslationOrigin ?? _segmentBuilder.CreateTranslationOrigin();

            if (translationOrigin != null)
            {
                if (!translationOrigin.MetaDataContainsKey("MergeStatus"))
                {
                    translationOrigin.SetMetaData("MergeStatus", "MergedParagraph");
                }
            }

            segmentPair.Properties.TranslationOrigin = translationOrigin;
        }
        private static void RemoveHighlightColor(ISegmentPair segmentPair)
        {
            var item = segmentPair.Target.AllSubItems.FirstOrDefault();

            if (item is ITagPair tagPair)
            {
                if (tagPair.StartTagProperties?.Formatting != null &&
                    tagPair.StartTagProperties.MetaDataContainsKey(CadfBackgroundColorKey))
                {
                    segmentPair.Target.Clear();
                    tagPair.MoveAllItemsTo(segmentPair.Target);
                }
            }
        }
Exemple #28
0
        public SegmentSearcherViewPartControl()
        {
            InitializeComponent();
            var toolTip = new ToolTip();

            toolTip.AutoPopDelay = 5000;
            toolTip.InitialDelay = 1000;
            toolTip.ReshowDelay  = 500;
            toolTip.ShowAlways   = true;
            toolTip.SetToolTip(searchButton, "Execute search.");
            toolTip.SetToolTip(returnButton, "Return to the segment where you executed search.");
            _currentDoc         = null;
            _currentSegmentPair = null;
            searchResultsWebBrowser.ObjectForScripting = this;
        }
Exemple #29
0
        private void FillSegment(ISegmentPair segmentPair, XmlNode node, bool source)
        {
            ISegment seg;

            if (source)
            {
                seg = segmentPair.Source;
            }
            else
            {
                seg = segmentPair.Target;
            }

            node.InnerText = textExtractor.GetPlainText(seg);
        }
Exemple #30
0
        private bool SkipSegment(ISegmentPair segmentPair)
        {
            if (_exportOptions.ExcludeFilterIds == null)
            {
                return(false);
            }


            var status = segmentPair.Properties.ConfirmationLevel.ToString();
            var match  = Enumerators.GetTranslationOriginType(segmentPair.Target.Properties.TranslationOrigin, _analysisBands);

            return(segmentPair.Properties.IsLocked && _exportOptions.ExcludeFilterIds.Exists(a => a == "Locked") ||
                   _exportOptions.ExcludeFilterIds.Exists(a => a == status) ||
                   _exportOptions.ExcludeFilterIds.Exists(a => a == match));
        }
        private bool SkipSegment(ISegmentPair segmentPair)
        {
            ITranslationOrigin origin = segmentPair.Properties.TranslationOrigin;
            ConfirmationLevel confLevel = segmentPair.Properties.ConfirmationLevel;

            if (_convertSettings.ExcludeExportType == GeneratorSettings.ExclusionType.Status)
            {
                if (_convertSettings.ExcludedStatuses.Contains(confLevel))
                {
                    return true;
                }
            }
            else
            {
                if (origin == null)
                {
                    if (_convertSettings.DontExportNoMatch)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }

                if ((origin.TextContextMatchLevel == TextContextMatchLevel.SourceAndTarget) &&
                    _convertSettings.DontExportContext)
                {

                    return true;
                }
                else
                {
                    if (origin.MatchPercent == 100 && _convertSettings.DontExportExact)
                    {
                        return true;
                    }
                    if ((origin.MatchPercent > 0 && origin.MatchPercent < 100) && _convertSettings.DontExportFuzzy)
                    {
                        return true;
                    }
                    if (origin.MatchPercent == 0 && _convertSettings.DontExportNoMatch)
                    {
                        return true;
                    }
                }
            }
            return false;
        }
 private bool FilterSegmentPairs(ISegmentPair segmentPair)
 {
     return (VerificationSettings.ExcludeLockedSegments.Value == false ||
             segmentPair.Properties.IsLocked == false) &&
            (VerificationSettings.Exclude100Percents.Value == false ||
             ((segmentPair.Properties.TranslationOrigin.OriginType != "auto-propagated" &&
               segmentPair.Properties.TranslationOrigin.OriginType != "tm") ||
              segmentPair.Properties.TranslationOrigin.MatchPercent != 100));
 }