Skip to content
This repository has been archived by the owner on Mar 15, 2023. It is now read-only.

Commit

Permalink
Several improvements.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacob van Mourik committed Jun 19, 2015
1 parent 9741194 commit f9eaac8
Show file tree
Hide file tree
Showing 10 changed files with 93 additions and 87 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.jvms</groupId>
<artifactId>i18n-editor</artifactId>
<version>0.1.0-beta.1</version>
<version>0.1.0-beta.2</version>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
Expand Down
24 changes: 14 additions & 10 deletions src/main/java/com/jvms/i18neditor/Editor.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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);
Expand All @@ -157,33 +161,33 @@ 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);
setupResource(resource);
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()) {
Expand Down Expand Up @@ -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());

Expand Down
52 changes: 26 additions & 26 deletions src/main/java/com/jvms/i18neditor/EditorMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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() {
Expand All @@ -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));
Expand All @@ -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"));
Expand All @@ -107,7 +107,7 @@ private void setup() {
helpMenu.add(aboutMenuItem);

add(fileMenu);
add(translationsMenu);
add(editMenu);
add(helpMenu);
}

Expand All @@ -127,7 +127,7 @@ public AddResourceMenuItemListener(ResourceType type) {

@Override
public void actionPerformed(ActionEvent e) {
editor.showAddResourceDialog(type);
editor.showAddLocaleDialog(type);
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jvms/i18neditor/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/jvms/i18neditor/TranslationTree.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jvms/i18neditor/TranslationTreeMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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());
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/jvms/i18neditor/util/MessageBundle.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
43 changes: 22 additions & 21 deletions src/main/resources/bundles/messages.properties
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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
Expand All @@ -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
43 changes: 22 additions & 21 deletions src/main/resources/bundles/messages_nl.properties
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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
Expand All @@ -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

0 comments on commit f9eaac8

Please sign in to comment.