Skip to content

중국어 입력기 구현

병음→한자 변환, 후보 선택, 상태·commit, 구현 흐름

중국어 IME를 구현하려면 병음(또는 주음) 시퀀스→한자 후보 검색과 후보 선택→commit을 구분해야 한다. 웹에서는 OS IME를 쓰는 것이 보통이다.

  1. 병음→후보: 입력된 병음(예: zhong)으로 사전/엔진에서 한자 후보 검색.
  2. 조합 중(preedit): 병음 문자열 또는 첫 번째 후보를 preedit으로 표시.
  3. 후보 선택: 사용자가 숫자 키·방향 키로 후보 선택. 선택 중 preedit을 해당 한자로 갱신.
  4. commit: 후보 확정 시 해당 한자를 문서에 반영(compositionend에 해당).
  5. 취소: Esc. compositionend data 빈 문자열.
  • 병음: 로마자 시퀀스. 성조(1~4)는 숫자 또는 별도 키. 성조에 따라 후보가 달라질 수 있음.
  • 주음(注音): ㄓㄨㄥ 등 부호 입력. 별도 키 매핑·엔진 필요.
  • 사전/엔진: 병음(또는 주음) 문자열로 한자 후보 목록 조회. 오픈소스 엔진·사전 데이터 참고.
  • 간체/번체: 설정에 따라 후보 집합 전환.
  • 조합 중: 병음 입력 중 또는 후보 선택 중. preedit만 표시.
  • commit: 후보 확정(Enter·숫자·클릭) 시. compositionend.
  • 취소: Esc·포커스 잃음. preedit 제거, commit 없음.
  • Rime, Fcitx 등에서 중국어 엔진 사용. 웹에서는 OS IME 결과(composition 이벤트)만 처리하면 된다.