Как определить язык терминала (русский, английский и т.д.)? - страница 2

 
Alexey Volchanskiy:

Пока такое не было надо. Ладно, не будем спорить, вариант годный, но больше трудозатрат.

А вот тут полностью с Вами согласен, в штучном производстве трудозатраты совершенно несопоставимые с результатом,

поэтому адаптацию по языку не разу таким способом не делал, но некоторые критические параметры в экранный интерфейс выносил.

Удачного дня!

 
Alexey Volchanskiy:

Так проще же сделать два файла с input параметрами на двух языках, потом условная компиляция. Правда будут 2 .ex* и неясно, как быть с тем же Маркетом.

У меня во всех программах все инпуты на EN, для "своих кого знаю" RU

 
Задавался тоже этим вопросом, но решения пока как-то не нашел.
Для маркета вообще без описания делаю. Ну а так в зависимости от желания клиента.
 

Нужно просить MQ реализовать нечто подобное:

input int      InpIntValue =  15;   // Description of the parameter in English // Описание параметра на русском (или ином языке)

и в зависимости от языка терминала, и/или некоего дефайна (__DESCR_ONE__, __DESCR_TWO__), выводить соответствующее описание.

 
Artyom Trishkin:

Нужно просить MQ реализовать нечто подобное:

и в зависимости от языка терминала, и/или некоего дефайна (__DESCR_ONE__, __DESCR_TWO__), выводить соответствующее описание.

Вроде(если не ошибаюсь) как пару лет назад, Ренат говорил что в будущем реализуют эту возможность.

 

вот такой костыль работает, но нужно руками перед компиляцией ENG / RUS писать, но как бы уже некая универсальность

#property strict
#property show_inputs

#define RUS

#ifdef RUS
input int param1 = 1;   //Параметр № 1
input int param2 = 2;   //Параметр № 2
input int param3 = 3;   //Параметр № 3
#else 
input int param1 = 11;   //Parameter № 1
input int param2 = 22;   //Parameter № 2
input int param3 = 33;   //Parameter № 3
#endif 
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("param1 = ",param1," , param2 = ",param2," , param3 = ",param3);
  }
//+------------------------------------------------------------------+
 

Подобное уже года 4 назад примерно обсуждалось. А именно хорошо бы сделать так, чтобы ненужные поля можно было скрывать в зависимости от выбора. Например есть в роботе 3 алгоритма работы и вот эта длинная "портянка" с ненужными настройками для алгоритма работы 2 и 3 совсем ненужна, если выбран алгоритм работы 1. По теме не сложно вроде-бы добавить дефайны если выбран русский язык терминала то пусть будет присутствовать дефайн LANGUAGE_RUSSIAN и.т.д. Тогда при запуске такое определение здорово работать будет. Хотя в коде это не очень будет выглядеть.

#ifdef LANGUAGE_RUSSIAN
input int param1 = 1;   //Параметр № 1
input int param2 = 2;   //Параметр № 2
input int param3 = 3;   //Параметр № 3
#else 
input int param1 = 11;   //Parameter № 1
input int param2 = 22;   //Parameter № 2
input int param3 = 33;   //Parameter № 3
#endif 
 
Konstantin Nikitin:
Задавался тоже этим вопросом, но решения пока как-то не нашел.
Для маркета вообще без описания делаю. Ну а так в зависимости от желания клиента.

Под локализацией инпутов я имею в виду комменты, в которых описывается смысл переменной

 
Alexey Valeev:

Подобное уже года 4 назад примерно обсуждалось. А именно хорошо бы сделать так, чтобы ненужные поля можно было скрывать в зависимости от выбора. Например есть в роботе 3 алгоритма работы и вот эта длинная "портянка" с ненужными настройками для алгоритма работы 2 и 3 совсем ненужна, если выбран алгоритм работы 1. По теме не сложно вроде-бы добавить дефайны если выбран русский язык терминала то пусть будет присутствовать дефайн LANGUAGE_RUSSIAN и.т.д. Тогда при запуске такое определение здорово работать будет. Хотя в коде это не очень будет выглядеть.

В идеале вообще, чтобы инпуты были отдельным классом с методами, которые бы определяли, что и как показывать ))

 
Igor Makanu:

вот такой костыль работает, но нужно руками перед компиляцией ENG / RUS писать, но как бы уже некая универсальность

Так сейчас и делаем, иначе никак. Я еше части RU и EN разношу по разным .h файлам.

Причина обращения: