리눅스 타자 프로그램 klavaro 한국어 지원

리눅스에서 쓸만한 한글 타자 프로그램이 없어서 항상 아쉬움이 남아있었습니다.
타자 연습을 위해 MS 윈도를 넘나들어야 하는 안습 상황 발생.
리눅스 타자 프로그램 중에 klavaro 라는 프로그램이 있습니다.

klavaro 홈페이지

http://klavaro.sourceforge.net/en/

이 프로그램은 제가 예전에 영어 dvorak 자판 연습할 때 애용했던 프로그램입니다.
타자 연습하기 좋은 프로그램입니다.

전에 tuxtype 을 한글화할까 고민도 해보았는데 sdl 기반인 것은 둘째로 치더라도
타자 게임 방식이 한국어에는 맞지 않는다는 판단이 들었습니다.
그래서 예전에 애용했던 klavaro 의 소스를 살펴보았는데 한국어 지원하기 편하게 되어있어서
이번에 klavaro에 한국어를 지원해봤습니다.

한국어 지원 프로젝트 주소 https://bitbucket.org/hodong/klavaro-3.01

미완료 부분
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 영역을 사용하는 부분 때문에 패치를 받아줄지 모르겠지만요.

이렇게 귀한 일에 수고를 해 주시다니 정말 듣던 중 반가운 소식이네요.

그런데, 타자 연습할 때 자판이 보이지 않는군요.
저는 조금 더 한메 타자처럼 보이면 좋을것 같은데 …
seuwaanee 님께서 만드신 프로그램 보셨지요?

viewtopic.php?f=6&t=23781

저는 약간 그런 모습이 더 좋아 보이더라구요.

딴지를 걸려고 하는 것은 아니니 이해해 주시구요.
너무 반가워서 저의 솔직한 심정을 말씀 드리는 것 뿐이지요.
사실 저야 타자 연습 프로그램 쓸 일이 없지만 초보들에게는 가장 큰 난관이기도 하잖아요?

그래서 좀 냉철하게 생각할 때, 실질적으로는 연습하는데 아무 문제 없고 너무 바람직한 작업이신 것 같네요.
이것 완성하시면, "컴퓨터를 배우고 싶은 모든 분들에게는 리눅스를~"
이라고 크게 써서 시청 앞 광장에 붙이고 싶군요. ^^

제가 영어라도 제대로 하면 번역이라도 도우련만…
영어도, 불어도 다 약하니… 쯥.

어쨌든 감사합니다.
혹시 도울 일이 있으면 저도 돕도록 하겠습니다.

제가 하는 작업은 klavaro에 한국어 적용하는 것까지 입니다. 오해 없으시면 좋겠네요.
한국어 적용하기 위한 소스 수정은 완료한 상태이고
ko.po 에 있는 영문을 한국어로 번역하면 이 작업은 완료가 됩니다.

자리 연습할 때 어느 키로 눌러야 되는지 그래픽도 나오면 좋죠.
저는 klavaro에 그런 기능을 추가할 생각이 없습니다.

tuxtype 프로그램에는 Lesson 메뉴에 들어가면
자리 연습할 때 어느 키로 눌러야 되는지 그래픽이 나옵니다.
한국어 적용하려면

  1. SDL 공부해야 하고요.
  2. 게임할 때 영어에서는 (o) (n) (e) 이렇게 그래픽이 나오는 것을
    한국어로는 (하) (나) 가 아니라 (하나) 이렇게 나오도록 수정해야 하고
  3. input method 를 다루어야 합니다.
    하루,이틀해서 할 수 있는 부분이 아니고 한달, 두달… 이렇게 해야하는 작업입니다.

그래서 적은 노력으로 하려고 klavaro 에 한국어 적용을 하는 것입니다.
또 다른 한국어 타자 연습 프로그램이 생기는 선에서 만족했으면 좋겠네요.

저는 완전 까막눈, 문외한이라 모르지만
정말 어려운 작업을 하신다는 생각이 되요.
생각해 보니 꼭 화려하게 그래픽이 필요할까 하는 생각도 드네요.
말씀하신 것처럼 또 하나의 한글타자 연습 프로그램이 나오는 것은 감사한 일이지요.

귀한 노고에 다시금 머리 숙여 감사드립니다.
(뭐, 이러니까 제가 무슨 리눅스 개발자 회장이나 되는 듯
제 스스로 착각이 되는데… 그건 절대 아니구요 ^^)

사실 klavaro보다는 tuxtype를 작업하고 싶었는데…
아쉬움 때문에 SDL 텍스트 입력을 좀 알아봤는데…
좋은 소식이 있습니다.

SDL2 에 ibus 를 물리는 패치가 2014년 6월 적용되었더군요. im을 리셋시키는 함수도 있습니다.
소스 참고 https://hg.libsdl.org/SDL/rev/26a6243b27c2
그림 참고 http://forum.ubuntu.org.cn/viewtopic.php?f=34&t=460195

현재 tuxtype 이 SDL1.2 기반이라 SDL2 버전으로 이행된 후,

http://comments.gmane.org/gmane.comp.ed ... eneral/535

tuxtype 한글 입력 패치를 만들 수 있을 것 같습니다.
1~3년 정도 후에 가능할 듯.

[quote="hodong":1qwpmsdc]한국어 지원 프로젝트 주소 https://bitbucket.org/hodong/klavaro-3.01[/quote:1qwpmsdc]한국어 지원 프로젝트 주소 링크 클릭해 보니 한국어는 한 글자도 안 보이네요. :oops: 간단하게라도 한국어로 설명해 주시면 어떨까요?

[url=http://www.ubuntu-kr.org/viewtopic.php?f=6&t=23781:33jr9sj6]글타래 보기 - 우분투 한글타자 연습 UTMaster 정식 버전(최종) - 우분투 한국 커뮤니티 •[/url:33jr9sj6]

현 커뮤니티 회원 seuwaanee님이 만든 우분투 한글 타자 연습기 UTMaster 있습니다.

klavaro는 우분투에서는[code:30pcnq2k]sudo apt-get install klavaro[/code:30pcnq2k]하시면 설치됩니다.

GTK 버전에 종속적이던 것을 버전에 비종속적으로 바꿨습니다.
gtk entry에 focus changed 신호를 보내주는 꼼수를 이용하여
gtk_entry_reset_im_context 가 항상 im을 리셋하게 됩니다.
조만간 코드를 커밋할 것이고 ko.po는 메뉴 같이 중요한 부분만 직접 번역하고
깔끔하게 번역한다고 번역에 한달 정도를 소비할 수는 없으니
나머지는 구글 번역기 돌려서 쓸만한 것만 살린 후 원개발자님께 패치보낼 예정입니다.
패치가 수용되면 1~3년 후에 배포판에 적용될 듯합니다.

그리고 프로젝트 페이지에 한글 나오게 하려면 README 파일을 변경해야 하는데 README 파일을 제 마음대로 바꿀 수 없습니다. 그래픽 추가하는 것도 마찬가지고요.
왜냐하면 원저작자님께 패치보낼 목적이기 때문에 그러한 부분은 원저자님과 의견을 교환해야 하는 부분이기 때문입니다.

http://www.cogno.org/comment/111#comment-111

세벌식을 지원하지 않는다고 이상하게 생각하시는 것 같은데,
세벌식을 지원하지 않는 이유를 설명드리겠습니다.

두벌식의 경우
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 끝글자 버그 잡는 시간을 더욱 빼앗기게 되는군요.

그런데 ko.po 파일을 한국어로 번역해주실 분은 없나요?

비꼰 건 아니고 그냥 물어본건데…제가 알고 있기로는 세벌식이나 두벌식은 입력기 차원에서 지원하는 것으로 알고 있었는데 klavaro 프로그램은 자체적으로 구현을 해야 하나요? 제가 잘 몰라서요… :oops: