Package net.i2p.util

Class Translate

  • Direct Known Subclasses:
    Messages

    public abstract class Translate
    extends Object
    Translate strings efficiently. We don't include an English or default ResourceBundle, we simply check for "en" and return the original string. Support real-time language changing with the routerconsole.lang and routerconsole.country properties. To change language in router context, set the context properties PROP_LANG and PROP_COUNTRY. To change language in app context, set the System properties PROP_LANG and PROP_COUNTRY.
    Since:
    0.7.9
    Author:
    zzz, from a base generated by eclipse.
    • Constructor Detail

      • Translate

        public Translate()
    • Method Detail

      • getString

        public static String getString​(String s,
                                       Object o,
                                       I2PAppContext ctx,
                                       String bun)
        translate a string with a parameter This is a lot more expensive than getString(s, ctx), so use sparingly.
        Parameters:
        s - string to be translated containing {0} The {0} will be replaced by the parameter. Single quotes must be doubled, i.e. ' -> '' in the string.
        o - parameter, not translated. To translate parameter also, use _t("foo {0} bar", _t("baz")) Do not double the single quotes in the parameter. Use autoboxing to call with ints, longs, floats, etc.
      • getString

        public static String getString​(int n,
                                       String s,
                                       String p,
                                       I2PAppContext ctx,
                                       String bun)
        Use GNU ngettext For .po file format see http://www.gnu.org/software/gettext/manual/gettext.html.gz#Translating-plural-forms
        Parameters:
        n - how many
        s - singluar string, optionally with {0} e.g. "one tunnel"
        p - plural string optionally with {0} e.g. "{0} tunnels"
        Since:
        0.7.14
      • getLanguage

        public static String getLanguage​(I2PAppContext ctx)
        Two- or three-letter lower case
        Returns:
        lang in routerconsole.lang property, else current locale
      • isRTL

        public static boolean isRTL​(I2PAppContext ctx)
        Are we configured for a right-to-left language?
        Returns:
        true for supported RTL languages
        Since:
        0.9.46
      • isRTL

        public static boolean isRTL​(String lang)
        Is this a right-to-left language?
        Parameters:
        lang - Two- or three-letter lower case
        Returns:
        true for supported RTL languages
        Since:
        0.9.46
      • getCountry

        public static String getCountry​(I2PAppContext ctx)
        Two-letter upper case or ""
        Returns:
        country in routerconsole.country property, else current locale
        Since:
        0.9.10
      • setLanguage

        public static void setLanguage​(String lang,
                                       String country)
        Only for use by standalone apps in App Context. NOT for use in Router Context. Does not persist, apps must implement their own persistence. Does NOT override context properties.
        Parameters:
        lang - Two- or three-letter lower case, or null for default
        country - Two-letter upper case, or null for default, or "" for none
        Since:
        0.9.27
      • getDisplayLanguage

        public static String getDisplayLanguage​(String langCode,
                                                String dflt,
                                                I2PAppContext ctx,
                                                String bun)
        Return the "display language", e.g. "English" for the language specified by langCode, using the current language. Uses translation if available, then JVM Locale.getDisplayLanguage() if available, else default param.
        Parameters:
        langCode - two- or three-letter lower-case
        dflt - e.g. "English"
        Since:
        0.9.5
      • clearCache

        public static void clearCache()
        Clear the cache. Call this after adding new bundles to the classpath.
        Since:
        0.7.12