public class MozillaLangFilter extends AbstractFilter
Modifier and Type | Field and Description |
---|---|
protected static java.util.regex.Pattern |
LOCALIZATION_NOTE |
protected static java.util.regex.Pattern |
PATTERN_SOURCE |
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 |
---|
MozillaLangFilter() |
Modifier and Type | Method and Description |
---|---|
protected void |
align(int pair) |
protected void |
align(java.lang.String source,
java.lang.String translation,
java.lang.String comments) |
java.io.BufferedReader |
createReader(java.io.File infile,
java.lang.String encoding)
Creating an input stream to read the source .lang file.
|
java.io.BufferedWriter |
createWriter(java.io.File outfile,
java.lang.String encoding)
Creating an output stream to save a localized .lang file.
|
protected void |
eol(java.lang.String s) |
protected void |
flushTranslation(FilterContext fc) |
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 |
getInEncodingLastParsedFile()
Returns the encoding of the last parsed source file.
|
boolean |
hasOptions()
Returns true to indicate that Text filter has options.
|
boolean |
isBilingual()
Indicates whether the filter is bilingual, and thus can be used as external TM
(i.e.
|
boolean |
isSourceEncodingVariable()
Whether source encoding can be varied by the user.
|
boolean |
isTargetEncodingVariable()
Whether target encoding can be varied by the user.
|
protected void |
processFile(java.io.BufferedReader inFile,
java.io.BufferedWriter outFile,
FilterContext fc)
Processes a single file given a reader and a writer.
|
void |
processFile(java.io.File inFile,
java.io.File outFile,
FilterContext fc)
Processes a single file given an input and output files (output file may be null while loading files).
|
alignFile, alignFile, changeOptions, getFuzzyMark, getHint, getInputEncoding, getOutputEncoding, getTargetFilenamePatterns, isFileSupported, isFileSupported, parseFile, processEntry, processEntry, requirePrevNextFields, setCallbacks, translateFile
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
changeOptions
protected static final java.util.regex.Pattern LOCALIZATION_NOTE
protected static final java.util.regex.Pattern PATTERN_SOURCE
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.io.BufferedReader createReader(java.io.File infile, java.lang.String encoding) throws java.io.UnsupportedEncodingException, java.io.IOException
NOTE: Mozilla lang files use always UTF-8 encoding without BOM.
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 creationpublic java.io.BufferedWriter createWriter(java.io.File outfile, java.lang.String encoding) throws java.io.UnsupportedEncodingException, java.io.IOException
NOTE: Mozilla lang files use always UTF-8 encoding without BOM.
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 creationpublic 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 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 java.lang.String getInEncodingLastParsedFile()
IFilter
getInEncodingLastParsedFile
in interface IFilter
getInEncodingLastParsedFile
in class AbstractFilter
public void processFile(java.io.File inFile, java.io.File outFile, FilterContext fc) throws java.io.IOException, TranslationException
AbstractFilter
Generally this method should read strings from the input reader and write them to the output reader. In
order to let OmegaT know what strings are translatable and to get their translation, filter should call
AbstractFilter.processEntry(String)
method.
If you override this method and do all the processing here, you should simply implement
#processFile(BufferedReader,BufferedWriter)
with a stub.
Default implementation calls AbstractFilter.createReader(File,String)
to create a reader,
new BufferedWriter(new StringWriter())
to create a writer for null
output
file, or AbstractFilter.createWriter(File,String)
to create a writer if output file is not null
;
then calls #processFile(BufferedReader,BufferedWriter)
to process source file, and then closes
reader and writer.
processFile
in class AbstractFilter
inFile
- The source file.outFile
- The target file.fc
- Filter context.java.io.IOException
- In case of any I/O error.TranslationException
- Should be thrown when processed file has any format defects.protected 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.protected void eol(java.lang.String s) throws java.io.IOException
java.io.IOException
protected void align(int pair)
protected void align(java.lang.String source, java.lang.String translation, java.lang.String comments)
source
- translation
- comments
- protected void flushTranslation(FilterContext fc) throws java.io.IOException
java.io.IOException
public boolean hasOptions()
hasOptions
in interface IFilter
hasOptions
in class AbstractFilter
public boolean isBilingual()
IFilter
IParseCallback
.addEntry().true
if the filter is bilingual