    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class gnu.gettext.GettextResource

    java.lang.Object
       |
       +----java.util.ResourceBundle
               |
               +----gnu.gettext.GettextResource

public abstract class GettextResource
extends ResourceBundle

This class implements the main GNU libintl functions in Java.

Using the GNU gettext approach, compiled message catalogs are normal Java ResourceBundle classes and are thus interoperable with standard ResourceBundle based code.

The main differences between the Sun ResourceBundle approach and the GNU gettext approach are:

- In the Sun approach, the keys are abstract textual shortcuts. In the GNU gettext approach, the keys are the English/ASCII version of the messages.
- In the Sun approach, the translation files are called "Resource_locale.properties" and have non-ASCII characters encoded in the Java `\``unnnn` syntax. Very few editors can natively display international characters in this format. In the GNU gettext approach, the translation files are called "Resource.locale.po" and are in the encoding the translator has chosen. Many editors can be used. There are at least three GUI translating tools (Emacs PO mode, KDE KBabel, GNOME gtranslator).
- In the Sun approach, the function `ResourceBundle.getString` throws a `MissingResourceException` when no translation is found. In the GNU gettext approach, the `gettext` function returns the (English) message key in that case.
- In the Sun approach, there is no support for plural handling. Even the most elaborate MessageFormat strings cannot provide decent plural handling. In the GNU gettext approach, we have the `ngettext` function.

To compile GNU gettext message catalogs into Java ResourceBundle classes, the `msgfmt` program can be used.

##

verbose

##

GettextResource()

##

gettext(ResourceBundle, String)
  Returns the translation of msgid.
ngettext(ResourceBundle, String, String, long)
  Returns the plural form for n of the translation of msgid.

##

verbose

     public static boolean verbose

##

GettextResource

     public GettextResource()

##

gettext

     public static String gettext(ResourceBundle catalog,
                                  String msgid)

  Returns the translation of msgid.

  Parameters:
    catalog - a ResourceBundle
    msgid - the key string to be translated, an ASCII string
  Returns:
    the translation of msgid, or msgid if none is found

ngettext

     public static String ngettext(ResourceBundle catalog,
                                   String msgid,
                                   String msgid_plural,
                                   long n)

  Returns the plural form for n of the translation of msgid.

  Parameters:
    catalog - a ResourceBundle
    msgid - the key string to be translated, an ASCII string
    msgid_plural - its English plural form
  Returns:
    the translation of msgid depending on n, or msgid or msgid_plural if none is found

    All Packages  Class Hierarchy  This Package  Previous  Next  Index