что касается паролей - то мне кажется алгоритм работы проги вполне очевиден - есть словарь сочетаний букв в русских словах, есть такой же для английских слов. Если набираемое слово отсутствует в словаре текущего языка - слово переводится в другую раскладку.
почему именно так?
- используются словари сущестсвующих слов, а не всех прочих возможных - по причине конечности первого и бесконечности второго.
в папке punto есть папка Data.
в ней есть файл triggers.dat, который представляет то, что я назвал словарями выше - только словарь каждого языка - в другой раскладке. Т.е. английскими буквами там представлены начала русских слов, а русскими - начала английских. И как тока вы наберете эти несколько букв, они будут переведены в другую раскладку.
а файл ps.dat очевидно содержит исключения.
файлы можно открывать в блокноте.
Соответственно, когда вы набираете пароль, нет способа определить, что это пароль и переводить его не надо - по самому паролю. Можно только косвенно, например, по тому, что текст набирается в поле для пароля (которое со звездочками).
Так что если кто придумает способ определения паролей - пишите, я думаю разработчики punto это оценят.