phpbar.de logo

Mailinglisten-Archive

[php] Mehrsprachigkeit mit Smarty

[php] Mehrsprachigkeit mit Smarty

Andreas Brandl php-mailinglist at andreas-brandl.de
Fre Dez 30 18:08:42 CET 2005


Hi Lutz,

Lutz Zetzsche schrieb:
> nein, überhaupt nicht. Die Templates wissen gar nichts von den Sprachen. Sie 
> sehen genauso aus, als ob sie nur eine Sprache behandeln würden. Schon in der 
> Programmlogik werden die richtigen Texte mittels des übergebenen 
> Sprachparameters gezogen.

vielen Dank für die ausführliche Beschreibung - habs kapiert :-)

> Die erste Variante - also nicht der Weg über im Skript hartkodierte Texte mit 
> einer Übersetzungstabelle - ist programmiertechnisch und pflegemäßig deutlich 
> eleganter. Stell Dir mal vor, Du hast einen Text an vielen Stellen Deiner 
> Anwendung drin, à la $text_db = $oTabelleUebersetzung->holeUebersetzung('Ich 
> bin ein toller Text', $sprache);, und Du änderst mal diesen Text. Dann mußt 
> Du ihn überall und in der Datenbank ändern. Auch Sprachwechsel direkt auf 
> Seitenebene arbeiten deutlich besser, wenn man IDs verwendet!

Ist klar - die abstrake Variante über IDs ist klasse...

>>Ich ziehe momentan überhaupt keine Texte aus der Programmlogik in die
>>Ausgabe. Hab wie gesagt alle Texte (/Ausgabe) in den Templates drin...
> 
> 
> Das ist aus meiner Sicht ein Designfehler. :-) 

Da bin ich jetzt etwas anderer Meinung, vielleicht seh ichs aber im 
Laufe der Umsetzung ein :)

Ich will die Programmlogik konkret von der Ausgabe-/Präsentationslogik 
trennen. Aus diesem Grunde werd ich zunächst das Übersetzungssystem 
direkt im Template integrieren... man kann ja durchaus auch Objekte als 
Smarty-Variable übergeben und aus Smarty darauf zugreifen...

<h1>{$lang->get(1,$smarty.template)}</h1>

Das machts m.E. einfacher, weil einige Teile des Templates includiert 
werden und die Übersetzung bzw. das Holen der Texte nur einmal definiert 
werden muss...

Nochmal besten Dank und einen guten Rutsch!

Andreas

php::bar PHP Wiki   -   Listenarchive