Einfache Seite aber in 4 Sprachen mit autom. Spracherkennung?

Colonel Decker

Lt. Commander
Registriert
Dez. 2008
Beiträge
1.793
Hi.

Meine Freundin hat bisher noch eine Internetseite, die sie sich selber mit "wix" zusammen geklickt hat. Ich hatte eigentlich seit einiger Zeit vor, mich mal näher mit Drupal zu befassen und ihr damit etwas zu erstellen, was möglichst genauso aussieht und funktioniert. Nur stört mich doch sehr, dass ich von der zugrunde liegenden Technik nicht so wirklich viel verstehe. Insofern habe ich nun vor, mich mit HTML und CSS zu befassen und erstmal damit etwas zu basteln.

Also habe ich Videos geguckt und mir von einem Video dann auch das dort gezeigte Theme geladen. Damit habe ich nun schon etwas herum gespielt und ich bekomme langsam einen guten Überblick.

Was mir aber noch Sorgen macht:
- Die Seite soll 4 Sprachen haben. Ich möchte, dass die Seite gemäß Browser (nicht über die IP!) die entsprechende Sprache wählt. Das bekomme ich bisher noch gar nicht auf die Reihe.
- Die Seite soll eine Galerie und auch sonst einige Bilder bekommen. Ich fände es ziemlich cool, wenn das ohne JS gehen würde, habe da auch etwas gefunden, aber dabei werden dann wohl beim Aufruf gleich alle Bilder in voller Größe vorgeladen. Also doch JS?

So sieht das hier jetzt aus:

website.PNG

Die index.html die bei dem Theme dabei war ist nun in dem "en" Ordner. Die Pfade zum "img" Ordner und zur style.css habe ich dort natürlich angepasst und das läuft soweit.
Die index.php im Bild habe ich dann im Hauptverzeichnis angelegt und da etwas herein kopiert was ich irgendwo gefunden habe für Multi-Language. Hier:

Code:
<?php
  if ($_SERVER["HTTP_ACCEPT_LANGUAGE"] == "de")
    header("location: de/index.html");
  if ($_SERVER["HTTP_ACCEPT_LANGUAGE"] == "nl")
    header("location: nl/index.html");
  else 
    header("location: en/index.html");
?>

Hatte gehofft dass dies zumindest schonmal dafür sorgt, dass er mich zur index.html im "en" Ordner leitet und ich die Seite sehe, aber wenn ich die index.php aufrufe sehe ich gar nichts, nur weiss.

Das wäre momentan das Wichtigste. Ich hoffe dass hier jemand sofort sieht was ich hier für einen Unsinn mache und mir schnell sagen kann wie ich das ändern muss, oder ob ich gar komplett auf dem Holzweg bin. Ich habe schon gelesen dass man bei mehreren Sprachen auch noch dafür sorgen muss, dass Suchmaschinen verstehen wie man das aufgebaut hat, aber erstmal will ich es überhaupt mal zum laufen bringen. Nicht dass ich alle Seiten und Galerien und das Design fertig bastele, und dann stellt sich heraus dass mehrere Sprachen so gar nicht gehen und ich dann doch nochmal mit Drupal oder so bei Null anfangen muss.

Danke schonmal, falls jemand helfen kann.

MfG
Colonel
 
Zuletzt bearbeitet:
Bist du dir sicher, dass der Webspace auf dem du das hochgeladen hast überhaupt PHP unterstützt?

Wenn du das ganze nur lokal getestet hast, dann brauchst du auch hier eine Umgebung, um PHP-Seiten lauffähig zu machen (Stichwort XAMPP).
 
@Agratos

Oh, Mist. Hatte sowas schon befürchtet, weil es in einem Video zu PHP gleich hieß man benötige extra Software. Hmm. Also den Webspace wird man entsprechend auswählen können, den haben wir dafür ja noch nicht, da ihre Seite derzeit mit und auf und über Wix läuft.

Also Xampp kenne ich natürlich, habe ja auch schonmal mit Wordpress, Joomla und Drupal herum gespielt.

Ich würde die Seite gerne so einfach halten wie möglich... gibt es ohne PHP keine Chance, automatisch zu einer Sprache zu leiten?
 
Man könnte auch mit JavaScript die Sprache Clientseitig bestimmen und Redirects "faken" aber das ist ziemlich unschön. Dafür ist eigentlich HTTP zuständig.
Vorab: Wenn man mehrere Sprachen anbietet, gibt dem User eine Wahl. Einfach eine Liste mit Links zu den unterschiedlichen Versionen auf die Seite packen. Man kann nie zu 100% wissen, was der Besucher eigentlich will. Vllt. reicht das schon?

Wenn man ein vernünftiges CMS (z.B. Drupal) nutzt gibt es da mitgelieferte Funktionen. Meist kann man einfach verschiedene übersetzte Versionen des Contents erstellen und das CMS sorgt dann für das korrekte ausliefern. Möglichkeiten zum ändern der Sprache natürlich auch.

Eine einfache statische Seite macht bei simplen Content aber durchaus auch Sinn.
Eine ausführliche Anleitung für die Weiterleitung lass ich erst einmal weg :p
Kurz: Du musst den "Accept-Language" HTTP Header richtig parsen (z.B. mit http://php.net/manual/en/locale.acceptfromhttp.php) und dann den "Location" Header richtig setzten.

Eine Galerie (mit richtigen Thumbnails, damit die Bilder nicht alle in Originalauflösung laden müssen) kann man auch durchaus Händisch bauen. Wenn man das für viele Bilder automatisiert mit Fancy Oberfläche machen will, braucht es dann halt ein CMS.
 
Man könnte es auch einfach in der .htaccess Datei machen (sofern der Server das kann was aber meistens der Fall sein sollte). Das ist am saubersten weil dafür weder serverseitiger noch clientseitiger Code zum Einsatz kommt sondern der Webserver das noch vor dem Ausliefern der Dateien berücksichtigt.

Müsste für 4 Sprachen irgendwie so gehen:

Code:
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/index.html [R=301,L]
RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^$ /fr/index.html [R=301,L]
RewriteCond %{HTTP:Accept-Language} ^nl [NC]
RewriteRule ^$ /nl/index.html [R=301,L]
RewriteRule ^$ /en/index.html [R=301,L]
 
Zuletzt bearbeitet:
Colonel Decker schrieb:
- Die Seite soll 4 Sprachen haben. Ich möchte, dass die Seite gemäß Browser (nicht über die IP!) die entsprechende Sprache wählt. Das bekomme ich bisher noch gar nicht auf die Reihe.
Jedes anständige CMS sollte Mehrsprachigkeit unterstützen. Wie genau es in Drupal geht, kann ich dir nicht sagen. Ich kann dir nur sagen: Du hast dir bei Drupal n ziemlichen Brocken aufgehalst, das ist auf einer Linie mit TYPO3... vollkommen überzogen für solche Kleinstprojekte und auch alles andere als intuitiv.
Du könntest einen Blick auf Contao werfen, da geht das mit der Mehrsprachigkeit recht geradlinig. Gibt n paar optionale Extensions, die das alles noch verbessern, aber bereits der Core macht da n guten Job.

- Die Seite soll eine Galerie und auch sonst einige Bilder bekommen. Ich fände es ziemlich cool, wenn das ohne JS gehen würde, habe da auch etwas gefunden, aber dabei werden dann wohl beim Aufruf gleich alle Bilder in voller Größe vorgeladen. Also doch JS?
Wenn du Lightboxen willst, dann kommst du um JS kaum herum. Es gibt zwar Mittel und Wege, eine CSS3-Lightbox zu erstellen, aber:
- die Verbreitung des dafür notwendigen :target - Selektors sowie einiger anderer Features ist immer noch nicht flächendeckend
- die Performance der Seite geht in den Keller, da eben tatsächlich alle Galerie-Bilder in voller Auflösung bereits beim Seitenaufbau geladen werden müssen, egal ob der User nur Thumbnails sehen will.
- du kommst in Teufels Küche beim Anlegen der Galerie
- die Semantik kann in die Binsen gehen
- die Bedienbarkeit bei CSS3-Lightboxen ist deutlich schlechter als bei guten JS-Lösungen. Gibt z.B. kein Touch-Swipe zum Bildwechsel...

Eine schöne JS-Lightbox ist immer die bessere Wahl. Gibt echt keinen Grund, kein JS einzusetzen.

Ich habe schon gelesen dass man bei mehreren Sprachen auch noch dafür sorgen muss, dass Suchmaschinen verstehen wie man das aufgebaut hat, aber erstmal will ich es überhaupt mal zum laufen bringen.
Ja, (auch) für Suchmaschinen sollte man eine sinnvolle Struktur aufbauen:
- kein Duplicated Content
- korrekte Language-Metatags

Colonel Decker schrieb:
Ich würde die Seite gerne so einfach halten wie möglich... gibt es ohne PHP keine Chance, automatisch zu einer Sprache zu leiten?
Einfach... papperlapapp. Sobald du ein Kontaktformular willst, musst du eh eine serverseitige Sprache (im Zweifel PHP) verwenden. Dann musst du das Formular noch um Spamschutz erweitern, die Eingaben validieren, n PHP-SMTP-Mailer einbinden,... Vielleicht willst du dann noch hübschere URLs, da fängst du dann mit nem Routing-System für URL-Rewrites an,...

Schnapp dir ein leichtgewichtiges und anständig gepflegtes CMS, da kommst du am Ende einfach besser.
 
T0a5tbr0t schrieb:
Man könnte auch mit JavaScript die Sprache Clientseitig bestimmen und Redirects "faken" aber das ist ziemlich unschön.

Nee, ich meine das wäre auch etwas, wo ich gestern bei Google gelesen habe, dass man sowas nicht tun soll, weil dann auch die Crawler nicht mehr vernünftig alles erfassen können.


T0a5tbr0t schrieb:
Vorab: Wenn man mehrere Sprachen anbietet, gibt dem User eine Wahl. Einfach eine Liste mit Links zu den unterschiedlichen Versionen auf die Seite packen.

Die Möglichkeit zur manuellen Änderung der Sprache soll sowieso gegeben sein. Ich habe gestern auch schonmal darüber nachgedacht, auf welche Sprache man als default leiten könnte, wenn ich es nicht automatisch hin bekomme. Leider meinte meine Freundin aber, dass sie bei Wix gar keine Statistiken darüber sehen kann, von wo denn bisher eigentlich die meisten Besucher kommen. (Sie meinte bei Wix müsse man für sowas extra zahlen.)
Übrigens leitet ihre "Wix Seite" (klingt lustig auf Deutsch...) auch nicht automatisch zur passenden Sprache, sondern bisher geht es einfach nur mit Englisch los.

/edit: Ich denke übrigens, dass ihre meisten Besucher Flämisch oder Niederländisch sprechen, aber die kommen ihrerseits vermutlich auch besser damit klar, wenn die Seite zunächst Englisch ist, als Deutsche oder Franzosen mit einer Seite die erstmal auf Niederländisch erscheint.


T0a5tbr0t schrieb:
Wenn man ein vernünftiges CMS (z.B. Drupal) nutzt gibt es da mitgelieferte Funktionen.

Drupal wollte ich mir eigentlich beibringen, aber in den Videos die ich dazu gesehen habe wurde dann plötzlich auch wieder manuell per Editor am CSS Code herum gefummelt etc. weshalb ich mir dann dachte, dass ich mich besser erst mit diesen Grundlagen befasse.


Lawnmower schrieb:
Man könnte es auch einfach in der .htaccess Datei machen (sofern der Server das kann was aber meistens der Fall sein sollte). Das ist am saubersten weil dafür weder serverseitiger noch clientseitiger Code zum Einsatz kommt sondern der Webserver das noch vor dem Ausliefern der Dateien berücksichtigt.

Danke, das klingt richtig gut. Mache mich gleich mal über die .htaccess Datei schlau.

Kann man bei so einer Lösung dann aber noch manuell die Sprache ändern? (Einfach mit Links, ohne Cookies oder so?)





Daaron schrieb:
Du könntest einen Blick auf Contao werfen, da geht das mit der Mehrsprachigkeit recht geradlinig. Gibt n paar optionale Extensions, die das alles noch verbessern, aber bereits der Core macht da n guten Job.

Das könnte ich mir auch mal ansehen, das kenne ich bisher noch nicht aus erster Hand. Das Problem mit CMS ist bei mir allerdings auch, dass meine Freundin teils sehr konkrete Vorstellungen hat, wie die Seite auszusehen hat. Mit Joomla und Drupal hatte ich dann schonmal versucht, das Theme bzw. Template entsprechend anzupassen - aber dabei ging dann immer etwas kaputt, und ich wusste nicht was falsch lief.


Daaron schrieb:
Eine schöne JS-Lightbox ist immer die bessere Wahl. Gibt echt keinen Grund, kein JS einzusetzen.

Okay, dann werde ich mich damit wohl bald auch befassen müssen.


Daaron schrieb:
Sobald du ein Kontaktformular willst, musst du eh eine serverseitige Sprache (im Zweifel PHP) verwenden. Dann musst du das Formular noch um Spamschutz erweitern, die Eingaben validieren, n PHP-SMTP-Mailer einbinden,... Vielleicht willst du dann noch hübschere URLs, da fängst du dann mit nem Routing-System für URL-Rewrites an,...

Also bisher hat sie sowas nicht auf ihrer Seite. Ich werde aber gleich nochmal mit ihr klären, wo sie mit ihrer Seite mittelfristig hin will.

So, jetzt gucke ich mal nach Infos zur .htaccess Datei und zu Contao und inwiefern ich mit Contao eine Seite vom Design her so hin bekommen kann, wie meine Freundin das haben möchte.
 
Zuletzt bearbeitet:
Colonel Decker schrieb:
Nee, ich meine das wäre auch etwas, wo ich gestern bei Google gelesen habe, dass man sowas nicht tun soll, weil dann auch die Crawler nicht mehr vernünftig alles erfassen können.
Nur bedingt richtig. Ja, der Crawler wird dem JS-Redirect nicht folgen, andererseits muss er das auch nicht. Du wirst ja so oder so Links anbieten, mit denen der User die Sprache wechseln kann. Denen kann dann im Zweifel auch der Crawler folgen.
Du musst dabei nur aufpassen, dass du in keine Redirect-Schleife gerätst: Seite lädt DE, JavaScript erkennt EN-Browser => leitet auf EN-Seite => User schaltet manuell auf DE-Seite => Js erkennt wieder einen EN-Browser...

Die Möglichkeit zur manuellen Änderung der Sprache soll sowieso gegeben sein. Ich habe gestern auch schonmal darüber nachgedacht, auf welche Sprache man als default leiten könnte, wenn ich es nicht automatisch hin bekomme. Leider meinte meine Freundin aber, dass sie bei Wix gar keine Statistiken darüber sehen kann, von wo denn bisher eigentlich die meisten Besucher kommen. (Sie meinte bei Wix müsse man für sowas extra zahlen.)
Für wirklich aussagekräftige Statisiken kommt man um Werkzeuge wie Piwik oder Google Analytics nicht herum, wobei man hier dringend auf die datenschutzrechtlichen Aspekte achten sollte... sonst hagelts Abmahnungen.
Was die Standard-Sprache angeht: Das zumindest ist bei Contao z.B. sehr simpel gelöst. Du definierst die erste Sprache, die du im System anlegst, als Fallback-Sprache. Jeder, der nicht ins Raster passt, landet dort. Dürfte bei anderen CMS ähnlich gehen.

Drupal wollte ich mir eigentlich beibringen, aber in den Videos die ich dazu gesehen habe wurde dann plötzlich auch wieder manuell per Editor am CSS Code herum gefummelt etc. weshalb ich mir dann dachte, dass ich mich besser erst mit diesen Grundlagen befasse.
Nun, da kommst du auch nicht drum herum. Ein CMS nimmt dir das Styling natürlich nicht ab, das ist immer entweder Handarbeit oder das Einbinden eines separaten Themes. Manche CMS nehmen dir nicht einmal die HTML-Struktur vollständig ab.... Contao glänzt hier in soweit, dass es von Haus aus ziemlich guten HTML5-Code ausspuckt.

Danke, das klingt richtig gut. Mache mich gleich mal über die .htaccess Datei schlau.
Kann man bei so einer Lösung dann aber noch manuell die Sprache ändern? (Einfach mit Links, ohne Cookies oder so?)
Möglich, wenn du mit mehreren Unterordnern arbeitest und jeder eine separate .htaccess enthält. In der resettest du dann die RewriteRules.

Das könnte ich mir auch mal ansehen, das kenne ich bisher noch nicht aus erster Hand. Das Problem mit CMS ist bei mir allerdings auch, dass meine Freundin teils sehr konkrete Vorstellungen hat, wie die Seite auszusehen hat. Mit Joomla und Drupal hatte ich dann schonmal versucht, das Theme bzw. Template entsprechend anzupassen - aber dabei ging dann immer etwas kaputt, und ich wusste nicht was falsch lief.
Das ist dann halt der Punkt, wo man eben keinen Laien mehr ran lassen kann, sondern tatsächlich mal einen vierstelligen Betrag in die Hand nimmt.
Ein Wordpress/Joomla/Contao/... mit nem Fix-und-fertig-Theme zu verwenden, dafür braucht es nicht viel. Wenn aber spezielle Wünsche existieren, dann braucht es eben erfahrene Webentwickler, und die arbeiten nicht für n Kasten Bier.

So, jetzt gucke ich mal nach Infos zur .htaccess Datei und zu Contao und inwiefern ich mit Contao eine Seite vom Design her so hin bekommen kann, wie meine Freundin das haben möchte.
Contao hat ein paar Restriktionen, was die Struktur des Dokuments (und somit auch das Design) angeht. Das ist der Preis, den man dafür zahlt, dass es sonst eben extrem geradlinig ist.

Vieles kann man zwar darüber lösen, dass man die Core-Templates überschreibt, aber alles kriegt man nicht hin, schon bedingt durch die Backend-Datenstruktur.
 
kann man bei so einer Lösung dann aber noch manuell die Sprache ändern? (Einfach mit Links, ohne Cookies oder so?)
Das bisschen Code in der .htaccess ist nur für die automatische Erkennung wenn einer www.deinedomain.de eingibt und es ist nicht klar ist welche Sprache er nun "serviert" bekommen soll. Wenn er direkt z.B. www.deinedomain.de/en eingibt landet er immer auf Englisch. Ein manueller Wechsel via Sprach-Navigation ist problemlos möglich.

Du musst auch nicht zwingend für jede Sprache ein eigener Unterordner machen aber dann bräuchtest Du sicherlich die Hilfe von PHP und am besten auch gleich von einer Datenbank wie MySQL.
 
Lawnmower schrieb:
Du musst auch nicht zwingend für jede Sprache ein eigener Unterordner machen aber dann bräuchtest Du sicherlich die Hilfe von PHP und am besten auch gleich von einer Datenbank wie MySQL.
Und spätestens das ist der Punkt, wo jedes halbwegs ordentliche CMS das Rennen macht.
Wenn man seine Sprachverwaltung (oder sonstwas) in eine SQL-Datenbank auslagert, dann muss man sich potentiell auch mit Schutz vor SQL Injections herum schlagen. Plötzlich wird die Validierung von Nutzereingaben interessant.
 
Zurück
Oben