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
| |||
//+------------------------------------------------------------------+
|