提交 14dee4d0 authored 作者: Thomas Mueller's avatar Thomas Mueller

H2 Console: show correct language when starting

上级 c7604afd
...@@ -180,7 +180,7 @@ public class WebServer implements Service { ...@@ -180,7 +180,7 @@ public class WebServer implements Service {
session.put("language", DEFAULT_LANGUAGE); session.put("language", DEFAULT_LANGUAGE);
sessions.put(newId, session); sessions.put(newId, session);
// always read the english translation, // always read the english translation,
// to that untranslated text appears at least in english // so that untranslated text appears at least in english
readTranslations(session, DEFAULT_LANGUAGE); readTranslations(session, DEFAULT_LANGUAGE);
return getSession(newId); return getSession(newId);
} }
......
...@@ -92,6 +92,7 @@ class WebThread extends Thread implements DatabaseEventListener { ...@@ -92,6 +92,7 @@ class WebThread extends Thread implements DatabaseEventListener {
private String ifModifiedSince; private String ifModifiedSince;
private boolean cache; private boolean cache;
private boolean stop; private boolean stop;
private String headerLanguage;
// TODO web: support online data editing like http://numsum.com/ // TODO web: support online data editing like http://numsum.com/
...@@ -353,8 +354,7 @@ class WebThread extends Thread implements DatabaseEventListener { ...@@ -353,8 +354,7 @@ class WebThread extends Thread implements DatabaseEventListener {
len = Integer.parseInt(line.substring(line.indexOf(':') + 1).trim()); len = Integer.parseInt(line.substring(line.indexOf(':') + 1).trim());
trace("len=" + len); trace("len=" + len);
} else if (lower.startsWith("accept-language")) { } else if (lower.startsWith("accept-language")) {
if (session != null) { Locale locale = session == null ? null : session.locale;
Locale locale = session.locale;
if (locale == null) { if (locale == null) {
String languages = line.substring(line.indexOf(':') + 1).trim(); String languages = line.substring(line.indexOf(':') + 1).trim();
StringTokenizer tokenizer = new StringTokenizer(languages, ",;"); StringTokenizer tokenizer = new StringTokenizer(languages, ",;");
...@@ -370,12 +370,13 @@ class WebThread extends Thread implements DatabaseEventListener { ...@@ -370,12 +370,13 @@ class WebThread extends Thread implements DatabaseEventListener {
} else { } else {
locale = new Locale(token, ""); locale = new Locale(token, "");
} }
headerLanguage = locale.getLanguage();
if (session != null) {
session.locale = locale; session.locale = locale;
String language = locale.getLanguage(); session.put("language", headerLanguage);
session.put("language", language); server.readTranslations(session, headerLanguage);
server.readTranslations(session, language);
break;
} }
break;
} }
} }
} }
...@@ -600,6 +601,11 @@ class WebThread extends Thread implements DatabaseEventListener { ...@@ -600,6 +601,11 @@ class WebThread extends Thread implements DatabaseEventListener {
private String index() { private String index() {
String[][] languageArray = server.getLanguageArray(); String[][] languageArray = server.getLanguageArray();
String language = (String) attributes.get("language"); String language = (String) attributes.get("language");
if (language == null) {
// if the language is not yet known
// use the last header
language = headerLanguage;
}
Locale locale = session.locale; Locale locale = session.locale;
if (language != null) { if (language != null) {
if (locale == null || !StringUtils.toLowerEnglish(locale.getLanguage()).equals(language)) { if (locale == null || !StringUtils.toLowerEnglish(locale.getLanguage()).equals(language)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论