diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java index 707c7a3532..783baaa0bb 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java @@ -172,7 +172,7 @@ public class ConfigUIHelper extends HelperBase { if (lang.equals(current)) buf.append(CHECKED); buf.append("value=\"").append(lang).append("\">") - .append("\"\"") + .append("\"\"") .append("
"); int under = lang.indexOf('_'); String slang = (under > 0) ? lang.substring(0, under) : lang; diff --git a/apps/routerconsole/jsp/flags.jsp b/apps/routerconsole/jsp/flags.jsp index b6dcf8184f..9c10650e9c 100644 --- a/apps/routerconsole/jsp/flags.jsp +++ b/apps/routerconsole/jsp/flags.jsp @@ -9,16 +9,22 @@ /** * flags.jsp?c=de => icons/flags/de.png + * flags.jsp?c=de&s=48 => icons/flags48x48/de.png * with headers set so the browser caches. */ String c = request.getParameter("c"); if (c != null && (c.length() == 2 || c.length() == 7) && c.replaceAll("[a-z0-9_]", "").length() == 0) { + String flagSet = "flags"; + String s = request.getParameter("s"); + if ("48".equals(s)) { + flagSet = "flags48x48"; + } java.io.OutputStream cout = response.getOutputStream(); String base = net.i2p.I2PAppContext.getGlobalContext().getBaseDir().getAbsolutePath(); String file = "docs" + java.io.File.separatorChar + "icons" + java.io.File.separatorChar + - "flags" + java.io.File.separatorChar + c + ".png"; + flagSet + java.io.File.separatorChar + c + ".png"; java.io.File ffile = new java.io.File(base, file); long lastmod = ffile.lastModified(); if (lastmod > 0) { @@ -60,4 +66,4 @@ if (c != null && */ response.sendError(403, "No flag specified"); } -%> \ No newline at end of file +%> diff --git a/build.xml b/build.xml index da1504b8be..c17eb49e9e 100644 --- a/build.xml +++ b/build.xml @@ -1241,6 +1241,9 @@ + + + @@ -1396,6 +1399,8 @@ im.png added in 0.8.12; cw.png added in 0.9.5; ap,bl,bq,ss,sx added in 0.9.21; lang_gl added in 0.9.28; a0.png added in 0.9.31 --> + + @@ -2508,6 +2513,9 @@ + + + diff --git a/history.txt b/history.txt index ad78ef72a4..563a656159 100644 --- a/history.txt +++ b/history.txt @@ -22,7 +22,9 @@ - Add additional reachability states for clockskew and vmcomm (with icons) - Homepage: Add 'Customize Sidebar' link to signpost the feature now that there are more optional sections available (ticket #1996) - - /configui: Add option to embed Susimail and I2PSnark in console + - /configui: + - Add option to embed Susimail and I2PSnark in console + - Use larger flags for language selection * I2PTunnel: Add hostname / destination (b32) information to server section on index page (for parity with client tunnels section) * I2PSnark diff --git a/installer/resources/icons/flags48x48/a1.png b/installer/resources/icons/flags48x48/a1.png new file mode 100644 index 0000000000..2f31d8f06e Binary files /dev/null and b/installer/resources/icons/flags48x48/a1.png differ diff --git a/installer/resources/icons/flags48x48/br.png b/installer/resources/icons/flags48x48/br.png new file mode 100644 index 0000000000..d16099428a Binary files /dev/null and b/installer/resources/icons/flags48x48/br.png differ diff --git a/installer/resources/icons/flags48x48/cn.png b/installer/resources/icons/flags48x48/cn.png new file mode 100644 index 0000000000..84bb807d24 Binary files /dev/null and b/installer/resources/icons/flags48x48/cn.png differ diff --git a/installer/resources/icons/flags48x48/cz.png b/installer/resources/icons/flags48x48/cz.png new file mode 100644 index 0000000000..bf8e6b84c4 Binary files /dev/null and b/installer/resources/icons/flags48x48/cz.png differ diff --git a/installer/resources/icons/flags48x48/de.png b/installer/resources/icons/flags48x48/de.png new file mode 100644 index 0000000000..5e72b7d70e Binary files /dev/null and b/installer/resources/icons/flags48x48/de.png differ diff --git a/installer/resources/icons/flags48x48/dk.png b/installer/resources/icons/flags48x48/dk.png new file mode 100644 index 0000000000..cff45158b5 Binary files /dev/null and b/installer/resources/icons/flags48x48/dk.png differ diff --git a/installer/resources/icons/flags48x48/ee.png b/installer/resources/icons/flags48x48/ee.png new file mode 100644 index 0000000000..c7f2c89f2f Binary files /dev/null and b/installer/resources/icons/flags48x48/ee.png differ diff --git a/installer/resources/icons/flags48x48/es.png b/installer/resources/icons/flags48x48/es.png new file mode 100644 index 0000000000..a6a4b63f88 Binary files /dev/null and b/installer/resources/icons/flags48x48/es.png differ diff --git a/installer/resources/icons/flags48x48/fi.png b/installer/resources/icons/flags48x48/fi.png new file mode 100644 index 0000000000..633b28b6eb Binary files /dev/null and b/installer/resources/icons/flags48x48/fi.png differ diff --git a/installer/resources/icons/flags48x48/fr.png b/installer/resources/icons/flags48x48/fr.png new file mode 100644 index 0000000000..fa7b863496 Binary files /dev/null and b/installer/resources/icons/flags48x48/fr.png differ diff --git a/installer/resources/icons/flags48x48/gr.png b/installer/resources/icons/flags48x48/gr.png new file mode 100644 index 0000000000..98926cb683 Binary files /dev/null and b/installer/resources/icons/flags48x48/gr.png differ diff --git a/installer/resources/icons/flags48x48/hu.png b/installer/resources/icons/flags48x48/hu.png new file mode 100644 index 0000000000..9dc5b0f267 Binary files /dev/null and b/installer/resources/icons/flags48x48/hu.png differ diff --git a/installer/resources/icons/flags48x48/it.png b/installer/resources/icons/flags48x48/it.png new file mode 100644 index 0000000000..eaaf0b36dd Binary files /dev/null and b/installer/resources/icons/flags48x48/it.png differ diff --git a/installer/resources/icons/flags48x48/jp.png b/installer/resources/icons/flags48x48/jp.png new file mode 100644 index 0000000000..83792e900d Binary files /dev/null and b/installer/resources/icons/flags48x48/jp.png differ diff --git a/installer/resources/icons/flags48x48/kr.png b/installer/resources/icons/flags48x48/kr.png new file mode 100644 index 0000000000..9e65574452 Binary files /dev/null and b/installer/resources/icons/flags48x48/kr.png differ diff --git a/installer/resources/icons/flags48x48/lang_ar.png b/installer/resources/icons/flags48x48/lang_ar.png new file mode 100644 index 0000000000..7f73a08a15 Binary files /dev/null and b/installer/resources/icons/flags48x48/lang_ar.png differ diff --git a/installer/resources/icons/flags48x48/lang_gl.png b/installer/resources/icons/flags48x48/lang_gl.png new file mode 100644 index 0000000000..7b7b4aa5d1 Binary files /dev/null and b/installer/resources/icons/flags48x48/lang_gl.png differ diff --git a/installer/resources/icons/flags48x48/mg.png b/installer/resources/icons/flags48x48/mg.png new file mode 100644 index 0000000000..96d77aa48d Binary files /dev/null and b/installer/resources/icons/flags48x48/mg.png differ diff --git a/installer/resources/icons/flags48x48/nl.png b/installer/resources/icons/flags48x48/nl.png new file mode 100644 index 0000000000..dc6b469738 Binary files /dev/null and b/installer/resources/icons/flags48x48/nl.png differ diff --git a/installer/resources/icons/flags48x48/no.png b/installer/resources/icons/flags48x48/no.png new file mode 100644 index 0000000000..a8abe4bb62 Binary files /dev/null and b/installer/resources/icons/flags48x48/no.png differ diff --git a/installer/resources/icons/flags48x48/pl.png b/installer/resources/icons/flags48x48/pl.png new file mode 100644 index 0000000000..b79a260a0b Binary files /dev/null and b/installer/resources/icons/flags48x48/pl.png differ diff --git a/installer/resources/icons/flags48x48/pt.png b/installer/resources/icons/flags48x48/pt.png new file mode 100644 index 0000000000..e71a4c04ea Binary files /dev/null and b/installer/resources/icons/flags48x48/pt.png differ diff --git a/installer/resources/icons/flags48x48/ro.png b/installer/resources/icons/flags48x48/ro.png new file mode 100644 index 0000000000..d437ddf0ca Binary files /dev/null and b/installer/resources/icons/flags48x48/ro.png differ diff --git a/installer/resources/icons/flags48x48/ru.png b/installer/resources/icons/flags48x48/ru.png new file mode 100644 index 0000000000..f46a4a70af Binary files /dev/null and b/installer/resources/icons/flags48x48/ru.png differ diff --git a/installer/resources/icons/flags48x48/se.png b/installer/resources/icons/flags48x48/se.png new file mode 100644 index 0000000000..349a0de51a Binary files /dev/null and b/installer/resources/icons/flags48x48/se.png differ diff --git a/installer/resources/icons/flags48x48/sk.png b/installer/resources/icons/flags48x48/sk.png new file mode 100644 index 0000000000..60a7aa6833 Binary files /dev/null and b/installer/resources/icons/flags48x48/sk.png differ diff --git a/installer/resources/icons/flags48x48/tr.png b/installer/resources/icons/flags48x48/tr.png new file mode 100644 index 0000000000..4c9925aacc Binary files /dev/null and b/installer/resources/icons/flags48x48/tr.png differ diff --git a/installer/resources/icons/flags48x48/tw.png b/installer/resources/icons/flags48x48/tw.png new file mode 100644 index 0000000000..df728ca4bc Binary files /dev/null and b/installer/resources/icons/flags48x48/tw.png differ diff --git a/installer/resources/icons/flags48x48/ua.png b/installer/resources/icons/flags48x48/ua.png new file mode 100644 index 0000000000..bc547b2221 Binary files /dev/null and b/installer/resources/icons/flags48x48/ua.png differ diff --git a/installer/resources/icons/flags48x48/us.png b/installer/resources/icons/flags48x48/us.png new file mode 100644 index 0000000000..8783aa3278 Binary files /dev/null and b/installer/resources/icons/flags48x48/us.png differ diff --git a/installer/resources/icons/flags48x48/vn.png b/installer/resources/icons/flags48x48/vn.png new file mode 100644 index 0000000000..9de9f9b8bf Binary files /dev/null and b/installer/resources/icons/flags48x48/vn.png differ diff --git a/installer/resources/themes/console/classic/console.css b/installer/resources/themes/console/classic/console.css index 1719fb1cdf..175b3238ae 100644 --- a/installer/resources/themes/console/classic/console.css +++ b/installer/resources/themes/console/classic/console.css @@ -4680,6 +4680,70 @@ p#helptranslate { margin: 0 -5px; } +/* large flags */ + +.langselect img { + margin-top: 2px !important; + margin-bottom: 34px !important; + margin-left: -70px !important; + width: 40px; + height: 40px; + border: none !important; + box-shadow: none; + opacity: 0.9 !important; + transform: none !important; + filter: drop-shadow(0 0 1px #77d); +} + +.langselect input[name="lang"]:checked + img, .langselect input[name="lang"]:checked + #config_ui img[src="/flags.jsp?c=a1"] { + margin-top: 6px !important; + margin-bottom: 38px !important; + width: 32px !important; + height: 32px !important; + border: none !important; + box-shadow: none !important; + opacity: 1 !important; + transform: none !important; + animation: glow 20s 10s infinite; +} + +.langselect input:hover + img { + box-shadow: none !important; + border: none !important; + transition: none !important; + filter: drop-shadow(0 0 2px #f60); +} + +/* +.langselect input[name="lang"]:checked + img + .ui_lang { + margin: -24px -4px 0; +} +*/ + +@keyframes glow { +0% { + filter: drop-shadow(0 0 1px rgba(256, 100, 0, 0.1)); +} + +20% { + filter: drop-shadow(0 0 1px #f60); +} + +50% { + filter: drop-shadow(0 0 2px #930); +} + +80% { + filter: drop-shadow(0 0 1px #d40); +} + +100% { + filter: drop-shadow(0 0 1px rgba(256, 100, 0, 0.1)); +} +} + +/* end large flags */ + /* configui password*/ #consolepass th:nth-child(2) { diff --git a/installer/resources/themes/console/dark/console.css b/installer/resources/themes/console/dark/console.css index d4e4af30cf..0b62f50511 100644 --- a/installer/resources/themes/console/dark/console.css +++ b/installer/resources/themes/console/dark/console.css @@ -3105,6 +3105,39 @@ td#themeselect { } } +/* large flags */ + +.langselect img { + width: 40px; + height: 40px; + border: none !important; + margin-top: -6px !important; + margin-left: -82px; + position: absolute; + box-shadow: none; + opacity: 0.6; + filter: drop-shadow(0 0 1px #000); +} + +.langselect input[name="lang"]:checked + img, .langselect input[name="lang"]:checked + #config_ui img[src="/flags.jsp?c=a1"] { + width: 32px !important; + height: 32px !important; + border: none !important; + margin-left: -78px; + margin-top: -2px !important; + margin-bottom: 0; + box-shadow: none !important; + opacity: 1; +} + +.langselect input:hover + img { + box-shadow: none !important; + transition: none !important; + filter: drop-shadow(0 0 1px #f60); +} + +/* end large flags */ + /* end flag as radio icons */ div.ui_lang { /* lang text label */ diff --git a/installer/resources/themes/console/light/console.css b/installer/resources/themes/console/light/console.css index 73a6362204..b77624d763 100644 --- a/installer/resources/themes/console/light/console.css +++ b/installer/resources/themes/console/light/console.css @@ -4818,6 +4818,67 @@ div.langselect br { display: block; } +/* large flags */ + +.langselect img { + margin-top: -60px !important; + margin-bottom: 34px !important; + width: 40px; + height: 40px; + border: none !important; + box-shadow: none; + opacity: 0.9 !important; + transform: none !important; + filter: drop-shadow(0 0 1px #77d); +} + +.langselect input[name="lang"]:checked + img, .langselect input[name="lang"]:checked + #config_ui img[src="/flags.jsp?c=a1"] { + margin-top: -56px !important; + margin-bottom: 30px !important; + width: 32px !important; + height: 32px !important; + border: none !important; + box-shadow: none !important; + opacity: 1 !important; + transform: none !important; + animation: glow 20s 10s infinite; +} + +.langselect input:hover + img { + box-shadow: none !important; + border: none !important; + transition: none !important; + filter: drop-shadow(0 0 2px #f60); +} + +.langselect input[name="lang"]:checked + img + .ui_lang { + margin: -24px -4px 0; +} + +@keyframes glow { +0% { + filter: drop-shadow(0 0 1px rgba(256, 100, 0, 0.1)); +} + +20% { + filter: drop-shadow(0 0 1px #f60); +} + +50% { + filter: drop-shadow(0 0 2px #930); +} + +80% { + filter: drop-shadow(0 0 1px #d40); +} + +100% { + filter: drop-shadow(0 0 1px rgba(256, 100, 0, 0.1)); +} +} + +/* end large flags */ + div.ui_lang { text-align: center; background: #eef url(images/tinytitle.png) center center !important; diff --git a/installer/resources/themes/console/midnight/console.css b/installer/resources/themes/console/midnight/console.css index 47c590f7d3..0d41d2a01c 100644 --- a/installer/resources/themes/console/midnight/console.css +++ b/installer/resources/themes/console/midnight/console.css @@ -3552,6 +3552,38 @@ td#themeselect { } } +/* large flags */ + +.langselect img { + width: 40px; + height: 40px; + border: none !important; + margin-top: -6px !important; + margin-left: -82px; + position: absolute; + box-shadow: none; + opacity: 0.75; + filter: drop-shadow(0 0 1px #000); +} + +.langselect input[name="lang"]:checked + img, .langselect input[name="lang"]:checked + #config_ui img[src="/flags.jsp?c=a1"] { + width: 32px !important; + height: 32px !important; + border: none !important; + margin-left: -78px; + margin-top: -2px !important; + margin-bottom: 0; + box-shadow: none !important; + opacity: 1; +} + +.langselect input:hover + img { + box-shadow: none !important; + transition: none !important; + filter: drop-shadow(0 0 2px #652787); +} + +/* end large flags */ /* end flag as radio icons */ .ui_lang { /* lang text label */