ibus에서,,,
한중일 입력방식이 중국과 일본은 같습니다. 한국만 다릅니다.
좀 더 세부적으로 들어가면요,,,
중국과 일본은 조합이 아니라... 완성된 상태의 글자가 이미 테이블(정적배열)에 고정된채로 준비되어 있어서
사용자가 임의의 글자를 영문 알파벳으로 소리나는대로 치면 그 후보군을 보여주며 최종적으로 화면에 출력됩니다.
조합이 아닌거지요,,, 아주 옛날 우리한국어도 유니코드 말고 완성형(euc-kr) 쓸때 그거랑 비슷할거 같아요.
후보군중에서 하나를 선택하면 선택한 글자가 입력되는 거지요.
그래서 중국과 일본은 [동기적 방식입니다]
한국은 조합입니다.
조합이기에 입력시 버퍼에 임의의 문자열이 조합되지만 다른 어떤 외부에서 중간에서 방해를 하면 흩어집니다.
(C언어에서 동적배열 코드 작성할때 데이타가 들어가있는 동적배열을 free() 함수로 한번 긁어버리면 배열에 저장된 값이 공중분해되는것과 비슷한 느낌일겁니다)
그래서 한글(ibus-hangul) 은 [비동기적 방식입니다]
음...
크롬OS 한글 입력기를 써본분들은 알고 있지만,,,
"한글 모드에서 후보 표시" 라는 옵션이 있어요.
2018년 2019년 초반즈음엔,,, 페이스북에서 이 옵션을 켜야지만 크롬OS 에서 페이스북 한글 입력을 무사히 할 수 있었던 적이 있습니다.
그러니까... ibus-hangul 에서도 크롬OS 한글입력기에 옵션으로 있는 "한글 모드에서 후보 표시" 와 비슷한 옵션을 추가적으로 구현할 수 있다면...
페이스북+구글크롬(리눅스) 한글 입력 이슈를 해결할 수 있지 않을까하고 조심스레 적어봅니다.
지금 든 생각이지만 이 크롬OS 의 "한글 모드에서 후보 표시"라는 옵션이 바로 [동기적 방식]이 아닐까 추측해봅니다.
아직 크롬OS 한글 입력기 소스코드를 분석해본건 아니지만,,,
Code: Select all
/**
* Requests candidates if input text.
*
* @param {string=} opt_text input text to generate candidates.
* If not given, this.inputText_ will be used.
* @private
*/
HangulIme.prototype.requestCandidates_ = function(opt_text) {
var text = opt_text || this.inputText_;
if (!text) {
return;
}
var request = JSON.stringify({
'text': text,
'num': 0
});
// this.updateCandidates will be called after NaCl responded
this.naclModule_.postMessage(request);
};
비전문가의 생각이라 틀렸을 수 도 있습니다. 그냥저냥 참고만요;;;
### 참고문헌:
[1] http://blog.matew.com/2018/09/blog-post_29.html (과거 크롬OS 한글 입력 페이스북 해결 방법)
[2] 크롬OS 페이스북 입력 실험 스크린샷 (한글 모드에서 후보 표시) -- webm [9.6메가바이트]
===> https://gitlab.com/soyeomul/stuff/-/raw ... 21555.webm
[3] 크롬OS 한글 입력기 소스코드 (자바스크립트: ime.js)
===> https://chromium.googlesource.com/exter ... /js/ime.js
[4] https://bugs.chromium.org/p/chromium/is ... ?id=695326 (진행중인 페이스북 한글입력 이슈 with 리눅스 크롬 브라우저)
### 추가내용:
(2019년 후반부터 한글모드후보옵션 켜지않아도 크롬OS 페이스북에서 한글입력 문제없어요)
(구글에서 크롬OS 엔 억수로 신경쓰는 분위기입니다)
[크롬북에서 적었어요~]
[크롬북에서 크롬OS 한글입력기 소스코드 주소 첨부했습니다 -- 6월 11일]