hinkt denn nicht das Beispiel, weil Du hier aus einem Datum zwei Aspekte (string, length) benutzt? Du musst im Template ja sowieso immer wissen, wieviele Paramter übergeben werden.
Wieso? Du musst wissen ob ein Text ein oder zwei oder x- Parameter haben muss, dass kann beliebig sein, aber für den bestimmten Text ist es definiert. Hier geht es nicht um ein Template, sondern Systemmeldungen.
z.b.
var $msg = array(
'FILE_OPEN' => 'Datei "%s" konnte nicht geöffnet werden, weil: %s',
'TEXT_TOO_BIG' => 'Der Text "%s" hat %s Zeichen, darf aber nur %s Zeichen haben',
'NO' => 'Aktion ist nicht erlaubt',
... usw
);
Die Meldungen tauchen natürlich nicht im Template auf, sondern werden damit befüllt
$this->template->set('error', $this->text->_('FILE_OPEN', $file, ???));
(ich weiß auch noch nicht, wie man an die Fehlermeldung kommt warum ein fopen() fehlgeschlagen ist, in Perl gibt es dafür die Variabel $!, aber das krieg ich noch raus, steht wahrscheinlich in der englischen Doku)
Struppi.