Wenn der neue Cookie-Wert nicht sofort nach dem Setzen des Werts verfügbar ist, solltest du den Wechsel des Attributwerts in der Funktion
lang()
nicht vom Wert im Cookie sondern vom Klickwert abhängig machen.
Der Cookie-Wert ist sofort verfügbar, das habe ich mit dem alert überprüft. Auch das lang Attribut wird wie gewünscht geändert. Die Ausgabe von
alert('cookie: ' + document.cookie + ', html: lang=' + document.getElementsByTagName("html")[0].lang);
lautet:
cookie: lang=en, html: lang=en
Nun müsste ich wahrscheinlich das Neu Rendern der Seite herbeiführen, um die Änderung auch sichtbar zu machen.
Wenn ich die Funktion
lang();
beim Laden aufrufe, ist die zuvor getätigte Sprachwahl auch sichtbar. Ich müsste also entweder beim Klicken auf den Link auch das Neuladen erzwingen, oder eine andere Methode zum Neurendern finden, falls es die gibt. Vom Prinzip ist das mit dem Neuladen ja ok, ich hätte es nur eleganter gefunden, darauf verzichten zu können, gerade in Hinblick auf mögliche mobile Nutzer.
Aber als elegant scheint mein Ansatz hier ja ohnehin nicht durchzugehen :)