Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
846
Rating:
(31)
Veröffentlicht:
2016.05.16 08:18
Aktualisiert:
2016.11.22 07:34
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Die Klasse ist konzipiert für die Lokalisierung von Nachrichten in MQL5 Programme. Kurz, Ausdrucke in den Logs mit Hilfe von Print(), sowie SMS-Nachrichten und alle angezeigten Nachrichten mittels Alert(), Comment() MessageBox() kann mehrsprachig im Code erfolgen. 

Methoden der Klasse:

  • bool init(string progName, ENUM_LANGUAGES lang) - initialisiert das Objekt. Zu Beginn setzen wir den Namen des Programms und den ID-code der Sprache aus der Tabelle der Datei LanguagesEnum.mqh.
  • string tr(string str) - übersetzt die Zeichenkette str*.
  • void print(string str) - schreibt die Übersetzung ins Log.
  • void alert(string str) - zeigt das Übersetzte* in der Alert-Box.
  • void comment(string str) - zeigt den übersetzten str* im Kommentar.
  • int messageBox(string text, string caption=NULL, int flags=0) - zeigt den übersetzten Text* im Nachrichtenfenster* mit ebenfalls übersetztem Titel. Gibt einen der MessageBox() return-codes zurück. Ebenso wie die MessageBox() kann diese Methode nicht von Indikatoren abgerufen werden.
  • * - Wenn die Sprachdatei nicht über die entsprechende Übersetzung verfügt, wird die Eingabe zurückgegeben.

Verwendung:

  • Kopieren Sie Translator.mqh und LanguagesEnum.mqh in das MetaTrader 5\MQL5\Include Verzeichnis. Die Klasse selbst befindet sich in der ersten Datei, die Liste der Sprachen befindet sich in der zweiten Datei in Übereinstimmung mit dem ISO-639-Standard (in diesem Stadium nur Sprachen, über die das Terminal verfügt. Wenn nötig, ergänzen Sie jede weitere Sprache, vorzugsweise in Übereinstimmung mit dem ISO-639-Standard, um Verwirrung zu vermeiden);
  • Erstellen Sie eine Text-Datei mit den Übersetzungen "Ihrer" Sprache im Format Alias = Übersetzung, wobei Alias nicht nur die zu übersetzenden Zeichenkette ist sondern auch der Eintrag, nachdem gesucht wird, Übersetzung ist das übersetzte Alias, das zurückgegeben wird;
  • Kodierung der Sprachedatei(en): UTF8(ohne BOM);
  • Der Dateiname muss streng dem folgenden Format entsprechen: <MQL5 Code-Namen>.<Sprache-Code in Latin-Großbuchstaben>.ini. Zum Beispiel die Text-Datei mit den russischen Übersetzungen muss mit MyCode.RU.ini aufgerufen werden. Schließlich muss die die Anzahl der Sprach-Dateien der Anzahl der Sprachen, in die Sie übersetzen möchten, entsprechend;
  • Kopieren Sie die Sprach-Dateien in das Verzeichnis MetaTrader 5\MQL5\Files\Languages.

Der Code:

  • Laden Sie die Übersetzungsdateien (# include <Traslator.mqh>) in Ihren Code (Expert Advisor, Indikator, Skript);
  • Erstellen Sie ein Objekt. Zum Beispiel, CTranslator ru;
  • Ergänzen Sie ein Eingabeparameter für die Übersetzung. Zum Beispiel, input ENUM_LANGUAGES InpToLanguage = RU;
  • Initialisierung des Objekt. Zum Beispiel, ru.init(MQL5InfoString(MQL5_PROGRAM_NAME), InpToLanguage);
  • Verwenden Sie eine dieser Methoden, wenn nötig. Zum Beispiel, ru.print("Dein Text").
Wichtig: Wenn die erforderliche Datei nicht vorhanden ist oder das passenden Alias fehlt, dann wird die zu übersetzende Zeichenkette unübersetzt zurückgegeben.

Als Verwendungsbeispiel wurde das Skript Sample.mq5 und zwei Sprachdateien, Russisch und Japanisch, angehängt. Das Ergebnis des Skripts (starten Sie es zunächst auf dem Chart mit dem Parameter übersetzen ins Russische, dann ins Japanische):

Übersetzungsbeispiel

Empfehlungen:

Obwohl Aliasse in jeder Sprache geschrieben werden können und nur Abkürzungen statt ganzer Sätze sein können. Ist es besser sie in Englisch ohne Abkürzung zu schreiben. Daher:
  • auch wenn es keine Sprachdatei gibt, werden alle Meldungen werden in Englisch angezeigt,
  • besteht keine Notwendigkeit einer Datei für eine Übersetzung ins Englische (die, die einmal unter Joomla CMS Erweiterungen geschrieben haben, verstehen das besser, die Logik ist die Gleiche).

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/1484

Exp_ColorCoppock Exp_ColorCoppock

Ein Handelssystem mit dem ColorCoppock Oszillator.

Range Range

Der Range Indikator berechnet die Kursspanne der aktuellen Bar

Trend Trend

Der Trend-Indikator in Form farbiger Wolken

TTF TTF

Der klassische TTF Indikator mit T3-Glättung und eine Signallinie.