Textausgaben ins Template einbinden

xt:Commerce Add comments

Manchmal arbeitet man an einem Template und möchte irgendwelche Textausgaben machen, die in den Standard-Sprachfiles nicht dabei sind. Ich wollte zum Beispiel oben im Header eine Ausgaben haben, die den Status des Warenkorbs ausgibt:

Keine Produkte im Warenkorb
bzw.
2 Produkt(e) im Warenkorb

Man kann natürlich mit {php}{/php} eine sprachabhängige Zuweisung direkt ins Template reinschmuggeln, das geht aber viel eleganter. Und ohne Rumgebastle am Core oder an eigenen Modifiern.

Als Erstes legt man im Templateordner einen Ordner Namens “lang” an. In diesem erstelle man die Dateien “german.php”, “english.php” und eben alle gewünschten Sprachen.

Der Inhalt der Sprachdatei ist sehr simpel:
<?php
define('TEXT_MEINE_AUSGABE, 'Halli hallo');
?>

In der jew. Sprachdatei die zugehörigen Strings an der Stelle ‘Halli hallo’ reinschreiben.

Nun muss die richtige Sprache auch eingebunden werden. In source/boxes.php vor dem ersten ‘define(…’ kommt diese Zeile:
include(DIR_FS_CATALOG . 'templates/'.CURRENT_TEMPLATE.'/lang/'.$_SESSION['language'].'.php');

Der Zugriff auf die Sprachkonstante erfolgt aus dem Template auch sehr einfach:
{$smarty.const.TEXT_MEINE_AUSGABE}

Viel Spass und Erfolg beim Einbauen!

Und ganz unauffällig kommt etwas Werbung..

2 Responses to “Textausgaben ins Template einbinden”

  1. Kai Says:

    Schöne Idee und wirklich praktisch, aber leider muß man dann bei zu ändernden Texten immer zwei lang/-Ordner durchsuchen. Den “echten” und den neuen im Template-Ordner :-(

  2. Twols Says:

    Ja, aber mir als Template-Designer erleichtert das Ding das Leben ungemein! Ich baue Templates, die Plug&Play laufen. Und ich muss nun nicht direkt in die htmls die Sprachauswahl einbauen.

Leave a Reply

WP Theme & Icons by N.Design Studio
Internetservice Köln
Entries RSS Comments RSS Anmelden