Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

LanguageMulti - библиотека для MetaTrader 5

Просмотров:
1324
Рейтинг:
(9)
Опубликован:
2019.06.13 18:20
Обновлен:
2019.09.02 17:38
\MQL5\Scripts\ \MQL5\Include\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Библиотека позволяет использовать мультиязычность в своих проектах.

Основные возможности:

  • лёгкое и удобное использование нескольких языков;
  • автоопределение языка терминала;
  • перевод системных и пользовательских ошибок, можно создавать несколько наборов пользовательских переводов;
  • вывод места ошибки/сообщения: имя файла, имя метода, номер строки;
  • корректная работа с языками при не полном или отсутствующем переводе;
  • возможность использования до двух параметров

Пример использования:

//+------------------------------------------------------------------+
//|                                               Demo LanguageMulti |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#include <LanguageMulti.mqh> //Подключение библиотеки
#property script_show_inputs

input eLng language=lng_Auto;//Выбор языка

static eLng Test_lngs[]={lng_Russian,lng_English};//Используемые языки
string     Test_strings[][32]=
  {//Строки сообщений и ошибок для языков, которые указаны выше
     {"Это ошибка, больше так не делайте","Eto oshibka, bolshe tak ne delaite"}, //Сообщения на двух языках
     {"Ошшшшшшиииибка %s","Errrrrroooooorrrrr %s"},                              //Сообщение с одним параметром, максимум может быть два
     {"","Where is my money?"},                                                  //Отсутствует русский язык, будет использоваться английский
     {"",""},                                                                    //Неизвестный код ошибки
  };
//Инициализируем список сообщений с именем Test, получаем id
int id_strings=cLng::Set_users_errors_messages("Test",Test_lngs,Test_strings);
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   cLng::lng_select=language;             //Используем язык, который выбрали при запуске скрипта

   cLng_add_user(id_strings,0,"","");
   cLng_add_user(id_strings,1,"11","");
   cLng_add_user(id_strings,2,"","");
   cLng_add_user(id_strings,3,"","");
   cLng_add_user(id_strings,4,"","");
   SymbolName(999999,false);              //Тут ошибка
   cLng_add(GetLastError(),"","");        //Выведем сообщение об ошибке
   string my_string_error=cLng::CodeDescription(ERR_HISTORY_NOT_FOUND);//Расшифровываем код ошибки
   Print("ERR_HISTORY_NOT_FOUND  ",my_string_error);

   Print("____________Дальше всё тоже самое, только на английском____________");

   cLng::lng_select=lng_English;          //Принудительно устанавливаем английский язык
   cLng_add_user(id_strings,0,"","");
   cLng_add_user(id_strings,1,"11","");
   cLng_add_user(id_strings,2,"","");
   cLng_add_user(id_strings,3,"","");
   cLng_add_user(id_strings,4,"","");
   SymbolName(999999,false);
   cLng_add(GetLastError(),"","");

   my_string_error=cLng::CodeDescription(ERR_HISTORY_NOT_FOUND);
   Print("ERR_HISTORY_NOT_FOUND  ",my_string_error);
  }
Результат работы скрипта:
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->28->u0.0(1)} => Test: Это ошибка, больше так не делайте
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->29->u0.1(1)} => Test: Ошшшшшшиииибка 11
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->30->u0.2(1)} => Test: Where is my money?
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->31->u0.3(1)} => Test: Неизвестный пользовательский код{0.3(,)}
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->32->u0.4(1)} => Test: Неизвестный пользовательский код{0.4(,)}
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->34->s4301(1)} => Неизвестный символ
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       ERR_HISTORY_NOT_FOUND  Запрашиваемая история не найдена
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       ____________Дальше всё тоже самое, только на английском____________
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->41->u0.0(1)} => Test: Eto oshibka, bolshe tak ne delaite
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->42->u0.1(1)} => Test: Errrrrroooooorrrrr 11
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->43->u0.2(1)} => Test: Where is my money?
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->44->u0.3(1)} => Test: Unknown user code{0.3(,)}
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->45->u0.4(1)} => Test: Unknown user code{0.4(,)}
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       {Test2.mq5->OnStart->47->s4301(1)} => Unknown symbol
2019.06.13 18:48:50.984 Demo LanguageMulti(EURUSD,M1)       ERR_HISTORY_NOT_FOUND  Requested history not found


MA Trailing MA Trailing

Трейлинг прибыльных позиций на текущем символе по индикатору iMA (Moving Average, MA)

OBJ_Label_Example OBJ_Label_Example

Пример советника, иллюстрирующего работу с графическим объектом OBJ_LABEL

High Low First Bar High Low First Bar

Индикатор отображает уровни High и Low первого бара на текущем таймфрейме за день

Channel of two iMA Breakdown Channel of two iMA Breakdown

Пробой канала из двух iMA (Moving Average, MA)