提交 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,29 +354,29 @@ class WebThread extends Thread implements DatabaseEventListener { ...@@ -353,29 +354,29 @@ 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, ",;"); while (tokenizer.hasMoreTokens()) {
while (tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken();
String token = tokenizer.nextToken(); if (!token.startsWith("q=")) {
if (!token.startsWith("q=")) { if (server.supportsLanguage(token)) {
if (server.supportsLanguage(token)) { int dash = token.indexOf('-');
int dash = token.indexOf('-'); if (dash >= 0) {
if (dash >= 0) { String language = token.substring(0, dash);
String language = token.substring(0, dash); String country = token.substring(dash + 1);
String country = token.substring(dash + 1); locale = new Locale(language, country);
locale = new Locale(language, country); } 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论