From b23ec75ab3fc661ee6095f28db033ad4073bf0b1 Mon Sep 17 00:00:00 2001 From: Oliver Metz Date: Sat, 15 Dec 2012 23:36:01 +0100 Subject: [PATCH] Continue on i18n support Signed-off-by: Oliver Metz --- lang/fbeditor_de_DE.properties | 98 +++++++++++---------- lang/fbeditor_en_US.properties | 94 +++++++++++--------- src/de/FBEditor/BoxInfo.java | 17 ++-- src/de/FBEditor/CutAndPastePopup.java | 12 +-- src/de/FBEditor/FBEdit.java | 122 ++++++++++++++++++++++---- src/de/FBEditor/MyMenu.java | 52 +++++------ src/de/FBEditor/utils/Utils.java | 4 +- 7 files changed, 252 insertions(+), 147 deletions(-) diff --git a/lang/fbeditor_de_DE.properties b/lang/fbeditor_de_DE.properties index 131fa0d..1fcf871 100644 --- a/lang/fbeditor_de_DE.properties +++ b/lang/fbeditor_de_DE.properties @@ -1,49 +1,57 @@ #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net) -box.not_found = Fritz\!Box wurde nicht gefunden.\nBitte die Einstellungen prüfen. -box.get_config =Hole Konfiguration von Fritz\!Box.\nBitte warten... -box.affirmation = Sind sie sicher, dass sie die Konfiguration auf die Fritz\!Box zurückspielen wollen?\nDer Autor dieses Programms übernimmt keine Haftung für defekte Boxen! -box.restart = Die Einstellungen wurden erfolgreich wiederhergestellt.\nDie Fritz\!Box startet jetzt neu.\n -settings.backup = Einstellungen wiederherstellen -box.settings_error = Die Konfiguration ist fehlerhaft und konnte nicht zurückgespielt werden! -export.file = Export-Datei + +box.affirmation = Sind sie sicher, dass sie die Konfiguration auf die Fritz!Box zur\u00FCckspielen wollen?\nDer Autor dieses Programms \u00FCbernimmt keine Haftung f\u00FCr defekte Boxen! +box.get_config = Hole Konfiguration von Fritz!Box.\nBitte warten... +box.not_found = Fritz!Box wurde nicht gefunden.\nBitte die Einstellungen pr\u00FCfen. +box.restart = Die Einstellungen wurden erfolgreich wiederhergestellt.\nDie Fritz!Box startet jetzt neu.\n +box.settings_error = Die Konfiguration ist fehlerhaft und konnte nicht zur\u00FCckgespielt werden! + +boxinfo.firmware = Firmware: +boxinfo.hardware = Hardware: +boxinfo.modversion = Mod-Version: +boxinfo.nomod = original Firmware + +export.file = Export-Datei export.load.error = Fehler: Datei konnte nicht geladen werden. export.save.error = Fehler: Datei konnte nicht gespeichert werden. -main.error = Fehler -main.thanks = Mein Dank geht an Enrik Berkhan, Andreas Bühmann \nund an das JFritz-Team.\n -menu.about = Über -settings.host_ip = Hostname / IP-Adresse: -settings.password = Passwort: -menu.file = Datei -menu.new = Neu -menu.open = Öffnen -menu.config_read = Konfiguration einlesen -menu.config_save = Speichern -menu.config_write = Konfiguration zurückspielen -menu.reconnect = Neu verbinden -menu.exit = Beenden -menu.edit = Bearbeiten -menu.revert = Rückgängig -menu.restore = Wiederherstellen -menu.cut = Ausschneiden -menu.copy = Kopieren -menu.insert = Einfügen -menu.delete = Löschen -menu.search = Suchen -menu.replace = Ersetzen -menu.help = Hilfe -menu.boxinfo = Boxinfo -menu.settings = Einstellungen -menu.host_ip = Hostname / IP-Adresse -menu.password = Passwort -menu.config_auto_read = Konfiguration automatisch einlesen -menu.nochecks = NoChecks -menu.line = Zeile -menu.markall = Alles markieren -menu.close = Schließen -window.close = Fenster schließen -boxinfo.nomod = original Firmware -boxinfo.hardware = Hardware: -boxinfo.firmware = Firmware: -boxinfo.modversion = Mod-Version: + +main.error = Fehler +main.thanks = Mein Dank geht an Enrik Berkhan, Andreas B\u00FChmann \nund an das JFritz-Team.\n main.unknown_file = unbenannt -utils.restore_error = Beim Zurückspielen ist ein Fehler aufgetreten! \ No newline at end of file + +menu.about = \u00DCber +menu.boxinfo = Boxinfo +menu.close = Schlie\u00DFen +menu.config_auto_read = Konfiguration automatisch einlesen +menu.config_read = Konfiguration einlesen +menu.config_save = Speichern +menu.config_write = Konfiguration zur\u00FCckspielen +menu.copy = Kopieren +menu.cut = Ausschneiden +menu.delete = L\u00F6schen +menu.edit = Bearbeiten +menu.exit = Beenden +menu.file = Datei +menu.help = Hilfe +menu.host_ip = Hostname / IP-Adresse +menu.insert = Einf\u00FCgen +menu.line = Zeile +menu.markall = Alles markieren +menu.new = Neu +menu.nochecks = NoChecks +menu.open = \u00D6ffnen +menu.password = Passwort +menu.reconnect = Neu verbinden +menu.replace = Ersetzen +menu.restore = Wiederherstellen +menu.revert = R\u00FCckg\u00E4ngig +menu.search = Suchen +menu.settings = Einstellungen + +settings.backup = Einstellungen wiederherstellen +settings.host_ip = Hostname / IP-Adresse: +settings.password = Passwort: + +utils.restore_error = Beim Zur\u00FCckspielen ist ein Fehler aufgetreten! + +window.close = Fenster schlie\u00DFen diff --git a/lang/fbeditor_en_US.properties b/lang/fbeditor_en_US.properties index 3069ee2..b4b9cea 100644 --- a/lang/fbeditor_en_US.properties +++ b/lang/fbeditor_en_US.properties @@ -1,49 +1,57 @@ #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net) -box.not_found = Fritz\!Box not found.\nPlease check your settings. -box.get_config = Getting configuration from Fritz\!Box.\nPlease wait... -box.affirmation = Are you sure that you want to Upload this configuration to your Fritz\!Box?\nThe author will not assume responsibility for bricked devices! -box.restart = The settings were restored sucessfully .\nYour Fritz\!Box reboots now.\n -settings.backup = Restore configuration + +box.affirmation = Are you sure that you want to Upload this configuration to your Fritz!Box?\nThe author will not assume responsibility for bricked devices! +box.get_config = Getting configuration from Fritz!Box.\nPlease wait... +box.not_found = Fritz!Box not found.\nPlease check your settings. +box.restart = The settings were restored sucessfully .\nYour Fritz!Box reboots now.\n box.settings_error = The configuration is incorrect and could not be restored. -export.file = Exportfile + +boxinfo.firmware = Firmware: +boxinfo.hardware = Hardware: +boxinfo.modversion = Mod-Version: +boxinfo.nomod = original firmware + +export.file = Exportfile export.load.error = Error: Could not load file export.save.error = Error: Could not save file -main.error = Error -main.thanks = My thanks go to Enrik Berkhan, Andreas Bühmann \nand the JFritz-Team.\n -menu.about = About -settings.host_ip = Hostname / IP-Address: -settings.password = Password -menu.file = File -menu.new = New -menu.open = Open -menu.config_read = Read configuration -menu.config_save = Save -menu.config_write = Restore configuration -menu.reconnect = Reconnect -menu.exit = Exit -menu.edit = Edit -menu.revert = Revert -menu.restore = Restore -menu.cut = Cut -menu.copy = Copy -menu.insert = Insert -menu.delete = Delete -menu.search = Search -menu.replace = Replace -menu.help = Help -menu.boxinfo = Boxinfo -menu.settings = Settings -menu.host_ip = Hostname / IP-Address -menu.password = Password + +main.error = Error +main.thanks = My thanks go to Enrik Berkhan, Andreas B\u00FChmann \nand the JFritz-Team.\n +main.unknown_file = unnamed + +menu.about = About +menu.boxinfo = Boxinfo +menu.close = Close menu.config_auto_read = Read configuration on startup -menu.nochecks = NoChecks -menu.line = line -menu.markall = Mark all -menu.close = Close +menu.config_read = Read configuration +menu.config_save = Save +menu.config_write = Restore configuration +menu.copy = Copy +menu.cut = Cut +menu.delete = Delete +menu.edit = Edit +menu.exit = Exit +menu.file = File +menu.help = Help +menu.host_ip = Hostname / IP-Address +menu.insert = Insert +menu.line = line +menu.markall = Mark all +menu.new = New +menu.nochecks = NoChecks +menu.open = Open +menu.password = Password +menu.reconnect = Reconnect +menu.replace = Replace +menu.restore = Restore +menu.revert = Revert +menu.search = Search +menu.settings = Settings + +settings.backup = Restore configuration +settings.host_ip = Hostname / IP-Address: +settings.password = Password + +utils.restore_error = An error occured while restoring configuration! + window.close = Close window -boxinfo.nomod = original firmware -boxinfo.hardware = Hardware: -boxinfo.firmware = Firmware: -boxinfo.modversion = Mod-Version: -main.unknown_file = unnamed -utils.restore_error = An error occured while restoring configuration! \ No newline at end of file diff --git a/src/de/FBEditor/BoxInfo.java b/src/de/FBEditor/BoxInfo.java index 91e8e5e..7ac800f 100644 --- a/src/de/FBEditor/BoxInfo.java +++ b/src/de/FBEditor/BoxInfo.java @@ -44,7 +44,7 @@ public BoxInfo(String boxName, String firmwareVersion, String modVersion) { super(); this.setSize(500, 300); - this.setTitle("BoxInfo"); + this.setTitle(FBEdit.getMessage("menu.boxinfo")); this.setIconImage(FBEdit.getInstance().getImageFromJAR("/icon.gif")); this.setContentPane(getJPanel()); this.setLocationRelativeTo(FBEdit.getInstance().getframe()); @@ -100,8 +100,8 @@ private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setPreferredSize(new java.awt.Dimension(115, 35)); - jButton.setText("Schließen"); - jButton.setToolTipText("Fenster schließen"); + jButton.setText(FBEdit.getMessage("menu.close")); + jButton.setToolTipText(FBEdit.getMessage("window.close")); jButton.setName("close"); jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { @@ -152,19 +152,19 @@ private JPanel getJPanel1() { if (jPanel1 == null) { jPanel1 = new JPanel(); jPanel1.setLayout(new GridLayout(4, 2)); - JLabel jLabel = new JLabel(" Hardware:"); + JLabel jLabel = new JLabel(FBEdit.getMessage("boxinfo.hardware")); jLabel.setPreferredSize(new Dimension(100, 26)); jPanel1.add(jLabel); jLabel2 = new JLabel(); jLabel2.setPreferredSize(new Dimension(100, 26)); jPanel1.add(jLabel2); - jLabel = new JLabel(" Firmware: "); + jLabel = new JLabel(FBEdit.getMessage("boxinfo.firmware")); jLabel.setPreferredSize(new Dimension(100, 26)); jPanel1.add(jLabel); jLabel4 = new JLabel(); jLabel4.setPreferredSize(new Dimension(100, 26)); jPanel1.add(jLabel4); - jLabel = new JLabel(" Mod-Version: "); + jLabel = new JLabel(FBEdit.getMessage("boxinfo.modversion")); jLabel.setPreferredSize(new Dimension(100, 26)); jPanel1.add(jLabel); jLabel6 = new JLabel(); @@ -177,6 +177,9 @@ private JPanel getJPanel1() { public void setPanelText(String boxName, String firmwareVersion, String modVersion) { jLabel2.setText(boxName); jLabel4.setText(firmwareVersion); - jLabel6.setText(modVersion); + if (modVersion.equals("")) + jLabel6.setText(FBEdit.getMessage("boxinfo.nomod")); + else + jLabel6.setText(modVersion); } } diff --git a/src/de/FBEditor/CutAndPastePopup.java b/src/de/FBEditor/CutAndPastePopup.java index b3abc85..07567a1 100644 --- a/src/de/FBEditor/CutAndPastePopup.java +++ b/src/de/FBEditor/CutAndPastePopup.java @@ -22,15 +22,15 @@ public class CutAndPastePopup extends JComponent implements ClipboardOwner { public CutAndPastePopup(ActionListen action) { popupMenu = new JPopupMenu(); - popupMenu.setLabel("Edit"); + popupMenu.setLabel(FBEdit.getMessage("menu.edit")); // hier noch nicht implementiert // revert = new JMenuItem("Rückgängig"); - cut = new JMenuItem("Ausschneiden"); - copy = new JMenuItem("Kopieren"); - insert = new JMenuItem("Einfügen"); - delete = new JMenuItem("Löschen"); - markall = new JMenuItem("Alles markieren"); + cut = new JMenuItem(FBEdit.getMessage("menu.cut")); + copy = new JMenuItem(FBEdit.getMessage("menu.copy")); + insert = new JMenuItem(FBEdit.getMessage("menu.insert")); + delete = new JMenuItem(FBEdit.getMessage("menu.delete")); + markall = new JMenuItem(FBEdit.getMessage("menu.markall")); clipbd = getToolkit().getSystemClipboard(); // undoManager = fbedit.getUndoManager(); diff --git a/src/de/FBEditor/FBEdit.java b/src/de/FBEditor/FBEdit.java index d2e528f..cf14dda 100644 --- a/src/de/FBEditor/FBEdit.java +++ b/src/de/FBEditor/FBEdit.java @@ -57,6 +57,11 @@ import de.moonflower.jfritz.utils.Debug; import de.moonflower.jfritz.utils.Encryption; +import java.util.ResourceBundle; +import java.util.Vector; +import java.util.Locale; +import java.util.MissingResourceException; + public class FBEdit extends JFrame implements Runnable { @@ -77,11 +82,12 @@ public class FBEdit extends JFrame implements Runnable private static String box_password = ""; private static String readOnStartup = "false"; private static String NoChecks = "false"; + private static String language = "false"; private static MyProperties properties; private final CompoundUndoManager undoManager; - private final String progName = "Fritz!Box Export Editor";; - private String fileName = "Bearbeiten"; + private static String progName = "Fritz!Box Export Editor";; + private String fileName = ""; private boolean stoprequested = false; private static CutAndPastePopup cutAndPaste; private ActionListen action; @@ -92,6 +98,9 @@ public class FBEdit extends JFrame implements Runnable private FindReplace findReplace = null; private static JPopupMenu popup; + private static Vector supported_languages; + private static ResourceBundle messages; + private static ResourceBundle en_messages; public FBEdit() { @@ -110,8 +119,30 @@ public FBEdit() { getHost(true); getPassword(true); } - - + + // load supported languages + loadLanguages(); + + Debug.always("OS Language: " + System.getProperty("user.language")); + Debug.always("OS Country: " + System.getProperty("user.country")); + if ( language == null || language.equals("") ) + { + Debug.info("No language set yet ... Setting language to OS language"); + // Check if language is supported. If not switch to English + if ( supported_languages.contains(new Locale(System.getProperty("user.language"),System.getProperty("user.country")))) + { + language = System.getProperty("user.language")+"_"+System.getProperty("user.country"); + } else { + Debug.warning("Your language ist not yet supported."); + language = "en_US"; + } + } + Debug.always("Selected language: " + language); + + loadMessages(new Locale(language.substring(0, language.indexOf("_")), language.substring(language.indexOf("_")+1, language.length()))); + + fileName = FBEdit.getMessage("main.unknown_file"); + undoManager = new CompoundUndoManager(pane); action = new ActionListen(this); cutAndPaste = new CutAndPastePopup(action); @@ -136,7 +167,7 @@ public FBEdit() { insertCaret = pane.getCaret(); pane.setCaret(insertMode ? insertCaret : overwriteCaret); pane.setCaretPosition(0); - + (new Thread(this)).start(); } @@ -144,8 +175,8 @@ private void setProperties(MyProperties properties) { box_address = properties.getProperty("box.address"); box_password = Encryption.decrypt(properties.getProperty("box.password")); readOnStartup = properties.getProperty("readOnStartup"); - // NoChecks = properties.getProperty("NoChecks"); - NoChecks = "true"; + NoChecks = properties.getProperty("NoChecks"); + language = properties.getProperty("language"); } // Dateiname im Titel und Cursor Position setzen @@ -222,7 +253,7 @@ void getFile() { pane2.setFont(new Font("Courrier", 0, 16)); /* Speedup */ removeDocumentListener(pane2, docListen2); - pane2.setText("Hole Konfiguration von Fritz!Box.\nBitte warten..."); + pane2.setText(FBEdit.getMessage("box.get_config")); new ImportData(); fileName = "fritzbox.export"; jFile = null; @@ -246,7 +277,7 @@ public void setData(String data) { // Export auf die Box zurückspielen void putFile() { // Sicherheitsabfrage - int response = JOptionPane.showConfirmDialog(this, "Sind sie sicher, dass sie die Konfiguration auf die Fritz!Box zur\374ckspielen wollen?\nDer Autor dieses Programms \374bernimmt keine Haftung f\374r defekte Boxen!!!", "Einstellungen wiederherstellen", 0, 0); + int response = JOptionPane.showConfirmDialog(this, FBEdit.getMessage("box.affirmation"), FBEdit.getMessage("settings.backup"), 0, 0); if (response == 0) { String text = CalcChecksum.replaceChecksum(this.getJTextPane().getText()); /* NoChecks=yes einfügen */ @@ -264,11 +295,11 @@ void putFile() { e.printStackTrace(); } if (result) - JOptionPane.showMessageDialog(this, "Die Einstellungen wurden erfolgreich wiederhergestellt.\nDie Anlage startet jetzt neu.\n", "Einstellungen wiederherstellen", 1); + JOptionPane.showMessageDialog(this, FBEdit.getMessage("box.restart"), FBEdit.getMessage("settings.backup"), 1); enableMenu(false); } else { - JOptionPane.showMessageDialog(this, "Die Konfiguration ist fehlerhaft und konnte nicht zur\374ckgespielt werden!", "Einstellungen wiederherstellen", 0); + JOptionPane.showMessageDialog(this, FBEdit.getMessage("box.settings_error"), FBEdit.getMessage("settings.backup"), 0); } } } @@ -277,7 +308,7 @@ void loadFile() { JTextPane2 pane2 = this.getJTextPane(); JFileChooser chooser = new JFileChooser("."); ExampleFileFilter filter = new ExampleFileFilter("export"); - filter.setDescription("Export-Datei"); + filter.setDescription(FBEdit.getMessage("export.file")); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(this); if (returnVal == 0) { @@ -290,7 +321,7 @@ void loadFile() { setData(new String(donnees)); fis.close(); } catch (IOException e) { - pane2.setText("Fehler: Datei konnte nicht geladen werden."); + pane2.setText(FBEdit.getMessage("export.load.error")); } undoManager.discardAllEdits(); } @@ -300,7 +331,7 @@ void saveFile() { JTextPane2 pane2 = this.getJTextPane(); JFileChooser chooser = new JFileChooser("."); ExampleFileFilter filter = new ExampleFileFilter("export"); - filter.setDescription("Export-Datei"); + filter.setDescription(FBEdit.getMessage("export.file")); chooser.setFileFilter(filter); chooser.setSelectedFile(new File(fileName)); @@ -316,13 +347,13 @@ void saveFile() { pfos.print(text); fos.close(); } catch (IOException e) { - JOptionPane.showMessageDialog(this.getframe(), "Datei konnte nicht gespeichert werden.", "Fehler", 0); + JOptionPane.showMessageDialog(this.getframe(), FBEdit.getMessage("export.save.error"), FBEdit.getMessage("main.error"), 0); } undoManager.discardAllEdits(); } void about() { - JOptionPane.showMessageDialog(this, (new StringBuilder("Fritz!Box Export Editor ")).append(version).append("\n").append("by Oliver Metz\n\nMein Dank geht an Enrik Berkhan, Andreas Bühmann \nund an das JFritz-Team.\n").toString(), "\334ber", + JOptionPane.showMessageDialog(this, (new StringBuilder("Fritz!Box Export Editor ")).append(version).append("\n").append("by Oliver Metz\n\n").append(FBEdit.getMessage("main.thanks")).toString(), FBEdit.getMessage("menu.about"), 0, new ImageIcon(getImageFromJAR("/icon.gif"))); } @@ -331,7 +362,7 @@ void showBoxInfo() { } void getHost(boolean first) { - String new_box_address = JOptionPane.showInputDialog(this, "Host / IP:", box_address); + String new_box_address = JOptionPane.showInputDialog(this, FBEdit.getMessage("settings.host_ip"), box_address); if (new_box_address != null && !new_box_address.equals(box_address)) { box_address = new_box_address; @@ -342,7 +373,7 @@ void getHost(boolean first) { void getPassword(boolean first) { JPasswordField field = new JPasswordField(box_password); - JOptionPane.showConfirmDialog(this, field, "Passwort:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showConfirmDialog(this, field, FBEdit.getMessage("settings.password"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE); field.requestFocus(); String newPass = new String(field.getPassword()); if (newPass != null && !newPass.equals(box_password)) { @@ -414,7 +445,7 @@ public static void makeNewConnection(Boolean firstStart) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); - JOptionPane.showMessageDialog(INSTANCE, "Fritz!Box wurde nicht gefunden.\nBitte die Einstellungen pr�fen.", "Fehler", 0); + JOptionPane.showMessageDialog(INSTANCE, FBEdit.getMessage("box.not_found") , "Fehler", 0); } catch (InvalidFirmwareException e) { e.printStackTrace(); } @@ -524,6 +555,10 @@ public void changeRAS() { public String getNoChecksState() { return NoChecks; } + + public String getLanguage() { + return language; + } /* NoChecks setzen */ @@ -551,4 +586,53 @@ public ActionListen getActionListener() { public CutAndPastePopup getCutAndPaste() { return cutAndPaste; } + + private static void loadLanguages() + { + supported_languages = new Vector(); + supported_languages.add(new Locale("de","DE")); + supported_languages.add(new Locale("en","US")); + /* + supported_languages.add(new Locale("it","IT")); + supported_languages.add(new Locale("nl","NL")); + supported_languages.add(new Locale("pl","PL")); + supported_languages.add(new Locale("ru","RU")); + */ + } + + /** + * Loads resource messages + * + * @param locale + */ + public static void loadMessages(Locale locale) { + try { + Debug.info("Loading locale: " + locale); + en_messages = ResourceBundle.getBundle("fbeditor", new Locale("en","US"));//$NON-NLS-1$ + messages = ResourceBundle.getBundle("fbeditor", locale);//$NON-NLS-1$ + } catch (MissingResourceException e) { + Debug.error("Can't find i18n resource! (\"fbeditor_" + locale + ".properties\")");//$NON-NLS-1$ + JOptionPane.showMessageDialog(null, progName + " v"//$NON-NLS-1$ + + version + "\n\nCannot find the language file \"fbeditor_" + locale + + ".properties\"!" + "\nProgram will exit!");//$NON-NLS-1$ + } + } + + /** + * @return Returns an internationalized message. + */ + public static String getMessage(String msg) { + String i18n = ""; //$NON-NLS-1$ + try { + if (!messages.getString(msg).equals("")) { + i18n = messages.getString(msg); + } else { + i18n = msg; + } + } catch (MissingResourceException e) { + Debug.error("Can't find resource string for " + msg); //$NON-NLS-1$ + i18n = en_messages.getString(msg); + } + return i18n; + } } diff --git a/src/de/FBEditor/MyMenu.java b/src/de/FBEditor/MyMenu.java index 7246fc6..a892e58 100644 --- a/src/de/FBEditor/MyMenu.java +++ b/src/de/FBEditor/MyMenu.java @@ -25,43 +25,43 @@ public MyMenu(FBEdit fbedit) { } JMenu createFileMenu() { - JMenu ret = new JMenu("Datei"); + JMenu ret = new JMenu(FBEdit.getMessage("menu.file")); ret.setMnemonic('D'); - JMenuItem mi = new JMenuItem("Neu", 78); + JMenuItem mi = new JMenuItem(FBEdit.getMessage("menu.new"), 78); fbedit.setCtrlAccelerator(mi, 'N'); mi.setActionCommand("new"); mi.addActionListener(action); ret.add(mi); - mi = new JMenuItem("\326ffnen", 102); + mi = new JMenuItem(FBEdit.getMessage("menu.open"), 102); fbedit.setCtrlAccelerator(mi, 'O'); mi.setActionCommand("open"); mi.addActionListener(action); ret.add(mi); - exportcfg = new JMenuItem("Konfiguration einlesen", 115); + exportcfg = new JMenuItem(FBEdit.getMessage("menu.config_read"), 115); fbedit.setCtrlAccelerator(exportcfg, 'E'); exportcfg.setActionCommand("config_read"); exportcfg.addActionListener(action); exportcfg.setEnabled(false); ret.add(exportcfg); ret.addSeparator(); - mi = new JMenuItem("Speichern", 112); + mi = new JMenuItem(FBEdit.getMessage("menu.config_save"), 112); fbedit.setCtrlAccelerator(mi, 'S'); mi.setActionCommand("save"); mi.addActionListener(action); ret.add(mi); - importcfg = new JMenuItem("Konfiguration zurückspielen", 119); + importcfg = new JMenuItem(FBEdit.getMessage("menu.config_write"), 119); importcfg.setActionCommand("config_write"); importcfg.addActionListener(action); importcfg.setEnabled(false); ret.add(importcfg); ret.addSeparator(); - reconnect = new JMenuItem("Reconnect"); + reconnect = new JMenuItem(FBEdit.getMessage("menu.reconnect")); reconnect.setActionCommand("reconnect"); reconnect.addActionListener(action); reconnect.setEnabled(false); ret.add(reconnect); ret.addSeparator(); - mi = new JMenuItem("Beenden", 66); + mi = new JMenuItem(FBEdit.getMessage("menu.exit"), 66); mi.setActionCommand("exit"); mi.addActionListener(action); ret.add(mi); @@ -69,53 +69,53 @@ JMenu createFileMenu() { } JMenu createEditMenu() { - JMenu ret = new JMenu("Bearbeiten"); + JMenu ret = new JMenu(FBEdit.getMessage("menu.edit")); ret.setMnemonic('B'); ret.addMenuListener(new EditMenuListener(fbedit)); - undo = new JMenuItem("Rückgängig", 82); + undo = new JMenuItem(FBEdit.getMessage("menu.revert"), 82); fbedit.setCtrlAccelerator(undo, 'Z'); undo.setEnabled(false); undo.setActionCommand("revert"); undo.addActionListener(action); ret.add(undo); - redo = new JMenuItem("Wiederherstellen", 87); + redo = new JMenuItem(FBEdit.getMessage("menu.restore"), 87); fbedit.setCtrlAccelerator(redo, 'Y'); redo.setActionCommand("restore"); redo.addActionListener(action); redo.setEnabled(false); ret.add(redo); ret.addSeparator(); - cut = new JMenuItem("Ausschneiden", 117); + cut = new JMenuItem(FBEdit.getMessage("menu.cut"), 117); fbedit.setCtrlAccelerator(cut, 'X'); cut.setActionCommand("cut"); cut.addActionListener(action); cut.setEnabled(false); ret.add(cut); - copy = new JMenuItem("Kopieren", 75); + copy = new JMenuItem(FBEdit.getMessage("menu.copy"), 75); fbedit.setCtrlAccelerator(copy, 'C'); copy.setActionCommand("copy"); copy.addActionListener(action); copy.setEnabled(false); ret.add(copy); - insert = new JMenuItem("Einf\374gen", 105); + insert = new JMenuItem(FBEdit.getMessage("menu.insert"), 105); fbedit.setCtrlAccelerator(insert, 'V'); insert.setActionCommand("insert"); insert.addActionListener(action); insert.setEnabled(false); ret.add(insert); - delete = new JMenuItem("L\366schen", 105); + delete = new JMenuItem(FBEdit.getMessage("menu.delete"), 105); fbedit.setCtrlAccelerator(delete, 'V'); delete.setActionCommand("delete"); delete.addActionListener(action); delete.setEnabled(false); ret.add(delete); ret.addSeparator(); - JMenuItem mi = new JMenuItem("Suchen", 83); + JMenuItem mi = new JMenuItem(FBEdit.getMessage("menu.search"), 83); fbedit.setCtrlAccelerator(mi, 'F'); mi.setActionCommand("search"); mi.addActionListener(action); ret.add(mi); - mi = new JMenuItem("Ersetzen", 69); + mi = new JMenuItem(FBEdit.getMessage("menu.replace"), 69); fbedit.setCtrlAccelerator(mi, 'R'); mi.setActionCommand("replace"); mi.addActionListener(action); @@ -124,14 +124,14 @@ JMenu createEditMenu() { } JMenu createHelpMenu() { - JMenu ret = new JMenu("Hilfe"); + JMenu ret = new JMenu(FBEdit.getMessage("menu.help")); ret.setMnemonic('H'); - hardmenu = new JMenuItem("Boxinfo", 72); + hardmenu = new JMenuItem(FBEdit.getMessage("menu.boxinfo"), 72); hardmenu.setEnabled(false); ret.add(hardmenu); hardmenu.setActionCommand("boxinfo"); hardmenu.addActionListener(action); - JMenuItem mi = new JMenuItem("\334ber", 98); + JMenuItem mi = new JMenuItem(FBEdit.getMessage("menu.about"), 98); ret.add(mi); mi.setActionCommand("about"); mi.addActionListener(action); @@ -139,23 +139,23 @@ JMenu createHelpMenu() { } JMenu createConfigMenu() { - JMenu ret = new JMenu("Einstellungen"); + JMenu ret = new JMenu(FBEdit.getMessage("menu.settings")); ret.setMnemonic('B'); - JMenuItem mi = new JMenuItem("Host / IP", 72); + JMenuItem mi = new JMenuItem(FBEdit.getMessage("menu.host_ip"), 72); fbedit.setCtrlAccelerator(mi, 'H'); mi.setActionCommand("host_ip"); mi.addActionListener(action); ret.add(mi); - mi = new JMenuItem("Passwort", 80); + mi = new JMenuItem(FBEdit.getMessage("menu.password"), 80); fbedit.setCtrlAccelerator(mi, 'P'); mi.setActionCommand("password"); mi.addActionListener(action); ret.add(mi); - readOnStartup = new JCheckBoxMenuItem("Konfiguration automatisch einlesen", Boolean.parseBoolean(fbedit.getRASstate())); + readOnStartup = new JCheckBoxMenuItem(FBEdit.getMessage("menu.config_auto_read"), Boolean.parseBoolean(fbedit.getRASstate())); readOnStartup.setActionCommand("config_auto_read"); readOnStartup.addActionListener(action); ret.add(readOnStartup); - NoChecks = new JCheckBoxMenuItem("NoChecks", Boolean.parseBoolean(fbedit.getNoChecksState())); + NoChecks = new JCheckBoxMenuItem(FBEdit.getMessage("menu.nochecks"), Boolean.parseBoolean(fbedit.getNoChecksState())); NoChecks.setActionCommand("nochecks"); NoChecks.addActionListener(action); // Disable NoChecks because it doesn't work at the moment @@ -178,7 +178,7 @@ void setstatusMsg(JTextPane2 pane2) { Element map = pane2.getDocument().getDefaultRootElement(); int currLine = map.getElementIndex(off); int numLines = map.getElementCount(); - statusMsg.setText(' ' + "Zeile " + (currLine + 1) + " / " + numLines); + statusMsg.setText(' ' + FBEdit.getMessage("menu.line") + (currLine + 1) + " / " + numLines); } JMenuItem undo; diff --git a/src/de/FBEditor/utils/Utils.java b/src/de/FBEditor/utils/Utils.java index cd6e6f3..249b497 100644 --- a/src/de/FBEditor/utils/Utils.java +++ b/src/de/FBEditor/utils/Utils.java @@ -112,7 +112,7 @@ public static boolean exportData(FBEdit fbedit, String box_address, String data) if (statusCode1 == 200 && checkResponse(data)) result = true; else - JOptionPane.showMessageDialog(fbedit, "Beim Zurückspielen ist ein Fehler aufgetreten!", "Fehler", 0); + JOptionPane.showMessageDialog(fbedit, FBEdit.getMessage(""), FBEdit.getMessage("error"), 0); mPost.releaseConnection(); return result; @@ -131,6 +131,7 @@ public static boolean loadProperties(MyProperties properties, String PROPERTIES_ properties.setProperty("box.password", ""); properties.setProperty("readOnStartup", "no"); properties.setProperty("NoChecks", "true"); + properties.setProperty("language", "de_DE"); } catch (Exception exception) { } return false; @@ -146,6 +147,7 @@ public static void saveProperties(String PROPERTIES_FILE, FBEdit fbedit) { properties.setProperty("box.address", fbedit.getbox_address()); properties.setProperty("readOnStartup", fbedit.getRASstate()); properties.setProperty("NoChecks", fbedit.getNoChecksState()); + properties.setProperty("language", fbedit.getLanguage()); try { FileOutputStream fos = new FileOutputStream(PROPERTIES_FILE); properties.storeToXML(fos, "Properties for FBEditor");