Tach
Wie macht ihr denn so eure mehrsprachigen Seiten?
Ich habe mir in meinem jugendlichen Leichtsinn gedacht, ich könnte es ja so machen
Die Funktion wird automatisch von der Template-Engine aufgerufen, ersetzt die sprachabhängigen Teile und danach erfolgt das eigentliche Parsen, bei dem z. B. {query-count} durch den entsprechenden Wert ersetzt wird.
Die Textbausteine habe ich in der Session, damit ich sie nicht jedesmal neu auslesen muss. Das passiert nur dann, wenn ich auch effektiv prüfe, ob der Benutzer eingeloggt ist (nicht bei jedem Request sondern nur alle x Minuten)
Oder ist die Idee schwachsinig?
Wie macht ihr denn so eure mehrsprachigen Seiten?
Ich habe mir in meinem jugendlichen Leichtsinn gedacht, ich könnte es ja so machen
Code:
<head> <title>Titel, nicht zu übersetzen, für alle gleich</title> </head> <body> <h1>{translate}headline_main{/translate}</h1> <p>{translate}database queries{/translate}</p> </body>
PHP-Code:
function replace_language_blocks($tpl_src) {
preg_replace('%\{translate\}(.*)\{/translate\}%Ue',
'isset($_SESSION["phrases"][strtoupper("$1")][$_SESSION["language"])
?
$_SESSION["phrases"][strtoupper("$1")][$_SESSION["language"]
:
"$1"',
$tpl_src);
}
Code:
Array ( [phrases] => Array ( [HEADLINE_MAIN] => Array ( [de] => Hauptüberschrift [en] => main headline ) [DATABASE QUERIES] => Array ( [de] => An der Erstellung der Seite war(en) {query_count} Datenbankabfrage(n) maßgeblich beteiligt. [en] => The page was generated with the help of {query_count} database query/queries. ) ) [language] => de )
Die Textbausteine habe ich in der Session, damit ich sie nicht jedesmal neu auslesen muss. Das passiert nur dann, wenn ich auch effektiv prüfe, ob der Benutzer eingeloggt ist (nicht bei jedem Request sondern nur alle x Minuten)
Oder ist die Idee schwachsinig?
Kommentar