diff --git a/config/lang/de-de.json b/config/lang/de-de.json
index 5ac8fc5ef94799650377ce453a245b5be4013836..cb4cd76ce6a85aab480564e96e8f7364dbc02432 100644
--- a/config/lang/de-de.json
+++ b/config/lang/de-de.json
@@ -79,6 +79,8 @@
     "class-project-error-build-docroot-not-found": "Es gibt kein Unterverzeichnis "public_html" oder "public" im Arbeitsverzeichnis.",
     "class-project-error-build-packaging-failed": "Build schlug beim Erstellen der Pakete fehl.",
     "class-project-error-command-failed": "Eines der Kommandos ist fehlgeschlagen (s. Fehlermeldung in der Ausgabe).<br>Frage ggf. den Administrator. Das Arbeitsverzeichnis wird f&uumlr eine Analyse nicht gel&ouml;scht.",
+    "class-project-error-config-invalid": "Fehler in der Konfiguration des Projects [%s]: dies ist keine g&uuml;ltige JSON Datei: %s",
+    "class-project-error-config-wrongid": "Fehler: die Projekt-ID enth&auml;lt ung&uuml;ltige Zeichen: %s",
     "class-project-error-getPhaseInfos-package-not-found": "Die Paket-Datei (.tgz) wurde nicht gefunden: %s",
     "class-project-error-getPhaseInfos-requires-phase": "Die Methode getPhaseInfos erfordert die Angabe eine Phase.",
     "class-project-error-datafile-does-not-exist": "Die Paket-Datei &quot;%s&quot; existiert nicht.",
diff --git a/config/lang/en-en.json b/config/lang/en-en.json
index b30efa89e587d6328b8c4864f3d699c0a4696bcf..d7dbdb9141fb79c47fcd3491e4c262efcaaabecc 100644
--- a/config/lang/en-en.json
+++ b/config/lang/en-en.json
@@ -78,6 +78,8 @@
     "class-project-error-build-docroot-not-found": "There is no subdirectory &quot;public_html&quot; or &quot;public&quot; in the working directory.",
     "class-project-error-build-packaging-failed": "Build failed while creating the packages.",
     "class-project-error-command-failed": "The execution of a command failed (see error message in the output below).<br>Ask your admin. The working directory was NOT deleted that you can analyze the problem.",
+    "class-project-error-config-invalid": "ERROR in configuration of project [%s]: this is mot valid JSON file: %s",
+    "class-project-error-config-wrongid": "ERROR: invalid syntax in project ID: %s",
     "class-project-error-getPhaseInfos-package-not-found": "The package file (.tgz) was not found: %s",
     "class-project-error-getPhaseInfos-requires-phase": "The method getPhaseInfos requires the name of a pfase.",
     "class-project-error-datafile-does-not-exist": "The package file &quot;%s&quot; does not exist.",
diff --git a/public_html/deployment/classes/project.class.php b/public_html/deployment/classes/project.class.php
index e2a0ccb297e1c41aa62ed7c6469e5b156f672a32..a78068597744029416475c666b680038e2e74a53 100644
--- a/public_html/deployment/classes/project.class.php
+++ b/public_html/deployment/classes/project.class.php
@@ -1484,7 +1484,7 @@ class project extends base {
      */
     public function setProjectById($sId) {
         if ($sId !== preg_replace('/[^a-z0-9\-\_]/i', '', $sId)) {
-            echo "ERROR: invalid syntax in project ID: $sId<br>";
+            $this->_errors[]=sprintf(t("class-project-error-config-wrongid"), htmlentities($sId));
             return false;
         }
         $this->_aPrjConfig = [];
@@ -1498,7 +1498,7 @@ class project extends base {
             }
             $_aPrjConfigTmp=json_decode(file_get_contents($this->_getConfigFile($sId)), true);
             if(!$_aPrjConfigTmp){
-                $this->_errors[]="ERROR in configuration of project [$sId]: this is mot valid JSON file: ".$this->_getConfigFile($sId);
+                $this->_errors[]=sprintf(t("class-project-error-config-invalid"), $sId, $this->_getConfigFile($sId));
                 return false;
             }
             $this->_aPrjConfig = $_aPrjConfigTmp;