이 프로그램은 제가 예전에 영어 dvorak 자판 연습할 때 애용했던 프로그램입니다.
타자 연습하기 좋은 프로그램입니다.
전에 tuxtype 을 한글화할까 고민도 해보았는데 sdl 기반인 것은 둘째로 치더라도
타자 게임 방식이 한국어에는 맞지 않는다는 판단이 들었습니다.
그래서 예전에 애용했던 klavaro 의 소스를 살펴보았는데 한국어 지원하기 편하게 되어있어서
이번에 klavaro에 한국어를 지원해봤습니다.
미완료 부분
po/ko.po - 번역 파일
src/entry_get_im_context.c
src/entry_get_im_context.c 파일은 pre-edit text를 commit할 수 있도록 하기 위해 만들었는데,
gtkentry의 private 영역을 사용하기 위한 것이라 gtk 버전에 의존적이라서
사용자의 gtk 버전에 맞게 수정해주어야 합니다. 조만간 ubuntu 배포판의 gtk 버전을 확인하여 작업할 예정
버전 확인 명령어: dpkg -l libgtk-3-0
그런데 po/ko.po 을 누가 좀 번역해 주시면 좋겠습니다. ㅠㅠ
모두 완료 후에 klavaro 개발자님께 패치보내려고 합니다.
gtkentry의 private 영역을 사용하는 부분 때문에 패치를 받아줄지 모르겠지만요.
[quote="hodong":1qwpmsdc]한국어 지원 프로젝트 주소 https://bitbucket.org/hodong/klavaro-3.01[/quote:1qwpmsdc]한국어 지원 프로젝트 주소 링크 클릭해 보니 한국어는 한 글자도 안 보이네요. 간단하게라도 한국어로 설명해 주시면 어떨까요?
[url=http://www.ubuntu-kr.org/viewtopic.php?f=6&t=23781:33jr9sj6]글타래 보기 - 우분투 한글타자 연습 UTMaster 정식 버전(최종) - 우분투 한국 커뮤니티 •[/url:33jr9sj6]
현 커뮤니티 회원 seuwaanee님이 만든 우분투 한글 타자 연습기 UTMaster 있습니다.
GTK 버전에 종속적이던 것을 버전에 비종속적으로 바꿨습니다.
gtk entry에 focus changed 신호를 보내주는 꼼수를 이용하여
gtk_entry_reset_im_context 가 항상 im을 리셋하게 됩니다.
조만간 코드를 커밋할 것이고 ko.po는 메뉴 같이 중요한 부분만 직접 번역하고
깔끔하게 번역한다고 번역에 한달 정도를 소비할 수는 없으니
나머지는 구글 번역기 돌려서 쓸만한 것만 살린 후 원개발자님께 패치보낼 예정입니다.
패치가 수용되면 1~3년 후에 배포판에 적용될 듯합니다.
그리고 프로젝트 페이지에 한글 나오게 하려면 README 파일을 변경해야 하는데 README 파일을 제 마음대로 바꿀 수 없습니다. 그래픽 추가하는 것도 마찬가지고요.
왜냐하면 원저작자님께 패치보낼 목적이기 때문에 그러한 부분은 원저자님과 의견을 교환해야 하는 부분이기 때문입니다.
세벌식을 지원하지 않는다고 이상하게 생각하시는 것 같은데,
세벌식을 지원하지 않는 이유를 설명드리겠습니다.
두벌식의 경우
dubeolsik_kr.kbd 파일에
[code:nbiely3n]`1234567890-=
ㅂㅈㄷㄱㅅㅛㅕㅑㅐㅔ[]
ㅁㄴㅇㄹㅎㅗㅓㅏㅣ;’
ㅋㅌㅊㅍㅠㅜㅡ,./
~!@#$%^&*()_+
ㅃㅉㄸㄲㅆㅛㅕㅑㅒㅖ{}|
ㅁㄴㅇㄹㅎㅗㅓㅏㅣ:"
ㅋㅌㅊㅍㅠㅜㅡ<>?[/code:nbiely3n]
이런 내용이 있습니다.
위 네 줄은 쉬프트키 누르지 않은 상태에서 키보드를 친 것이고,
아래 네 줄은 쉬프트키를 누른 상태에서 키보드를 친 것입니다.
klavaro 타자 연습 프로그램에서 자리 연습을 할 때,
검지 부분을 예를 들자면, 위 파일에서 4번째 열에 있는 ‘ㄹ’, ‘ㅓ’ 등을 출력해줍니다.
세벌식 파일을 입력해 넣었다고 할 때, 어떻게 처리가 될까요?
끝소리 ㅇ(A자리), 첫소리 ㅇ(J자리)을 ibus에서 각각 입력을 하면 어떻게 보일까요?
ㅇ(A자리)을 누르고 스페이스를 누르고
ㅇ(J자리)을 누르고 스페이스를 누르면 눈으로 보기에는 똑같이 보입니다. 코드값은 확인해보지 않았지만요.
그런데 스페이스 누르는 것 없이 ㅇ(A자리)ㅇ(J자리) 을 연속해서 누르면 어떻게 보일까요?
klavaro 에서는 세벌식 파일에 입력된 값을 출력해줍니다. A자리에 종성ㅇ, J자리에 초성ㅇ을 넣으면
ibus는 유니코드 한글 호환 자모를 출력하므로 코드값이 달라서 처리가 klavaro에서 오타로 처리될 것입니다.
그렇다면 모든 사람이 ibus를 사용하는 것은 아닐터,
타자기처럼 초성을 입력하면 초성을 출력하고 종성을 입력하면 종성을 출력할 한글 입력기를 사용하게 되면 또 다른 결과가 나오겠죠. 그런 입력기가 있을지 모르겠습니다.
초성, 중성, 종성 자모가 유니코드 영역 내에 별도로 존재하는데 초성,중성없이 종성만을 치면 옆에 있는 글자가 달라붙어 보입니다. 그리고 그걸 제대로 처리할 수 있는 폰트가 있을지도 모르겠고요.
말로 설명하니까 말만 길어지는데…
세벌식의 경우 고려해야 할 부분이 한 두가지가 아닙니다.
klavaro에 세벌식을 적용하려면 klavaro 원래 코드보다 세벌식에 처리에 대한 코드량이 더 많아질 것 같습니다.
그렇게 되면 타자 연습 프로그램을 새로 만드는 작업량이 되어 버립니다.
아무튼 위와 같은 이유들 때문에 세벌식은 지원하지 않습니다.
제가 klavaro에 한글 연습을 적용시킨 이유는
컴맹이 컴퓨터를 리눅스로 처음 시작하는데 MS윈도에서 타자 연습하고, 리눅스에서 컴퓨팅하는 모순적인 상황 때문입니다.
세벌식을 지원하지 않는다고 비꼬는 듯한 인상을 풍기시는데…
사용자들의 그러한 태도들이 무임으로 개발하는 사람의 의욕을 크게 떨어뜨린다는 점을 알고 계셔야 합니다.
이 글을 작성하면서 gtk 끝글자 버그 잡는 시간을 더욱 빼앗기게 되는군요.