lang / changelang
-
- Beiträge: 5
- Registriert: Mi 7. Mai 2008, 12:25
- Kontaktdaten:
lang / changelang
Hallo, ich bin Einsteiger und habe eine Frage zu lang und changelang:
Wenn ich alles richtig verstanden habe, dann wird die Session mit der verwendeten Sprache in einem Cookie gespeichert. Übersetzte Module und Inhalte werden also aufgrund des Cookies in der entsprechenden Sprache dargestellt. Will man die Sprache ändern, so muss man eine Seite mit dem Parameter $changelang aufrufen.
Im Code allerdings arbeitet man mit dem Parameter $lang, um sprachabhängig zu reagieren.
Die Sprache von Code und Modulen passen also eventuell nicht zusammen, zum Beispiel wenn man von einer Suchmaschine kommt, wo die URL http://www.mywebsite.com/cms/front_cont ... =3&idart=2 hinterlegt ist. Richtig?
Das erscheint mir unsauber. Entweder sollte $lang verbindlich sein (dann darf die Sprache nicht im Cookie gespeichert sein) oder der Cookie ist verbindlich (dann solllte es keinen Parameter $lang geben).
Meine Frage ist deshalb: Wie sorge ich dafür, dass eine Seite in Suchmaschinen mit der korrekten Sprachinfo erscheint? Sollte ich vielleicht im gesamten Code $lang durch $changelang ersetzen? Also sowohl in Links als auch in Abfragen? Dann würde die Suchmaschine http://www.mywebsite.com/cms/front_cont ... =3&idart=2 speichern, und das würde immer korrekt funktionieren. Richtig?
Was sagt ihr dazu? Hab ich alles richtig verstanden? Ist meine Lösung praktikabel oder spricht etwas dagegen?
Vielen Dank schon mal.
Thorsten.
Wenn ich alles richtig verstanden habe, dann wird die Session mit der verwendeten Sprache in einem Cookie gespeichert. Übersetzte Module und Inhalte werden also aufgrund des Cookies in der entsprechenden Sprache dargestellt. Will man die Sprache ändern, so muss man eine Seite mit dem Parameter $changelang aufrufen.
Im Code allerdings arbeitet man mit dem Parameter $lang, um sprachabhängig zu reagieren.
Die Sprache von Code und Modulen passen also eventuell nicht zusammen, zum Beispiel wenn man von einer Suchmaschine kommt, wo die URL http://www.mywebsite.com/cms/front_cont ... =3&idart=2 hinterlegt ist. Richtig?
Das erscheint mir unsauber. Entweder sollte $lang verbindlich sein (dann darf die Sprache nicht im Cookie gespeichert sein) oder der Cookie ist verbindlich (dann solllte es keinen Parameter $lang geben).
Meine Frage ist deshalb: Wie sorge ich dafür, dass eine Seite in Suchmaschinen mit der korrekten Sprachinfo erscheint? Sollte ich vielleicht im gesamten Code $lang durch $changelang ersetzen? Also sowohl in Links als auch in Abfragen? Dann würde die Suchmaschine http://www.mywebsite.com/cms/front_cont ... =3&idart=2 speichern, und das würde immer korrekt funktionieren. Richtig?
Was sagt ihr dazu? Hab ich alles richtig verstanden? Ist meine Lösung praktikabel oder spricht etwas dagegen?
Vielen Dank schon mal.
Thorsten.
Nö. $lang verweist auch die entsprechende Sprachversion des Dokuments und $changelang ermöglicht dem Nutzer oder der SE zwischen den Sprachen zu springen. Der Sinn dahinter ist ja, dass jeder Link der von Contenido generiert wird nur aus der idcat bzw idart besteht und der Nutzer in der Sprachversion bleibt, die er einmal gewählt hat.Das erscheint mir unsauber.
Vielleicht hast du aber auch noch nicht das Kapitel gelesen, wie Sprachversionen synchronisiert werden...
Solange du auf deiner HP einen Sprachen-Link hast, brauchst du überhaupt gar keine Parameter in links für die SE anzugeben, denn Suchmaschinen indizieren alle Sprachen und die meisten (wie google) erkennen anhand des Inhalts in was für einer Sprache die Seite verfasst wurde.
Für mehr Rechtschreibung im Netz:
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.
-
- Beiträge: 5
- Registriert: Mi 7. Mai 2008, 12:25
- Kontaktdaten:
Danke für deine Antwort unblack.
Hm, wenn ich in Google aufgrund meiner Suchbegriffe eine deutsche Seite gefunden habe, möchte ich durch Click auf den Link zur deutschen Seite gelangen. Wenn ein Amerikaner die englische Version der Seite gefunden hat, will er durch Click auf den Link zur englischen Seite kommen. Es solllten also zwei unterschiedliche URLs sein. Das sind sie zwar, wenn sie $lang beinhalten, aber einer von uns beiden sieht wahrscheinlich einen Mix aus deutsch und englisch, weil übersetzte Module und Inhalte nicht aufgrund der $lang geladen werden, oder?
Ich habe den Eindruck, dass ich mit einer URL nur dann für eine Seite in einer Sprache garantieren kann, wenn ich $changelang angebe. Dann aber ist $lang überflüssig, und ich sollte überall $changelang statt $lang nutzen.
Noch mal zu meinem Verständnis: Es ist doch richtig, dass eine Seite aufgrund zweier Sprachinformationen aufgebaut wird: von Contenido anhand des Cookies und im Modul-Code anhand der $lang? Das ist das, was ich mit unsauber meine: eine dargestellte Seite sollte immer komplett in einer Sprache angezeigt werden, also sollte es auch nur eine Variable geben, die diese Sprache bestimmt. Hier sind es zwei, und es kann passieren, dass sie sich unterscheiden.
Hm, wenn ich in Google aufgrund meiner Suchbegriffe eine deutsche Seite gefunden habe, möchte ich durch Click auf den Link zur deutschen Seite gelangen. Wenn ein Amerikaner die englische Version der Seite gefunden hat, will er durch Click auf den Link zur englischen Seite kommen. Es solllten also zwei unterschiedliche URLs sein. Das sind sie zwar, wenn sie $lang beinhalten, aber einer von uns beiden sieht wahrscheinlich einen Mix aus deutsch und englisch, weil übersetzte Module und Inhalte nicht aufgrund der $lang geladen werden, oder?
Ich habe den Eindruck, dass ich mit einer URL nur dann für eine Seite in einer Sprache garantieren kann, wenn ich $changelang angebe. Dann aber ist $lang überflüssig, und ich sollte überall $changelang statt $lang nutzen.
Contenido generiert doch meines Wissens jeden Link mit $lang. Dann kann es doch also auf das Speichern im Cookie verzichten.Der Sinn dahinter ist ja, dass jeder Link der von Contenido generiert wird...
Gelesen schon, aber ehrlich gesagt recht flüchtig. Mir schien alles klar; es gibt mehrere Sprachen und jede Seite wird mit $lang aufgerufen. dann stieß ich auf $changelang und wunderte mich wozu das nötig ist, und dann las ich davon dass die Sprache im Cookie gespeichert werde und wundere mich immer noch wozu das nötig ist.Vielleicht hast du aber auch noch nicht das Kapitel gelesen, wie Sprachversionen synchronisiert werden...
Noch mal zu meinem Verständnis: Es ist doch richtig, dass eine Seite aufgrund zweier Sprachinformationen aufgebaut wird: von Contenido anhand des Cookies und im Modul-Code anhand der $lang? Das ist das, was ich mit unsauber meine: eine dargestellte Seite sollte immer komplett in einer Sprache angezeigt werden, also sollte es auch nur eine Variable geben, die diese Sprache bestimmt. Hier sind es zwei, und es kann passieren, dass sie sich unterscheiden.
Doch, natürlich werden sie das.weil übersetzte Module und Inhalte nicht aufgrund der $lang geladen werden, oder?
Jain. Nochmal: eine funktionierende Contenido url sieht in der deutschen Version genau aus wie die englische. Nämlich z.B. www.meine.url/cms/front_content.php?idcat=1Ich habe den Eindruck, dass ich mit einer URL nur dann für eine Seite in einer Sprache garantieren kann, wenn ich $changelang angebe. Dann aber ist $lang überflüssig, und ich sollte überall $changelang statt $lang nutzen.
Wenn ein Nutzer einmal die Sprache via changelang in der url gewechselt hat, bleibt er in dieser Sprachversion. Wenn du ein Dokument dagegen in einer bestimmten Sprache anspringen willst, brauchst du lang=x in der url.
Von daher hast du durchaus mit deinen Bedenken recht, dass Google die dt. und englische Version quasi unter einer url indiziert. Wenn du aber einen permanenten "language switch" in deinem Seiten layout hast, passiert das in der Regel nicht, weil google dann die Seite zusätzlich mit changelang=x in der url indiziert. Ebenso kannst du zB noch eine sitemap mit lang= Parametern bauen.
ABER: für effektives SEO solltest du ohnehin auf eine mod-rewrite Version zurückgreifen, weil keywords in der url im Ranking eine immense Rolle spielen. Meta-keywords ignoriert Google ohnehin.
Für mehr Rechtschreibung im Netz:
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.
-
- Beiträge: 5
- Registriert: Mi 7. Mai 2008, 12:25
- Kontaktdaten:
Hallo unblack, vielen Dank für deine erneute Antwort. Tja, sieht so aus, als werde ich tatsächlich jede Seite mit $changelang aufrufen. Die Idee mit der Sitemap ist an sich gut, und ich hatte auch schon in die Richtung gedacht, leider aber würde dadurch die Seite unflexibler; der "Redakteur", der neuen Content in Form einer neuen Seite einstellt, müsste immer dem Webmaster Bescheid sagen damit der seine Sitemap korrigiert.
Schade, dass Contenido die Sprache im Cookie speichert. Sonst wäre alles viel einfacher.
Danke für den Hinweis auf mod-rewrite. Ich hatte auch schon mit dem Gedanken gespielt, Namen für die IDs in den URLs zu verwenden und im Code umzuschlüsseln, ohne den Fachausdruck dafür zu kennen. Und dass Google die Meta-Keywords komplett ignoriert wusste ich auch noch nicht. Danke für die Info.
Schade, dass Contenido die Sprache im Cookie speichert. Sonst wäre alles viel einfacher.
Danke für den Hinweis auf mod-rewrite. Ich hatte auch schon mit dem Gedanken gespielt, Namen für die IDs in den URLs zu verwenden und im Code umzuschlüsseln, ohne den Fachausdruck dafür zu kennen. Und dass Google die Meta-Keywords komplett ignoriert wusste ich auch noch nicht. Danke für die Info.
die wird doch automatisch generiertder neuen Content in Form einer neuen Seite einstellt, müsste immer dem Webmaster Bescheid sagen damit der seine Sitemap korrigiert
Ich verstehe immer noch nicht wo dein Problem damit ist. Das ist doch ideal so?Schade, dass Contenido die Sprache im Cookie speichert. Sonst wäre alles viel einfacher.
Spiel einfach ein bisschen mit Contenido herum, vielleicht verfliegen dann deine "Probleme".
Für mehr Rechtschreibung im Netz:
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.
-
- Beiträge: 5
- Registriert: Mi 7. Mai 2008, 12:25
- Kontaktdaten:
Die Sitemap wird generiert? Das ist mir neu. Wo unter welchem Namen finde ich sie denn? Aber so oder so, selbst wenn sie generiert wird, muss ich sie bei Änderungen doch, glaube ich, bei Google Webmaster Tools neu einreichen? (Bin mir aber nicht sicher.)
Mein Problem: Wenn sich jemand eine Page meiner Website als Favorit speichert, wäre es schön, wenn er nicht jedesmal beim Öffnen die Seite in der falschen Sprache bekommt und deshalb jedesmal zuerst auf seine Sprache wechseln muss. Wenn jemand eine Page meiner Website mit einer Suchmaschine findet, wäre es für ihn schön, die gefundene Seite in der gefundenen Sprache aufzufinden und nicht erst von einer Seite in einer ihm unverständlichen Sprache auf die gesuchte Sprache wechseln zu müssen. Wenn Contenido nicht die Sprache im Cookie speichern würde, sondern sich wie auch die Modul-Scripte einfach an $lang orientierte, gäbe es solche Probleme nicht. Ist das tatsächlich so unverständlich?
Thorsten.
Mein Problem: Wenn sich jemand eine Page meiner Website als Favorit speichert, wäre es schön, wenn er nicht jedesmal beim Öffnen die Seite in der falschen Sprache bekommt und deshalb jedesmal zuerst auf seine Sprache wechseln muss. Wenn jemand eine Page meiner Website mit einer Suchmaschine findet, wäre es für ihn schön, die gefundene Seite in der gefundenen Sprache aufzufinden und nicht erst von einer Seite in einer ihm unverständlichen Sprache auf die gesuchte Sprache wechseln zu müssen. Wenn Contenido nicht die Sprache im Cookie speichern würde, sondern sich wie auch die Modul-Scripte einfach an $lang orientierte, gäbe es solche Probleme nicht. Ist das tatsächlich so unverständlich?
Thorsten.
Du kannst:
- dir wie gesagt ne mod_rewrite Version aufsetzen. Nicht ganz einfach, nicht unbedingt was für Contenido Einsteiger, aber ideal für SEO & bookmarking
- dir das Navi-Modul so umbauen, dass es $lang mit ausgibt (fliegen bestimmt hier im Forum code-schnipsel rum; keine Ahnung wie das bei der Standard-Navi is, die nehm' ich nie)
- dir für dein bookmark-Problem einfach ne browserabhängige Spracherkennung ins layout machen, durch die alle Anfragen von nicht-deutschen browsern automatisch auf die englische gehen
- dir wie gesagt ne mod_rewrite Version aufsetzen. Nicht ganz einfach, nicht unbedingt was für Contenido Einsteiger, aber ideal für SEO & bookmarking
- dir das Navi-Modul so umbauen, dass es $lang mit ausgibt (fliegen bestimmt hier im Forum code-schnipsel rum; keine Ahnung wie das bei der Standard-Navi is, die nehm' ich nie)
- dir für dein bookmark-Problem einfach ne browserabhängige Spracherkennung ins layout machen, durch die alle Anfragen von nicht-deutschen browsern automatisch auf die englische gehen
Für mehr Rechtschreibung im Netz:
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.
richtig: wäre, falsch: währe
richtig: Standard, falsch: Standart
richtig: Paket, falsch: Packet
Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.