Локализация

 

Интересно узнать, кто и каким образом решает проблемы локализации своих программ. 

На сегодняшний день мною эта проблема решалась путем добавления в программу настроечного параметра с выбором двух-трех языков. Далее в коде при необходимости вывода текстового сообщения осуществлялся выбор текстовой строки, написанной на соответствующем языке.

Такой подход видится не очень удобным, т. к., во-первых, не всякий пользователь догадается переключиться на закладку "Входные параметры" для выбора нужного ему языка. Решить можно, если программе будет доступно определение текущего языка терминала. В итоге программа сможет автоматически подстраиваться под нужный язык. Ну а идеальным решением было бы внедрение строковых таблиц, как в VS.

Во-вторых, остается проблема названия входных параметров, видимых на закладке "Входные параметры". Пока эта проблема решается путем установки наименований настроечных параметров на английском языке, исходя из того, что пользователи должны владеть этим языком. Но ведь это далеко не так. В русскоязычном сегменте многим пользователям английский язык знаком только по наслышке. Получается, что было бы неплохо организовать отображение настроечных параметров на том языке, который установлен в терминале. Это все при условии, конечно, если в коде программы предусмотрены различные варианты названий параметров.

 
Приходится все выводимые на печать сообщения писать на английском языке.
 
Да, в журналах - это общепринятая практика. Я имею в виду те сообщения, которые выводятся на экран (график).
 

Да, было бы замечательно, если бы разработчики сделали возможность получать какой-нибудь двузначный код текущего языка в терминале, например EN, RU, PT, BR (по стандартам ISO, например).

Можно было бы сделать пользовательскую локализацию индикаторов и советников, и те у кого, допустим, язык терминала русский, получали бы сообщения на русском, а те у кого английский - на английском, и т.д.

О возможности локализации названий входных параметров даже уже и не мечтаю..

 
Scriptong:

Интересно узнать, кто и каким образом решает проблемы локализации своих программ. 

На сегодняшний день мною эта проблема решалась путем добавления в программу настроечного параметра с выбором двух-трех языков. Далее в коде при необходимости вывода текстового сообщения осуществлялся выбор текстовой строки, написанной на соответствующем языке.

Такой подход видится не очень удобным, т. к., во-первых, не всякий пользователь догадается переключиться на закладку "Входные параметры" для выбора нужного ему языка. Решить можно, если программе будет доступно определение текущего языка терминала. В итоге программа сможет автоматически подстраиваться под нужный язык. Ну а идеальным решением было бы внедрение строковых таблиц, как в VS.

Во-вторых, остается проблема названия входных параметров, видимых на закладке "Входные параметры". Пока эта проблема решается путем установки наименований настроечных параметров на английском языке, исходя из того, что пользователи должны владеть этим языком. Но ведь это далеко не так. В русскоязычном сегменте многим пользователям английский язык знаком только по наслышке. Получается, что было бы неплохо организовать отображение настроечных параметров на том языке, который установлен в терминале. Это все при условии, конечно, если в коде программы предусмотрены различные варианты названий параметров.

 Думать вредно, сделай пару версий установок с разными языками, тоесть надо русский качаешь русскую, надо англ качай англискую установку и тд... 
 
GriFFon4ik:
 Думать вредно, сделай пару версий установок с разными языками, тоесть надо русский качаешь русскую, надо англ качай англискую установку и тд... 

Да, этот вариант тоже уже использовался. В итоге после внесения небольших изменений в программу делаешь одну и ту же работу по созданию инсталяхи столько раз, сколько локализаций поддерживается. У меня было три локализации (русский, английский, польский). Еще та работенка...

А что делать, если локализаций с десяток?

 

Посмотрите: https://www.mql5.com/ru/docs/constants/environment_state/terminalstatus#enum_terminal_info_string

Print("TERMINAL_LANGUAGE = ",TerminalInfoString(TERMINAL_LANGUAGE));
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 

А как же согласовать локализацию ( вывод сообщений на языке терминала) и требование в правилах Маркета: 

IV. Продукты

...
12. Наименования входных параметров, все сообщения и скриншоты в описании продукта должны быть на английском языке.
 

Ух ты. Спасибо.

Проверил, работает не только в MQL5, но и, что самое приятное, в MQL4. Итоговые строки отображаются в том виде, который наблюдается в меню "Вид" - "Languages". Это заметно упрощает дело.

 

P. S. Открыл для себя еще и TERMINAL_CODEPAGE. 

 

Вот Вам и локализация. Захотел выложить скриншот к продукту на русском языке, так как продукт определяет английский и русский язык:

Скриншот сообщения на русском 

и модератор зарезал этот скриншот. 

 
barabashkakvn:

Вот Вам и локализация. Захотел выложить скриншот к продукту на русском языке, так как продукт определяет английский и русский язык:

 

и модератор зарезал этот скриншот. 

Это от того, что продукт представляется всему миру и локальные версии скриншотов неприемлемы.

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

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