From 78dcfd830c21eaa926f04582efc1afb173967026 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 29 Jan 2013 13:44:36 +0000
Subject: [PATCH] * Translations:   - Use JVM language name if available   -
 Correct Estonian language code from ee to et

---
 .tx/config                                    |  2 +-
 .../net/i2p/router/web/ConfigUIHelper.java    |  4 ++--
 .../java/src/net/i2p/router/web/Messages.java | 13 +++++++++++
 apps/routerconsole/jsp/console.jsp            |  2 +-
 apps/routerconsole/jsp/home.jsp               |  2 +-
 .../locale/{messages_ee.po => messages_et.po} |  0
 core/java/src/net/i2p/util/Translate.java     | 23 +++++++++++++++++++
 7 files changed, 41 insertions(+), 5 deletions(-)
 rename apps/routerconsole/locale/{messages_ee.po => messages_et.po} (100%)

diff --git a/.tx/config b/.tx/config
index 2ab250f630..6496637161 100644
--- a/.tx/config
+++ b/.tx/config
@@ -26,7 +26,7 @@ trans.da = apps/routerconsole/locale/messages_da.po
 trans.de = apps/routerconsole/locale/messages_de.po
 trans.el = apps/routerconsole/locale/messages_el.po
 trans.es = apps/routerconsole/locale/messages_es.po
-trans.et_EE = apps/routerconsole/locale/messages_ee.po
+trans.et_EE = apps/routerconsole/locale/messages_et.po
 trans.fi = apps/routerconsole/locale/messages_fi.po
 trans.fr = apps/routerconsole/locale/messages_fr.po
 trans.hu = apps/routerconsole/locale/messages_hu.po
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 28fa6034af..8ced600bc0 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java
@@ -73,7 +73,7 @@ public class ConfigUIHelper extends HelperBase {
      *  Any language-specific flag added to the icon set must be
      *  added to the top-level build.xml for the updater.
      */
-    private static final String langs[] = {"ar", "cs", "da", "de", "ee", "el", "en", "es", "fi",
+    private static final String langs[] = {"ar", "cs", "da", "de", "et", "el", "en", "es", "fi",
                                            "fr", "hu", "it", "nl", "pl", "pt", "ru",
                                            "sv", "uk", "vi", "zh"};
     private static final String flags[] = {"lang_ar", "cz", "dk", "de", "ee", "gr", "us", "es", "fi",
@@ -96,7 +96,7 @@ public class ConfigUIHelper extends HelperBase {
                 buf.append("checked=\"checked\" ");
             buf.append("value=\"").append(langs[i]).append("\">")
                .append("<img height=\"11\" width=\"16\" alt=\"\" src=\"/flags.jsp?c=").append(flags[i]).append("\"> ")
-               .append(_(xlangs[i])).append("<br>\n");
+               .append(Messages.getDisplayLanguage(langs[i], xlangs[i], _context)).append("<br>\n");
         }
         return buf.toString();
     }
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/Messages.java b/apps/routerconsole/java/src/net/i2p/router/web/Messages.java
index b50940fab5..7becafbe9a 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/Messages.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/Messages.java
@@ -39,4 +39,17 @@ public class Messages extends Translate {
     public static String getString(int n, String s, String p, I2PAppContext ctx) {
         return Translate.getString(n, s, p, ctx, BUNDLE_NAME);
     }
+
+    /**
+     *  Return the "display language", e.g. "English" for the language specified
+     *  by langCode, using the current language.
+     *  Uses translation if available, then JVM Locale.getDisplayLanguage() if available, else default param.
+     *
+     *  @param langCode two-letter lower-case
+     *  @param dflt e.g. "English"
+     *  @since 0.9.5
+     */
+    public static String getDisplayLanguage(String langCode, String dflt, I2PAppContext ctx) {
+        return Translate.getDisplayLanguage(langCode, dflt, ctx, BUNDLE_NAME);
+    }
 }
diff --git a/apps/routerconsole/jsp/console.jsp b/apps/routerconsole/jsp/console.jsp
index 883c83c56e..cff8e1acaf 100644
--- a/apps/routerconsole/jsp/console.jsp
+++ b/apps/routerconsole/jsp/console.jsp
@@ -38,7 +38,7 @@
     <a href="/console?lang=cs&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=cz" title="čeština" alt="čeština"></a>
     <a href="/console?lang=da&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=dk" title="Dansk" alt="Dansk"></a>
     <a href="/console?lang=de&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a>
-    <a href="/console?lang=ee&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=ee" title="Eesti" alt="Eesti"></a>
+    <a href="/console?lang=et&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=ee" title="Eesti" alt="Eesti"></a>
     <a href="/console?lang=es&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=es" title="Español" alt="Español"></a>
     <a href="/console?lang=fi&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fi" title="Suomi" alt="Suomi"></a>
     <a href="/console?lang=fr&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fr" title="Français" alt="Français"></a><br>
diff --git a/apps/routerconsole/jsp/home.jsp b/apps/routerconsole/jsp/home.jsp
index b1dd1079b1..bb01182cd5 100644
--- a/apps/routerconsole/jsp/home.jsp
+++ b/apps/routerconsole/jsp/home.jsp
@@ -65,7 +65,7 @@
     <a href="/home?lang=cs&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=cz" title="ÄŒesky" alt="ÄŒesky"></a>
     <a href="/home?lang=da&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=dk" title="Dansk" alt="Dansk"></a>
     <a href="/home?lang=de&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a>
-    <a href="/home?lang=ee&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=ee" title="Eesti" alt="Eesti"></a>
+    <a href="/home?lang=et&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=ee" title="Eesti" alt="Eesti"></a>
     <a href="/home?lang=es&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=es" title="Español" alt="Español"></a>
     <a href="/home?lang=fi&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fi" title="Suomi" alt="Suomi"></a>
     <a href="/home?lang=fr&amp;consoleNonce=<%=consoleNonce%>"><img height="11" width="16" style="padding: 0 2px;" src="/flags.jsp?c=fr" title="Français" alt="Français"></a><br>
diff --git a/apps/routerconsole/locale/messages_ee.po b/apps/routerconsole/locale/messages_et.po
similarity index 100%
rename from apps/routerconsole/locale/messages_ee.po
rename to apps/routerconsole/locale/messages_et.po
diff --git a/core/java/src/net/i2p/util/Translate.java b/core/java/src/net/i2p/util/Translate.java
index 11fc9d45e6..05d345c953 100644
--- a/core/java/src/net/i2p/util/Translate.java
+++ b/core/java/src/net/i2p/util/Translate.java
@@ -163,6 +163,29 @@ public abstract class Translate {
         return rv;
     }
 
+    /**
+     *  Return the "display language", e.g. "English" for the language specified
+     *  by langCode, using the current language.
+     *  Uses translation if available, then JVM Locale.getDisplayLanguage() if available, else default param.
+     *
+     *  @param langCode two-letter lower-case
+     *  @param dflt e.g. "English"
+     *  @since 0.9.5
+     */
+    public static String getDisplayLanguage(String langCode, String dflt, I2PAppContext ctx, String bun) {
+        String curLang = getLanguage(ctx);
+        if (!"en".equals(curLang)) {
+            String rv = getString(dflt, ctx, bun);
+            if (!rv.equals(dflt))
+                return rv;
+            Locale curLocale = new Locale(curLang);
+            rv = (new Locale(langCode)).getDisplayLanguage(curLocale);
+            if (rv.length() > 0 && !rv.equals(langCode))
+                return rv;
+        }
+        return dflt;
+    }
+
     /**
      *  Clear the cache.
      *  Call this after adding new bundles to the classpath.
-- 
GitLab