mehrsprachige Homepage
Elessar
- php
0 mike0 Elessar
0 Dogfish0 Elessar
0 Sven Rautenberg0 Jens Müller
Hi!
Ich bin grad dabei, eine mehrsprachige Homepage zu erstellen. Dabei hab ich mir gedacht, dass es ja am günstigsten wäre, wenn ich für alle Sprachen die gleichen Dateien hätte, nur das für jede Sprache eine andere Sprachdatei genommen wird.
Z.B.
<?php
<td>$param="test";include("$lang.php");</td>
Ausgabe
<td>Test</td>
Da gibt's doch sicher eine intelligentere Möglichkeit.
Vielen Dank für eure Hilfe
Elessar
Hi,
ich hab das mal so gemacht
------
<html>
<head></head>
<body>
<?php
$lang;
if($lang==ger)
german();
elseif($lang==eng)
english();
elseif($lang==fr)
french();
else
french();
function german(){
echo "<b>Der Text auf Deutsch</b>";
}
function english(){
echo "<b>The text in english</b>";
}
function french(){
echo "<b>Le texte en français</b>";
}
?>
</html>
------
anstatt nen text mit "echo" auszugeben, kannst du natürlich auch jede andere datei laden lassen.
hoffe es hilft
mike
Ist ja an sich meiner Idee ähnlich. Bloß mach das mal, wenn du ca. 500 unterschiedliche Wörter und Texte auf der Hompage hast.
Vielleicht fällt jemandem ja noch was anderes ein.
Elessar
Hallo du da draußen,
Ich hab das so gelöst:
Ich habe eine Funktion s, die die parameter $ger und $eng erwartet. Sie liefert dann, je nach Spracheinstellung, den richtigen Wert zurück:
function s($ger, $eng)
{
if(de)
return $ger;
else
return $eng;
}
Auf die Weise hab ich den Vorteil, dass ich nicht alle HTML-Elemente neu schreiben muss und Änderungen im HTML-Quellcode leichter werden:
<td><?=s("Deutscher Inhalt", "English content")?></td>
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de),
Dogfish
Das mag ja bei 2 oder 3 Sprachen noch gehen, aber ich hab ganze 6 Sprachen. Außerdem wollte ich ja gerne für jede Sprache eine extra Datei haben, wo nur die einzelnen Wörter in der jeweiligen Sprache drinstehen (und halt die Def.)
Hatt vielleicht noch jemand 'ne Idee?
Danke im Vorraus
Elessar
Moin!
Ich bin grad dabei, eine mehrsprachige Homepage zu erstellen. Dabei hab ich mir gedacht, dass es ja am günstigsten wäre, wenn ich für alle Sprachen die gleichen Dateien hätte, nur das für jede Sprache eine andere Sprachdatei genommen wird.
Alle Sites, die ich bislang mehrsprachig realisiert habe, gaben ein grundsätzliches Merkmal: Für jede vorhandene Sprache existiert ein eigenes Unterverzeichnis, in dem jeweils eine komplette Seitenversion vorliegt. Dadurch ist man relativ flexibel, was gewisse Abweichungen in den Sprachvarianten angeht. Denn es ist ja eigentlich immer so, dass deutsch die primäre Sprache ist, und englisch und französisch bei deutschen Unternehmen eher nur Feigenblatt-Funktion haben, also auch nicht vollständig aus dem deutschen übersetzt sind.
Vorteile:
1. Proxys cachen korrekt. Da sich hinter einer URL immer nur eine einzige Sprache versteckt (unter domain.de/de/... eben deutsch, unter domain.de/en/ englisch etc.), gibt es da keine Konflikte. Wenn sich hinter domain.de/seite.html mal deutsch und mal englisch versteckt - was soll der Proxy cachen? Und wie kriegt man die Sprachumschaltung dann wirklich hin? URL-Parameter würde helfen (auch dem Proxy), Cookies und Sessions hingegen würde der Proxy nicht erkennen können.
2. Wenn die URL-Struktur 100% identisch übertragen wird, erhält man eine relativ simple Möglichkeit, die Sprache zu wechseln: Die andere Sprachvariante derselben Seite unterscheidet sich nur in der anderen Verzeichnis-Bezeichnung, der Name der Seite selbst (und tieferer Verzeichnisse) bleibt gleich.
3. Sonderlösungen sind möglich: Wenn Seiten nur in einer (oder jedenfalls nicht in allen) Sprache(n) auftauchen sollen, kann man das recht problemlos realisieren. Das einfache Seitenumschalten muß man dann aber leider gesondert behandeln.
Z.B.
<?php
<td>$param="test";include("$lang.php");</td>Ausgabe
<td>Test</td>
Das erscheint mir viel zu umständlich. Webseiten haben in der Regel etwas mehr Inhalt als nur ein paar Wörter, ich halte es deshalb für reichlich wahnsinnig, so fummelig die Inhalte einzufügen.
Was es braucht, ist ein ordentliches, templatebasiertes, Inhaltsmanagementsystem (um nicht zu sagen: Content Management System). Da kann man dann wirklich effizient große Blöcke an Text eingeben, die in ein Template gepackt werden, um dann zum Browser zu gelangen. Das erfordert dann etwas mehr "Handarbeit" beim erstellen der jeweiligen Sprachversionen - das muß irgendwer wohl oder übel mal übersetzen - aber mit irgendeinem hier vorgeschlagenen wortweisen, sprachabhängigem Einfügen ist es in meinen Augen nicht getan.
Alternativ kann man natürlich auch einfach nur schlichte HTML-Seiten erstellen und den Text da reinpacken. :)
- Sven Rautenberg
Hallo Elessar,
Ich bin grad dabei, eine mehrsprachige Homepage zu erstellen.
Dabei hab ich mir gedacht, dass es ja am günstigsten wäre, wenn
ich für alle Sprachen die gleichen Dateien hätte, nur das für
jede Sprache eine andere Sprachdatei genommen wird.
Grunsaetzlich hast du 2 Moeglichkeiten, die Automatiche Sprach-
auswahl, oder die Benutzergesteuerte.
Fuer die Benutzersteuerung sind einfache Grafiken mit dem Namen
der Sprache, in Landessprache, darunter aussreichend. Sieh dir
mal dazu ein Beispiel an. http://scoutlink.net/
oder auch auf der SelfAktuell Startseite http://aktuell.de.selfhtml.org/
Auf der Startseite kannst du dann auf einzelne Verzeichnisse
weiterverlinken.
Dann hast du auch noch die Moeglichkeit es Automatisch
erledigen zu lassen. Da bist du am besten Beraten wenn du ueber
die Serverkonfiguration selbst gehen kannst.
Entweder du traegst die Einstellungen direkt in die Config
deines Servers ein, sollte das nicht machbar sein gibt's noch
.htaccess. (Wenn es I$$ sein sollte weiss ich da leider nicht
weiter)
Wie du die Config aendern musst kannst du in einem Artikel
nachlesen: "Alternative Dokumentinhalte via HTTP"
http://aktuell.de.selfhtml.org/artikel/server/alt-http/index.htm
Z.B.
<?php
<td>$param="test";include("$lang.php");</td>
»»
Die Browsersprsche kannst du Wunderbar einfach ueber
$_SERVER["HTTP_ACCEPT_LANGUAGE"] in Erfahrung bringen, danach
sieht Mikes Beispiel aehnlich dem aus was der Server Automatisch
erledigen kann. Jedoch mit der Aenderung das du jeweils auf
eine Eigene Sprachseite (index.nl.php, index.dk.php, index.de.php
index.en.php, index.se.php o.s.ae.) per HTTP-Header weiterleiten.
gruesse
jens mueller
Hallo Jens,
Die Browsersprsche kannst du Wunderbar einfach ueber
$_SERVER["HTTP_ACCEPT_LANGUAGE"] in Erfahrung bringen,
Dazu hätte ich was: http://aktuell.de.selfhtml.org/tippstricks/php/httpsprache/index.htm
Viele Grüße,
Christian