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); }
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); }
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)); }
private void SetConformationLevel(ISegmentPair segmentPair) { if (Settings.ToSetDraft) { segmentPair.Properties.ConfirmationLevel = ConfirmationLevel.Draft; } }
private string GetContextType(ISegmentPair segmentPair) { var paragraphUnitProperties = segmentPair?.GetParagraphUnitProperties(); var contextType = GetContextType(paragraphUnitProperties); return(contextType); }
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); }
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); }
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); } }
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)); }
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; }
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); }
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); }
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); } }
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); } }
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); } }
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); } } }
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; }
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); }
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)); }