From adcbfbc679787ff3a252acfa049b9c1ad82cbbb7 Mon Sep 17 00:00:00 2001 From: bancika Date: Sun, 3 May 2020 20:13:36 +0200 Subject: [PATCH] Apply translation to the context menu --- .../src/org/diylc/presenter/update.xml | 4 ++ diylc/diylc-library/lib/diylc-core.jar | Bin 332873 -> 332873 bytes diylc/diylc-swing/dict.txt | 5 +++ diylc/diylc-swing/lib/diylc-core.jar | Bin 332873 -> 332873 bytes diylc/diylc-swing/library/main.jar | Bin 704211 -> 704211 bytes .../org/diylc/swing/gui/TranslatedMenu.java | 41 ++++++++++++++++++ .../diylc/swing/gui/TranslatedPopupMenu.java | 37 ++++++++++++++++ .../swing/plugins/canvas/CanvasPlugin.java | 17 ++++---- 8 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedMenu.java create mode 100644 diylc/diylc-swing/src/org/diylc/swing/gui/TranslatedPopupMenu.java 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 57c06accdebff91254ff1687bcfafc78b3656fab..d8f357b93cbc05fb454c3fb9966bdc8b5b786637 100644 GIT binary patch delta 5203 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 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 57c06accdebff91254ff1687bcfafc78b3656fab..d8f357b93cbc05fb454c3fb9966bdc8b5b786637 100644 GIT binary patch delta 5203 zcmY*dd0da#8t7Z(#lAV8mZWTI7Rsos%|7Ws|*6;Q)L)H7cl~0 zffxV)q-OX3#wu+sts{F;k1v35O(x?hiusQ&k3A5*2XnwEAGbybpExAL4A5~@OLTV|U4__YtOMeQ<9rZ9 z#(QA(D_#+Z6DRINESp=q2C9)dg-U$wV{c=LZ+VZP(KuQ5J+L$Dp#>vr`-yUXr<7=LBYF!a~&?TEVL zzCPeTH0~!1o3P&kFlzdN6B5oHq+s{MxacUaBRSygbo7CQ^NmM?FlXWMK*aQu$FP-e z;x=K4HLZZ7f zR|SOhUhD%DYWgyB6q@=oD-${>+Zr8Qs{JJ4?1RjoQ(QibV^3?mV`DTS2!aOFMP3Q%p>(G*55l zsF%!VU6G(=Aj?D{ZxK6*!q#B66NPrm+4orX^a|#Qma1=IP_oDJHS7Qik!#r`Q?TT3 zV&NF`Whl#2u%tuk@M#IMqj;^qJ$KZD!dV{XjE-OvF?7ccrla5$#d@Q#GMcReK|3;) zch%eMV=K@c9>W}PTE84*5oj53gxdbkadrX?r%th2WIq(kywFl{j`^Zx)J4_{vxDPV zM-;YQVK;ErpJlRJ7}F!0m7!ptBXTePLx<|dq~XUON~-%@i;b0M zyiH&J7RO}MpKr$4C|4dr6FE7jIB1Jp<_4O`;K4i^BQl5bY7~+@_;3`OJ$Wp=i~5<- z{0pSB9mnM*D=lGOJPBQ1-uyW6TIFO`t&zOnXj!x5KJ={>7P^a%QC^;tJ(%eJ84p7t zbr$~$g@OJC`JTCa3|jK$a}9-W0{M1YV4JCQMi%M?_kZC zLf!%SE|u^sthud>e~PaBa&C=6c_p_;fz@z)DfHA=hOqSw{{>xr>bWhpbX^c{wT>7}KVg@}w&SH%?NfWAM~Z6&DAvtPE1BvFD&g z$}4y(b-%TW7seb}uiQgd$Oa{VTglgP%Djdp-@aldCI_{%>y;1m)|(aTru`Nr6mt%S zDc_;cM_ypqasLSU0}6OOBb6N}Wbagx7}AyZO)t!lbeoAT<$EO`3m)99JPUvmysciL zbKkXDIWZP2S);_;)?Pm2KI0EbKOyjWzBYpJ+^ z!m(wd2xG#Ri}twgBb!BgbR};Q{z&Njo#>7+6T$^PkGflg$UuvT6#dMsVI==Baj?EA zziJm#E$JuGPM;Mmijl_s2eAriF8m}Cu#1(yh)3v}c|@$j9m+Z`d{A&cBf^pRM67Va ztQ+UV3~*_kbum<~T=Ua~Ct!>&e`iX}(#2r#oBb}Fw61ZYCn%HSga=?moEQa|6(=SF z`asZ-c;O7n?07K&5Hl0v|IT#M#3kYKclek~6drI%{=St34;u(+(U&Q!_hsP?39Bv( zAHeIEWs^ib)*ynP;o7#}g*#x{?_vg^%M~#faFcg6Sh$)NX25|aQ|Cy7~r*-5nCPRWEzlc`=xvRDTGfmg*Mz?iGT7qI54m`X1M4z1y#esbDX5(qx0B=}2)y+*Od;bj5H)qf~@-xI2 z5I5pau^909pEPgtn_?m8%M848Q!EADGn4A<&J>@5USi)3BT64{ zV8kP$%`woaSRP*)zNnbeVv8xh*1+M9<;@`dTOL!~t;dw__(X1>v@d)@<%~Qbzf%FXT2zf7lDTO%n58kiT0w#V;+VxVUn8 z%%$J7g7j$>#2ZsV_7@eDH?WfG|ErSvyj@BCcc`LmT2@8tPOKsx%WBf+R8!vRYRYS> zCcd#XwC;b`P(Rr<6zB4ic$d7SxN|SbU;mQ&8uN;9`zxAD?knLS< zyqvd_HosQ>dqOTYvX+AH){@it4Hf_T4Hb`jLv~(AhhTD@B$eOPK0`05lg&xJ-&^{| z*BF@cmf~#d>01e`mpn2qww~^i=6dpbH_*5BV}o3T^p`f!x8%`C@mm||8!K$2Z^yNX z@;5foolw{${2qXc1KV@bzcuidfqfLRhbbz)WQB@~FUugI;>#2%RD9Wrgo-a$e^tes zJW^HhB`Q``d|`%|k{)47@dc);KXmEdLdBbIZwrd6Y@y=IGs=wO_n49X%)sI1q(>U~ z$iP7@$-dRVJOle#$o0z85MrU?6_IXWTT2yR*Z@mf*A+`zkAoHI%dJRHx1#>KTa&)g zTE!Qr*jmMxezXm(`67Yv6a0VOJjVD!M$j3$#f;mkAB8XhOvz` zW4UiJS`?!iB{Gy$B9T@kZQS!b&-4 z|6e|7-OAm-3BjI4*8f*a8snLh!B%Od2OCBxHXu$?J_guGa84Nn+B0PsKo>EbpY<~= z6axSt={eyDV!G%9P$&9I+J%qQ-5fBkMS%)o`>dVepSEWh!;OT2WSWx z@E3#+|6~W6Z@IQdd@-;yqQ$44h(3ckpuyj*5$F?#WS9Xuj%_h{fMQ0tFX&ClPi(uH}wYUZD#C6|LIu^5N!h6nL?f33tiCf7u*AJ z^Vpd0cedX#ZdWo}Rh+$(Yoos0Qt=pA;bf&C}mdKVF)G{?M0| zs0UVtp+CRsJz>oi^#4$M4E-bDJwkiuhMp~Cea(k4JZ4&h!b+i{_QZ@e0@YY#!H$3- z+>&7r+5}q`3m&b(jupU&v^-~aOtF?@pXBxZz$*pZ#3Yv+NBS@a?Pyn4h1}@w%oRG& z(tELwP^jt4%u#6S&#X|e7|7aT?e1<2m#?iG%HnJx>Qf)K4>?(WY&!~pli3H%JZBnf zM9b`%EER>$fy|ED8P(XBJ5#nZmD({D6^jhSOjvu z*vj%0Ea{NyJ~csh6mRTr&mFap2$qL2qaxWvr0(3wG!(oItTzg)qS<;7j7KN)u3DS@ zY$ci_VweL?>z6|;5-kIcQrrJI!A_##^l4U$*$>AuZ?sgLXH(EJ@)GNX(V_9IBMRHE zvYR;T&okL=eXtn_*r zzm1mj+?vN`VAX<0Y&fRwRLMr0<3V{@vZ8dGq;6J>3o@C5(XB#QYkTV0ZVc$rs0)|h zvqZG4z5#^<8y_MSO&@|^6&oF1R^a1>H!@-I;s z7^o-TJC~0}OWp!*MB(dTzJnInX7Z@xO(rHLZv^d4Se>vou5HWhjANJZH_)T|QtpOd z{;Jj78e7}4hPQ;*(70|p%qy2ck&9XlwsgYP#A2~H&wnW=g`s| z!^sVK@ewG@xXcB9fpe1d zBaxEAM_^)coo7S7``7tKdk|*jau>|EK2IJNupEELol&@%&+lT*m_ptG^Ib0CS@gA( z@z2neU(T&jD6i!9D6kriFNK!+S{Jsx<-ee-Pd&HA20fd&K+EX&JOV$BOlu_+Egr2D ze1NpW_R3+b_hm6Kz@ zk~LDiYYpkrri<35AQT3QPq9+l`63q!)GQROF;9yi;h+Mi^AeFou4UpP3dfg=BIHD@ z5bfb7f_8MXXpe(T-Xa2V*v{XH?zo@hBZPb&WgfRkk%3VnO7t_chLQZk#KHQO{Hk3{ zjY&U=cG}EnQH)%VAH-_x>*7x$0lQfBi+GH#8Arux0r|2{2!Grv=d&UL6Q7I~P8fCb zyqFFgV`ohamHin5G~oppqsiZy60DHMM& zh3dabA^*5k^8c7BrXfF->U&<7>y>dku8YZlMc1j$kQ>4q^vyTKO2D@_D9-l}%6s4s z>bLw4iubrl_Nber7wGzcH0pmt8ugK#MtORqi#d=tJe}(1rjxyY2I-qKXdU?(Vm|PO z|0$LLp7@jIZGKBE0)4rTcW;ShpnGLfojsZ2Gtf(P9Gpdcg=bOUIlA8MHq~2mo96T9 zZCZERY%vbv=VpspfbrR6SMG=jp!?q;fAk&dyZjF28F829XS_>&*Wac6o|HrDIhjN2 zHor%CgLF*1CuT$54u27@(edtIA{gw$?u$^sU++_#@__Qren9%A2UOoIm+bR$sjo}9 zRM#et>>+tH7fnaAhqUfF52^1<4=K(fpW=e^X>OPDX|CpvNT2nH>YaW>d6fb>$5RSu zF8d4QcO&~PDxh=WT1dF1kmBwaQl1_~Vl?nVi^N#K3q^Qdq90TEI2|J&Q`#IIor>xB zE-t39*ka<>>gfK2ZiX#Shc2x3ZPW59T6ba<<*}?LeNHvSovEg{rfSMJriRx2?;7eSyM}l!uPE=*SHwI2iv0Dj zsISql33t4vx#Yekf9E%ZU%a9E7j?by4e{l?os0`=<-aH7*@>zp^1WJeI=`jjU%jQ` zac{}a>*x^p)lt&@x?WO8&Gman{`k5r(rhNli#O-hVx?sEuyr6 zHp#P*_}d!kkQFx4a9x`yeq$5e3587}0M_BrO!|+_bQjb$i-lkhcrO+JCcG!T%Llp> zcYF{bV6XjvZ^GVrD$w>`Q}G70XM{ma#hWZq$M&4`Z*;t^V;_a=;fjhcS)roh%Q8r) z_%cNa6<@X@q2kNcUsdrYk5bhs@In@=>NLP1rld!jO1{(!Ow~X@j~41|z;^=K_whk?WAtK4>HBOMGpk;!EjiOLe1c)d|4M zwNa70)A>WI{ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index f3bf38f75227d78f3259bd0c8ef603f3d6d71827..3bfa61778b6a7a370c1434a53573bf9bccfaf3da 100644 GIT binary patch delta 6013 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 delta 6013 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 E1_N$>m;e9( 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;