RUS <-> ENG

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3515
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

RUS <-> ENG

Сообщение Игорь Столяров » 28 Июнь 2018, 8:13

Привет всем !

Не хочу изобретать велосипед. :)
Подскажите пожалуйста, существует где-нибудь готовый метод для конвертации строк,
набранных в неправильной раскладке. Причём можно даже без детектирования.

То есть юзер хотел набрать "мышь белая", но из-за неправильной раскладке ввёл "vsim ,tkfz".
и что бы можно было быстро это конвертнуть в русскую раскладку ввода (и наоборот).

Заранее спасибо ! :)
«V» значит Вендетта !

Аватара пользователя
Admin
Администратор
Сообщения: 3315
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

RUS <-> ENG

Сообщение Admin » 28 Июнь 2018, 9:27

Вот на коленке сделал:

Код: Выделить всё

                PROGRAM
                MAP
                  convert2(string str, byte direction),string
                END

  CODE
  message(convert2('Ghbvth yf heccrjv zpsrt фтв щт Утпдшыр!', 3))

convert2    procedure(string str, byte direction)!,string
str1        string('йцукенгшщзхъфывапролджэячсмитьбюё')
str2        string('qwertyuiop[]asdfghjkl;''zxcvbnm,.`')
c           long
l           long
p           long
  code
  l = len(clip(str))
  loop c = 1 to l
    case direction
    ! russian to english = 1
    of 1
      p = instring(lower(str[c]),str1,1,1)
      if p
        if str[c] = lower(str[c])
          str[c] = str2[p]
        else
          str[c] = upper(str2[p])
        end
      end
    ! english to russian = 2
    of 2
      p = instring(lower(str[c]),str2,1,1)
      if p
        if str[c] = lower(str[c])
          str[c] = str1[p]
        else
          str[c] = upper(str1[p])
        end
      end
    ! toggle language = 3
    of 3
      p = instring(lower(str[c]),str1,1,1)
      if p
        if str[c] = lower(str[c])
          str[c] = str2[p]
        else
          str[c] = upper(str2[p])
        end
      else
        p = instring(lower(str[c]),str2,1,1)
        if p
          if str[c] = lower(str[c])
            str[c] = str1[p]
          else
            str[c] = upper(str1[p])
          end
        end
      end
    end
  end
  return str
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Yufil
Ветеран движения
Сообщения: 1008
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

RUS <-> ENG

Сообщение Yufil » 28 Июнь 2018, 9:37

Рассказать юзеру, например, про Punto Switcher или Keyboard Ninja. Или отсюда подобрать...
http://punto-switcher.su/faq/analog-windows/
Ну и в нужных полях явным образом устанавливать кириллическую раскладку, само собой...

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3515
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

RUS <-> ENG

Сообщение Игорь Столяров » 28 Июнь 2018, 9:57

Спасибо ! :) Сейчас попробую. Про пунты - понятно, но это дополнительный чужой софт и т.д.
«V» значит Вендетта !

Yufil
Ветеран движения
Сообщения: 1008
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

RUS <-> ENG

Сообщение Yufil » 28 Июнь 2018, 10:21

Пунта с CW10 как-то не уживается, курсор теряется, а без неё скучно как-то... А Нинзю ставил юзерам когда-то. Благодарили :D

Аватара пользователя
Admin
Администратор
Сообщения: 3315
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

RUS <-> ENG

Сообщение Admin » 28 Июнь 2018, 10:24

Я в некоторых случая у поля ввода показываю текущий язык
2018-06-28_17-23-36.png
2018-06-28_17-23-36.png (6.01 КБ) 1230 просмотров
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3515
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

RUS <-> ENG

Сообщение Игорь Столяров » 28 Июнь 2018, 10:44

Admin писал(а):
28 Июнь 2018, 10:24
Я в некоторых случая у поля ввода показываю текущий язык
Круто ! Но это ведь как-то надо обновлять при переключении раскладки, в т.ч. и в неактивных окнах.
Рассылать по потокам и обрабатывать события … Уф ...
«V» значит Вендетта !

Аватара пользователя
Admin
Администратор
Сообщения: 3315
Зарегистрирован: 05 Июль 2005, 14:59
Откуда: Хабаровск
Контактная информация:

RUS <-> ENG

Сообщение Admin » 28 Июнь 2018, 12:33

Игорь Столяров писал(а):
28 Июнь 2018, 10:44
Но это ведь как-то надо обновлять при переключении раскладки, в т.ч. и в неактивных окнах.
Вы это себе тут нафантазировали :)
Это редкий случай применения.
Типа, поле для поиска товара у службы поддержки. И поиск динамически фильтрует очередь по подстроке.
Так что тупо на таймере висит.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3515
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

RUS <-> ENG

Сообщение Игорь Столяров » 28 Июнь 2018, 17:29

Admin писал(а):
28 Июнь 2018, 9:27
Вот на коленке сделал:
Спасибо, всё работает, но потребовался небольшой допил.
Английское: ><RF в русскую ЮБКА не переводилось. :(
«V» значит Вендетта !

AndreyH
Новичок
Сообщения: 5
Зарегистрирован: 11 Сентябрь 2018, 19:39

RUS <-> ENG

Сообщение AndreyH » 13 Сентябрь 2018, 20:45

А как отобразить русский текст в списке темплейтов или списке процедур app-шника для Clarion10. Например, при редактировании темплейта нормальный русский заголовок, а в списке темплейтов - кракозябры. В Tools-Options все посмотрел, но нужной настройки не нашел.
Заранее благодарю.

Ал
Ветеран
Сообщения: 737
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Россия

RUS <-> ENG

Сообщение Ал » 13 Сентябрь 2018, 20:49

AndreyH писал(а):
13 Сентябрь 2018, 20:45
А как отобразить русский текст в списке темплейтов или списке процедур app-шника для Clarion10. Например, при редактировании темплейта нормальный русский заголовок, а в списке темплейтов - кракозябры.
Заранее благодарю.
глянь сюда viewtopic.php?f=1&t=3944 ммм --
Кракозябры в IDE
Последний раз редактировалось Ал 13 Сентябрь 2018, 20:50, всего редактировалось 1 раз.

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2039
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

RUS <-> ENG

Сообщение Дед Пахом » 13 Сентябрь 2018, 20:50

С уважением, ДП

PavelNK
Активист
Сообщения: 197
Зарегистрирован: 15 Март 2011, 8:02

RUS <-> ENG

Сообщение PavelNK » 14 Сентябрь 2018, 0:29

AndreyH писал(а):
13 Сентябрь 2018, 20:45
А как отобразить русский текст в списке темплейтов или списке процедур app-шника для Clarion10. Например, при редактировании темплейта нормальный русский заголовок, а в списке темплейтов - кракозябры. В Tools-Options все посмотрел, но нужной настройки не нашел.
Заранее благодарю.
clarion.env
! Default Environment file for Clarion.exe
CLASYSTEMCHARSET=204
CLACHARSET=WINDOWS
CLACOLSEQ=WINDOWS
CLADIGRAPH=
CLACASE=WINDOWS
CLAMON=
CLAMONTH=
CLAAMPM=
CLAMSG=
CLABUTTON=
CLALAYOUT=

AndreyH
Новичок
Сообщения: 5
Зарегистрирован: 11 Сентябрь 2018, 19:39

RUS <-> ENG

Сообщение AndreyH » 14 Сентябрь 2018, 13:30

Помогло:
CLASYSTEMCHARSET=204
CLACHARSET=Cyrillic

Спасибо

Ответить