Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Оцени его работу в терминале MetaTrader 5
Translator - библиотека для MetaTrader 5
- Просмотров:
- 2428
- Рейтинг:
- Опубликован:
- 2013.01.23 05:25
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Класс предназначен для локализации сообщений программ MQL5. Словом, всё что выводится в журнал функцией Print(), а также текстовые сообщения выводимые в Alert(), Comment(), MessageBox() можно сделать мультиязычными в одном коде.
Методы класса:
- bool init(string progName, ENUM_LANGUAGES lang) - инициализировать объект. На вход подаём название программы и код языка из перечисления в файле LanguagesEnum.mqh.
- string tr(string str) - переводит строку str*.
- void print(string str) - печатает в журнале перевод строки str*.
- void alert(string str) - выводит алерт с переведённой строкой*.
- void comment(string str) - выводит комментарий с переведённой строкой*.
- int messageBox(string text, string caption=NULL, int flags=0) - выводит в окне сообщений переведённый текст*, также переводит заголовок окна*. Возвращает один из кодов возврата MessageBox(). Также как и MessageBox(), этот метод нельзя вызывать из пользовательских индикаторов.
- * - Если в языковом файле нет перевода эквивалента - вернёт/выведет входящую строку.
Как использовать:
- Файлы Translator.mqh и LanguagesEnum.mqh загрузить в папку MetaTrader 5\MQL5\Include. В первом находится сам класс, во втором - перечисление языков в соответствии со стандартом ISO 639 (на данном этапе в файле перечислены только те языки, на которые переведён терминал. При необходимости можно добавить код любого другого языка, желательно по стандарту ISO 639, чтобы не было путаницы).
- Создать текстовый файл перевода на "свой" язык в формате Alias=Translation, где Alias - псевдоним переводимой строки и он же строка-аргумент с которым впоследствии вызываются методы класса, а Translation - текст перевода, который будет в итоге выведен.
- Кодировка языкового файла(ов): UTF8(без BOM).
- Название файла должно строго соответствовать следующему формату: <Название MQL5 кода>.<Код языка прописными латинскими>.ini. Например, текстовый файл с переводом на русский язык для кода MyCode должен называться MyCode.RU.ini. В конечном счёте, количество языковых файлов должно соответствовать количеству языков, на которые вы хотите переводить сообщения.
- Созданные языковые файлы положить в папку MetaTrader 5\MQL5\Files\Languages.
В коде:
- В коде (эксперте, индикаторе, скрипте) подключить файл переводчика (#include <Traslator.mqh>);
- Создать объект. Например: CTranslator ru;
- Добавить входной параметр для перевода . Например: input ENUM_LANGUAGES InpToLanguage = RU;
- Инициализировать объект. Например: ru.init(MQL5InfoString(MQL5_PROGRAM_NAME), InpToLanguage);
- При необходимости использовать любой из методов. Например: ru.print("Your text").
Важно: если необходимый файл не существует или в файле нет подходящего алиаса, будет выведена строка, переданная методу в качестве аргумента.
В качестве наглядного примера прикреплён скрипт Sample.mq5 и два языковых файла к нему - для перевода на русский и японский языки. Результат работы скрипта (сначала запущен на графике с параметром перевода на русский, потом на японский):
Советы:
Хотя алиасы можно писать на любом языке и, кроме того, вместо целой фразы алиас может быть просто сокращением, лучше сразу писать на английском и без сокращений. Таким образом:- даже если нет ни одного языкового файла, все сообщения будут выведены на английском,
- автоматом отпадает необходимость писать специальный файл для перевода на английский (тем, кто писал расширения под CMS Joomla вероятно понять проще - используется та же логика).
Triple Bolling
Расширенное представление индикатора Bollinger Bands
Exp_ColorCoppockТорговая система с использованием осциллятора ColorCoppock.