Class 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 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
    • Constructor Detail

      • ResourceBundleFilter

        public ResourceBundleFilter()
    • Method Detail

      • 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:
        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 interface IFilter
        Specified by:
        isTargetEncodingVariable in class AbstractFilter
        Returns:
        true, because it is possible to change target encoding
      • 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
      • 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 window
        config - 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 interface IFilter
        Overrides:
        hasOptions in class AbstractFilter
        Returns:
        True if the filter has any options, and false otherwise.