So langsam beginne ich zu verstehen. Was mich nur wundert, über localhost:8080/ funktioniert der Sprachwechsel wunderbar, wo hingegen ich bei localhost:8080/:name/ das richtige Template zwar über den @post, aber nicht über die @route anzeigen kann.
Am besten zeige ich euch mal meinen vollständigen Code bis daher:
Code: Alles auswählen
@post('/:name/')
@post('/:name')
@post('/')
def language_select(name='index'):
title = name.capitalize()
language = request.POST['lang_id']
response.set_cookie('language', language)
try: content = open("docs/" + language + "/" + name + ".md").read()
except:
content = open("error.md").read()
return template("view", title="Seite nicht gefunden", content=content)
return template("templates/" + language + "/view", title=title, content=content)
@route('/')
@route('/:name')
@route('/:name/')
def view(name='index', language='de'):
title = name.capitalize()
try: language = request.COOKIES["language"]
except: pass
try: content = open("docs/" + language + "/" + name + ".md").read()
except:
content = open("error.md").read()
return template("view", title="Seite nicht gefunden", content=content)
return template("templates/" + language + "/view", title=title, content=content)
Der relevante Temlateausschnitt, ein mal für Deutsch, und einmal für Englisch:
Code: Alles auswählen
#Englisches Template
<form action="." method="post"><select size="1" class="sprache" id="lang_id" name="lang_id" onChange="javascript:submit()">
<option value="de" >German</option>
<option value="en" selected>English</option>
</select></form>
#Deutsches Template
<form action="." method="post"><select size="1" class="sprache" id="lang_id" name="lang_id" onChange="javascript:submit()">
<option value="de" selected>German</option>
<option value="en">English</option>
</select></form>
An diesen sollte es meiner Meinung nach aber nicht liegen oder?
Und nochmals danke für eure Hilfe und Geduld.
