RUS <-> ENG

Clarion, Clarion 7

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

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

RUS <-> ENG

Сообщение Игорь Столяров »

Привет всем !

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

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

Заранее спасибо ! :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

RUS <-> ENG

Сообщение Admin »

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

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

                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
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

RUS <-> ENG

Сообщение Yufil »

Рассказать юзеру, например, про Punto Switcher или Keyboard Ninja. Или отсюда подобрать...
http://punto-switcher.su/faq/analog-windows/
Ну и в нужных полях явным образом устанавливать кириллическую раскладку, само собой...
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

RUS <-> ENG

Сообщение Игорь Столяров »

Спасибо ! :) Сейчас попробую. Про пунты - понятно, но это дополнительный чужой софт и т.д.
За теми кто отстал - не возвращаться. (С) Кодекс
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

RUS <-> ENG

Сообщение Yufil »

Пунта с CW10 как-то не уживается, курсор теряется, а без неё скучно как-то... А Нинзю ставил юзерам когда-то. Благодарили :D
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

RUS <-> ENG

Сообщение Admin »

Я в некоторых случая у поля ввода показываю текущий язык
2018-06-28_17-23-36.png
2018-06-28_17-23-36.png (6.01 КБ) 3600 просмотров
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

RUS <-> ENG

Сообщение Игорь Столяров »

Admin писал(а): 28 Июнь 2018, 10:24Я в некоторых случая у поля ввода показываю текущий язык
Круто ! Но это ведь как-то надо обновлять при переключении раскладки, в т.ч. и в неактивных окнах.
Рассылать по потокам и обрабатывать события … Уф ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

RUS <-> ENG

Сообщение Admin »

Игорь Столяров писал(а): 28 Июнь 2018, 10:44Но это ведь как-то надо обновлять при переключении раскладки, в т.ч. и в неактивных окнах.
Вы это себе тут нафантазировали :)
Это редкий случай применения.
Типа, поле для поиска товара у службы поддержки. И поиск динамически фильтрует очередь по подстроке.
Так что тупо на таймере висит.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

RUS <-> ENG

Сообщение Игорь Столяров »

Admin писал(а): 28 Июнь 2018, 9:27Вот на коленке сделал:
Спасибо, всё работает, но потребовался небольшой допил.
Английское: ><RF в русскую ЮБКА не переводилось. :(
За теми кто отстал - не возвращаться. (С) Кодекс
AndreyH
Новичок
Сообщения: 5
Зарегистрирован: 11 Сентябрь 2018, 19:39

RUS <-> ENG

Сообщение AndreyH »

А как отобразить русский текст в списке темплейтов или списке процедур app-шника для Clarion10. Например, при редактировании темплейта нормальный русский заголовок, а в списке темплейтов - кракозябры. В Tools-Options все посмотрел, но нужной настройки не нашел.
Заранее благодарю.
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

RUS <-> ENG

Сообщение Ал »

AndreyH писал(а): 13 Сентябрь 2018, 20:45А как отобразить русский текст в списке темплейтов или списке процедур app-шника для Clarion10. Например, при редактировании темплейта нормальный русский заголовок, а в списке темплейтов - кракозябры.
Заранее благодарю.
глянь сюда viewtopic.php?f=1&t=3944 ммм --
Кракозябры в IDE
Последний раз редактировалось Ал 13 Сентябрь 2018, 20:50, всего редактировалось 1 раз.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

RUS <-> ENG

Сообщение Дед Пахом »

С уважением, ДП
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

RUS <-> ENG

Сообщение PavelNK »

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 »

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

Спасибо
Ответить