@Override public void customPlaceholderFormat(final TranslationPlaceholderGenerator generator, final TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.customPlaceholderFormat(generator, render); } else { render.render(this, markdown); } }
@Override public void translatingSpan(final TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.translatingSpan(render); } else { render.render(this, markdown); } }
@Override public void nonTranslatingSpan(final TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.nonTranslatingSpan(render); } else { render.render(this, markdown); } }
@Override public void translatingRefTargetSpan(Node target, TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.translatingRefTargetSpan(target, render); } else { render.render(this, markdown); } }
@Override public void customPlaceholderFormat(final TranslationPlaceholderGenerator generator, final TranslatingSpanRender render) { if (myRenderPurpose != TRANSLATED_SPANS) { TranslationPlaceholderGenerator savedGenerator = myPlaceholderGenerator; myPlaceholderGenerator = generator; render.render(myWriter.getContext(), myWriter); myPlaceholderGenerator = savedGenerator; } }
render.render(myWriter.getContext(), myWriter);
public void nonTranslatingSpan(TranslatingSpanRender render) { switch (myRenderPurpose) { case TRANSLATION_SPANS: { String spanText = renderInSubContext(render, false); myNonTranslatingSpans.add(spanText); myNonTranslatingSpanId++; String replacedTextId = getPlaceholderId(myFormatterOptions.translationIdFormat, myNonTranslatingSpanId, null, null, null); myWriter.append(replacedTextId); return; } case TRANSLATED_SPANS: { // we output translated text instead of render String spanText = renderInSubContext(render, false); final String translated = myNonTranslatingSpans.get(myNonTranslatingSpanId); myNonTranslatingSpanId++; myWriter.append(translated); return; } case TRANSLATED: { // we output translated text instead of render String spanText = renderInSubContext(render, true); myNonTranslatingSpanId++; return; } case FORMAT: default: render.render(myWriter.getContext(), myWriter); } }
private String renderInSubContext(TranslatingSpanRender render, boolean copyToMain) { StringBuilder span = new StringBuilder(); MarkdownWriter savedMarkdown = myWriter; final NodeFormatterContext subContext = myWriter.getContext().getSubContext(span); final MarkdownWriter writer = subContext.getMarkdown(); myWriter = writer; render.render(subContext, writer); int pendingEOL = writer.getPendingEOL(); writer.flush(-1); String spanText = writer.getText(); myWriter = savedMarkdown; if (copyToMain) { myWriter.append(spanText); if (pendingEOL == 1) { myWriter.line(); } else { myWriter.blankLine(pendingEOL - 1); } } return spanText; }
@Override public void customPlaceholderFormat(final TranslationPlaceholderGenerator generator, final TranslatingSpanRender render) { if (myRenderPurpose != TRANSLATED_SPANS) { TranslationPlaceholderGenerator savedGenerator = myPlaceholderGenerator; myPlaceholderGenerator = generator; render.render(myWriter.getContext(), myWriter); myPlaceholderGenerator = savedGenerator; } }
@Override public void translatingSpan(final TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.translatingSpan(render); } else { render.render(this, markdown); } }
@Override public void translatingRefTargetSpan(Node target, TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.translatingRefTargetSpan(target, render); } else { render.render(this, markdown); } }
@Override public void nonTranslatingSpan(final TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.nonTranslatingSpan(render); } else { render.render(this, markdown); } }
@Override public void customPlaceholderFormat(final TranslationPlaceholderGenerator generator, final TranslatingSpanRender render) { if (myTranslationHandler != null) { myTranslationHandler.customPlaceholderFormat(generator, render); } else { render.render(this, markdown); } }
render.render(myWriter.getContext(), myWriter);
public void nonTranslatingSpan(TranslatingSpanRender render) { switch (myRenderPurpose) { case TRANSLATION_SPANS: { String spanText = renderInSubContext(render, false); myNonTranslatingSpans.add(spanText); myNonTranslatingSpanId++; String replacedTextId = getPlaceholderId(myFormatterOptions.translationIdFormat, myNonTranslatingSpanId, null, null, null); myWriter.append(replacedTextId); return; } case TRANSLATED_SPANS: { // we output translated text instead of render String spanText = renderInSubContext(render, false); final String translated = myNonTranslatingSpans.get(myNonTranslatingSpanId); myNonTranslatingSpanId++; myWriter.append(translated); return; } case TRANSLATED: { // we output translated text instead of render String spanText = renderInSubContext(render, true); myNonTranslatingSpanId++; return; } case FORMAT: default: render.render(myWriter.getContext(), myWriter); } }
private String renderInSubContext(TranslatingSpanRender render, boolean copyToMain) { StringBuilder span = new StringBuilder(); MarkdownWriter savedMarkdown = myWriter; final NodeFormatterContext subContext = myWriter.getContext().getSubContext(span); final MarkdownWriter writer = subContext.getMarkdown(); myWriter = writer; render.render(subContext, writer); int pendingEOL = writer.getPendingEOL(); writer.flush(-1); String spanText = writer.getText(); myWriter = savedMarkdown; if (copyToMain) { myWriter.append(spanText); if (pendingEOL == 1) { myWriter.line(); } else { myWriter.blankLine(pendingEOL - 1); } } return spanText; }