if ( cont.contentIsOneSegment() ) { if ( contentIsOneSegment() ) { return getFirstContent().compareTo(cont.getFirstContent(), codeSensitive); res = getUnSegmentedContentCopy().compareTo(cont.getFirstContent(), codeSensitive); if ( contentIsOneSegment() ) { res = getFirstContent().compareTo(cont.getUnSegmentedContentCopy(), codeSensitive); res = getUnSegmentedContentCopy().compareTo(cont.getUnSegmentedContentCopy(), codeSensitive); for ( Range range : cont.getSegments().getRanges() ) { tmp2.append(range.toString());
if (Util.isEmpty(params.splicer)) return false; TextContainer mergedLine = new TextContainer(); TextFragment mergedTF = mergedLine.getFirstContent(); int len = params.splicer.length(); TextFragment curTF = curLine.getFirstContent(); int pos = TextUnitUtil.lastIndexOf(curLine.getFirstContent(), params.splicer); if (pos > -1) if (params.createPlaceholders) curTF.remove(pos, pos + len); if (mergedLine.isEmpty()) // Paragraph's first line mergedLine.setProperty(curLine.getProperty(AbstractLineFilter.LINE_NUMBER)); else if (params.createPlaceholders)
if (tc1.hasBeenSegmented() != tc2.hasBeenSegmented()) { LOGGER.warn("compareTextContainer warning: hasBeenSegmented difference."); return false; if( !tc1.getPropertyNames().equals(tc2.getPropertyNames()) ){ LOGGER.warn("compareTextContainer warning: TextContainer properties difference. [tc1:{}\ttc2:{}]", tc1.getPropertyNames(), tc2.getPropertyNames()); if(!allowPropValChanges){ return false; for (String name : tc1.getPropertyNames()) { if(!compareProperties(tc1.getProperty(name), tc2.getProperty(name))){ if(!allowPropValChanges){ return false; if (tc1.count() != tc2.count()) { LOGGER.warn("compareTextContainer warning: TextPart count difference.\n" + "tc1={}\ntc2={}", tc1.count(), tc2.count() ); return false; Iterator<TextPart> it1 = tc1.iterator(); Iterator<TextPart> it2 = tc2.iterator();
/** * Converts a string created by {@link #contentToString(TextContainer)} * back into a TextContainer. * * @param data the string to process. * @return a new TextConatiner with the stored content re-created. */ public static TextContainer stringToContent (String data) { TextContainer tc = new TextContainer(); return tc.setContentFromString(data); }
@Override public void removeAllSegmentations () { // Desegment the source if needed if ( getSource().hasBeenSegmented() ) { getSource().joinAll(); } // Desegment all targets as needed for ( Entry<LocaleId, TextContainer> entry : targets.entrySet() ) { if ( entry.getValue().hasBeenSegmented() ) { entry.getValue().joinAll(); } } }
@Override public TextFragment setSourceContent (TextFragment content) { getSource().setContent(content); return getSource().getFirstContent(); }
String originalSource = StringUtil.removeWhiteSpace(tuFromSkel.getSource().createJoinedContent().getText()); String sourceFromTranslated = StringUtil.removeWhiteSpace(tuFromTran.getSource().createJoinedContent().getText()); if (!originalSource.equals(sourceFromTranslated)) { String s = String.format( tuFromSkel.hasTarget(trgLoc) ? tuFromSkel.getTarget(trgLoc).clone() : null; TextContainer mergeFromSkel = targetFromSkel == null || targetFromSkel.isEmpty() ? sourceFromSkel: targetFromSkel.clone(); targetFromTran = tuFromTran.getTarget(trgLoc).clone(); } else { targetFromTran = tuFromTran.getSource().clone(); if ( tuFromSkel.getSource().hasText() ) { Property traProp = targetFromTran.getProperty(Property.APPROVED); if ( traProp != null ) { isTransApproved = traProp.getValue().equals("yes"); if ( !mergeFromSkel.contentIsOneSegment() ) { srcRanges = mergeFromSkel.getSegments().getRanges(); mergeFromSkel.joinAll(); if ( !targetFromTran.contentIsOneSegment() ) { for (TextPart tp : targetFromTran.getSegments()) { if (TextUnitUtil.hasMergedCode(tp.text)) {
return; // No target if ( !tu.getSource().hasText(false) ) { return; // Empty or no-text source if ( !tc.isEmpty() ) { if ( tu.hasTargetProperty(trgLoc, Property.APPROVED) ) { if ( tu.getTargetProperty(trgLoc, Property.APPROVED).getValue().equals("yes") ) { if ( tu.getSource().compareTo(tc, true) != 0 ) { ISegments srcSegs = tu.getSource().getSegments(); for ( Segment seg : tc.getSegments() ) { Segment srcSeg = srcSegs.get(seg.id); if ( srcSeg == null ) continue; if ( tu.getSource().contentIsOneSegment() ) { srcOriginal = tu.getSource().getFirstContent(); srcOriginal = tu.getSource().getUnSegmentedContentCopy(); writeAltTranslations(tc.getAnnotation(AltTranslationsAnnotation.class), srcOriginal);
@Override public ISegments getTargetSegments (LocaleId trgLoc) { return createTarget(trgLoc, false, IResource.COPY_SEGMENTATION).getSegments(); }
if ( oriTu.getSource().hasText() ) { if ( !srcOriCont.getUnSegmentedContentCopy().getCodedText().equals( srcTraCont.getUnSegmentedContentCopy().getCodedText()) ) { logger.warn("Item id='{}': Original source and source in the translated file are different.\n" + "Cannot use the source of the translation as the new segmented source.", if ( !srcOriCont.contentIsOneSegment() ) { if ( mergeAsSegments ) { srcRanges = srcOriCont.getSegments().getRanges(); srcOriCont.joinAll(); if ( !srcTraCont.contentIsOneSegment() ) { srcRanges = srcTraCont.getSegments().getRanges(); if ( !srcOriCont.contentIsOneSegment() ) { srcRanges = srcOriCont.getSegments().getRanges(); if ( !trgTraCont.contentIsOneSegment() ) { trgRanges = trgTraCont.getSegments().getRanges(); trgTraCont.joinAll(); TextUnitUtil.copySrcCodeDataToMatchingTrgCodes(srcOriCont.getFirstContent(), trgTraCont.getFirstContent(), true, true, null, oriTu); srcOriCont.getSegments().create(srcRanges, true);
/** * Gets the coded text of the first part of the source of a given text unit resource. * * @param textUnit * the text unit resource which source text should be returned. * @return the source part of the given text unit resource. */ public static String getSourceText (ITextUnit textUnit) { // if ( textUnit == null ) return ""; // return getCodedText(textUnit.getSourceContent()); return textUnit.getSource().getFirstContent().getCodedText(); }
if (!tu.getTarget(targetLocale).hasText()) { if (tu.getSource().hasBeenSegmented()) { for (Segment srcSeg : tu.getSourceSegments()) { if (!srcSeg.text.hasText()) { Segment trgSeg = tu.getTarget(targetLocale).getSegments().get(srcSeg.id); if (trgSeg != null) { ata = trgSeg.getAnnotation(AltTranslationsAnnotation.class); at.getTarget().getCodedText(), at.getTarget().getFirstContent().getClonedCodes()); trgSeg.text = tf; ata = tu.getTarget(targetLocale).getAnnotation(AltTranslationsAnnotation.class); if (ata != null) { tu.setTargetContent(targetLocale, at.getTarget().getFirstContent());
int score = 100; if (sourceEvent.getTextUnit().getSource().hasBeenSegmented()) { throw new OkapiBadStepInputException("IdBasedAlignerStep only aligns unsegmented text units."); !sourceTu.getSource().hasText()) { return sourceEvent; if ( srcRefTc.compareTo(alignedTextUnit.getSource(), true) == 0 ) { refTc = refTu.getTarget(targetLocale); if (( refTc != null ) && refTc.hasText()) { alignedTextUnit.getSource().getFirstContent().alignCodeIds(refTc.getFirstContent()); sourceTu.getSource().getFirstContent(), refTc.getFirstContent(), true, false, null, alignedTextUnit); targetTC.setContent(tf); Property prop = refTc.getProperty(Property.APPROVED); if ( prop != null ) targetTC.setProperty(prop.clone()); alignedTextUnit.getSource().getUnSegmentedContentCopy(), null, tf, MatchType.EXACT_UNIQUE_ID, score, getName());
if (!tu.getSource().isEmpty()) { logger.warn("Item id=\"{}\": No translation provided; using source instead.", tu.getId()); return; // Use the source if (tuFromTrans.getSource().isEmpty()) return; if (!fromTrans.contentIsOneSegment()) { fromTrans.getSegments().joinAll(trgRanges); if (!tu.getSource().contentIsOneSegment()) { srcCont = tu.getSource().clone(); srcCont.getSegments().joinAll(); if (!trgCont.contentIsOneSegment()) { trgCont.getSegments().joinAll(); trgCont.getFirstContent().setCodedText(fromTrans.getCodedText(), transCodes, false); trgCont.getSegments().create(trgRanges); tu.getSource().getSegments().create(srcRanges);
if ( !tc.hasBeenSegmented() ) { atAnn = tc.getAnnotation(AltTranslationsAnnotation.class); if ( atAnn != null ) { for ( AltTranslation at : atAnn ) { TextFragment srcFrag = at.getSource().getFirstContent(); if ( srcFrag.isEmpty() ) { srcFrag = tu.getSource().getFirstContent(); TextFragment trgFrag = at.getTarget().getFirstContent(); if ( trgFrag.isEmpty() ) continue; // Skip possible empty entries for ( Segment seg : tc.getSegments() ) { TextFragment srcFrag = at.getSource().getFirstContent(); Segment srcSeg = tu.getSource().getSegments().get(seg.id); if ( srcSeg == null ) continue; // No source: skip it srcFrag = srcSeg.text; TextFragment trgFrag = at.getTarget().getFirstContent(); if ( trgFrag.isEmpty() ) continue; // Skip possible empty entries
if ( srcCont.hasBeenSegmented() && trgCont.hasBeenSegmented() ) { pstm = conn.prepareStatement(String.format("INSERT INTO %s (%s,%s,%s,%s,%s,%s,%s) VALUES(?,?,?,?,?,?,?);", TBLNAME, NTYPE, NSRCTEXT, NSRCCODES, NTRGTEXT, NTRGCODES, NGRPNAME, NFILENAME)); pstm.setString(6, grpName); pstm.setString(7, fileName); ISegments trgSegs = trgCont.getSegments(); for ( Segment srcSeg : srcCont.getSegments() ) { pstm.setString(2, srcSeg.text.getCodedText()); pstm.setString(1, tu.getName()); pstm.setString(2, tu.getType()); pstm.setString(3, srcCont.getCodedText()); pstm.setString(4, Code.codesToString(srcCont.getFirstContent().getCodes(), true)); pstm.setString(5, trgCont.getCodedText()); pstm.setString(6, Code.codesToString(trgCont.getFirstContent().getCodes(), true)); pstm.setString(7, grpName); pstm.setString(8, fileName);
private void procEndElemAddToTuContent(EndElement endElement, ITextUnit tu) { StringBuilder sb = new StringBuilder(); sb.append("</" + endElement.getName().getLocalPart() + ">"); if (ts.currentMessageLocation == MessageLocation.SOURCE) { TextContainer tc = tu.getSource(); if (!tc.hasText()) { skel.addContentPlaceholder(tu); } tc.getFirstContent().append(sb.toString()); } else if (ts.currentMessageLocation == MessageLocation.TARGET) { TextContainer tc = tu.getTarget(trgLang); if (!tc.hasText()) { skel.addContentPlaceholder(tu, trgLang); } tc.getFirstContent().append(sb.toString()); } }
if (( trgCont == null ) || trgCont.isEmpty() ) { if ( srcCont.hasBeenSegmented() || !srcCont.contentIsOneSegment() || trgCont.hasBeenSegmented() || !trgCont.contentIsOneSegment() || ( trgCont.getAnnotation(AltTranslationsAnnotation.class) != null )) TextFragment tf = trgCont.getFirstContent();
private void writeQuotedContent (TextContainer tc) { try { String tmp; if ( tc.contentIsOneSegment() ) { tmp = GenericContent.fromFragmentToLetterCoded(tc.getFirstContent(), true); } else { // If the container is segmented tmp = GenericContent.fromFragmentToLetterCoded(tc.getUnSegmentedContentCopy(), true); } tmp = escapeIfNeeded(tmp); writer.write("\""); writer.write(tmp); // No wrapping needed writer.write("\""); } catch ( IOException e ) { throw new OkapiIOException("Error writing a quoted text.", e); } }
if ( tu == null || !tu.getSource().hasText() || !tu.isTranslatable() ) continue; if ( trgCont != null ) trgSegs = trgCont.getSegments(); for ( Segment srcSeg : tu.getSource().getSegments() ) { if (( trgSegs != null ) && trgCont.hasBeenSegmented() ) { Segment ts = trgSegs.get(srcSeg.getId()); if ( hasAlreadyCandidate(ts, null) ) continue; ISegments trgSegs = trgCont.getSegments(); for ( Segment srcSeg : tu.getSource().getSegments() ) { if ( trgCont.hasBeenSegmented() ) {