From f9eaac81bf69b6ac6d6cc09ec2fbc7f25fb1c43c Mon Sep 17 00:00:00 2001 From: Jacob van Mourik Date: Fri, 19 Jun 2015 20:33:01 +0200 Subject: [PATCH] Several improvements. --- pom.xml | 2 +- src/main/java/com/jvms/i18neditor/Editor.java | 24 +++++---- .../java/com/jvms/i18neditor/EditorMenu.java | 52 +++++++++---------- src/main/java/com/jvms/i18neditor/Main.java | 2 +- .../com/jvms/i18neditor/TranslationTree.java | 2 +- .../jvms/i18neditor/TranslationTreeMenu.java | 2 +- .../i18neditor/TranslationTreeNodeMenu.java | 8 +-- .../jvms/i18neditor/util/MessageBundle.java | 2 +- .../resources/bundles/messages.properties | 43 +++++++-------- .../resources/bundles/messages_nl.properties | 43 +++++++-------- 10 files changed, 93 insertions(+), 87 deletions(-) diff --git a/pom.xml b/pom.xml index 7c9fe86..d368c88 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.jvms i18n-editor - 0.1.0-beta.1 + 0.1.0-beta.2 org.apache.commons diff --git a/src/main/java/com/jvms/i18neditor/Editor.java b/src/main/java/com/jvms/i18neditor/Editor.java index aad18a8..294ec2d 100644 --- a/src/main/java/com/jvms/i18neditor/Editor.java +++ b/src/main/java/com/jvms/i18neditor/Editor.java @@ -44,7 +44,7 @@ public class Editor extends JFrame { private static final long serialVersionUID = 1113029729495390082L; public static final String TITLE = "i18n Editor"; - public static final String VERSION = "0.1.0-beta.1"; + public static final String VERSION = "0.1.0-beta.2"; private static final int WINDOW_WIDTH = 1024; private static final int WINDOW_HEIGHT = 768; @@ -148,7 +148,11 @@ public void showError(String message) { } public void showImportDialog() { - JFileChooser fc = new JFileChooser(resourcesDir.toString()); + String path = null; + if (resourcesDir != null) { + path = resourcesDir.toString(); + } + JFileChooser fc = new JFileChooser(path); fc.setDialogTitle(MessageBundle.get("dialogs.import.title")); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int result = fc.showOpenDialog(this); @@ -157,18 +161,18 @@ public void showImportDialog() { } } - public void showAddResourceDialog(ResourceType type) { + public void showAddLocaleDialog(ResourceType type) { String locale = ""; while (locale != null && locale.isEmpty()) { locale = (String) JOptionPane.showInputDialog(this, - MessageBundle.get("dialogs.resource.add.text"), - MessageBundle.get("dialogs.resource.add.title", type.toString()), + MessageBundle.get("dialogs.locale.add.text"), + MessageBundle.get("dialogs.locale.add.title", type.toString()), JOptionPane.QUESTION_MESSAGE); if (locale != null) { locale = locale.trim(); Path path = Paths.get(resourcesDir.toString() + "/" + locale); if (locale.isEmpty() || Files.isDirectory(path)) { - showError(MessageBundle.get("dialogs.resource.add.error.invalid")); + showError(MessageBundle.get("dialogs.locale.add.error.invalid")); } else { try { Resource resource = Resources.create(type, path); @@ -176,14 +180,14 @@ public void showAddResourceDialog(ResourceType type) { update(); } catch (IOException e) { e.printStackTrace(); - showError(MessageBundle.get("dialogs.resource.add.error.create")); + showError(MessageBundle.get("dialogs.locale.add.error.create")); } } } } } - public void showRenameDialog(String key) { + public void showRenameTranslationDialog(String key) { String name = TranslationKeys.lastPart(key); String newName = ""; while (newName != null && newName.isEmpty()) { @@ -316,8 +320,8 @@ private void update() { contentPanel.setVisible(resourcesDir != null); editorMenu.setReloadEnabled(resourcesDir != null); - editorMenu.setAddingEnabled(resourcesDir != null); - editorMenu.setTranslationsMenuEnabled(!resources.isEmpty()); + editorMenu.setEditEnabled(resourcesDir != null); + editorMenu.setAddTranslationEnabled(!resources.isEmpty()); translationTree.setEditable(!resources.isEmpty()); translationField.setEditable(!resources.isEmpty()); diff --git a/src/main/java/com/jvms/i18neditor/EditorMenu.java b/src/main/java/com/jvms/i18neditor/EditorMenu.java index 261ca7c..79da8c9 100644 --- a/src/main/java/com/jvms/i18neditor/EditorMenu.java +++ b/src/main/java/com/jvms/i18neditor/EditorMenu.java @@ -21,8 +21,8 @@ public class EditorMenu extends JMenuBar { private JMenuItem saveMenuItem; private JMenuItem reloadMenuItem; - private JMenu translationsMenu; - private JMenu addMenu; + private JMenuItem addTranslationMenuItem; + private JMenu editMenu; public EditorMenu(Editor editor) { super(); @@ -38,12 +38,12 @@ public void setReloadEnabled(boolean enabled) { reloadMenuItem.setEnabled(enabled); } - public void setAddingEnabled(boolean enabled) { - addMenu.setEnabled(enabled); + public void setEditEnabled(boolean enabled) { + editMenu.setEnabled(enabled); } - public void setTranslationsMenuEnabled(boolean enabled) { - translationsMenu.setEnabled(enabled); + public void setAddTranslationEnabled(boolean enabled) { + addTranslationMenuItem.setEnabled(enabled); } private void setup() { @@ -56,18 +56,6 @@ private void setup() { openMenuItem.setAccelerator(KeyStroke.getKeyStroke('O', menuShotcutKeyMask)); openMenuItem.addActionListener(new OpenMenuItemListener()); - addMenu = new JMenu(MessageBundle.get("menu.file.resource.title")); - addMenu.setMnemonic(MessageBundle.getMnemonic("menu.file.resource.vk")); - addMenu.setEnabled(false); - - JMenuItem addJsonResourceMenuItem = new JMenuItem(MessageBundle.get("menu.file.resource.json.title"), MessageBundle.getMnemonic("menu.file.resource.json.vk")); - addJsonResourceMenuItem.addActionListener(new AddResourceMenuItemListener(ResourceType.JSON)); - JMenuItem addEs6ResourceMenuItem = new JMenuItem(MessageBundle.get("menu.file.resource.es6.title"), MessageBundle.getMnemonic("menu.file.resource.es6.vk")); - addEs6ResourceMenuItem.addActionListener(new AddResourceMenuItemListener(ResourceType.ES6)); - - addMenu.add(addJsonResourceMenuItem); - addMenu.add(addEs6ResourceMenuItem); - saveMenuItem = new JMenuItem(MessageBundle.get("menu.file.save.title"), MessageBundle.getMnemonic("menu.file.save.vk")); saveMenuItem.setEnabled(false); saveMenuItem.setAccelerator(KeyStroke.getKeyStroke('S', menuShotcutKeyMask)); @@ -82,22 +70,34 @@ private void setup() { exitMenuItem.addActionListener(new ExitMenuItemListener()); fileMenu.add(openMenuItem); - fileMenu.add(addMenu); fileMenu.addSeparator(); fileMenu.add(saveMenuItem); fileMenu.add(reloadMenuItem); fileMenu.addSeparator(); fileMenu.add(exitMenuItem); - translationsMenu = new JMenu(MessageBundle.get("menu.translations.title")); - translationsMenu.setMnemonic(MessageBundle.getMnemonic("menu.translations.vk")); - translationsMenu.setEnabled(false); + editMenu = new JMenu(MessageBundle.get("menu.edit.title")); + editMenu.setMnemonic(MessageBundle.getMnemonic("menu.edit.vk")); + editMenu.setEnabled(false); + + JMenu addLocaleMenuItem = new JMenu(MessageBundle.get("menu.edit.add.locale.title")); + addLocaleMenuItem.setMnemonic(MessageBundle.getMnemonic("menu.edit.add.locale.vk")); + + JMenuItem addJsonResourceMenuItem = new JMenuItem(MessageBundle.get("menu.edit.add.locale.json.title"), MessageBundle.getMnemonic("menu.edit.add.locale.json.vk")); + addJsonResourceMenuItem.addActionListener(new AddResourceMenuItemListener(ResourceType.JSON)); + JMenuItem addEs6ResourceMenuItem = new JMenuItem(MessageBundle.get("menu.edit.add.locale.es6.title"), MessageBundle.getMnemonic("menu.edit.add.locale.es6.vk")); + addEs6ResourceMenuItem.addActionListener(new AddResourceMenuItemListener(ResourceType.ES6)); + + addLocaleMenuItem.add(addJsonResourceMenuItem); + addLocaleMenuItem.add(addEs6ResourceMenuItem); - JMenuItem addTranslationMenuItem = new JMenuItem(MessageBundle.get("menu.translations.add.title"), MessageBundle.getMnemonic("menu.translations.add.vk")); + addTranslationMenuItem = new JMenuItem(MessageBundle.get("menu.edit.add.translation.title"), MessageBundle.getMnemonic("menu.edit.add.translation.vk")); addTranslationMenuItem.setAccelerator(KeyStroke.getKeyStroke('T', menuShotcutKeyMask)); addTranslationMenuItem.addActionListener(new AddTranslationMenuItemListener()); + addTranslationMenuItem.setEnabled(false); - translationsMenu.add(addTranslationMenuItem); + editMenu.add(addLocaleMenuItem); + editMenu.add(addTranslationMenuItem); JMenu helpMenu = new JMenu(MessageBundle.get("menu.help.title")); helpMenu.setMnemonic(MessageBundle.getMnemonic("menu.help.vk")); @@ -107,7 +107,7 @@ private void setup() { helpMenu.add(aboutMenuItem); add(fileMenu); - add(translationsMenu); + add(editMenu); add(helpMenu); } @@ -127,7 +127,7 @@ public AddResourceMenuItemListener(ResourceType type) { @Override public void actionPerformed(ActionEvent e) { - editor.showAddResourceDialog(type); + editor.showAddLocaleDialog(type); } } diff --git a/src/main/java/com/jvms/i18neditor/Main.java b/src/main/java/com/jvms/i18neditor/Main.java index 114b9fc..3370901 100644 --- a/src/main/java/com/jvms/i18neditor/Main.java +++ b/src/main/java/com/jvms/i18neditor/Main.java @@ -25,12 +25,12 @@ private static void setupLookAndFeel() { private static void setupEditor() { Editor editor = new Editor(); + editor.setVisible(true); String dir = SettingsBundle.get("resourcesDir"); if (dir == null) { editor.showImportDialog(); } else { editor.importResources(dir); } - editor.setVisible(true); } } diff --git a/src/main/java/com/jvms/i18neditor/TranslationTree.java b/src/main/java/com/jvms/i18neditor/TranslationTree.java index 858cd38..d46d681 100644 --- a/src/main/java/com/jvms/i18neditor/TranslationTree.java +++ b/src/main/java/com/jvms/i18neditor/TranslationTree.java @@ -136,7 +136,7 @@ public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DELETE) { editor.removeTranslationKey(key); } else if (e.getKeyCode() == KeyEvent.VK_F2) { - editor.showRenameDialog(key); + editor.showRenameTranslationDialog(key); } } } diff --git a/src/main/java/com/jvms/i18neditor/TranslationTreeMenu.java b/src/main/java/com/jvms/i18neditor/TranslationTreeMenu.java index 6d56ee3..edad3f4 100644 --- a/src/main/java/com/jvms/i18neditor/TranslationTreeMenu.java +++ b/src/main/java/com/jvms/i18neditor/TranslationTreeMenu.java @@ -20,7 +20,7 @@ public TranslationTreeMenu(Editor editor) { } private void setup() { - JMenuItem addMenuItem = new JMenuItem(MessageBundle.get("menu.translations.add.title")); + JMenuItem addMenuItem = new JMenuItem(MessageBundle.get("menu.translation.add.title")); addMenuItem.addActionListener(new AddMenuItemListener()); add(addMenuItem); } diff --git a/src/main/java/com/jvms/i18neditor/TranslationTreeNodeMenu.java b/src/main/java/com/jvms/i18neditor/TranslationTreeNodeMenu.java index 38d3142..53e596f 100644 --- a/src/main/java/com/jvms/i18neditor/TranslationTreeNodeMenu.java +++ b/src/main/java/com/jvms/i18neditor/TranslationTreeNodeMenu.java @@ -23,19 +23,19 @@ public TranslationTreeNodeMenu(Editor editor, TranslationTreeNode node) { } private void setup() { - JMenuItem addMenuItem = new JMenuItem(MessageBundle.get("menu.translations.add.title")); + JMenuItem addMenuItem = new JMenuItem(MessageBundle.get("menu.translation.add.title")); addMenuItem.addActionListener(new AddMenuItemListener()); add(addMenuItem); if (!node.isRoot()) { addSeparator(); - JMenuItem renameMenuItem = new JMenuItem(MessageBundle.get("menu.translations.rename.title")); + JMenuItem renameMenuItem = new JMenuItem(MessageBundle.get("menu.translation.rename.title")); renameMenuItem.setAccelerator(KeyStroke.getKeyStroke("F2")); renameMenuItem.addActionListener(new RenameMenuItemListener()); add(renameMenuItem); - JMenuItem deleteMenuItem = new JMenuItem(MessageBundle.get("menu.translations.delete.title")); + JMenuItem deleteMenuItem = new JMenuItem(MessageBundle.get("menu.translation.delete.title")); deleteMenuItem.setAccelerator(KeyStroke.getKeyStroke("DELETE")); deleteMenuItem.addActionListener(new DeleteMenuItemListener()); add(deleteMenuItem); @@ -52,7 +52,7 @@ public void actionPerformed(ActionEvent e) { private class RenameMenuItemListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { - editor.showRenameDialog(node.getKey()); + editor.showRenameTranslationDialog(node.getKey()); } } diff --git a/src/main/java/com/jvms/i18neditor/util/MessageBundle.java b/src/main/java/com/jvms/i18neditor/util/MessageBundle.java index 46e469a..ec89393 100644 --- a/src/main/java/com/jvms/i18neditor/util/MessageBundle.java +++ b/src/main/java/com/jvms/i18neditor/util/MessageBundle.java @@ -8,7 +8,7 @@ public final class MessageBundle { private final static ResourceBundle RESOURCES; static { - RESOURCES = ResourceBundle.getBundle("bundles/messages", Locale.getDefault()); + RESOURCES = ResourceBundle.getBundle("bundles/messages", new Locale("nl"));//Locale.getDefault()); } public static String get(String key, Object... args) { diff --git a/src/main/resources/bundles/messages.properties b/src/main/resources/bundles/messages.properties index f7dafff..58465e7 100644 --- a/src/main/resources/bundles/messages.properties +++ b/src/main/resources/bundles/messages.properties @@ -1,11 +1,11 @@ dialogs.about.title = About {0} -dialogs.import.title = Select Resources Directory +dialogs.import.title = Open Folder dialogs.error.title = Error -dialogs.resource.add.error.create = An error occurred while creating the new resource. -dialogs.resource.add.error.invalid = The locale you entered is invalid or does already exist. -dialogs.resource.add.text = Enter locale (i.e. en_US): -dialogs.resource.add.title = Add {0} Resource +dialogs.locale.add.error.create = An error occurred while creating the new locale. +dialogs.locale.add.error.invalid = The locale you entered is invalid or does already exist. +dialogs.locale.add.text = Enter locale (i.e. en_US): +dialogs.locale.add.title = Add Locale ({0}) dialogs.save.text = You have unsaved changes, do you want to save them? dialogs.save.title = Save Translations dialogs.translation.add.error = The translation key you entered is invalid. @@ -15,18 +15,22 @@ dialogs.translation.rename.error = The name you entered is invalid. dialogs.translation.rename.text = Enter new name: dialogs.translation.rename.title = Rename Translation +menu.edit.add.locale.es6.title = ES6 Format... +menu.edit.add.locale.es6.vk = E +menu.edit.add.locale.json.title = JSON Format... +menu.edit.add.locale.json.vk = J +menu.edit.add.locale.title = Add Locale... +menu.edit.add.locale.vk = L +menu.edit.add.translation.title = Add Translation... +menu.edit.add.translation.vk = T +menu.edit.title = Edit +menu.edit.vk = E menu.file.exit.title = Exit menu.file.exit.vk = E -menu.file.open.title = Open Resources... +menu.file.open.title = Open Folder... menu.file.open.vk = O menu.file.reload.title = Reload menu.file.reload.vk = R -menu.file.resource.es6.title = ES6 Format... -menu.file.resource.es6.vk = E -menu.file.resource.json.title = JSON Format... -menu.file.resource.json.vk = J -menu.file.resource.title = Add Resource... -menu.file.resource.vk = A menu.file.save.title = Save menu.file.save.vk = S menu.file.title = File @@ -35,15 +39,12 @@ menu.help.about.title = About {0} menu.help.about.vk = A menu.help.title = Help menu.help.vk = H -menu.translations.add.title = Add Translation... -menu.translations.add.vk = A -menu.translations.delete.title = Delete -menu.translations.rename.title = Rename... -menu.translations.title = Translations -menu.translations.vk = Translations +menu.translation.add.title = Add Translation... +menu.translation.delete.title = Delete +menu.translation.rename.title = Rename... -resources.open.error.multiple = An error occurred while opening resources. -resources.open.error.single = An error occurred while opening the resource '{0}'. -resources.write.error.single = An error occurred while writing the resource '{0}'. +resources.open.error.multiple = An error occurred while opening translation files. +resources.open.error.single = An error occurred while opening the translation file '{0}'. +resources.write.error.single = An error occurred while writing the translation file '{0}'. translations.model.name = Translations diff --git a/src/main/resources/bundles/messages_nl.properties b/src/main/resources/bundles/messages_nl.properties index 56ee900..ec80cb9 100644 --- a/src/main/resources/bundles/messages_nl.properties +++ b/src/main/resources/bundles/messages_nl.properties @@ -1,11 +1,11 @@ dialogs.about.title = Over {0} -dialogs.import.title = Selecteer Map Met Bronbestanden +dialogs.import.title = Map Openen dialogs.error.title = Fout -dialogs.resource.add.error.create = Er is iets fout gegaan bij het toevoegen van het nieuwe bronbestand. -dialogs.resource.add.error.invalid = De opgegeven locale is niet geldig of bestaat al. -dialogs.resource.add.text = Locale (i.e. nl_NL): -dialogs.resource.add.title = {0} Bronbestand Toevoegen... +dialogs.locale.add.error.create = Er is iets fout gegaan bij het toevoegen van de nieuwe locale. +dialogs.locale.add.error.invalid = De opgegeven locale is niet geldig of bestaat al. +dialogs.locale.add.text = Locale (bijv. nl_NL): +dialogs.locale.add.title = Locale Toevoegen ({0}) dialogs.save.text = U heeft nog onopgeslagen wijzigingen, wilt u deze opslaan? dialogs.save.title = Vertalingen Opslaan dialogs.translation.add.error = De opgegeven naam voor de vertaling is niet geldig. @@ -15,18 +15,22 @@ dialogs.translation.rename.error = De opgegeven naam is niet geldig. dialogs.translation.rename.text = Nieuwe naam: dialogs.translation.rename.title = Vertaling Hernoemen +menu.edit.add.locale.es6.title = ES6 Formaat... +menu.edit.add.locale.es6.vk = E +menu.edit.add.locale.json.title = JSON Formaat... +menu.edit.add.locale.json.vk = J +menu.edit.add.locale.title = Locale Toevoegen... +menu.edit.add.locale.vk = L +menu.edit.add.translation.title = Vertaling toevoegen... +menu.edit.add.translation.vk = V +menu.edit.title = Bewerken +menu.edit.vk = B menu.file.exit.title = Sluiten menu.file.exit.vk = S -menu.file.open.title = Bronbestanden openen... +menu.file.open.title = Map Openen... menu.file.open.vk = O menu.file.reload.title = Herladen menu.file.reload.vk = H -menu.file.resource.es6.title = ES6 Formaat... -menu.file.resource.es6.vk = E -menu.file.resource.json.title = JSON Formaat... -menu.file.resource.json.vk = J -menu.file.resource.title = Bronbestand toevoegen... -menu.file.resource.vk = T menu.file.save.title = Opslaan menu.file.save.vk = P menu.file.title = Bestand @@ -35,15 +39,12 @@ menu.help.about.title = Over {0} menu.help.about.vk = O menu.help.title = Help menu.help.vk = H -menu.translations.add.title = Vertaling toevoegen... -menu.translations.add.vk = V -menu.translations.delete.title = Verwijderen -menu.translations.rename.title = Hernoemen... -menu.translations.title = Vertalingen -menu.translations.vk = V +menu.translation.add.title = Vertaling toevoegen... +menu.translation.delete.title = Verwijderen +menu.translation.rename.title = Hernoemen... -resources.open.error.multiple = Er is iets fout gegaan bij het openen van de bronbetanden. -resources.open.error.single = Er is iets fout gegaan bij het openen van het bronbestand '{0}'. -resources.write.error.single = Er is iets fout gegaan bij het opslaan van het bronbestand '{0}'. +resources.open.error.multiple = Er is iets fout gegaan bij het openen van de vertaalbetanden. +resources.open.error.single = Er is iets fout gegaan bij het openen van het vertaalbestand '{0}'. +resources.write.error.single = Er is iets fout gegaan bij het opslaan van het vertaalbestand '{0}'. translations.model.name = Vertalingen