[:de]Komische Fehlermeldung in Poedit[:en]Strange error message in Poedit[:]


[:de]

Ich arbeite zur Zeit an einem PHP-Projekt, das Möglichkeiten zur Internationalisierung bieten soll, d.h. man soll die Anwendung mit möglichst wenig Aufwand in jede beliebige Sprache übersetzen können. Da ich durch WordPress bereits die Funktionsweise von gettext kennengelernt hatte und von dessen Einfachheit und Effektivität hellauf begeistert war, entschied ich mich, dieses System auch für mein Projekt zu nutzen. Das hat auch hervorragend funktioniert, und ich kann gettext nur jedem empfehlen, der eine mehrsprachige Anwendung entwickeln will!

Als ich aber anschließend meine Dateien von Poedit auf Textbausteine parsen lassen wollte, erhielt ich immer nur folgende Fehlermeldung:

Befehlsausführung ‚dxgettext –so „C:\***\Temp\poe***.tmp“ „irgendein/pfad/datei.inc“‚ schlug fehl (Fehler 2: das System kann die angegebene Datei nicht finden.

[:] [:en]

I’m currently working on a PHP project that needs to offer possibilities of internationalization, i.e. the application should be translatable into any language with minimal effort. Since I had already come to know the mechanics of gettext from WordPress and was highly enthralled by its simpleness and effectivity, I decided to use this system for my project, too. It worked out very well, and I can only recommend gettext to anyone who wants to develop a multilingual application!

However, when I wanted to have Poedit parse my files for text blocks, I always got the following error message:

Execution of command ‚dxgettext –so „C:\***\Temp\poe***.tmp“ „some/path/file.inc“‚ failed (error 2: the system cannot find the file specified.)

[:] [:de]

Inzwischen habe ich den Fehler gefunden – da ich aber damals bei meiner Google-Suche nirgends eine Lösung auftreiben konnte, schreibe ich sie hier mal nieder für alle, die in Zukunft vielleicht danach suchen.

Im Nachhinein betrachtet erklärt die Fehlermeldung eigentlich alles: Poedit hat versucht, den Befehl dxgettext auf eine meiner Include-Dateien (datei.inc) anzuwenden, aber auf dem Rechner wurde kein Programm namens dxgettext gefunden. Wie auch – bei dxgettext handelt es sich um den gettext-Parser für die Programmiersprache Delphi, und den habe ich nicht installiert. Schließlich schreibe ich mein Skript ja in PHP und nicht in Delphi. Poedit aber hält standardmäßig alle Dateien mit der Endung .inc für Delphi-Dateien und versucht sie deshalb mit dxgettext zu parsen.

Lösung

Poedit Parser-Optionen
Poedit Parser-Optionen

Man hat zwei Möglichkeiten:

  1. Man benennt die problematische datei.inc einfach um, sodaß sie wieder eine Endung hat, die Poedit als PHP-Datei erkennt, also z. B. datei.inc.php.
  2. Man sagt Poedit, daß es .inc-Dateien nicht mehr als Delphi-Dateien behandeln soll. Dazu nimmt man einfach unter „Datei“ → „Einstellungen“ → „Parser“ → „Delphi“ die Endung *.inc aus der Liste heraus. Nun wird Poedit alle .inc-Dateien ignorieren.
[:] [:en]

Meanwhile I have found the mistake – but since I was not able to find a solution via Google when I needed it, I’ll just write it down here for anyone who may look for it in the future.

Considered in hindsight, the error message explains everything: Poedit has tried to apply the command dxgettext to one of my include files (file.inc), but no program called dxgettext could be found on the computer. And why should it – dxgettext is the gettext parser for the programming language Delphi, which I have not installed. After all, I’m writing my script in PHP, not in Delphi. Poedit however thinks by default that all files with the extension .inc are Delphi files and therefore tries to parse them with dxgettext.

Solution

Poedit parser options
Poedit parser options

There are two possibilities:

  1. Simply rename the problematic file.inc to something that Poedit will recognize as PHP file, for example file.inc.php.
  2. Tell Poedit not to handle .inc files as Delphi files anymore. For this purpose, just go to „File“ → „Preferences“ → „Parser“ → „Delphi“ and remove the extension *.inc from the list. Now Poedit will ignore all .inc files.
[:]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.