197 lines
No EOL
14 KiB
MQL5
197 lines
No EOL
14 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| LogifyError.mqh |
|
|
//| joaopedrodev |
|
|
//| https://www.mql5.com/en/users/joaopedrodev |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "joaopedrodev"
|
|
#property link "https://www.mql5.com/en/users/joaopedrodev"
|
|
//+------------------------------------------------------------------+
|
|
//| Import |
|
|
//+------------------------------------------------------------------+
|
|
#include "Error.mqh"
|
|
#include "Languages/ErrorMessages.de.mqh"
|
|
#include "Languages/ErrorMessages.en.mqh"
|
|
#include "Languages/ErrorMessages.es.mqh"
|
|
#include "Languages/ErrorMessages.fr.mqh"
|
|
#include "Languages/ErrorMessages.it.mqh"
|
|
#include "Languages/ErrorMessages.ja.mqh"
|
|
#include "Languages/ErrorMessages.ko.mqh"
|
|
#include "Languages/ErrorMessages.pt.mqh"
|
|
#include "Languages/ErrorMessages.ru.mqh"
|
|
#include "Languages/ErrorMessages.tr.mqh"
|
|
#include "Languages/ErrorMessages.zh.mqh"
|
|
//+------------------------------------------------------------------+
|
|
//| All languages |
|
|
//+------------------------------------------------------------------+
|
|
enum ENUM_LOG_LANGUAGE
|
|
{
|
|
LOG_LANGUAGE_DE = 0, // [0] German
|
|
LOG_LANGUAGE_EN, // [1] English
|
|
LOG_LANGUAGE_ES, // [2] Spanish
|
|
LOG_LANGUAGE_FR, // [3] French
|
|
LOG_LANGUAGE_IT, // [4] Italian
|
|
LOG_LANGUAGE_JA, // [5] Japanese
|
|
LOG_LANGUAGE_KO, // [6] Korean
|
|
LOG_LANGUAGE_PT, // [7] Portuguese
|
|
LOG_LANGUAGE_RU, // [8] Russian
|
|
LOG_LANGUAGE_TR, // [9] Turkish
|
|
LOG_LANGUAGE_ZH, // [10] Chinese
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| class : CLogifyError |
|
|
//| |
|
|
//| [PROPERTY] |
|
|
//| Name : LogifyError |
|
|
//| Heritage : No heritage |
|
|
//| Description : class to look up the error code and return details |
|
|
//| of each error code. |
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
class CLogifyError
|
|
{
|
|
private:
|
|
|
|
ENUM_LOG_LANGUAGE m_language;
|
|
MqlError m_errors[];
|
|
|
|
ENUM_LOG_LANGUAGE GetLanguageFromTerminal(void);
|
|
|
|
public:
|
|
CLogifyError(void);
|
|
~CLogifyError(void);
|
|
|
|
//--- Set/Get
|
|
void SetLanguage(ENUM_LOG_LANGUAGE language);
|
|
ENUM_LOG_LANGUAGE GetLanguage(void);
|
|
|
|
//--- Get error
|
|
MqlError Error(int code);
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| Constructor |
|
|
//+------------------------------------------------------------------+
|
|
CLogifyError::CLogifyError()
|
|
{
|
|
SetLanguage(GetLanguageFromTerminal());
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Destructor |
|
|
//+------------------------------------------------------------------+
|
|
CLogifyError::~CLogifyError(void)
|
|
{
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
ENUM_LOG_LANGUAGE CLogifyError::GetLanguageFromTerminal(void)
|
|
{
|
|
string lang = TerminalInfoString(TERMINAL_LANGUAGE);
|
|
|
|
if(lang == "German")
|
|
return LOG_LANGUAGE_DE;
|
|
if(lang == "Spanish")
|
|
return LOG_LANGUAGE_ES;
|
|
if(lang == "French")
|
|
return LOG_LANGUAGE_FR;
|
|
if(lang == "Italian")
|
|
return LOG_LANGUAGE_IT;
|
|
if(lang == "Japanese")
|
|
return LOG_LANGUAGE_JA;
|
|
if(lang == "Korean")
|
|
return LOG_LANGUAGE_KO;
|
|
if(lang == "Portuguese (Brazil)" || lang == "Portuguese (Portugal)")
|
|
return LOG_LANGUAGE_PT;
|
|
if(lang == "Russian")
|
|
return LOG_LANGUAGE_RU;
|
|
if(lang == "Turkish")
|
|
return LOG_LANGUAGE_TR;
|
|
if(lang == "Chinese (Simplified)" || lang == "Chinese (Traditional)")
|
|
return LOG_LANGUAGE_ZH;
|
|
|
|
//--- Default language: English
|
|
return LOG_LANGUAGE_EN;
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Defines the language to be displayed |
|
|
//+------------------------------------------------------------------+
|
|
void CLogifyError::SetLanguage(ENUM_LOG_LANGUAGE language)
|
|
{
|
|
m_language = language;
|
|
switch(language)
|
|
{
|
|
case LOG_LANGUAGE_DE:
|
|
InitializeErrorsGerman(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_EN:
|
|
InitializeErrorsEnglish(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_ES:
|
|
InitializeErrorsSpanish(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_FR:
|
|
InitializeErrorsFrench(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_IT:
|
|
InitializeErrorsItalian(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_JA:
|
|
InitializeErrorsJapanese(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_KO:
|
|
InitializeErrorsKorean(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_PT:
|
|
InitializeErrorsPortuguese(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_RU:
|
|
InitializeErrorsRussian(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_TR:
|
|
InitializeErrorsTurkish(m_errors);
|
|
break;
|
|
case LOG_LANGUAGE_ZH:
|
|
InitializeErrorsChinese(m_errors);
|
|
break;
|
|
default:
|
|
InitializeErrorsEnglish(m_errors);
|
|
break;
|
|
}
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Get language |
|
|
//+------------------------------------------------------------------+
|
|
ENUM_LOG_LANGUAGE CLogifyError::GetLanguage(void)
|
|
{
|
|
return(m_language);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Returns error information based on the error code received |
|
|
//+------------------------------------------------------------------+
|
|
MqlError CLogifyError::Error(int code)
|
|
{
|
|
int size = ArraySize(m_errors);
|
|
for(int i=0;i<size;i++)
|
|
{
|
|
if(m_errors[i].code == code)
|
|
{
|
|
//--- Return
|
|
return(m_errors[i]);
|
|
}
|
|
}
|
|
|
|
//--- User error
|
|
if(code >= ERR_USER_ERROR_FIRST && code < ERR_USER_ERROR_LAST)
|
|
{
|
|
MqlError error;
|
|
error.code = code;
|
|
error.constant = "User error";
|
|
error.description = "ERR_USER_ERROR";
|
|
|
|
//--- Return
|
|
return(m_errors[274]);
|
|
}
|
|
|
|
//--- Return
|
|
return(m_errors[0]);
|
|
}
|
|
//+------------------------------------------------------------------+ |