public static boolean isApproved(ITextUnit tu, LocaleId targetLocale) { if ( !tu.isTranslatable() ) return false; Property prop = tu.getTargetProperty(targetLocale, Property.APPROVED); if ( prop != null ) { if ( "yes".equals(prop.getValue()) ) return true; } return false; }
@Override protected void processTextUnit (Event event) { // Skip non-translatable ITextUnit tu = event.getTextUnit(); if ( !tu.isTranslatable() ) return; writer.handleEvent(event); }
/** * Call this method inside the overriding {@link #leverage(ITextUnit)} method * of the derived class, if that class offers a fast {@link #batchQuery(List)} method. * @param tu the text unit to leverage. */ protected void leverageUsingBatchQuery (ITextUnit tu) { if (( tu == null ) || !tu.getSource().hasText() || !tu.isTranslatable() ) { return; // No need to query } List<ITextUnit> tuList = new ArrayList<ITextUnit>(); tuList.add(tu); batchLeverageUsingBatchQuery(tuList); }
@Override protected void processTextUnit(Event event) { // Skip non-translatable ITextUnit tu = event.getTextUnit(); if (!tu.isTranslatable()) return; writer.handleEvent(event); writeTMXEntries(event.getTextUnit()); }
@Override protected Event handleTextUnit (Event event) { ITextUnit tu = event.getTextUnit(); // Skip non-translatable if ( !tu.isTranslatable() ) return event; TextContainer tc = tu.createTarget(targetLocale, false, IResource.COPY_ALL); for ( TextPart part : tc ) { processFragment(part.getContent()); } return event; }
@Override protected void processTextUnit (Event event) { // Skip non-translatable ITextUnit tu = event.getTextUnit(); if ( !tu.isTranslatable() ) return; writer.handleEvent(event); writeTMXEntries(event.getTextUnit()); }
@Override protected void processTextUnit (Event event) { // Skip non-translatable ITextUnit tu = event.getTextUnit(); if ( !tu.isTranslatable() ) return; writer.handleEvent(event); writeTMXEntries(event.getTextUnit()); }
@Override protected void processTextUnit (Event event) { // Skip non-translatable ITextUnit tu = event.getTextUnit(); if ( !tu.isTranslatable() ) return; potWriter.handleEvent(event); trgWriter.handleEvent(event); writeTMXEntries(event.getTextUnit()); }
private boolean canLeverageTu(ITextUnit tu) { // Do not leverage non-translatable entries if (!tu.isTranslatable()) { return false; } boolean approved = false; Property prop = tu.getTargetProperty(targetLocale, Property.APPROVED); if (prop != null) { if ("yes".equals(prop.getValue())) approved = true; } // Do not leverage entries without text if ( !tu.getSource().hasText() ) { return false; } // Do not leverage pre-approved entries if (approved) { return false; } // do not leverage if has been Diff Leveraged if (wasDiffLeveraged(tu)) { return false; } return true; }
@Override protected Event handleTextUnit (Event event) { if ( !params.getLeverage() ) return event; ITextUnit tu = event.getTextUnit(); // Do not leverage non-translatable entries if ( !tu.isTranslatable() ) return event; boolean approved = false; Property prop = tu.getTargetProperty(targetLocale, Property.APPROVED); if ( prop != null ) { if ( "yes".equals(prop.getValue()) ) approved = true; } // Do not leverage pre-approved entries if ( approved ) return event; // Leverage qm.leverage(tu); // Optionally write out this TU if ( tmxWriter != null ) { tmxWriter.writeAlternates(tu, targetLocale); } return event; }
ITextUnit tu = event.getTextUnit(); if ( !tu.isTranslatable() ) return event;
@Override public Event handleTextUnit(Event event) { ITextUnit tu = event.getTextUnit(); if (tu.isTranslatable() || params.isCreateOnNonTranslatable()) { // Initialize the copy options int copyOptions = IResource.CREATE_EMPTY; if (params.isCopyContent()) { copyOptions |= IResource.COPY_SEGMENTED_CONTENT; } if (params.isCopyProperties()) { copyOptions |= IResource.COPY_PROPERTIES; } tu.createTarget(targetLocale, params.isOverwriteExisting(), copyOptions); } return event; }
@Override protected Event handleTextUnit(Event event) { ITextUnit tu = event.getTextUnit(); if (tu.isEmpty()) return event; if (!tu.isTranslatable() && countOnlyTranslatable()) return event; source = tu.getSource(); if (params.getBufferSize() > 0) { if (sb == null) { sb = new StringBuilder(params.getBufferSize()); } // Non-translatable text doesn't get here String srcText = tu.getSource().getUnSegmentedContentCopy().getText(); sb.append(srcText); if (sb.length() >= params.getBufferSize()) { flushBuffer(); } return event; } updateCounts(tu, event); return event; } }
/** * Simplifies all possible tags in the source part of a given text unit resource. If the * TextUnit has a target then skip simplification. * @param textUnit the given text unit * @param rules rules for the data-driven simplification * @param removeLeadingTrailingCodes true to remove leading and/or trailing codes * of the source part and place their text in the corresponding inter-segment TextPart. * @param mergeCodes true to merge adjacent codes, false to leave as-is */ public static void simplifyCodesPostSegmentation(ITextUnit textUnit, String rules, boolean removeLeadingTrailingCodes, boolean mergeCodes) { if (textUnit == null || TextUnitUtil.isEmpty(textUnit) || !textUnit.isTranslatable()) { return; } // source simplifyCodesPostSegmentation(textUnit.getSource(), rules, removeLeadingTrailingCodes, mergeCodes); // codes can become desynchronized in target - depend on TextUnitMerger // to align codes and reset matching id's for (LocaleId tl : textUnit.getTargetLocales()) { simplifyCodesPostSegmentation(textUnit.getTarget(tl), rules, removeLeadingTrailingCodes, mergeCodes); } }
@Override protected Event handleTextUnit (Event event) { ITextUnit tu = event.getTextUnit(); // Skip non-translatable if ( !tu.isTranslatable() ) { return event; } // Else: do the requested modifications // Make sure we have a target where to set data TextContainer cont = tu.createTarget(trgLang, false, IResource.COPY_ALL); String res; try { for ( TextPart part : cont ) { if ( params.getConversionType() == Parameters.UNESCAPE ) { res = unescape(part.text.getCodedText()); } else { res = escape(part.text.getCodedText()); } part.text.setCodedText(res); // No change of the inline codes } } catch ( Exception e ) { logger.error("Error when updating content: '{}'", cont.toString(), e); } return event; }
if ( !tu.isTranslatable() ) { return event; // No change
@Override protected long countInTextUnit(ITextUnit textUnit) { if (textUnit == null) return 0; if (textUnit.isTranslatable()) { // Count only in non-translatable TUs removeMetric(textUnit); return 0;
/** * Get events in the original document until the next text unit. * Any event before is passed to the writer. * @return the event of the next text unit, or null if no next text unit is found. */ private Event processUntilTextUnit () { while ( filter.hasNext() ) { Event event = filter.next(); if ( event.getEventType() == EventType.TEXT_UNIT ) { ITextUnit tu = event.getTextUnit(); if ( !tu.isTranslatable() ) { // Do not merge the translation for non-translatable writer.handleEvent(event); continue; } if ( skipEmptySourceEntries && tu.isEmpty() ) { // For some types of package: Do not merge the translation for non-translatable writer.handleEvent(event); continue; } return event; } // Else: write out the event writer.handleEvent(event); } // This text unit is extra in the translated file return null; }
@Override protected Event handleTextUnit (Event event) { ITextUnit tu = event.getTextUnit(); long srcWordCount = 0; if ( tu.isEmpty() || !tu.isTranslatable() ) { return event; } if ( !tu.getSource().isEmpty() ) { srcWordCount = countWords(tu.getSource().getUnSegmentedContentCopy().getText()); srcBatchItemWordCount += srcWordCount; } MetricsAnnotation sma = tu.getSource().getAnnotation(MetricsAnnotation.class); if ( sma == null ) { sma = new MetricsAnnotation(); tu.getSource().setAnnotation(sma); } Metrics m = sma.getMetrics(); m.setMetric(GMX.TotalWordCount, srcWordCount); return event; }
if ( !tu.isTranslatable() ) return event;