Class HTMLFilter2

  • All Implemented Interfaces:
    IFilter
    Direct Known Subclasses:
    HHCFilter2

    public class HTMLFilter2
    extends AbstractFilter
    A filter to translate HTML and XHTML files.

    Some useful discussion why HTML filter should behave like it does, happened on a bug report devoted to compressing space.

    • Constructor Detail

      • HTMLFilter2

        public HTMLFilter2()
        Creates a new instance of HTMLFilter2
    • Method Detail

      • createReader

        public java.io.BufferedReader createReader​(java.io.File infile,
                                                   java.lang.String encoding)
                                            throws java.io.UnsupportedEncodingException,
                                                   java.io.IOException
        Customized version of creating input reader for HTML files, aware of encoding by using EncodingAwareReader class.
        Throws:
        java.io.UnsupportedEncodingException
        java.io.IOException
        See Also:
        HTMLReader
      • createWriter

        public java.io.BufferedWriter createWriter​(java.io.File outfile,
                                                   java.lang.String encoding)
                                            throws java.io.UnsupportedEncodingException,
                                                   java.io.IOException
        Customized version of creating an output stream for HTML files, appending charset meta by using HTMLWriter class.
        Throws:
        java.io.UnsupportedEncodingException
        java.io.IOException
        See Also:
        HTMLWriter
      • privateProcessEntry

        public java.lang.String privateProcessEntry​(java.lang.String entry,
                                                    java.lang.String comment)
        Package-internal processEntry to give it to FilterVisitor
      • isTargetEncodingVariable

        public boolean isTargetEncodingVariable()
        Description copied from class: AbstractFilter
        Whether target encoding can be varied by the user.

        True means that OmegaT should handle all the encoding mess.

        Return false to state that your filter doesn't need encoding management provided by OmegaT, because the encoding is fixed (like in OpenOffice files), or for some other reason.

        Specified by:
        isTargetEncodingVariable in interface IFilter
        Specified by:
        isTargetEncodingVariable in class AbstractFilter
        Returns:
        whether target encoding can be changed by the user
      • isSourceEncodingVariable

        public boolean isSourceEncodingVariable()
        Description copied from class: AbstractFilter
        Whether source encoding can be varied by the user.

        True means that OmegaT should handle all the encoding mess.

        Return false to state that your filter doesn't need encoding management provided by OmegaT, because it either autodetects the encoding based on file contents (like HTML filter does) or the encoding is fixed (like in OpenOffice files).

        Specified by:
        isSourceEncodingVariable in interface IFilter
        Specified by:
        isSourceEncodingVariable in class AbstractFilter
        Returns:
        whether source encoding can be changed by the user
      • getDefaultInstances

        public Instance[] getDefaultInstances()
        Description copied from class: AbstractFilter
        The default list of filter instances that this filter class has. One filter class may have different filter instances, different by source file mask, encoding of the source file etc.

        Note that the user may change the instances freely.

        Specified by:
        getDefaultInstances in interface IFilter
        Specified by:
        getDefaultInstances in class AbstractFilter
        Returns:
        Default filter instances
      • getHint

        public java.lang.String getHint()
        Returns the editing hint for HTML filter.

        In English, the hint is as follows:
        Note: Source File Encoding setting affects only the HTML files that have no encoding declaration inside. If HTML file has the encoding declaration, it will be used disregarding any value you set in this dialog.

        Specified by:
        getHint in interface IFilter
        Overrides:
        getHint in class AbstractFilter
        Returns:
        The hint for editing the filter in a non-geek language.
      • hasOptions

        public boolean hasOptions()
        Returns true to indicate that (X)HTML filter has options.
        Specified by:
        hasOptions in interface IFilter
        Overrides:
        hasOptions in class AbstractFilter
        Returns:
        True, because (X)HTML filter has options.
      • changeOptions

        public java.util.Map<java.lang.String,​java.lang.String> changeOptions​(java.awt.Window parent,
                                                                                    java.util.Map<java.lang.String,​java.lang.String> config)
        (X)HTML Filter shows a modal dialog to edit its own options.
        Parameters:
        currentOptions - Current options to edit.
        Returns:
        Updated filter options if user confirmed the changes, and current options otherwise.
      • getTargetEncoding

        public java.lang.String getTargetEncoding()
        Returns the encoding of the html writer (if already set)
        Returns:
        the target encoding
      • checkDoSkipMetaTag

        public boolean checkDoSkipMetaTag​(java.lang.String key,
                                          java.lang.String value)
      • checkIgnoreTags

        public boolean checkIgnoreTags​(java.lang.String key,
                                       java.lang.String value)