src/share/classes/java/awt/Toolkit.java

Print this page

        

*** 1605,1614 **** --- 1605,1616 ---- * Support for I18N: any visible strings should be stored in * sun.awt.resources.awt.properties. The ResourceBundle is stored * here, so that only one copy is maintained. */ private static ResourceBundle resources; + private static ResourceBundle platformResources; + /** * Initialize JNI field and method ids */ private static native void initIDs();
*** 1653,1669 **** --- 1655,1686 ---- loaded = true; } } static { + String osname = System.getProperty("os.name"); + + final String platformSuffix; + if (osname.contains("OS X")) { + platformSuffix = "osx"; + } else { + platformSuffix = null; + } + java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { try { resources = ResourceBundle.getBundle("sun.awt.resources.awt", CoreResourceBundleControl.getRBControlInstance()); + if (platformSuffix != null) { + platformResources = + ResourceBundle.getBundle("sun.awt.resources.awt" + platformSuffix, + CoreResourceBundleControl.getRBControlInstance()); + } + } catch (MissingResourceException e) { // No resource file; defaults will be used. } return null; }
*** 1680,1689 **** --- 1697,1715 ---- /** * Gets a property with the specified key and default. * This method returns defaultValue if the property is not found. */ public static String getProperty(String key, String defaultValue) { + // first try platform specific bundle + if (platformResources != null) { + try { + return platformResources.getString(key); + } + catch (MissingResourceException e) {} + } + + // then shared one if (resources != null) { try { return resources.getString(key); } catch (MissingResourceException e) {}