change language immediately

there is a bad behaviour:
if language is changed, servlets are translated but the returning servlet is yet the old one. therefore the page is loaded again after language changed.

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7321 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
lotus 2010-11-13 14:27:30 +00:00
parent 11ae5b108e
commit 25426c6548
2 changed files with 10 additions and 5 deletions

View File

@ -13,6 +13,8 @@
</script>
<!-- redirecting browser if port was changed -->
#(reconnect)#::<meta http-equiv="refresh" content="10; url=#(sslSupport)#http::https#(/sslSupport)#://#[host]#:#[port]#/ConfigBasic.html" />#(/reconnect)#
<!-- redirecting browser if language was changed -->
#(changedLanguage)#::<meta http-equiv="refresh" content="0; url=ConfigBasic.html" />#(/changedLanguage)#
</head>
<body id="ConfigBasic">
#%env/templates/header.template%#
@ -30,11 +32,13 @@
<li>
<img src="/env/grafics/ok.png" height="16" width="16" alt="ok" />&nbsp;Select a language for the interface:<br />
<fieldset>
<input type="radio" name="language" id="lang_de" value="de" #(langDeutsch)#::checked="checked"#(/langDeutsch)# /><label for="lang_de">Deutsch</label>&nbsp;
<input type="radio" name="language" id="lang_fr" value="fr" #(langFrancais)#::checked="checked"#(/langFrancais)# /><label for="lang_de">Fran&ccedil;ais</label>&nbsp;
<input type="radio" name="language" value="default" id="lang_en" #(langEnglish)#::checked="checked"#(/langEnglish)# /><label for="lang_en">English</label>
<input type="radio" name="language" id="lang_de" value="de" onchange="this.form.submit()" #(langDeutsch)#::checked="checked"#(/langDeutsch)# /><label for="lang_de">Deutsch</label>&nbsp;
<input type="radio" name="language" id="lang_fr" value="fr" onchange="this.form.submit()" #(langFrancais)#::checked="checked"#(/langFrancais)# /><label for="lang_fr">Fran&ccedil;ais</label>&nbsp;
<input type="radio" name="language" value="default" id="lang_en" onchange="this.form.submit()" #(langEnglish)#::checked="checked"#(/langEnglish)# /><label for="lang_en">English</label>
</fieldset>
</li>
<!-- take care that no other items are changed, but also change the former if no js is enabled -->
<script type="text/javascript"> document.write('</form><form action="ConfigBasic.html" method="get">'); </script>
#(setUseCase)#::
<li>

View File

@ -84,7 +84,8 @@ public class ConfigBasic {
// language settings
if ((post != null) && (!(post.get("language", "default").equals(lang)))) {
translator.changeLang(env, langPath, post.get("language", "default") + ".lng");
if (translator.changeLang(env, langPath, post.get("language", "default") + ".lng"))
prop.put("changedLanguage", "1");
}
// peer name settings
@ -92,7 +93,7 @@ public class ConfigBasic {
// port settings
long port = env.getConfigLong("port", 8080); //this allows a low port, but it will only get one, if the user edits the config himself.
if (post != null && Integer.parseInt(post.get("port")) > 1023) {
if (post != null && post.containsKey("port") && Integer.parseInt(post.get("port")) > 1023) {
port = post.getLong("port", 8080);
}