public class HTMLFilter2 extends AbstractFilter
Some useful discussion why HTML filter should behave like it does, happened on a bug report devoted to compressing space.
ENCODING_AUTO_HUMAN, entryAlignCallback, entryParseCallback, entryTranslateCallback, inEncodingLastParsedFile, processOptions, TARGET_DEFAULT, TFP_EXTENSION, TFP_FILE_FILTER_NAME, TFP_FILE_SOURCE_ENCODING, TFP_FILE_TARGET_ENCODING, TFP_FILENAME, TFP_NAMEONLY, TFP_SYSTEM_HOST_NAME, TFP_SYSTEM_OS_ARCH, TFP_SYSTEM_OS_NAME, TFP_SYSTEM_OS_VERSION, TFP_SYSTEM_USER_NAME, TFP_TARGET_COUNTRY_CODE, TFP_TARGET_COUTRY_CODE, TFP_TARGET_LANG_CODE, TFP_TARGET_LANGUAGE, TFP_TARGET_LOCALE, TFP_TARGET_LOCALE_LCID, TFP_TIMESTAMP_LA, TFP_TIMESTAMP_LD, TFP_TIMESTAMP_LDD, TFP_TIMESTAMP_LH, TFP_TIMESTAMP_LHH, TFP_TIMESTAMP_LM, TFP_TIMESTAMP_LMM, TFP_TIMESTAMP_LS, TFP_TIMESTAMP_LSS, TFP_TIMESTAMP_LYYYY, TFP_TIMESTAMP_UD, TFP_TIMESTAMP_UEEE, TFP_TIMESTAMP_UEEEE, TFP_TIMESTAMP_UH, TFP_TIMESTAMP_UHH, TFP_TIMESTAMP_UM, TFP_TIMESTAMP_UMM, TFP_TIMESTAMP_UMMM
Constructor and Description |
---|
HTMLFilter2()
Creates a new instance of HTMLFilter2
|
Modifier and Type | Method and Description |
---|---|
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.
|
boolean |
checkDoSkipMetaTag(java.lang.String key,
java.lang.String value) |
boolean |
checkIgnoreTags(java.lang.String key,
java.lang.String value) |
java.io.BufferedReader |
createReader(java.io.File infile,
java.lang.String encoding)
Customized version of creating input reader for HTML files, aware of
encoding by using
EncodingAwareReader class. |
java.io.BufferedWriter |
createWriter(java.io.File outfile,
java.lang.String encoding)
Customized version of creating an output stream for HTML files, appending
charset meta by using
HTMLWriter class. |
Instance[] |
getDefaultInstances()
The default list of filter instances that this filter class has.
|
java.lang.String |
getFileFormatName()
Human-readable name of the File Format this filter supports.
|
java.lang.String |
getHint()
Returns the editing hint for HTML filter.
|
java.lang.String |
getInEncodingLastParsedFile()
Returns the encoding of the last parsed source file.
|
java.lang.String |
getTargetEncoding()
Returns the encoding of the html writer (if already set)
|
boolean |
hasOptions()
Returns true to indicate that (X)HTML filter has options.
|
boolean |
isSourceEncodingVariable()
Whether source encoding can be varied by the user.
|
boolean |
isTargetEncodingVariable()
Whether target encoding can be varied by the user.
|
java.lang.String |
privateProcessEntry(java.lang.String entry,
java.lang.String comment)
Package-internal processEntry to give it to FilterVisitor
|
void |
processFile(java.io.BufferedReader infile,
java.io.BufferedWriter outfile,
FilterContext fc)
Processes a single file given a reader and a writer.
|
protected boolean |
requirePrevNextFields()
Method can be overridden to return true, in case you want previous and next segment to be included in the search
for a translation, when alternative translations are provided by the user.
|
alignFile, alignFile, changeOptions, getFuzzyMark, getInputEncoding, getOutputEncoding, getTargetFilenamePatterns, isFileSupported, isFileSupported, parseFile, processEntry, processEntry, processFile, setCallbacks, translateFile
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isBilingual
protected boolean requirePrevNextFields()
AbstractFilter
requirePrevNextFields
in class AbstractFilter
public java.io.BufferedReader createReader(java.io.File infile, java.lang.String encoding) throws java.io.UnsupportedEncodingException, java.io.IOException
EncodingAwareReader
class.createReader
in class AbstractFilter
infile
- The source file.encoding
- Encoding of the input file, if the filter supports it. Otherwise null.java.io.UnsupportedEncodingException
- Thrown if JVM doesn't support the specified inEncodingjava.io.IOException
- If any I/O Error occurs upon reader creationHTMLReader
public java.io.BufferedWriter createWriter(java.io.File outfile, java.lang.String encoding) throws java.io.UnsupportedEncodingException, java.io.IOException
HTMLWriter
class.createWriter
in class AbstractFilter
outfile
- The target fileencoding
- Encoding of the target file, if the filter supports it. Otherwise null.java.io.UnsupportedEncodingException
- Thrown if JVM doesn't support the specified outEncodingjava.io.IOException
- If any I/O Error occurs upon writer creationHTMLWriter
public void processFile(java.io.BufferedReader infile, java.io.BufferedWriter outfile, FilterContext fc) throws java.io.IOException, TranslationException
AbstractFilter
AbstractFilter.processEntry(String)
method.
Note that outFile is never null, even when the project is loading. (in this case it writes no nowhere, but anyway you may use it...)
If you need more control over processed files, override
AbstractFilter.processFile(File, File, FilterContext)
instead.
processFile
in class AbstractFilter
infile
- Reader of the source file. It's the result of calling
AbstractFilter.createReader(File,String)
.outfile
- Writer of the target file on compilation (the result of
calling AbstractFilter.createWriter(File, String)
), or a fictive
writer to /dev/null.java.io.IOException
- In case of any I/O error.TranslationException
- Should be thrown when processed file has any format defects.public java.lang.String privateProcessEntry(java.lang.String entry, java.lang.String comment)
public boolean isTargetEncodingVariable()
AbstractFilter
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.
isTargetEncodingVariable
in interface IFilter
isTargetEncodingVariable
in class AbstractFilter
public boolean isSourceEncodingVariable()
AbstractFilter
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).
isSourceEncodingVariable
in interface IFilter
isSourceEncodingVariable
in class AbstractFilter
public java.lang.String getFileFormatName()
AbstractFilter
getFileFormatName
in interface IFilter
getFileFormatName
in class AbstractFilter
public Instance[] getDefaultInstances()
AbstractFilter
Note that the user may change the instances freely.
getDefaultInstances
in interface IFilter
getDefaultInstances
in class AbstractFilter
public java.lang.String getHint()
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.
getHint
in interface IFilter
getHint
in class AbstractFilter
public boolean hasOptions()
hasOptions
in interface IFilter
hasOptions
in class AbstractFilter
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)
currentOptions
- Current options to edit.public java.lang.String getTargetEncoding()
public boolean checkDoSkipMetaTag(java.lang.String key, java.lang.String value)
public boolean checkIgnoreTags(java.lang.String key, java.lang.String value)
public java.lang.String getInEncodingLastParsedFile()
IFilter
getInEncodingLastParsedFile
in interface IFilter
getInEncodingLastParsedFile
in class AbstractFilter