public class PoFilter extends AbstractFilter
Modifier and Type | Field and Description |
---|---|
protected static java.util.regex.Pattern |
COMMENT_EXTRACTED |
protected static java.util.regex.Pattern |
COMMENT_FUZZY |
protected static java.util.regex.Pattern |
COMMENT_FUZZY_MSGID |
protected static java.util.regex.Pattern |
COMMENT_FUZZY_OTHER |
protected static java.util.regex.Pattern |
COMMENT_NOWRAP |
protected static java.util.regex.Pattern |
COMMENT_REFERENCE |
protected static java.util.regex.Pattern |
COMMENT_TRANSLATOR |
protected static java.util.regex.Pattern |
MSG_CTX |
protected static java.util.regex.Pattern |
MSG_FUZZY |
protected static java.util.regex.Pattern |
MSG_ID |
protected static java.util.regex.Pattern |
MSG_OTHER |
protected static java.util.regex.Pattern |
MSG_STR |
static java.lang.String |
OPTION_ALLOW_BLANK |
static java.lang.String |
OPTION_ALLOW_EDITING_BLANK_SEGMENT |
static java.lang.String |
OPTION_AUTO_FILL_IN_PLURAL_STATEMENT |
static java.lang.String |
OPTION_FORMAT_MONOLINGUAL |
static java.lang.String |
OPTION_SKIP_HEADER |
protected static java.util.regex.Pattern |
PLURAL_FORMS |
protected static java.util.regex.Pattern |
R1 |
protected static java.util.regex.Pattern |
R2 |
protected static java.util.regex.Pattern |
R3 |
protected static java.util.regex.Pattern |
R4 |
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 |
---|
PoFilter() |
Modifier and Type | Method and Description |
---|---|
protected void |
alignFile(java.io.BufferedReader sourceFile,
java.io.BufferedReader translatedFile,
FilterContext fc)
Align source file against translated file.
|
java.util.Map<java.lang.String,java.lang.String> |
changeOptions(java.awt.Window parent,
java.util.Map<java.lang.String,java.lang.String> config)
Show change options dialog for able to change options.
|
protected void |
eol(java.lang.String s) |
protected void |
flushTranslation(org.omegat.filters2.po.PoFilter.MODE currentMode,
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 |
getFuzzyMark()
Define fuzzy mark prefix for source which will be stored in TM.
|
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 |
parseHeader(java.lang.String header,
FilterContext fc) |
protected void |
parseOrAlign(int pair) |
protected void |
parseOrAlign(java.lang.String source,
java.lang.String translation,
java.lang.String comments,
java.lang.String pathSuffix) |
void |
processFile(java.io.BufferedReader in,
java.io.BufferedWriter out,
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, changeOptions, createReader, createWriter, getHint, getInEncodingLastParsedFile, getInputEncoding, getOutputEncoding, getTargetFilenamePatterns, isFileSupported, isFileSupported, parseFile, processEntry, processEntry, requirePrevNextFields, setCallbacks, translateFile
public static final java.lang.String OPTION_ALLOW_BLANK
public static final java.lang.String OPTION_ALLOW_EDITING_BLANK_SEGMENT
public static final java.lang.String OPTION_SKIP_HEADER
public static final java.lang.String OPTION_AUTO_FILL_IN_PLURAL_STATEMENT
public static final java.lang.String OPTION_FORMAT_MONOLINGUAL
protected static final java.util.regex.Pattern COMMENT_FUZZY
protected static final java.util.regex.Pattern COMMENT_FUZZY_OTHER
protected static final java.util.regex.Pattern COMMENT_FUZZY_MSGID
protected static final java.util.regex.Pattern COMMENT_NOWRAP
protected static final java.util.regex.Pattern COMMENT_TRANSLATOR
protected static final java.util.regex.Pattern COMMENT_EXTRACTED
protected static final java.util.regex.Pattern COMMENT_REFERENCE
protected static final java.util.regex.Pattern MSG_ID
protected static final java.util.regex.Pattern MSG_STR
protected static final java.util.regex.Pattern MSG_CTX
protected static final java.util.regex.Pattern MSG_OTHER
protected static final java.util.regex.Pattern PLURAL_FORMS
protected static final java.util.regex.Pattern MSG_FUZZY
protected static final java.util.regex.Pattern R1
protected static final java.util.regex.Pattern R2
protected static final java.util.regex.Pattern R3
protected static final java.util.regex.Pattern R4
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 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 getFuzzyMark()
AbstractFilter
getFuzzyMark
in interface IFilter
getFuzzyMark
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 alignFile(java.io.BufferedReader sourceFile, java.io.BufferedReader translatedFile, FilterContext fc) throws java.lang.Exception
AbstractFilter
alignFile
in class AbstractFilter
sourceFile
- source filetranslatedFile
- translated filejava.lang.Exception
public void processFile(java.io.BufferedReader in, java.io.BufferedWriter out, FilterContext fc) throws java.io.IOException
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
in
- Reader of the source file. It's the result of calling
AbstractFilter.createReader(File,String)
.out
- 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.protected void eol(java.lang.String s) throws java.io.IOException
java.io.IOException
protected void parseOrAlign(int pair)
protected void parseOrAlign(java.lang.String source, java.lang.String translation, java.lang.String comments, java.lang.String pathSuffix)
source
- translation
- comments
- pathSuffix
- suffix for path to distinguish plural forms. It will be empty for first one, and [1],[2],...
for nextprotected void parseHeader(java.lang.String header, FilterContext fc)
protected void flushTranslation(org.omegat.filters2.po.PoFilter.MODE currentMode, FilterContext fc) throws java.io.IOException
java.io.IOException
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)
IFilter
parent
- parent windowconfig
- old optionspublic boolean hasOptions()
hasOptions
in interface IFilter
hasOptions
in class AbstractFilter
public boolean isBilingual()
IFilter
IParseCallback
.addEntry().true
if the filter is bilingual