smarty_gettext

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.

Download 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:

Bild Smarty gettext_smarty Parser Einstellungen

 

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.