From fa92beae5af8b35ff7bdd377579a28184c1e282d Mon Sep 17 00:00:00 2001 From: zzz 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 0ee2432d6..fae4f94a0 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)B00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU+DoI2^RCwBA z{Qv(y!zdUU03d*vMuTAJ0Du4*jjSOA00L+f7Qb#*-ol==3@7?HJq|Nd>0CQb7E{{1_Hva&LR zn3xy?KR-X%0U*rC2+;zfK`lub9|X|(=zvuD;btDJV(w~6%I}rbcMH)Z=q1d!))v6m4Cr(rcX)-f2W004ZXW-=IWME-ofs~m{ zOn4nfspp5gdC1`3zkgu$fByUdN7(J#w;7HfKhE&^^Jj*PjEqOIv9Vr2Wv`%-_6uY@ zKmfr_-nnzwDl7`}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@)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&?;!Y~SlifS-+*A5WWZuYcV_=k19(kNxrNvr6}i|_(fcC+5vG_ntyG}_g(rRjJP3- z+`$y(eLSIVugk7B_2%;<0O@6n!axW_(J2Bp+owqHA@l%xN6#TPvTUK?b-Y1*1BNXV zVxxj1zBsf(1F6|oYH$2@4X(ZwI=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$ei-lpBr!24NO}NK1C*Qrx4U6Grj-J*0N|>pyV%m25iaRQ8ZL%0AQC7^5Pdk-qoR zoX96LI6WBty?32C=lrd;Ok3rUl%)`q0ENk5lQZbD{ydP_H#PJ zu3G?7%vc3r5Qw3L_7mLv0l`Jw{r`V)aOzs9FEk*9PA!xU#WOkYF2Q3iIztFs?_EHt zPInfsHOpggP0rg9emTTvLd6(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{FEU4RN{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)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^jU@bUU1R?7InFC84#O5ws{)H8NFaRAD3k`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#0000B00004XF*Lt006JZ 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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 4036462bd..ce53d99d4 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 + " | "; } - 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.
"; + 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.
"; + if (deleted == 1) + message = _("Destination {0} deleted.", name); + else + message = _("{0} destinations deleted.", deleted); } } if( changed ) { try { save(); - message += "Addressbook saved.
"; + message += "
" + _("Addressbook saved."); } catch (Exception e) { Debug.debug( e.getClass().getName() + ": " + e.getMessage() ); - message += "ERROR: Could not write addressbook file.
"; + message += "
" + _("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 7dad7a250..f6655757d 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 2426606af..dd04c6289 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 b860e2393..cc983b54b 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.") + "\"\""; } 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 4fda75eff..0189d0a32 100644 --- a/apps/susidns/src/jsp/addressbook.jsp +++ b/apps/susidns/src/jsp/addressbook.jsp @@ -38,7 +38,7 @@ -${book.book} <%=intl._("addressbook")%> - susidns v${version.version} +${book.book} <%=intl._("addressbook")%> - susidns @@ -111,7 +111,7 @@ @@ -155,7 +155,7 @@
-

+

" >

@@ -174,7 +174,7 @@ <%=intl._("Hostname")%>: <%=intl._("Destination")%>:

- +" >

diff --git a/apps/susidns/src/jsp/config.jsp b/apps/susidns/src/jsp/config.jsp index 4c3cefbdf..9f407ced9 100644 --- a/apps/susidns/src/jsp/config.jsp +++ b/apps/susidns/src/jsp/config.jsp @@ -34,7 +34,7 @@ -<%=intl._("configuration")%> - susidns v${version.version} +<%=intl._("configuration")%> - susidns @@ -64,8 +64,8 @@
- - +" > +" >
diff --git a/apps/susidns/src/jsp/index.jsp b/apps/susidns/src/jsp/index.jsp index 0f56bdf18..51e0517e9 100644 --- a/apps/susidns/src/jsp/index.jsp +++ b/apps/susidns/src/jsp/index.jsp @@ -32,7 +32,7 @@ -<%=intl._("Introduction")%> - SusiDNS v${version.version} +<%=intl._("Introduction")%> - SusiDNS diff --git a/apps/susidns/src/jsp/subscriptions.jsp b/apps/susidns/src/jsp/subscriptions.jsp index 7485e10bc..4edd704ae 100644 --- a/apps/susidns/src/jsp/subscriptions.jsp +++ b/apps/susidns/src/jsp/subscriptions.jsp @@ -34,7 +34,7 @@ -<%=intl._("subscriptions")%> - susidns v${version.version} +<%=intl._("subscriptions")%> - susidns @@ -64,8 +64,8 @@
- - +" > +" >