X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fi18n%2FI18n.java;h=4647ddc50d57bf20902067e715bd6ed79d7aa497;hb=c63257e8cc0ba1a5aca9364b22171abe7279d479;hp=ae6bef5043b131d814839f4f2ca240ccdfe96d0d;hpb=3eef5aa816b0f219c0ef384a0b28ec4d59e66c85;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/i18n/I18n.java b/src/net/pterodactylus/jsite/i18n/I18n.java index ae6bef5..4647ddc 100644 --- a/src/net/pterodactylus/jsite/i18n/I18n.java +++ b/src/net/pterodactylus/jsite/i18n/I18n.java @@ -31,19 +31,24 @@ import java.util.Locale; import java.util.MissingResourceException; import java.util.Properties; import java.util.StringTokenizer; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.KeyStroke; import net.pterodactylus.util.io.Closer; +import net.pterodactylus.util.logging.Logging; /** * Class that handles i18n. - * + * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> - * @version $Id$ */ public class I18n { + /** Logger. */ + private static final Logger logger = Logging.getLogger(I18n.class.getName()); + /** List of I18nables that are notified when the language changes. */ private static final List i18nables = new ArrayList(); @@ -73,7 +78,7 @@ public class I18n { /** * Returns the translated value for a key. The translated values may contain * placeholders that are replaced with the given parameters. - * + * * @see MessageFormat * @param key * The key to get @@ -87,7 +92,8 @@ public class I18n { String value = null; value = currentLanguage.getProperty(key); if (value == null) { - System.err.println("please fix “" + key + "”!"); + logger.log(Level.WARNING, "please fix “" + key + "”!", new Throwable()); + /* TODO - replace with value when done! */ return null; } if ((parameters != null) && (parameters.length > 0)) { @@ -100,7 +106,7 @@ public class I18n { * Returns the keycode from the value of the given key. You can specify the * constants in {@link KeyEvent} in the properties file, e.g. VK_S for the * keycode ‘s’ when used for mnemonics. - * + * * @param key * The key under which the keycode is stored * @return The keycode @@ -127,7 +133,7 @@ public class I18n { /** * Returns a key stroke for use with swing accelerators. - * + * * @param key * The key of the key stroke * @return The key stroke, or null if no key stroke could be @@ -150,6 +156,9 @@ public class I18n { modifierMask |= InputEvent.SHIFT_DOWN_MASK; } else { if (keyToken.startsWith("VK_")) { + if (keyToken.equals("VK_UNDEFINED")) { + return null; + } try { Field field = KeyEvent.class.getField(keyToken); return KeyStroke.getKeyStroke(field.getInt(null), modifierMask); @@ -171,7 +180,7 @@ public class I18n { /** * Sets the current locale. - * + * * @param newLocale * The new locale to use */ @@ -181,7 +190,7 @@ public class I18n { /** * Sets the current locale. - * + * * @param newLocale * The new locale to use * @param notify @@ -217,7 +226,7 @@ public class I18n { /** * Returns the current locale. - * + * * @return The current locale */ public static Locale getLocale() { @@ -226,7 +235,7 @@ public class I18n { /** * Finds all available locales. - * + * * @return All available locales */ public static List findAvailableLanguages() { @@ -238,7 +247,7 @@ public class I18n { /** * Registers the given I18nable to be updated when the language is changed. - * + * * @param i18nable * The i18nable to register */ @@ -249,7 +258,7 @@ public class I18n { /** * Deregisters the given I18nable to be updated when the language is * changed. - * + * * @param i18nable * The i18nable to register */ @@ -265,7 +274,7 @@ public class I18n { * Notifies all registered {@link I18nable}s that the language was changed. */ private static void notifyI18nables() { - for (I18nable i18nable: i18nables) { + for (I18nable i18nable : i18nables) { i18nable.updateI18n(); } }