From: Egon W. <eg...@us...> - 2002-10-06 11:47:25
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol In directory usw-pr-cvs1:/tmp/cvs-serv25428 Modified Files: Jmol.java JmolResourceHandler.java Log Message: Making a start with internationalizing Jmol with Dutch example translation. Index: Jmol.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/Jmol.java,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -r1.60 -r1.61 *** Jmol.java 15 Sep 2002 08:18:34 -0000 1.60 --- Jmol.java 6 Oct 2002 11:47:21 -0000 1.61 *************** *** 1,3 **** - /* * Copyright 2002 The Jmol Development Team --- 1,2 ---- *************** *** 61,64 **** --- 60,64 ---- import java.util.MissingResourceException; import java.util.EventObject; + import java.util.Locale; import javax.swing.JToolBar; import javax.swing.JFileChooser; *************** *** 129,133 **** */ private File currentFile; ! /** * Button group for toggle buttons in the toolbar. --- 129,133 ---- */ private File currentFile; ! /** * Button group for toggle buttons in the toolbar. *************** *** 149,152 **** --- 149,154 ---- protected DisplaySettings settings = new DisplaySettings(); + private JmolResourceHandler resourceHandler; + static { if (System.getProperty("javawebstart.version") != null) { *************** *** 173,178 **** super(true); this.splash = splash; ! splash.showStatus("Initializing Swing..."); try { UIManager --- 175,184 ---- super(true); + + // get a resource handler + resourceHandler = JmolResourceHandler.getInstance(); + this.splash = splash; ! splash.showStatus(resourceHandler.translate("Initializing Swing...")); try { UIManager *************** *** 189,195 **** try { ! String vpFlag = ! JmolResourceHandler.getInstance() ! .getString("Jmol.ViewportBackingStore"); Boolean bs = new Boolean(vpFlag); port.setBackingStoreEnabled(bs.booleanValue()); --- 195,199 ---- try { ! String vpFlag = resourceHandler.getString("Jmol.ViewportBackingStore"); Boolean bs = new Boolean(vpFlag); port.setBackingStoreEnabled(bs.booleanValue()); *************** *** 200,219 **** status = (StatusBar) createStatusBar(); ! splash.showStatus("Initializing 3D display..."); display = new DisplayPanel(status, settings); ! splash.showStatus("Initializing Preferences..."); prefs = new Preferences(frame, display); ! splash.showStatus("Initializing Animate..."); anim = new Animate(frame, display); ! splash.showStatus("Initializing Vibrate..."); vib = new Vibrate(frame, display); ! splash.showStatus("Initializing Recent Files..."); recentFiles = new RecentFilesDialog(frame); addPropertyChangeListener(openFileProperty, recentFiles); ! splash.showStatus("Initializing Script Window..."); scriptWindow = new ScriptWindow(frame, new RasMolScriptHandler(this)); ! splash.showStatus("Initializing Property Graph..."); pg = new PropertyGraph(frame); ! splash.showStatus("Initializing Measurements..."); mlist = new MeasurementList(frame, display); meas = new Measure(frame, display); --- 204,223 ---- status = (StatusBar) createStatusBar(); ! splash.showStatus(resourceHandler.translate("Initializing 3D display...")); display = new DisplayPanel(status, settings); ! splash.showStatus(resourceHandler.translate("Initializing Preferences...")); prefs = new Preferences(frame, display); ! splash.showStatus(resourceHandler.translate("Initializing Animate...")); anim = new Animate(frame, display); ! splash.showStatus(resourceHandler.translate("Initializing Vibrate...")); vib = new Vibrate(frame, display); ! splash.showStatus(resourceHandler.translate("Initializing Recent Files...")); recentFiles = new RecentFilesDialog(frame); addPropertyChangeListener(openFileProperty, recentFiles); ! splash.showStatus(resourceHandler.translate("Initializing Script Window...")); scriptWindow = new ScriptWindow(frame, new RasMolScriptHandler(this)); ! splash.showStatus(resourceHandler.translate("Initializing Property Graph...")); pg = new PropertyGraph(frame); ! splash.showStatus(resourceHandler.translate("Initializing Measurements...")); mlist = new MeasurementList(frame, display); meas = new Measure(frame, display); *************** *** 222,230 **** mlist.addMeasurementListListener(display); port.add(display); ! splash.showStatus("Initializing Chemical Shifts..."); chemicalShifts.initialize(); // install the command table ! splash.showStatus("Building Command Hooks..."); commands = new Hashtable(); Action[] actions = getActions(); --- 226,234 ---- mlist.addMeasurementListListener(display); port.add(display); ! splash.showStatus(resourceHandler.translate("Initializing Chemical Shifts...")); chemicalShifts.initialize(); // install the command table ! splash.showStatus(resourceHandler.translate("Building Command Hooks...")); commands = new Hashtable(); Action[] actions = getActions(); *************** *** 242,246 **** vib.addConflictingAction(getAction(openAction)); menuItems = new Hashtable(); ! splash.showStatus("Building Menubar..."); menubar = createMenubar(); add("North", menubar); --- 246,250 ---- vib.addConflictingAction(getAction(openAction)); menuItems = new Hashtable(); ! splash.showStatus(resourceHandler.translate("Building Menubar...")); menubar = createMenubar(); add("North", menubar); *************** *** 257,266 **** add("South", status); ! splash.showStatus("Starting display..."); display.start(); ! splash.showStatus("Reading AtomTypes..."); atomTypeTable = new AtomTypeTable(frame, UserAtypeFile); ! splash.showStatus("Setting up File Choosers..."); File currentDir = getUserDirectory(); openChooser = new JFileChooser(); --- 261,270 ---- add("South", status); ! splash.showStatus(resourceHandler.translate("Starting display...")); display.start(); ! splash.showStatus(resourceHandler.translate("Reading AtomTypes...")); atomTypeTable = new AtomTypeTable(frame, UserAtypeFile); ! splash.showStatus(resourceHandler.translate("Setting up File Choosers...")); File currentDir = getUserDirectory(); openChooser = new JFileChooser(); *************** *** 287,295 **** Splash splash = new Splash(frame, splash_image); splash.setCursor(new Cursor(Cursor.WAIT_CURSOR)); ! splash.showStatus("Creating main window..."); frame.setTitle(jrh.getString("Jmol.Title")); frame.setBackground(Color.lightGray); frame.getContentPane().setLayout(new BorderLayout()); ! splash.showStatus("Initializing Jmol..."); Jmol window = new Jmol(splash); frame.getContentPane().add("Center", window); --- 291,299 ---- Splash splash = new Splash(frame, splash_image); splash.setCursor(new Cursor(Cursor.WAIT_CURSOR)); ! splash.showStatus(jrh.translate("Creating main window...")); frame.setTitle(jrh.getString("Jmol.Title")); frame.setBackground(Color.lightGray); frame.getContentPane().setLayout(new BorderLayout()); ! splash.showStatus(jrh.translate("Initializing Jmol...")); Jmol window = new Jmol(splash); frame.getContentPane().add("Center", window); *************** *** 301,305 **** Image iconImage = jmolIcon.getImage(); frame.setIconImage(iconImage); ! splash.showStatus("Launching main frame..."); frame.show(); return window; --- 305,309 ---- Image iconImage = jmolIcon.getImage(); frame.setIconImage(iconImage); ! splash.showStatus(jrh.translate("Launching main frame...")); frame.show(); return window; *************** *** 352,356 **** try { System.out.println("Executing script: " + script.toString()); ! window.splash.showStatus("Executing script..."); RasMolScriptHandler scripthandler = new RasMolScriptHandler(window); BufferedReader reader = new BufferedReader(new FileReader(script)); --- 356,360 ---- try { System.out.println("Executing script: " + script.toString()); ! window.splash.showStatus(JmolResourceHandler.getInstance().translate("Executing script...")); RasMolScriptHandler scripthandler = new RasMolScriptHandler(window); BufferedReader reader = new BufferedReader(new FileReader(script)); *************** *** 656,662 **** if (isRadio) { mi = new JRadioButtonMenuItem(JmolResourceHandler.getInstance() ! .getString("Jmol." + cmd + labelSuffix)); } else { ! String checked = JmolResourceHandler.getInstance().getString("Jmol." + cmd + checkSuffix); if (checked != null) { --- 660,666 ---- if (isRadio) { mi = new JRadioButtonMenuItem(JmolResourceHandler.getInstance() ! .translate("Jmol." + cmd + labelSuffix)); } else { ! String checked = JmolResourceHandler.getInstance().translate("Jmol." + cmd + checkSuffix); if (checked != null) { Index: JmolResourceHandler.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/JmolResourceHandler.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** JmolResourceHandler.java 24 May 2002 18:21:17 -0000 1.8 --- JmolResourceHandler.java 6 Oct 2002 11:47:21 -0000 1.9 *************** *** 21,26 **** --- 21,28 ---- import java.net.URL; + import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; + import java.util.StringTokenizer; import javax.swing.ImageIcon; *************** *** 38,43 **** private JmolResourceHandler() { resourceBundle = ! ResourceBundle.getBundle("org.openscience.jmol.Properties.Jmol"); } --- 40,52 ---- private JmolResourceHandler() { + String locale = System.getProperty("lang", "en_EN"); + String lang = "en"; + String country = "EN"; + StringTokenizer st = new StringTokenizer(locale, "_"); + if (st.hasMoreTokens()) lang = st.nextToken(); + if (st.hasMoreTokens()) country = st.nextToken(); + Locale l = new Locale(lang, country); resourceBundle = ! ResourceBundle.getBundle("org.openscience.jmol.Properties.Jmol", l); } *************** *** 79,82 **** --- 88,106 ---- } return result; + } + + /** + * A wrapper for easy detection which strins in the + * source code are localized. + */ + public synchronized String translate(String text) { + StringTokenizer st = new StringTokenizer(text); + StringBuffer key = new StringBuffer(); + while (st.hasMoreTokens()) { + key.append(st.nextToken()); + if (st.hasMoreTokens()) key.append("_"); + } + String translatedText = getString(key.toString()); + return (text != null) ? translatedText : text; } |