diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index 8ba340568f2..73f6e621a37 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -14,6 +14,15 @@ ErrorGoToModuleSetup=Go to Module setup to fix this
ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
ErrorAttachedFilesDisabled=Attaching files feature is disabled on this serveur
ErrorFileNotUploaded=File was not uploaded
+ErrorInternalErrorDetected=Internal error detected
+ErrorNoRequestRan=No request ran
+RequestedUrl=Requested Url
+DatabaseTypeManager=Database type manager
+RequestLastAccess=Request for last database access
+ReturnCodeLastAccess=Return code for last database access
+InformationLastAccess=Information for last database access
+DolibarrHasDetectedError=Dolibarr has detected a technical error
+InformationToHelpDiagnose=This is informations that can help to diagnose
yes=yes
Yes=Yes
no=no
diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang
index dec5be23c5c..47ea918f6c9 100644
--- a/htdocs/langs/fr_FR/main.lang
+++ b/htdocs/langs/fr_FR/main.lang
@@ -14,6 +14,15 @@ ErrorGoToModuleSetup=Allez dans la Configuration du module pour corriger
ErrorFailedToSendMail=Échec de l'envoi du mail (emetteur=%s, destinataire=%s)
ErrorAttachedFilesDisabled=La gestion des fichiers associés est désactivée sur ce serveur
ErrorFileNotUploaded=Le fichier n'a pas été transféré
+ErrorInternalErrorDetected=Erreur interne détectée
+ErrorNoRequestRan=Aucune requête exécutée
+RequestedUrl=Url sollicitée
+DatabaseTypeManager=Type gestionnaire de base de donnée
+RequestLastAccess=Requete dernier acces en base
+ReturnCodeLastAccess=Code retour dernier acces en base
+InformationLastAccess=Information sur le dernier accès en base
+DolibarrHasDetectedError=Dolibarr a détecté une erreur technique
+InformationToHelpDiagnose=Voici les informations qui pourront aider au diagnostique
yes=oui
Yes=Oui
no=non
diff --git a/htdocs/lib/functions.inc.php b/htdocs/lib/functions.inc.php
index c27bb0f9eaf..c2e99b8200f 100644
--- a/htdocs/lib/functions.inc.php
+++ b/htdocs/lib/functions.inc.php
@@ -682,63 +682,69 @@ function accessforbidden()
*/
function dolibarr_print_error($db='',$msg='')
{
- global $langs;
- $syslog = '';
-
- if ($_SERVER['DOCUMENT_ROOT']) // Mode web
- {
- print "Dolibarr a détecté une erreur technique.
\n";
- print "Voici les informations qui pourront aider au diagnostique:
\n";
-
+ global $langs;
+ $syslog = '';
+
+ // Si erreur intervenu avant chargement langue
+ if (! $langs) {
+ require_once(DOL_DOCUMENT_ROOT ."/translate.class.php");
+ $langs = new Translate(DOL_DOCUMENT_ROOT ."/langs", "en_US");
+ $langs->load("main");
+ }
+
+ if ($_SERVER['DOCUMENT_ROOT']) // Mode web
+ {
+ print $langs->trans("DolibarrHasDetectedError").".
\n";
+ print $langs->trans("InformationToHelpDiagnose").":
\n";
+
print "".$langs->trans("Server").": ".$_SERVER["SERVER_SOFTWARE"]."
\n";;
- print "URL sollicitée: ".$_SERVER["REQUEST_URI"]."
\n";;
+ print "".$langs->trans("RequestedUrl").": ".$_SERVER["REQUEST_URI"]."
\n";;
print "QUERY_STRING: ".$_SERVER["QUERY_STRING"]."
\n";;
- print "Referer: ".$_SERVER["HTTP_REFERER"]."
\n";;
+ print "".$langs->trans("Referer").": ".$_SERVER["HTTP_REFERER"]."
\n";;
$syslog.="url=".$_SERVER["REQUEST_URI"];
$syslog.=", query_string=".$_SERVER["QUERY_STRING"];
- }
- else // Mode CLI
- {
-
- print "Erreur interne détectée...\n";
+ }
+ else // Mode CLI
+ {
+
+ print $langs->trans("ErrorInternalErrorDetected")."...\n";
$syslog.="pid=".getmypid();
- }
-
- if ($db) {
- if ($_SERVER['DOCUMENT_ROOT']) // Mode web
- {
- print "
\n";
- print "Type gestionnaire de base de donnée: ".$db->type."
\n";
- print "Requete dernier acces en base: ".$db->lastquery()."
\n";
- print "Code retour dernier acces en base: ".$db->errno()."
\n";
- print "Information sur le dernier accès en base: ".$db->error()."
\n";
}
- else // Mode CLI
- {
- print "Type gestionnaire de base de donnée:\n".$db->type."\n";
- print "Requete dernier acces en base:\n".$db->lastquery()."\n";
- print "Code retour dernier acces en base:\n".$db->errno()."\n";
- print "Information sur le dernier accès en base:\n".$db->error()."\n";
-
+
+ if ($db) {
+ if ($_SERVER['DOCUMENT_ROOT']) // Mode web
+ {
+ print "
\n";
+ print "".$langs->trans("DatabaseTypeManager").": ".$db->type."
\n";
+ print "".$langs->trans("RequestLastAccess").": ".($db->lastquery()?$db->lastquery():$langs->trans("ErrorNoRequestRan"))."
\n";
+ print "".$langs->trans("ReturnCodeLastAccess").": ".$db->errno()."
\n";
+ print "".$langs->trans("InformationLastAccess").": ".$db->error()."
\n";
+ }
+ else // Mode CLI
+ {
+ print $langs->trans("DatabaseTypeManager").":\n".$db->type."\n";
+ print $langs->trans("RequestLastAccess").":\n".($db->lastquery()?$db->lastquery():$langs->trans("ErrorNoRequestRan"))."\n";
+ print $langs->trans("ReturnCodeLastAccess").":\n".$db->errno()."\n";
+ print $langs->trans("InformationLastAccess").":\n".$db->error()."\n";
+
+ }
+ $syslog.=", sql=".$db->lastquery();
+ $syslog.=", db_error=".$db->error();
}
- $syslog.=", sql=".$db->lastquery();
- $syslog.=", db_error=".$db->error();
- }
-
- if ($msg) {
- if ($_SERVER['DOCUMENT_ROOT']) // Mode web
- {
- print "".$langs->trans("Message").": ".$msg."
\n" ;
+
+ if ($msg) {
+ if ($_SERVER['DOCUMENT_ROOT']) // Mode web
+ {
+ print "".$langs->trans("Message").": ".$msg."
\n" ;
+ }
+ else // Mode CLI
+ {
+ print $langs->trans("Message").":\n".$msg."\n" ;
+ }
+ $syslog.=", msg=".$msg;
}
- else // Mode CLI
- {
- print $langs->trans("Message").":\n".$msg."\n" ;
- }
- $syslog.=", msg=".$msg;
- }
-
- dolibarr_syslog("Error $syslog");
-
+
+ dolibarr_syslog("Error $syslog");
}