From fa92beae5af8b35ff7bdd377579a28184c1e282d Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 16 Dec 2009 17:29:28 +0000 Subject: [PATCH] more cleanup and tagging; remove untranslatable button images; add button css --- apps/susidns/src/css.css | 30 ++++++++- apps/susidns/src/images/add.png | Bin 2489 -> 0 bytes apps/susidns/src/images/delete.png | Bin 3286 -> 0 bytes apps/susidns/src/images/reload.png | Bin 2712 -> 0 bytes apps/susidns/src/images/save.png | Bin 2584 -> 0 bytes apps/susidns/src/images/search.png | Bin 2766 -> 0 bytes .../src/i2p/susi/dns/AddressbookBean.java | 61 +++++++++++++----- .../src/java/src/i2p/susi/dns/ConfigBean.java | 16 +++-- .../src/java/src/i2p/susi/dns/Messages.java | 24 +++---- .../src/i2p/susi/dns/SubscriptionsBean.java | 18 ++++-- apps/susidns/src/jsp/addressbook.jsp | 8 +-- apps/susidns/src/jsp/config.jsp | 6 +- apps/susidns/src/jsp/index.jsp | 2 +- apps/susidns/src/jsp/subscriptions.jsp | 6 +- 14 files changed, 115 insertions(+), 56 deletions(-) delete mode 100644 apps/susidns/src/images/add.png delete mode 100644 apps/susidns/src/images/delete.png delete mode 100644 apps/susidns/src/images/reload.png delete mode 100644 apps/susidns/src/images/save.png delete mode 100644 apps/susidns/src/images/search.png diff --git a/apps/susidns/src/css.css b/apps/susidns/src/css.css index 0ee2432d62..fae4f94a0b 100644 --- a/apps/susidns/src/css.css +++ b/apps/susidns/src/css.css @@ -121,4 +121,32 @@ p.footer { font-size: 10pt !important; line-height: 160% !important; -moz-box-shadow: inset 0px 0px 1px 0px #002; -} \ No newline at end of file +} + +input[type=submit] { + border: 1px outset #999; + background: #ddf; + color: #001; + margin: 5px; + font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; + padding: 1px 2px; + text-decoration: none; + min-width: 110px; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + -moz-box-shadow: inset 0px 2px 8px 0px #fff; + color: #006; + opacity: 0.9; +} + + +input[type=submit]:hover { + background: #22a; + color: #fff; + border: 1px solid #f60; + opacity: 1.0; + -moz-box-shadow: inset 0px 0px 0px 1px #fff; + +} + diff --git a/apps/susidns/src/images/add.png b/apps/susidns/src/images/add.png deleted file mode 100644 index 8ea13225a551f454a71f088df341f880bbacf2e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2489 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 D)(SlB diff --git a/apps/susidns/src/images/delete.png b/apps/susidns/src/images/delete.png deleted file mode 100644 index 736eaf24676b37173e09a874309258ff32194d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3286 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 UsfV01v;Y7A07*qoM6N<$f=O!>LjV8( diff --git a/apps/susidns/src/images/reload.png b/apps/susidns/src/images/reload.png deleted file mode 100644 index b0503ac5b3919a7c30f468d1d57f07de53314b2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2712 zcmV;J3TO3+P)<h;3K|Lk000e1NJLTq003(M000~a1^@s6W|%>B00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU+DoI2^RCwBA z{Qv(y!zdUU03d*vMuTAJ0Du4*jjSOA00L+<vW5@<2%yo(8bSadfEcj}K6&!Q;_TV8 z(@&l}seS$Wbyk?TsHiBsHNwWm_W#$fUyLA{nVFg4@87=+=zJI;SAIB}2NHv+d;R(~ zBPdKoL`43Wn3&w)<>f7Qb#*-ol==<Ce}EXJ^#>3@7?HJq|Nd>0CQb7E{{1_Hva&LR zn3xy?KR-X%0U*rC2+;zfK`lub9|X|(=zvuD;btDJ<qe~O5yt=u=SPnoF<iQI2^`i* zNlAx%eSM>V(w~6%I}rbcMH)Z=q1d!))v6m4Cr(rcX)-f2W004ZXW-=IWME-ofs~m{ zOn4nfspp5gdC1`3zkgu$fByUdN7(J#w;7HfKhE&^^Jj*PjEqOIv9Vr2Wv`%-_6uY@ zKmfr_-nnz<!MeISJ02b$24iDmFy`aq14j@jN5OIvGL7s&Y&5!BboGSfhogDuxeOL* zZ{NOUIDGgp!>wDl7`}Y@!cb69a6K|IG9IYpF%Z88MHoN;fwRp0`}YHiii*Gy1&SaL z=HTD}M-(iwKo)}7$POAT#mt#AXTWSw0)x4al46?L=HV&^VG#ww+}zyYV(`U_7ht(9 zTefIcS69cjwze(?DFsCsKmdUw>%xT#O`kq}0!I?Ck^@`t^XE?nR#r&c0#rF77lFu* zz?EX)l_FZI!Y99U=~9N7GiSo(Y;0^8a&vPT1Ox=YZUH44kUP-L12%%dw2qDrJW*j& zORW2-Z62;11qxRf4GM3N`JnKJHa-}foSY(n%;V6y>jyvpfg|hU#fxg7hyvA5pcn>e z1S$UU;|Dm9kOK<d=4T?V)sL+Rz$FhVyQ8C{8Qk35z;>@)yOyD|vy&k^I~(jaP;P(t z@FBRE(AU?8n*q`X^6>NL&%x#aTVM<~ZrlJTJ{1)exVo=jzcSppa|g`U)6>K72S^U& z7La+My5!ljXJC1dc_6!C)d9Kw1w{-p8{}qKM1krm5E~T!FaY$c5Rg&?;<rHj0U!Y9 zWsJf=2t-jKfq<n&u+4S6h<ES;7GA?Mc>!Y~SlifS-+*A5WWZuYcV_<AneV;#{=7=y z127m`YYB?PaC(w;_N;FL|J5L9ttBAg-xwo}x3wmqaq|F@7-NhogrKaoYR)O(jxkiN zRpp$er0@^cdhdleZYiRPc@E>=k19(kNxrNvr6}i|_(fcC+5vG_ntyG}_g(rRjJP3- z+`$y(eLSIVugk7B_2%;<0O@6n!axW_(J2Bp+owqHA@l%xN6#TPvTUK?b-Y1*1BNXV zVxxj1<II1fKGxzFMmWixg;R`Ck}*b|#mQX;capv(>zBsf(1F6|oYH$2@4X(ZwI<eD z4I+mwrAW?MN!+!c{ya}{&Pj|>=P4zrwW{5E>3&K))Q&MEgdo>-@rTr;5;XQjG>j22 zHpBqJ{%LozHdXgHZWu@)0z!mKT+fv(2s_>a&|dB~0D~|Pb&(=Uk!_d&I@VxHI(DF; zU>E!>-3AE~4L{pwpHE!w)T^pdqQo%KpM>erKa+(Iv@b-~t12{$c89IKcYw@3LBkGw zqkRyZ0Oh~ZS_`mQPbt|L!%8XEd$+Y#Xc8mmY-shI(`v182ao_!x=ifY0S}7zi)4vm zViq_vv4vgs@r5-n+Q*O58}B0k>2+^IF$e<z_%&IAwOE5iX_zVbES+SfNb?F5Cqek^ z^B>i-lpBr!24NO}NK1C*Qrx4U6Grj-J*0N|>pyV%m25iaRQ8ZL%0AQC7^5Pdk-qoR zoX96LI6WBty?32C=lrd;Ok3rUl%)`q0ENk5lQZbD{<Sy#EQIkp9I=B;r>ydP_H#PJ zu3G?7%vc3r5Qw3L_7mLv0l`Jw{r`V)aOzs9FEk*9PA!xU#WOkYF2Q3iIztFs?_EHt zPInfsHOpggP0rg9emTT<n}7XhAHb4aMxONtt;spdT(s7tTab74fsHj3R;^WIZ#pUA z=a5P%N(wQj1gLw)7}6r*#26Jjr6lfj8)Ffjb7$G${NcNPJ+|QtHb3kEK6r61(@b5@ z9qxV$K#Lh00SLlSl)@!gh8bw6-GwEnZCHmDD0Bo%@65{)Pi;MmGy#qzT=GAEl7&@9 z#UgWiwuCugm~|%@4+Z!q%)+>vLd6(etyS?QrQ}K}PW~M_2`DyX0j5Zt#6z5nGxoLC zv;!d!;1^h!b5?1G$2LYt*Mtz1U~q;teBS#jcM8WHUoq>gUSQVU_%MrYJmS`S--k|k zoB~i{FE<Q?Fc3hsCC~w)x>U4RN{Y1FK4>9+mK^00k(@XUHXeV*p#F&A{fI^I1jJ@* zErV4KR%Lxk(_hH?H}hl|VX@YFS6H=-nk5t(wJ4xuxs#9eSqkTj-7()V#z;GebFT_g zNyHSpY{0{qi@o=}vwTufVxlGPX4dY#-^i*zLMsU$B_f}qZQpawXFx9d)=L1fK%2~$ zfgYcI>(;GQSe8U?X5t$*Av9KoucwbL59`x_0uok-!CG&iG92VFP%#Fow?OWL6~(X? zE36m+$(fs*gZ05Wn;>~mZh<w`k?ToNgn(#aVPSBff%L%YFIdG-OyVTuU*y&xa#+H0 z6|5x)vJ=>)dH`$;y@d`nfyM|w0tDd1jBNmhK_EB@eHP1tUcnMg=15N_NOHwR6scTU zvLc-{ck{VJtnjIl+;PUcqCCn`Ec_3AP^{xWKH-iA&5*vPFc!BFlJY%54XV0CGa za{v}Bg_2EN`jO)7m#o-Vu-LadWv#xq@B1nCF8CzwQumzm%FL5thG0Dchy`l??|b*| z?FTBV0TvN0pw1<*Z4a)1L7g;EO2^h3BxZyeeZUi+Jd6)ZW#}y^<lKiGx#+1DrU%ye zfaN}9_ak>jU@bUU1R?7InFC84#O5ws{)H8NFaR<aRP=$0eoz+#WFIJ^wr$&X4H!|+ zpb-Tc$bAkPeFq32Mx=Qywydly4PbHT4|K2{u)KE$^<_X9mKxCmWS{`H;s#$aOK2zv zUtL4W6bVUF^w6Ri1Yq4IU^Vmrh(S5(*%MGllY!wTXy_J7zXk{(Mzkq@Q0Ge$*pv4F zHeD@&#fvPk$!rZOM`1<4D4^~j04O&BBj@hhw{O1zJN$3aaug_%Zb5U_SAYOQPd1=p z5j5;83dFMd`ubYHmXI>AD3k`KFn*xHoS?)8Oo5D}K}{I|7J>hO_0vCKmGcwWnD`Ft zQ-T^2AD|KS1d1O+`JX{;4}bt-#Ihy>RIr001vH`v8k3R$VsRiA1C38Xd($}AZ;S%c zN_1G<0r3}TL*gY6gC@1!ff^OaQ~Lk`ge$;7MIxv`<$&fiekkUIijPJVbtCLIG*Ui7 zF(@bffQrK#3IG9wFVGpGm<5`f*r5@{JQ`V4kF3AYi1`W4Ww4b^C@mg<00RI6q4d}( SLGxb#0000<MNUMnLSTZD*w?iH diff --git a/apps/susidns/src/images/save.png b/apps/susidns/src/images/save.png deleted file mode 100644 index 0743f3879efe9d0f876da3d7f505b06110c51d22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2584 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 diff --git a/apps/susidns/src/images/search.png b/apps/susidns/src/images/search.png deleted file mode 100644 index ce46f1d378e455b2ed5d0bc82afd12bcc3878425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2766 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 UGfMATL;wH)07*qoM6N<$f*wBEdH?_b diff --git a/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java b/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java index 4036462bdc..ce53d99d45 100644 --- a/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java +++ b/apps/susidns/src/java/src/i2p/susi/dns/AddressbookBean.java @@ -194,20 +194,27 @@ public class AddressbookBean // addressbook.jsp catches the case where the whole book is empty. String filterArg = ""; if( search != null && search.length() > 0 ) { - message = "Search "; + message = _("Search") + ' '; } if( filter != null && filter.length() > 0 ) { if( search != null && search.length() > 0 ) - message += "within "; - message += "Filtered list "; + message = _("Search within filtered list") + ' '; + else + message = _("Filtered list") + ' '; filterArg = "&filter=" + filter; } if (entries.length == 0) { - message += "- no matches"; + message += "- " + _("no matches") + '.'; } else if (getBeginInt() == 0 && getEndInt() == entries.length - 1) { if (message.length() == 0) - message = "Addressbook "; - message += "contains " + entries.length + " entries"; + message = _("Addressbook") + ' '; + if (entries.length <= 0) + message += _("contains no entries"); + else if (entries.length == 1) + message += _("contains 1 entry"); + else + message += _("contains {0} entries", entries.length); + message += '.'; } else { if (getBeginInt() > 0) { int newBegin = Math.max(0, getBeginInt() - DISPLAY_SIZE); @@ -216,7 +223,7 @@ public class AddressbookBean "&begin=" + newBegin + "&end=" + newEnd + "\">" + newBegin + '-' + newEnd + "</a> | "; } - message += "Showing " + getBegin() + '-' + getEnd() + " of " + entries.length; + message += _("Showing {0} of {1}", "" + getBegin() + '-' + getEnd(), entries.length); if (getEndInt() < entries.length - 1) { int newBegin = Math.min(entries.length - 1, getEndInt() + 1); int newEnd = Math.min(entries.length, getEndInt() + DISPLAY_SIZE); @@ -245,38 +252,43 @@ public class AddressbookBean if( action != null ) { if( lastSerial != null && serial != null && serial.compareTo( lastSerial ) == 0 ) { boolean changed = false; - if( action.compareToIgnoreCase( "add") == 0 ) { + int deleted = 0; + String name = null; + if (action.equals(_("Add"))) { if( addressbook != null && hostname != null && destination != null ) { addressbook.put( hostname, destination ); changed = true; - message += "Destination added.<br/>"; + message = _("Destination added."); + // clear search when adding + search = null; } - } - if( action.compareToIgnoreCase( "delete" ) == 0 ) { + } else if (action.equals(_("Delete"))) { Iterator it = deletionMarks.iterator(); - int deleted = 0; while( it.hasNext() ) { - String name = (String)it.next(); + name = (String)it.next(); addressbook.remove( name ); changed = true; deleted++; } if( changed ) { - message += "" + deleted + " destination(s) deleted.<br/>"; + if (deleted == 1) + message = _("Destination {0} deleted.", name); + else + message = _("{0} destinations deleted.", deleted); } } if( changed ) { try { save(); - message += "Addressbook saved.<br/>"; + message += "<br>" + _("Addressbook saved."); } catch (Exception e) { Debug.debug( e.getClass().getName() + ": " + e.getMessage() ); - message += "ERROR: Could not write addressbook file.<br/>"; + message += "<br>" + _("ERROR: Could not write addressbook file."); } } } else { - message = "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."; + message = _("Invalid form submission, probably because you used the \"back\" or \"reload\" button on your browser. Please resubmit."); } } @@ -364,4 +376,19 @@ public class AddressbookBean endIndex = Integer.parseInt(s); } catch (NumberFormatException nfe) {} } + + /** translate */ + private static String _(String s) { + return Messages.getString(s); + } + + /** translate */ + private static String _(String s, Object o) { + return Messages.getString(s, o); + } + + /** translate */ + private static String _(String s, Object o, Object o2) { + return Messages.getString(s, o, o2); + } } diff --git a/apps/susidns/src/java/src/i2p/susi/dns/ConfigBean.java b/apps/susidns/src/java/src/i2p/susi/dns/ConfigBean.java index 7dad7a2500..f6655757d8 100644 --- a/apps/susidns/src/java/src/i2p/susi/dns/ConfigBean.java +++ b/apps/susidns/src/java/src/i2p/susi/dns/ConfigBean.java @@ -136,17 +136,16 @@ public class ConfigBean implements Serializable { String message = ""; if( action != null ) { if( lastSerial != null && serial != null && serial.compareTo( lastSerial ) == 0 ) { - if( action.compareToIgnoreCase( "save") == 0 ) { + if(action.equals(_("Save"))) { save(); - message = "Configuration saved."; - } - else if( action.compareToIgnoreCase( "reload") == 0 ) { + message = _("Configuration saved."); + } else if (action.equals(_("Reload"))) { reload(); - message = "Configuration reloaded."; + message = _("Configuration reloaded."); } } else { - message = "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."; + message = _("Invalid form submission, probably because you used the \"back\" or \"reload\" button on your browser. Please resubmit."); } } if( message.length() > 0 ) @@ -162,4 +161,9 @@ public class ConfigBean implements Serializable { public void setSerial(String serial ) { this.serial = serial; } + + /** translate */ + private static String _(String s) { + return Messages.getString(s); + } } diff --git a/apps/susidns/src/java/src/i2p/susi/dns/Messages.java b/apps/susidns/src/java/src/i2p/susi/dns/Messages.java index 2426606af6..dd04c62890 100644 --- a/apps/susidns/src/java/src/i2p/susi/dns/Messages.java +++ b/apps/susidns/src/java/src/i2p/susi/dns/Messages.java @@ -19,19 +19,15 @@ public class Messages { return Translate.getString(key, _context, BUNDLE_NAME); } - /** - * translate a string with a parameter - * This is a lot more expensive than getString(s, ctx), so use sparingly. - * - * @param s string to be translated containing {0} - * The {0} will be replaced by the parameter. - * Single quotes must be doubled, i.e. ' -> '' in the string. - * @param o parameter, not translated. - * To tranlslate parameter also, use _("foo {0} bar", _("baz")) - * Do not double the single quotes in the parameter. - * Use autoboxing to call with ints, longs, floats, etc. - */ - public String _(String s, Object o) { - return Translate.getString(s, o, _context, BUNDLE_NAME); + public static String getString(String s) { + return Translate.getString(s, I2PAppContext.getGlobalContext(), BUNDLE_NAME); + } + + public static String getString(String s, Object o) { + return Translate.getString(s, o, I2PAppContext.getGlobalContext(), BUNDLE_NAME); + } + + public static String getString(String s, Object o, Object o2) { + return Translate.getString(s, o, o2, I2PAppContext.getGlobalContext(), BUNDLE_NAME); } } diff --git a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java index b860e23930..cc983b54bf 100644 --- a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java +++ b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java @@ -126,7 +126,7 @@ public class SubscriptionsBean String message = ""; if( action != null ) { if( lastSerial != null && serial != null && serial.compareTo( lastSerial ) == 0 ) { - if( action.compareToIgnoreCase( "save") == 0 ) { + if (action.equals(_("Save"))) { save(); String nonce = System.getProperty("addressbook.nonce"); if (nonce != null) { @@ -135,20 +135,19 @@ public class SubscriptionsBean // Fetching from the addressbook servlet // with the correct parameters will kick off a // config reload and fetch. - message = "Subscriptions saved, updating addressbook from subscription sources now." + + message = _("Subscriptions saved, updating addressbook from subscription sources now.") + "<img height=\"1\" width=\"1\" alt=\"\" " + "src=\"/addressbook/?wakeup=1&nonce=" + nonce + "\">"; } else { - message = "Subscriptions saved."; + message = _("Subscriptions saved."); } - } - else if( action.compareToIgnoreCase( "reload") == 0 ) { + } else if (action.equals(_("Reload"))) { reload(); - message = "Subscriptions reloaded."; + message = _("Subscriptions reloaded."); } } else { - message = "Invalid form submission, probably because you used the 'back' or 'reload' button on your browser. Please resubmit."; + message = _("Invalid form submission, probably because you used the \"back\" or \"reload\" button on your browser. Please resubmit."); } } if( message.length() > 0 ) @@ -183,4 +182,9 @@ public class SubscriptionsBean return content; } + + /** translate */ + private static String _(String s) { + return Messages.getString(s); + } } diff --git a/apps/susidns/src/jsp/addressbook.jsp b/apps/susidns/src/jsp/addressbook.jsp index 4fda75eff7..0189d0a323 100644 --- a/apps/susidns/src/jsp/addressbook.jsp +++ b/apps/susidns/src/jsp/addressbook.jsp @@ -38,7 +38,7 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>${book.book} <%=intl._("addressbook")%> - susidns v${version.version}</title> +<title>${book.book} <%=intl._("addressbook")%> - susidns</title> <link rel="stylesheet" type="text/css" href="css.css"> </head> <body> @@ -111,7 +111,7 @@ <div id="search"> <table><tr> <td class="search"><%=intl._("Search")%>: <input type="text" name="search" value="${book.search}" size="20" ></td> -<td class="search"><input type="image" src="images/search.png" name="submitsearch" value="search" alt="Search" ></td> +<td class="search"><input type="submit" name="submitsearch" value="<%=intl._("Search")%>" ></td> </tr> </table> </div> @@ -155,7 +155,7 @@ <c:if test="${book.master || book.router || book.published || book.private}"> <div id="buttons"> -<p class="buttons"><input type="image" name="action" value="delete" src="images/delete.png" alt="Delete checked" > +<p class="buttons"><input type="submit" name="action" value="<%=intl._("Delete")%>" > </p> </div> </c:if> @@ -174,7 +174,7 @@ <b><%=intl._("Hostname")%>:</b> <input type="text" name="hostname" value="${book.hostname}" size="20"> <b><%=intl._("Destination")%>:</b> <textarea name="destination" rows="1" style="height: 3em;" cols="40" wrap="off" >${book.destination}</textarea><br/> </p><p> -<input type="image" name="action" value="add" src="images/add.png" alt="Add destination" > +<input type="submit" name="action" value="<%=intl._("Add")%>" > </p> </div> diff --git a/apps/susidns/src/jsp/config.jsp b/apps/susidns/src/jsp/config.jsp index 4c3cefbdf8..9f407ced95 100644 --- a/apps/susidns/src/jsp/config.jsp +++ b/apps/susidns/src/jsp/config.jsp @@ -34,7 +34,7 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title><%=intl._("configuration")%> - susidns v${version.version}</title> +<title><%=intl._("configuration")%> - susidns</title> <link rel="stylesheet" type="text/css" href="css.css"> </head> <body> @@ -64,8 +64,8 @@ <textarea name="config" rows="10" cols="80">${cfg.config}</textarea> </div> <div id="buttons"> -<input type="image" src="images/save.png" name="action" value="save" alt="Save Config"> -<input type="image" src="images/reload.png" name="action" value="reload" alt="Reload Config"> +<input type="submit" name="action" value="<%=intl._("Save")%>" > +<input type="submit" name="action" value="<%=intl._("Reload")%>" > </div> </form> <div id="help"> diff --git a/apps/susidns/src/jsp/index.jsp b/apps/susidns/src/jsp/index.jsp index 0f56bdf187..51e0517e97 100644 --- a/apps/susidns/src/jsp/index.jsp +++ b/apps/susidns/src/jsp/index.jsp @@ -32,7 +32,7 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title><%=intl._("Introduction")%> - SusiDNS v${version.version}</title> +<title><%=intl._("Introduction")%> - SusiDNS</title> <link rel="stylesheet" type="text/css" href="css.css"> </head> <body> diff --git a/apps/susidns/src/jsp/subscriptions.jsp b/apps/susidns/src/jsp/subscriptions.jsp index 7485e10bc2..4edd704ae6 100644 --- a/apps/susidns/src/jsp/subscriptions.jsp +++ b/apps/susidns/src/jsp/subscriptions.jsp @@ -34,7 +34,7 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title><%=intl._("subscriptions")%> - susidns v${version.version}</title> +<title><%=intl._("subscriptions")%> - susidns</title> <link rel="stylesheet" type="text/css" href="css.css"> </head> <body> @@ -64,8 +64,8 @@ <textarea name="content" rows="10" cols="80">${subs.content}</textarea> </div> <div id="buttons"> -<input type="image" src="images/save.png" name="action" value="save" alt="Save Subscriptions" > -<input type="image" src="images/reload.png" name="action" value="reload" alt="Reload Subscriptions" > +<input type="submit" name="action" value="<%=intl._("Save")%>" > +<input type="submit" name="action" value="<%=intl._("Reload")%>" > </div> </form> <div id="help"> -- GitLab