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 */