TSNTranslations/Src/TransCass/TransClass.mqh
2026-10-26 22:11:57 -05:00
95 lines
3.1 KiB
MQL5
//+------------------------------------------------------------------+
//| 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
//+------------------------------------------------------------------+