Class ResourceBundleFilter
- java.lang.Object
-
- org.omegat.filters2.AbstractFilter
-
- org.omegat.filters2.text.bundles.ResourceBundleFilter
-
- All Implemented Interfaces:
IFilter
public class ResourceBundleFilter extends AbstractFilter
Filter to support Java Resource Bundles - the files that are used to I18ze Java applications.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_SOURCE_ENCODING
static java.lang.String
DEFAULT_TARGET_ENCODING
static java.lang.String
DO_NOT_TRANSLATE_COMMENT
Key=value pairs with a preceding comment containing this string are not translated, and are output verbatim.static java.lang.String
OPTION_DONT_UNESCAPE_U_LITERALS
static java.lang.String
OPTION_FORCE_JAVA8_LITERALS_ESCAPE
static java.lang.String
OPTION_REMOVE_STRINGS_UNTRANSLATED
-
Fields inherited from class org.omegat.filters2.AbstractFilter
ENCODING_AUTO_HUMAN, 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 Summary
Constructors Constructor Description ResourceBundleFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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)
Show change options dialog for able to change options.java.io.BufferedReader
createReader(java.io.File inFile, java.lang.String inEncoding)
Creates a reader of an input file.java.io.BufferedWriter
createWriter(java.io.File outfile, java.lang.String encoding)
Creating an output stream to save a localized resource bundle.Instance[]
getDefaultInstances()
The source default encoding is UTF-8.java.lang.String
getFileFormatName()
Human-readable name of the File Format this filter supports.boolean
hasOptions()
Returns true to indicate that Java Resource Bundles 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.void
processFile(java.io.BufferedReader reader, java.io.BufferedWriter outfile, FilterContext fc)
Doing the processing of the file...-
Methods inherited from class org.omegat.filters2.AbstractFilter
alignFile, changeOptions, getFuzzyMark, getHint, getInEncodingLastParsedFile, getTargetFilenamePatterns, isFileSupported, parseFile, setCallbacks, translateFile
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.omegat.filters2.IFilter
isBilingual, isEnabledInDefault
-
-
-
-
Field Detail
-
DO_NOT_TRANSLATE_COMMENT
public static final java.lang.String DO_NOT_TRANSLATE_COMMENT
Key=value pairs with a preceding comment containing this string are not translated, and are output verbatim.TODO: Make this optional
- See Also:
- Constant Field Values
-
OPTION_REMOVE_STRINGS_UNTRANSLATED
public static final java.lang.String OPTION_REMOVE_STRINGS_UNTRANSLATED
- See Also:
- Constant Field Values
-
OPTION_DONT_UNESCAPE_U_LITERALS
public static final java.lang.String OPTION_DONT_UNESCAPE_U_LITERALS
- See Also:
- Constant Field Values
-
OPTION_FORCE_JAVA8_LITERALS_ESCAPE
public static final java.lang.String OPTION_FORCE_JAVA8_LITERALS_ESCAPE
- See Also:
- Constant Field Values
-
DEFAULT_SOURCE_ENCODING
public static final java.lang.String DEFAULT_SOURCE_ENCODING
-
DEFAULT_TARGET_ENCODING
public static final java.lang.String DEFAULT_TARGET_ENCODING
-
-
Method Detail
-
getFileFormatName
public java.lang.String getFileFormatName()
Description copied from class:AbstractFilter
Human-readable name of the File Format this filter supports.- Specified by:
getFileFormatName
in interfaceIFilter
- Specified by:
getFileFormatName
in classAbstractFilter
- Returns:
- File format name
-
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 interfaceIFilter
- Specified by:
isSourceEncodingVariable
in classAbstractFilter
- Returns:
- true, because it is possible to change source encoding
-
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 interfaceIFilter
- Specified by:
isTargetEncodingVariable
in classAbstractFilter
- Returns:
- true, because it is possible to change target encoding
-
getDefaultInstances
public Instance[] getDefaultInstances()
The source default encoding is UTF-8.From Java 9 onward, properties are saved in UTF-8.
- Specified by:
getDefaultInstances
in interfaceIFilter
- Specified by:
getDefaultInstances
in classAbstractFilter
- Returns:
- Default filter instances
-
createReader
public java.io.BufferedReader createReader(java.io.File inFile, java.lang.String inEncoding) throws java.io.IOException
Creates a reader of an input file.Override because of keep buggy behavior in OmegaT 5.7.1 or before. It set default encoding US-ASCII but Java standard InputStreamReader class wrongly accept non-ASCII characters as-is.
- Parameters:
inFile
- The source file.inEncoding
- Encoding of the input file, if the filter supports it. Otherwise null.- Returns:
- The reader for the source file
- Throws:
java.io.IOException
- If any I/O Error occurs upon reader creation
-
createWriter
public java.io.BufferedWriter createWriter(java.io.File outfile, java.lang.String encoding) throws java.io.IOException
Creating an output stream to save a localized resource bundle.NOTE: the name of localized resource bundle is different from the name of original one. e.g. "Bundle.properties" -> Russian = "Bundle_ru.properties"
- Throws:
java.io.IOException
-
processFile
public void processFile(java.io.BufferedReader reader, java.io.BufferedWriter outfile, FilterContext fc) throws java.io.IOException, TranslationException
Doing the processing of the file...- Throws:
java.io.IOException
TranslationException
-
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)
Description copied from interface:IFilter
Show change options dialog for able to change options.- Parameters:
parent
- parent windowconfig
- old options- Returns:
- new options or null if options not changed
-
hasOptions
public boolean hasOptions()
Returns true to indicate that Java Resource Bundles filter has options.- Specified by:
hasOptions
in interfaceIFilter
- Overrides:
hasOptions
in classAbstractFilter
- Returns:
- True if the filter has any options, and false otherwise.
-
-