Mehrsprachige Website

bsirske

Mitglied
Hallo allerseits:),


Ich habe folgendes problem:
Ich möchte meine Website in mehreren Sprachen anzeigbar machen. Hab schon in Erfahrung gebracht das das mit einer Datentabelle funktionieren soll. (mit mehreren Spalten für die unterschiedlichen Länder (DE,ENG,...)) Aber wie ich jetzt bei KLICK auf eine Landesflagge den Inhalt der seite aus einer anderen spalte ziehe, ist mir ein Rätsel.
Kann mir da jemand helfen?:)

Danke bsirske.
 
Das Prinzip ist eigentlich recht einfach: du legst bestimmte Bereiche fest, die unabhängig voneinander übersetzt werden sollen, setzt an diese Stellen jeweils Platzhalter, die du über ihren Namen ansprechen kannst, und beim Übersetzen ersetzt du die Platzhalter mit den entsprechend zugewiesenen Textpassagen aus deiner Sprachdatei:
HTML:
<!DOCTYPE html>
<html lang="{lang}">
<head>
  <title>Webseite - {website-title}</title>
</head>
<body>
  <ul id="menu">
    <li>{startpage}</li>
    <li>{about}</li>
    <li>{contact}</li>
    <li>{disclaimer}</li>
  </ul>
</body>
</html>
YAML:
de: {
  lang: "de",
  website-title: "Webseite über das Erstellen von mehrsprachigen Webseiten",
  startpage: "Startseite",
  about: "Über diese Seite",
  contact: "Kontakt",
  disclaimer: "Haftungsausschluss"
},
en: {
  lang: "en",
  website-title: "Website about creating multilinguale websites",
  startpage: "Startpage",
  about: "About this website",
  contact: "Contact",
  disclaimer: "Disclaimer"
}
 
danke :)

das klingt erstmal logisch.

Wie realisiere ich denn das der deutsche text der index.php bei klick auf die landesflagge auf die index-eng.php umgeändert wird? also ohne das ich für jede sprache soviele seiten erstellen muss. Geht das nicht mit php?

Danke :)
 
Zuletzt bearbeitet:
Du kannst auch darauf hoffen, dass deine Webseite selber erkennt, wie die einzelnen Bereiche in den unterschiedlichen Sprachen heißen.. natürlich, woher soll denn deine Webseite sonst die Informationen nehmen? Das tolle an dieser Variante ist, dass du nur noch die Platzhalter definieren musst und sie auf jeder Seite nutzen kannst. Stell dir mal vor, wenn du jetzt für jede einzelne Seite und jede Sprache eine eigene Datei anlegen müsstest.. wäre das für dich leichter?
 
stimmt, du hast recht:)
das ist eine echte erleichterung.

sag mal, so eine tabellenzelle kann doch auch reines html-gefasel enthalten (also ich meine einfach die ganze menüleiste, oder fusszeile), oder?
 
sag mal was für eine codesprache ist den das?

YAML:
de: {
  lang: "de",
  website-title: "Webseite über das Erstellen von mehrsprachigen Webseiten",
  startpage: "Startseite",
  about: "Über diese Seite",
  contact: "Kontakt",
  disclaimer: "Haftungsausschluss"
},
en: {
  lang: "en",
  website-title: "Website about creating multilinguale websites",
  startpage: "Startpage",
  about: "About this website",
  contact: "Contact",
  disclaimer: "Disclaimer"
}


YAML?

Danke.
 
Genau, die Sprache heißt YAML, was für "yet another markup language" steht. JSON ist eine Untermenge von YAML, also ist alles, das JSON ist, auch gültiges YAML.
 
Hallo,

ich kram mal ein wenig in alten Thread rum aber es betrifft mein Anliegen.
Wie gebe ich das Json in php wieder aus? Du beschreibst es so {ausgabe}

Ich hätte jetzt das json in ein array umgewandelt und es dann so ausgegeben:

PHP:
$arr = json_decode($json);
echo $arr['ausgabe'];

Was passiert nun, wenn ich Variablen einsetzen will über php?
Eine Idee wäre die Json so auf zu bauen "ich bin {0}"

PHP:
$sex = "maennlich";
$arr = json_decode($json);
echo str_replace("{0}", $sex, $arr['ausgabe']);

Wie wäre die bessere Variante?
 
Zurück