//+------------------------------------------------------------------+ //| TransClass.mqh | //| Copyright 2026, Niquel Mendoza. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2026, Niquel Mendoza." #property link "https://www.mql5.com" #property strict #ifndef TSNTRANSLATIONS_SRC_TRANSCLASS_MQH #define TSNTRANSLATIONS_SRC_TRANSCLASS_MQH //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #include "Defines.mqh" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ namespace TSN { //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // 1. El lengfauje es un codigo de 2 letras // 2. //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CLanTranslate { private: CJsonParser m_json; ushort m_curr_language; //--- Un perfect hash por cada nampesace luego la plantia se crean varios arrays de hash // La idea /* Primero se carga una plantilla de como es el JSON... esto se calcual una vez.. luego se crea un tape de metadas qeu mapea cada clave a un hash fn1a64 [OBJ][KEY(type(4), index_pfh(28), index_str_buff[32])] "valor" : { "valor", "valor", "valor", "clave" : { "suma" }} Con eso se mapea exacmtne que clavez espera el parser.. con eso tambien ya se calcuala un hash perfecto.. y para los siguintes json de otros lenguajes que esperan el mismo formato unicamente se relenand los arrays */ //--- public: CLanTranslate(void) {} ~CLanTranslate(void) {} //--- Cargar un namepsace bool LoadNamespace(const ushort language, const string& ns, const uchar& json[]); //--- Idioma actual void CurrLanguage(const ushort language); ushort CurrLanguage() const { return m_curr_language; } //--- Translate bool T(const string& key, string& out); }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CLanTranslate::T(const string &key, string &out) { // 1. La key.. } // T("namespace::valor.encima.sol") //--- } #endif // TSNTRANSLATIONS_SRC_TRANSCLASS_MQH //+------------------------------------------------------------------+