Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
1003
Ranking:
(31)
Publicado:
2014.01.15 08:04
Actualizado:
2016.11.22 07:33
translator.mqh (8.05 KB) ver
sample.mq5 (1.75 KB) ver
languages.zip (0.37 KB)
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

La clase está diseñada para la localización de mensajes en los programas MQL5. En resumen, todas las salidas que aparecen en la función Print() del log, así como los mensajes de texto que se muestran en Alert(), Comment(), MessageBox() se puede hacer en un solo código multilingüe. 

Métodos de la clase:

  • bool init(string progName, ENUM_LANGUAGES lang) - inicializa el objeto. En la entrada establecemos el nombre del programa y el código de la lengua de la tabulación en el archivo LanguagesEnum.mqh.
  • string tr(string str) - traduce la cadena str*.
  • void print(string str) - tipos de traducción de la cadena str* en el log.
  • void alert(string str) - muestra la alerta con la cadena* traducida.
  • void comment(string str) - muestra el comentario con la cadena* traducida.
  • int messageBox(string text, string caption=NULL, int flags=0) - muestra el texto* traducido en la ventana de mensajes y traduce el título de la ventana*. Devuelve uno de los MessageBox() códigos de retorno. Así como el MessageBox(), este método no se puede obtener desde los indicadores del usuario.
  • * - Si el archivo de idioma no tiene el equivalente de traducción entonces retorna/muestra la entrada de la cadena.

Modo de empleo:

  • Descargar los ficheros Translator.mqh y LanguagesEnum.mqh en la carpeta del MetaTrader 5\MQL5\Include. La clase en sí se encuentra en el primer archivo, la lista de idiomas se encuentra en el segundo archivo de acuerdo con el estándar ISO 639 (en este momento sólo las lenguas a las que se tradujo el terminal se enumeran en el archivo. Si es necesario, puede agregar el código de cualquier otro idioma, preferiblemente de acuerdo con la norma estándar ISO 639 para evitar confusiones);
  • Crear un archivo de texto para traducir "su" lengua en el formato de Alias ​​= Traducción, donde el alias es un nombre de alias de la cadena traducible y también una cadena-argumento por el cual los métodos de la clase son llamados posteriormente, la Traducción es la Traducción del texto que eventualmente se mostrará ;
  • Archivo de idioma(s) codificado: UTF8(sin BOM);
  • El nombre del archivo debe cumplir estrictamente al siguiente formato: <MQL5 código nombre>.<Lengua código en letra latín capital>.ini. Por ejemplo, el archivo de texto con la traducción al ruso del código MyCode debe ser llamado MyCode.ru.ini. En última instancia, el número de archivos de idioma deben coincidir con el número de idiomas a los mensajes que desea traducir;
  • Coloque los archivos de idioma creados en la carpeta del MetaTrader 5\MQL5\Files\Languages.

En el código:

  • Conecte el archivo traductor (# include <Traslator.mqh>) en el código (del Asesor Experto, indicador, script);
  • Crear un objeto. Por ejemplo, CTranslator ru;
  • Agregar un parámetro de entrada para la traducción. Por ejemplo, input ENUM_LANGUAGES InpToLanguage = RU;
  • Inicializa el objeto. Por ejemplo, ru.init(MQL5InfoString(MQL5_PROGRAM_NAME), InpToLanguage);
  • Utilice cualquiera de estos métodos si es necesario. Por ejemplo, ru.print("Tu texto).
Es importante si el archivo necesario no existe o el archivo no tiene un alias adecuado, a continuación, se mostrará la cadena que se pasa al método como un argumento.

Para un ejemplo ilustrativo el script Sample.mq5 y los dos archivos de idioma se adjuntan a él para traducir al ruso y japonés. El resultado del trabajo del script (en un primer momento se ejecutó en la gráfica con el parámetro de traducir al ruso, y a continuación, en japonés):

Muestra del Traductor

Recomendaciones:

Aunque los alias se pueden escribir en cualquier idioma y también el alias sólo, puede ser una abreviatura en lugar de toda una frase. Es mejor escribir en Inglés y sin abreviaturas. En consecuencia:
  • incluso si no hay un archivo de idioma, todos los mensajes se mostrarán en Inglés,
  • la necesidad de escribir un archivo especial para la traducción en Inglés se elimina de forma automática (los que escribieron bajo las extensiones Joomla CMS probablemente entienden que es más fácil, ya que la lógica es la misma).

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1484

Trend Trend

Indicador de tendencia dibujado en forma de una nube de colores

TTF TTF

El indicador clásico TTF con método alisado T3y una línea de señal.

Triple Bolling Triple Bolling

Presentación avanzada del indicador Bandas de Bollinger

Exp_ColorCoppock Exp_ColorCoppock

El sistema de trade mediante el oscilador ColorCoppock.