Wir haben gettext_smarty als freies Tool zur Extrahierung von Zeichenketten aus Smarty Templates entwickelt, um diese als .po-Datei (z.B. mit Poedit) speichern und anschließend zu übersetzen.
gettext_smarty.zip
Version 1.0 vom 5.12.2013
Bei Internationalisierungsprojekten mit PHP wird häufig mit .po-Dateien gearbeitet. Entweder direkt durch die Verwendung von gettext oder über die Internationalization (I18N)-Funktionen vom Zend Framework. Wenn jetzt allerdings Templates z.B. mit Smarty ins Spiel kommen, hat man das Problem, dass die Smarty-Template-Dateien nicht nach Zeichenketten durchsucht werden, weil der gettext-Parser nur die Sprache PHP aber nicht die Smarty Templates unterstützt. Häufig wird dafür manuell eine Liste mit den zu übersetzenden Zeichenketten geführt.
Das gettext_smarty Tool kann in Verbindung mit dem beliebten Poedit Tool eingesetzt werden. Dazu kann man gettext_smarty in Poedit als eigenen Parser registrieren. Im gezeigten Beispiel wurde smarty_gettext.exe in den Bin-Order vom Programmverzeichnis von Poedit kopiert:
Dann werden auch alle Smarty-Templates automatisch geparst. Dazu müssen die zu übersetzenden Zeichenketten als Block markiert werden. Beispielsweise so (Keyword „t“):
{t}übersetze mich{/t}
Jetzt muss nur noch eine Block Funktion deklariert werden (Beispiel mit gettext-Alias):
function smarty_block_t($params, $content) { if( ! is_null($content) ) { $out = _($content); return stripslashes($out); } }
Abhängigkeiten: .NET Framework 4 Client Profile
gettext_smarty ist kostenfrei nutzbar. Die Nutzungsbedingungen sind in der beifügten README.txt zu finden.