Mehrsprachigkeit mit PHP
Andrea
- php
0 Jeena Paradies0 Andrea0 Jeena Paradies0 Andrea
0 Twilo
Hallo zusammen,
ich möchte mit PHP eine mehrsprachige Homepage erstellen. Da ich so was noch nie gemacht habe und in Sachen PHP selber noch Newbie bin steh ich da etwas auf dem Schlauch.
Daher meine Frage an Euch:
Gibt es da so etwas wie ein Framework mit dessen Hilfe man Mehrsprachigkeit realisieren kann?
Wie würde man die Texte halten? In einer Datenbank oder, wie bei Java/Struts (falls das jemand kennt), in einem Ressource-Bundle.
Ich würde mir das wie folgt vorstellen: man verwendet im PHP-Code Platzhalter, die dann zur Laufzeit ausgewertet werden und im Ressource-Bundle dann nachgeschlagen werden.
z.B.
<p> <? {irgendEinTextPlatzhalter} ?> </p>
Im Ressource-Bundle würde dann stehen:
irgendEinTextPlatzhalter = Hallo Welt
Daraus wird dann der HTML-Quellcode:
<p>Hallo Welt</p> generiert.
Für Eure Hilfe bedanke ich mich schon im Voraus.
Liebe Grüße
Andrea
Hallo,
Ja eigentlich genau so wie du es machst nur in der PHP Syntax
<p> <? {irgendEinTextPlatzhalter} ?> </p>
<p> <? echo $language['hello_world']; ?> </p>
irgendEinTextPlatzhalter = Hallo Welt
$language = array(
'hello_world' => 'Hallo Welt',
);
Ich habe dafür ein Array gewählt, man kann sich da natürlich auch andere methoden einfallen lassen.
<p>Hallo Welt</p> generiert.
Grüße
Jeena Paradies
Hallo Jeena,
danke für die schnelle Antwort.
<p> <? echo $language['hello_world']; ?> </p>
$language = array(
'hello_world' => 'Hallo Welt',
);
Ich verstehe allerdings noch nicht so ganz wo hier nun die verschiedenen Sprachversionen reinkommen.
Dieses Array wäre doch dann eigentlich in einer separaten php-include Datei, oder?
Kannst Du mir Deinen Lösungsansatz vielleicht anhand den Sprachen de und en etwas genauer erklären?
Danke
Gruss
Andrea
Hallo,
» Kannst Du mir Deinen Lösungsansatz vielleicht anhand den Sprachen de und en etwas genauer erklären?
Ah ja, ähm stimmt sieht man nicht wirklich direkt. Dann versuche ich es halt noch einmal ;-).
-------------------
<?php
// Datei mit dem Namen language.de.php
$language = array(
'hello_world' => 'Hallo Welt',
'its_me' => 'Ich bin es!',
);
?>
-------------------
<?php
// Datei mit dem Namen language.en.php
$language = array(
'hello_world' => 'Hello World',
'its_me' => "It's me!",
);
?>
-------------------
<?php
// Datei die die Ausgabe macht mit dem Namen about.php
// Sie wird durch http://example.org/about.php?lang=de aufgerufen
// wobei entweder de oder en übergeben werden.
$lang = $_GET['lang'];
if($lang != "en") $lang = "de"; // hier wird die default Sprache angegeben
include_once('language.'.$lang.'.php');
?>
<h1>[code lang=php]<?php echo $language['hello_world']; ?>
</h1>
<p><?php echo $language['its_me']; ?>
</p> [/code]
-------------------
Ich hoffe das wurde jetzt ein bischen klarer :-).
Grüße
Jeena Paradies
Hallo Jeena,
Ich hoffe das wurde jetzt ein bischen klarer :-).
Das hat mir weiter geholfen. Vielen Dank.
Gruss
Andrea