/** * Loads java-ui.properties and sets all key-value pairs using UIManager.put(). This is needed to * translate JFileChooser to languages not supported by Java natively. */ private void updateJavaUILanguage() { // load properties jar file if (currentLocale == ((AppD) app).getLocale()) return; // update locale currentLocale = ((AppD) app).getLocale(); String lang = currentLocale.getLanguage(); boolean deleteKeys = false; if ("it".equals(lang) || "zh".equals(lang) || "ja".equals(lang) || "de".equals(lang) // || "es".equals(lang) we have our own Spanish translation // || "fr".equals(lang) we have our own French translation || "ko".equals(lang) || "sv".equals(lang)) { // get keys to delete // as Java is localized in these languages already // http://openjdk.java.net/groups/i18n/ rbJavaUI = MyResourceBundle.loadSingleBundleFile(LocalizationD.RB_JAVA_UI); deleteKeys = true; } else { rbJavaUI = MyResourceBundle.createBundle(LocalizationD.RB_JAVA_UI, currentLocale); } Enumeration<String> keys = rbJavaUI.getKeys(); while (keys.hasMoreElements()) { String key = keys.nextElement(); String value = deleteKeys ? null : rbJavaUI.getString(key); UIManager.put(key, value); } // update file chooser if (getFileChooser() != null) { getFileChooser().setLocale(currentLocale); SwingUtilities.updateComponentTreeUI(getFileChooser()); // Unfortunately the preceding line removes the event listener from // the // internal JTextField inside the file chooser. This means that the // listener has to be registered again. (e.g. a simple call to // 'AutoCompletion.install(this);' inside the GeoGebraFileChooser // constructor is not sufficient) AutoCompletion.install(getFileChooser(), true); } }
/** Returns the Maxima command for the given key (from ggb2Maxima.properties) */ public synchronized String getTranslatedCASCommand(String key) { if (ggb2Maxima == null) { ggb2Maxima = MyResourceBundle.loadSingleBundleFile(RB_GGB_TO_Maxima); } String ret; try { ret = ggb2Maxima.getString(key); } catch (MissingResourceException e) { ret = null; } return ret; }