Class TranslationHandlerImpl
- java.lang.Object
-
- com.vladsch.flexmark.formatter.internal.TranslationHandlerImpl
-
- All Implemented Interfaces:
TranslationContext,TranslationHandler
public class TranslationHandlerImpl extends java.lang.Object implements TranslationHandler
-
-
Field Summary
Fields Modifier and Type Field Description private intmyAnchorId(package private) java.util.HashMap<java.lang.String,java.lang.String>myAnchorTexts(package private) FormatterOptionsmyFormatterOptionsprivate HtmlIdGeneratormyIdGenerator(package private) HtmlIdGeneratorFactorymyIdGeneratorFactoryprivate MergeContextmyMergeContextprivate java.util.function.Function<java.lang.String,java.lang.CharSequence>myNonTranslatingPostProcessorprivate intmyNonTranslatingSpanId(package private) java.util.ArrayList<java.lang.String>myNonTranslatingSpans(package private) java.util.HashMap<java.lang.String,java.lang.String>myNonTranslatingTexts(package private) java.util.HashMap<java.lang.String,java.lang.String>myOriginalAnchors(package private) java.util.HashMap<java.lang.String,java.lang.Integer>myOriginalRefTargetsprivate TranslationPlaceholderGeneratormyPlaceholderGeneratorprivate intmyPlaceholderId(package private) java.util.regex.PatternmyPlaceHolderMarkerPatternprivate RenderPurposemyRenderPurpose(package private) java.util.HashMap<java.lang.String,java.lang.String>myTranslatedAnchors(package private) java.util.HashMap<java.lang.Integer,java.lang.String>myTranslatedRefTargets(package private) java.util.ArrayList<java.lang.String>myTranslatedSpans(package private) java.util.HashMap<java.lang.String,java.lang.String>myTranslatedTexts(package private) java.util.ArrayList<java.lang.String>myTranslatingPlaceholdersprivate intmyTranslatingSpanId(package private) java.util.ArrayList<java.lang.String>myTranslatingSpans(package private) java.util.HashMap<java.lang.String,java.lang.String>myTranslatingTexts(package private) MutableDataSetmyTranslationStoreprivate MarkdownWritermyWriter
-
Constructor Summary
Constructors Constructor Description TranslationHandlerImpl(DataHolder options, HtmlIdGeneratorFactory idGeneratorFactory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.StringaddPrefixSuffix(java.lang.CharSequence placeholderId, java.lang.CharSequence prefix, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)voidbeginRendering(@NotNull Document node, @NotNull NodeFormatterContext context, @NotNull MarkdownWriter appendable)voidcustomPlaceholderFormat(@NotNull TranslationPlaceholderGenerator generator, @NotNull TranslatingSpanRender render)Temporarily change the format for placeholdersHtmlIdGeneratorgetIdGenerator()MergeContextgetMergeContext()java.lang.StringgetPlaceholderId(java.lang.String format, int placeholderId, java.lang.CharSequence prefix, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)@NotNull RenderPurposegetRenderPurpose()Get the reason this format rendering is being performed@NotNull java.util.List<java.lang.String>getTranslatingTexts()@NotNull MutableDataSetgetTranslationStore()Get MutableDataHolder for storing this translation run values across render purpose phases(package private) static booleanisNotBlank(java.lang.CharSequence csq)booleanisPostProcessingNonTranslating()booleanisTransformingText()Returns false if special translation functions are no-opsvoidnonTranslatingSpan(@NotNull TranslatingSpanRender render)Separate non-translation span.voidpostProcessNonTranslating(@NotNull java.util.function.Function<java.lang.String,java.lang.CharSequence> postProcessor, @NotNull java.lang.Runnable scope)<T> TpostProcessNonTranslating(@NotNull java.util.function.Function<java.lang.String,java.lang.CharSequence> postProcessor, @NotNull java.util.function.Supplier<T> scope)private java.lang.StringrenderInSubContext(TranslatingSpanRender render, boolean copyToMain)voidsetMergeContext(@NotNull MergeContext context)voidsetRenderPurpose(@NotNull RenderPurpose renderPurpose)voidsetTranslatedTexts(@NotNull java.util.List<? extends java.lang.CharSequence> translatedTexts)@NotNull java.lang.CharSequencetransformAnchorRef(@NotNull java.lang.CharSequence pageRef, @NotNull java.lang.CharSequence anchorRef)DuringRenderPurpose.TRANSLATION_SPANSthis converts anchorRef to ordinal placeholder id DuringRenderPurpose.TRANSLATED_SPANSthis returns the ordinal placeholder DuringRenderPurpose.TRANSLATEDthis returns new anchorRef for the AnchorRefTarget original was referring to@NotNull java.lang.CharSequencetransformNonTranslating(java.lang.CharSequence prefix, @NotNull java.lang.CharSequence nonTranslatingText, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)Transform non-translating text@NotNull java.lang.CharSequencetransformTranslating(java.lang.CharSequence prefix, @NotNull java.lang.CharSequence translatingText, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)Transform translating text but which is contextually isolated from the text block in which it is located ie.voidtranslatingRefTargetSpan(@Nullable Node target, @NotNull TranslatingSpanRender render)Separate translation span which is also a ref targetvoidtranslatingSpan(@NotNull TranslatingSpanRender render)Separate translation span.
-
-
-
Field Detail
-
myFormatterOptions
final FormatterOptions myFormatterOptions
-
myNonTranslatingTexts
final java.util.HashMap<java.lang.String,java.lang.String> myNonTranslatingTexts
-
myAnchorTexts
final java.util.HashMap<java.lang.String,java.lang.String> myAnchorTexts
-
myTranslatingTexts
final java.util.HashMap<java.lang.String,java.lang.String> myTranslatingTexts
-
myTranslatedTexts
final java.util.HashMap<java.lang.String,java.lang.String> myTranslatedTexts
-
myTranslatingPlaceholders
final java.util.ArrayList<java.lang.String> myTranslatingPlaceholders
-
myTranslatingSpans
final java.util.ArrayList<java.lang.String> myTranslatingSpans
-
myNonTranslatingSpans
final java.util.ArrayList<java.lang.String> myNonTranslatingSpans
-
myTranslatedSpans
final java.util.ArrayList<java.lang.String> myTranslatedSpans
-
myIdGeneratorFactory
final HtmlIdGeneratorFactory myIdGeneratorFactory
-
myPlaceHolderMarkerPattern
final java.util.regex.Pattern myPlaceHolderMarkerPattern
-
myTranslationStore
final MutableDataSet myTranslationStore
-
myOriginalRefTargets
final java.util.HashMap<java.lang.String,java.lang.Integer> myOriginalRefTargets
-
myTranslatedRefTargets
final java.util.HashMap<java.lang.Integer,java.lang.String> myTranslatedRefTargets
-
myOriginalAnchors
final java.util.HashMap<java.lang.String,java.lang.String> myOriginalAnchors
-
myTranslatedAnchors
final java.util.HashMap<java.lang.String,java.lang.String> myTranslatedAnchors
-
myPlaceholderId
private int myPlaceholderId
-
myAnchorId
private int myAnchorId
-
myTranslatingSpanId
private int myTranslatingSpanId
-
myNonTranslatingSpanId
private int myNonTranslatingSpanId
-
myRenderPurpose
private RenderPurpose myRenderPurpose
-
myWriter
private MarkdownWriter myWriter
-
myIdGenerator
private HtmlIdGenerator myIdGenerator
-
myPlaceholderGenerator
private TranslationPlaceholderGenerator myPlaceholderGenerator
-
myNonTranslatingPostProcessor
private java.util.function.Function<java.lang.String,java.lang.CharSequence> myNonTranslatingPostProcessor
-
myMergeContext
private MergeContext myMergeContext
-
-
Constructor Detail
-
TranslationHandlerImpl
public TranslationHandlerImpl(DataHolder options, HtmlIdGeneratorFactory idGeneratorFactory)
-
-
Method Detail
-
getMergeContext
public MergeContext getMergeContext()
- Specified by:
getMergeContextin interfaceTranslationContext
-
setMergeContext
public void setMergeContext(@NotNull @NotNull MergeContext context)- Specified by:
setMergeContextin interfaceTranslationHandler
-
getTranslationStore
@NotNull public @NotNull MutableDataSet getTranslationStore()
Description copied from interface:TranslationContextGet MutableDataHolder for storing this translation run values across render purpose phases- Specified by:
getTranslationStorein interfaceTranslationContext
-
getIdGenerator
public HtmlIdGenerator getIdGenerator()
- Specified by:
getIdGeneratorin interfaceTranslationContext
-
beginRendering
public void beginRendering(@NotNull @NotNull Document node, @NotNull @NotNull NodeFormatterContext context, @NotNull @NotNull MarkdownWriter appendable)- Specified by:
beginRenderingin interfaceTranslationHandler
-
isNotBlank
static boolean isNotBlank(java.lang.CharSequence csq)
-
getTranslatingTexts
@NotNull public @NotNull java.util.List<java.lang.String> getTranslatingTexts()
- Specified by:
getTranslatingTextsin interfaceTranslationHandler
-
setTranslatedTexts
public void setTranslatedTexts(@NotNull @NotNull java.util.List<? extends java.lang.CharSequence> translatedTexts)- Specified by:
setTranslatedTextsin interfaceTranslationHandler
-
setRenderPurpose
public void setRenderPurpose(@NotNull @NotNull RenderPurpose renderPurpose)- Specified by:
setRenderPurposein interfaceTranslationHandler
-
getRenderPurpose
@NotNull public @NotNull RenderPurpose getRenderPurpose()
Description copied from interface:TranslationContextGet the reason this format rendering is being performed- Specified by:
getRenderPurposein interfaceTranslationContext- Returns:
- RenderPurpose for current rendering
-
isTransformingText
public boolean isTransformingText()
Description copied from interface:TranslationContextReturns false if special translation functions are no-opsDuring
RenderPurpose.TRANSLATION_SPANSthis is true DuringRenderPurpose.TRANSLATED_SPANSthis is true DuringRenderPurpose.TRANSLATEDthis is true- Specified by:
isTransformingTextin interfaceTranslationContext- Returns:
- true if need to call translation related functions
-
transformAnchorRef
@NotNull public @NotNull java.lang.CharSequence transformAnchorRef(@NotNull @NotNull java.lang.CharSequence pageRef, @NotNull @NotNull java.lang.CharSequence anchorRef)Description copied from interface:TranslationContextDuringRenderPurpose.TRANSLATION_SPANSthis converts anchorRef to ordinal placeholder id DuringRenderPurpose.TRANSLATED_SPANSthis returns the ordinal placeholder DuringRenderPurpose.TRANSLATEDthis returns new anchorRef for the AnchorRefTarget original was referring to- Specified by:
transformAnchorRefin interfaceTranslationContext- Parameters:
pageRef- url part without the anchor ref to resolve referenceanchorRef- anchor ref- Returns:
- anchorRef for the phase to be used for rendering
-
customPlaceholderFormat
public void customPlaceholderFormat(@NotNull @NotNull TranslationPlaceholderGenerator generator, @NotNull @NotNull TranslatingSpanRender render)Description copied from interface:TranslationContextTemporarily change the format for placeholders- Specified by:
customPlaceholderFormatin interfaceTranslationContext- Parameters:
generator- placeholder generatorrender- render which will be used with the custom generator
-
translatingSpan
public void translatingSpan(@NotNull @NotNull TranslatingSpanRender render)Description copied from interface:TranslationContextSeparate translation span. Will generate a paragraph of text which should be translated as one pieceDuring
RenderPurpose.TRANSLATION_SPANSthis adds the generated output to translation spans DuringRenderPurpose.TRANSLATED_SPANSoutput from renderer is suppressed, instead outputs corresponding translated span DuringRenderPurpose.TRANSLATEDcalls render- Specified by:
translatingSpanin interfaceTranslationContext
-
renderInSubContext
private java.lang.String renderInSubContext(TranslatingSpanRender render, boolean copyToMain)
-
translatingRefTargetSpan
public void translatingRefTargetSpan(@Nullable @Nullable Node target, @NotNull @NotNull TranslatingSpanRender render)Description copied from interface:TranslationContextSeparate translation span which is also a ref target- Specified by:
translatingRefTargetSpanin interfaceTranslationContext- Parameters:
target- target node,
-
nonTranslatingSpan
public void nonTranslatingSpan(@NotNull @NotNull TranslatingSpanRender render)Description copied from interface:TranslationContextSeparate non-translation span. Will generate a paragraph of text which will not be translatedDuring
RenderPurpose.TRANSLATION_SPANSthis adds the generated output to translation spans DuringRenderPurpose.TRANSLATED_SPANSoutput from renderer is suppressed, instead outputs corresponding translated span DuringRenderPurpose.TRANSLATEDcalls render- Specified by:
nonTranslatingSpanin interfaceTranslationContext
-
getPlaceholderId
public java.lang.String getPlaceholderId(java.lang.String format, int placeholderId, java.lang.CharSequence prefix, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)
-
addPrefixSuffix
public static java.lang.String addPrefixSuffix(java.lang.CharSequence placeholderId, java.lang.CharSequence prefix, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)
-
postProcessNonTranslating
public void postProcessNonTranslating(@NotNull @NotNull java.util.function.Function<java.lang.String,java.lang.CharSequence> postProcessor, @NotNull @NotNull java.lang.Runnable scope)- Specified by:
postProcessNonTranslatingin interfaceTranslationContext- Parameters:
postProcessor- id post processor for TRANSLATED purposescope- code to which the post processor applies
-
postProcessNonTranslating
@NotNull public <T> T postProcessNonTranslating(@NotNull @NotNull java.util.function.Function<java.lang.String,java.lang.CharSequence> postProcessor, @NotNull @NotNull java.util.function.Supplier<T> scope)- Specified by:
postProcessNonTranslatingin interfaceTranslationContext- Parameters:
postProcessor- id post processor for TRANSLATED purposescope- code to which the post processor applies
-
isPostProcessingNonTranslating
public boolean isPostProcessingNonTranslating()
- Specified by:
isPostProcessingNonTranslatingin interfaceTranslationContext- Returns:
- true if non-translating post processor is set
-
transformNonTranslating
@NotNull public @NotNull java.lang.CharSequence transformNonTranslating(java.lang.CharSequence prefix, @NotNull @NotNull java.lang.CharSequence nonTranslatingText, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)Description copied from interface:TranslationContextTransform non-translating textDuring
RenderPurpose.TRANSLATION_SPANSthis converts text to non-translating placeholder based on ordinal id DuringRenderPurpose.TRANSLATED_SPANSthis returns the non-translating placeholder based on ordinal id DuringRenderPurpose.TRANSLATEDthis returns the original non-translating text for the nonTranslatingText (placeholder)- Specified by:
transformNonTranslatingin interfaceTranslationContext- Parameters:
prefix- prefix to use on non-translating placeholder so it is interpreted as a proper element during parsingnonTranslatingText- non-rendering text of the node (content will depend on translation phase)suffix- suffix to use on non-translating placeholder so it is interpreted as a proper element during parsingsuffix2- suffix to use on non-translating placeholder so it is interpreted as a proper element during parsing- Returns:
- text to be used in rendering for this phase
-
transformTranslating
@NotNull public @NotNull java.lang.CharSequence transformTranslating(java.lang.CharSequence prefix, @NotNull @NotNull java.lang.CharSequence translatingText, java.lang.CharSequence suffix, java.lang.CharSequence suffix2)Description copied from interface:TranslationContextTransform translating text but which is contextually isolated from the text block in which it is located ie. link reference or image referenceDuring
RenderPurpose.TRANSLATION_SPANSthis converts text to non-translating placeholder based on ordinal id and adds it to translation snippets DuringRenderPurpose.TRANSLATED_SPANSthis returns the non-translating placeholder based on ordinal id DuringRenderPurpose.TRANSLATEDthis returns the translated text for the translatingText (placeholder)- Specified by:
transformTranslatingin interfaceTranslationContext- Parameters:
prefix- prefix to use on non-translating placeholder so it is interpreted as a proper element during parsingtranslatingText- translating but isolated text of the node (content will depend on translation phase)suffix- suffix to use on non-translating placeholder so it is interpreted as a proper element during parsingsuffix2- suffix to use on non-translating placeholder so it is interpreted as a proper element during parsing- Returns:
- text to be used in rendering for this phase
-
-