Вот скажите, почему у меня нет проблем? При том, что как таковой текст я пишу сравнительно редко. Чаще - код.
я бы лучше спросил зачем он у вас вообще стоит в таком случае.
Я во всех действия веду себя как программа и чем проще код и чем меньше переменных, тем больше времени я могу заниматься решением задачи а не обслуживанием инфраструктуры. Вот мой алгоритм работы:
Настраиваем систему на то, чтобы она не запоминала раскладку для отдельных окон, то есть в голове ты держим 1 бит информации - RU/EN и получаем примерно такой алгоритм:
:begin
bool current_lang := 0 //0 - EN, 1 - RU
while TRUE do
begin
if not TypeText() then //здесь TypeText() - процесс набора, который нам может вернуть или 1 когда раскладка верна или 0 когда не верна
begin
delete_last_text // удалить последнее набранное (обычно 2-3 символа)
current_lang := not current_lang // меняем раскладку
end
else
print_text // отображаем набор
end
:end
В случае использования пунто или чего-то подобного придется следить за:
1) добавлен ли софт в исключения
2) сижу ли я за ПК где установлен этот софт, если нет, то я должен постоянно следить за тем что набираю
3) собственно вообще всегда ставить софт если система перенастроена например
4) усложняется алгоритм работы
:begin
bool current_lang := 0 //0 - EN, 1 - RU
while TRUE do
begin
if not TypeText() then //здесь TypeText() - процесс набора, который нам может вернуть или 1 когда раскладка верна или 0 когда не верна
if not doPunto() then
begin
delete_modify_last_text // если программа что-то сделал не так, то нужно удалить набор или отменить действие программы
current_lang := not current_lang // меняем раскладку или нет? а какая раскладка вообще активная?
end
else
print_text // отображаем набор
end
:end
То есть второй метод не универсальный в работе. По этой же причине никогда не понимал пользователей браузера Opera.