diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index c810356a..94ccd301 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3089,6 +3089,10 @@ IMPROVEMENT Dismissing the closing confirmation dialog using the "X" button should behave the same as selecting "Cancel" + + + IMPROVEMENT + Apply translation to the context menu https://github.com/bancika/diy-layout-creator/releases diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 57c06acc..d8f357b9 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/dict.txt b/diylc/diylc-swing/dict.txt index 955f2e8b..abb8aad5 100644 --- a/diylc/diylc-swing/dict.txt +++ b/diylc/diylc-swing/dict.txt @@ -24,6 +24,7 @@ 5PDT (Center OFF) AWG And +Apply Variant C-B-E BJT D-G-S JFET D-G-S MOSFET @@ -44,6 +45,7 @@ G-D-S JFET G-D-S MOSFET G-S-D JFET G-S-D MOSFET +Jezik Lin Loadline Editor Log @@ -63,7 +65,10 @@ SMD SPDT SPDT (Center OFF) SPST +Save as Building Block +Select Srpski +Unlock Xnor Xor cm diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 57c06acc..d8f357b9 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index f3bf38f7..3bfa6177 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedMenu.java b/diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedMenu.java new file mode 100644 index 00000000..66571384 --- /dev/null +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedMenu.java @@ -0,0 +1,41 @@ +/* + * + * DIY Layout Creator (DIYLC). Copyright (c) 2009-2018 held jointly by the individual authors. + * + * This file is part of DIYLC. + * + * DIYLC is free software: you can redistribute it and/or modify it under the terms of the GNU + * General Public License as published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * DIYLC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with DIYLC. If not, see + * . + */ +package org.diylc.swing.gui; + +import javax.swing.Action; +import javax.swing.JMenu; +import javax.swing.JMenuItem; + +import org.diylc.lang.LangUtil; + +public class TranslatedMenu extends JMenu { + + private static final long serialVersionUID = 1L; + + public TranslatedMenu(String name) { + super(LangUtil.translate(name)); + } + + @Override + public JMenuItem add(Action action) { + String name = (String) action.getValue(Action.NAME); + if (name != null) + action.putValue(Action.NAME, LangUtil.translate(name)); + return super.add(action); + } +} diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedPopupMenu.java b/diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedPopupMenu.java new file mode 100644 index 00000000..b6b9f825 --- /dev/null +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedPopupMenu.java @@ -0,0 +1,37 @@ +/* + * + * DIY Layout Creator (DIYLC). Copyright (c) 2009-2018 held jointly by the individual authors. + * + * This file is part of DIYLC. + * + * DIYLC is free software: you can redistribute it and/or modify it under the terms of the GNU + * General Public License as published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * DIYLC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with DIYLC. If not, see + * . + */ +package org.diylc.swing.gui; + +import javax.swing.Action; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; + +import org.diylc.lang.LangUtil; + +public class TranslatedPopupMenu extends JPopupMenu { + + private static final long serialVersionUID = 1L; + + @Override + public JMenuItem add(Action action) { + String name = (String) action.getValue(Action.NAME); + if (name != null) + action.putValue(Action.NAME, LangUtil.translate(name)); + return super.add(action); + } +} diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index 34f2c7d4..5107bd33 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java @@ -50,7 +50,6 @@ import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.appframework.miscutils.IConfigListener; import org.diylc.appframework.miscutils.IConfigurationManager; import org.diylc.appframework.miscutils.Utils; @@ -67,6 +66,8 @@ import org.diylc.core.measures.SizeUnit; import org.diylc.images.IconLoader; import org.diylc.swing.ActionFactory; import org.diylc.swing.ISwingUI; +import org.diylc.swing.gui.TranslatedMenu; +import org.diylc.swing.gui.TranslatedPopupMenu; import org.diylc.swing.plugins.edit.ComponentTransferable; import org.diylc.swing.plugins.file.ProjectDrawingProvider; import org.diylc.swingframework.ruler.IRulerListener; @@ -452,7 +453,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public JPopupMenu getPopupMenu() { if (popupMenu == null) { - popupMenu = new JPopupMenu(); + popupMenu = new TranslatedPopupMenu(); popupMenu.add(getSelectionMenu()); popupMenu.addSeparator(); popupMenu.add(getCutAction()); @@ -480,7 +481,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public JMenu getSelectionMenu() { if (selectionMenu == null) { - selectionMenu = new JMenu("Select"); + selectionMenu = new TranslatedMenu("Select"); selectionMenu.setIcon(IconLoader.ElementsSelection.getIcon()); } return selectionMenu; @@ -488,7 +489,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public JMenu getExpandMenu() { if (expandMenu == null) { - expandMenu = new JMenu("Expand Selection"); + expandMenu = new TranslatedMenu("Expand Selection"); expandMenu.setIcon(IconLoader.BranchAdd.getIcon()); expandMenu.add(getExpandSelectionAllAction()); expandMenu.add(getExpandSelectionImmediateAction()); @@ -499,7 +500,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public JMenu getLockMenu() { if (lockMenu == null) { - lockMenu = new JMenu("Lock"); + lockMenu = new TranslatedMenu("Lock"); lockMenu.setIcon(IconLoader.Lock.getIcon()); } return lockMenu; @@ -507,7 +508,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public JMenu getUnlockMenu() { if (unlockMenu == null) { - unlockMenu = new JMenu("Unlock"); + unlockMenu = new TranslatedMenu("Unlock"); unlockMenu.setIcon(IconLoader.Unlock.getIcon()); } return unlockMenu; @@ -515,7 +516,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public JMenu getTransformMenu() { if (transformMenu == null) { - transformMenu = new JMenu("Transform Selection"); + transformMenu = new TranslatedMenu("Transform Selection"); transformMenu.setIcon(IconLoader.MagicWand.getIcon()); transformMenu.add(getRotateClockwiseAction()); transformMenu.add(getRotateCounterclockwiseAction()); @@ -536,7 +537,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public JMenu getApplyTemplateMenu() { if (applyTemplateMenu == null) { - applyTemplateMenu = new JMenu("Apply Variant"); + applyTemplateMenu = new TranslatedMenu("Apply Variant"); applyTemplateMenu.setIcon(IconLoader.BriefcaseInto.getIcon()); } return applyTemplateMenu;