diff --git a/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/home.jsp b/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/home.jsp
index 363051881..f3e902904 100644
--- a/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/home.jsp
+++ b/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/home.jsp
@@ -3,7 +3,7 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags"%>
-
+
diff --git a/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json b/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json
index 33f840409..aeeac39d2 100644
--- a/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json
+++ b/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json
@@ -363,5 +363,13 @@
"number_clients": "Authorized clients: {0}",
"number_approvals": "Approved sites: {0}"
}
+ },
+ "topbar": {
+ "about": "About",
+ "contact": "Contact",
+ "statistics": "Statistics",
+ "home": "Home",
+ "login": "Log in",
+ "logout": "Log out"
}
}
\ No newline at end of file
diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/config/JsonMessageSource.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/config/JsonMessageSource.java
index 25ba928a1..8c5a7303b 100644
--- a/openid-connect-server/src/main/java/org/mitre/openid/connect/config/JsonMessageSource.java
+++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/config/JsonMessageSource.java
@@ -47,6 +47,8 @@ public class JsonMessageSource extends AbstractMessageSource {
private static final Logger logger = LoggerFactory.getLogger(JsonMessageSource.class);
private Resource baseDirectory;
+
+ private Locale fallbackLocale = new Locale("en"); // US English is the fallback language
private Map languageMaps = new HashMap<>();
@@ -55,9 +57,20 @@ public class JsonMessageSource extends AbstractMessageSource {
JsonObject lang = getLanguageMap(locale);
- MessageFormat mf = getMessageFormat(code, locale, lang);
+ String value = getValue(code, lang);
+
+ if (value == null) {
+ // if we haven't found anything, try the default locale
+ lang = getLanguageMap(fallbackLocale);
+ value = getValue(code, lang);
+ }
+
+ if (value == null) {
+ value = code;
+ }
+
+ MessageFormat mf = new MessageFormat(value, locale);
- // TODO Auto-generated method stub
return mf;
}
@@ -67,14 +80,19 @@ public class JsonMessageSource extends AbstractMessageSource {
* @param lang
* @return
*/
- private MessageFormat getMessageFormat(String code, Locale locale, JsonObject lang) {
+ private String getValue(String code, JsonObject lang) {
+
+ // if there's no language map, nothing to look up
+ if (lang == null) {
+ return null;
+ }
JsonElement e = lang;
Iterable parts = Splitter.on('.').split(code);
Iterator it = parts.iterator();
- String value = code;
+ String value = null;
while (it.hasNext()) {
String p = it.next();
@@ -99,9 +117,8 @@ public class JsonMessageSource extends AbstractMessageSource {
}
- MessageFormat mf = new MessageFormat(value, locale);
+ return value;
- return mf;
}
/**