Giter Club home page Giter Club logo

ibus-hanjp's Introduction

Hanjp Input Method

Getting Started

git clone --recurse-submodules https://github.com/Hanjp-IM/hanjp-im.git
cd hanjp-im
# Then, you can build engine mannually
mkdir build
cd build
cmake ..
make

Although you can build it mannually, we recommend to use IDE such as VS Code, CLion.

About Hanjp project

The Hanjp Input Method project is a IME project that aims to give a Hangul jaso Japanese editing enviornment in Korean users friendly form. With a hanjp engine that fits in your environment, you can edit a Kana document with a Hangul jaso. This project supports(but not limited to) Linux platform.

Dependencies

Currently, the software depends on two packages.

libhangul
libibus

We can install packages with fllowing command.

# On Ubuntu
sudo apt update && sudo apt install libibus-1.0-dev libhangul-dev

License

It is noted in License

Links

시연 영상을 YouTube 에서 보려면 아래 이미지를 누르세요
Click the image below to watch hanjp-im demo on YouTube
Working Hanjp IM prototype demo video

ibus-hanjp's People

Contributors

onting avatar soondl avatar sukso96100 avatar systemoutcoding avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ibus-hanjp's Issues

[토의] mozc의 적용 가능성

mozc의 ubuntu 저장소에 있는 라이브러리를 조사했더니 ibus-mozc, mozc-server등이 있습니다. mozc-server가 히라가나 preedit를 받아서 한자로 바꿔서 돌려주는 기능을 할 수 있다면 적용할 수 있지만 그렇지 않다면 현재 올라와있는 소스코드를 우리 프로젝트 파일에 직접 포함을 시켜야 할텐데 이에 대한 의견 공유를 해주세요.
지금 Anthy 개발자로 부터 mozc 사용을 추천 받긴 했는데 Anthy로는 라이브러리를 제공해서 Anthy 함수들을 input context 단계에서 적용시키면 됩니다. mozc-server가 무엇을 하는 건지 알아야 할텐데 찾기가 어렵네요.

Testing webhook

This issue was created to check if webhook works.
After testing, will be closed immediately.

Bugs related to special keys

Special keys (ctrl, alt, tab, enter, window key, etc..) are not responding as intended, leaving unnecessary characters.

Basically, all keys except other than the English keys and the number keys are printing some kind of unintended Unicode letters.

Some examples are

1. Shift

Pressing shift to insert double consonants, such as ㅃ

Expected behavior

no input on screen

Current behavior

shows £ sign (for left shift) or ¬ (for right shift)

2. Newline

Pressing enter to insert newline

Expected behavior

no input on screen. go to next line

Current behavior

shows only '-' sign.

3. Ctrl

Expected behavior

no input on screen.

Current behavior

4. Keys on numpad (the keypad numbers on right)

Expected behavior

corresponding numbers

Current behavior

With numlock off : ᄆ ᄇ ᄈ ᄡ ᄉ ᄊ ᄋ ᄌ ᄍ (1 2 3 4 5 6 7 8 9 respectively)
With numlock on : ワ ル ロ ヨ ン リ ユ ラ レ
...and lot more

I am currently assuming that this is issue is related to the engine bug (as @onting said), so I'll try to look into this problem along with Hanjp-IM/libhanjp#42 (comment)

libhanjp eater 작성

새로운 libhanjp를 위해 eater 코드를 작성하고 있습니다.

할일:
hanjpeater.c 참조

  1. 한글 -> 카나 함수 작성
  2. on_transition으로 hic 조작
  3. backspace 함수 작성

CI/CD 적용

추후 컨트리뷰터의 급격한 증가로 인해 PR 리뷰으할 숫자도 급격히 늘어날 때와 메인테이너가 개인 사정 등으로 리뷰가 어려워도 PR 이 자동으로 검토되도록 검토를 자동화 할 필요가 있음.

  • GitHub Actions 활용하여 구현 권장
  • 문법 검사
  • 정상 빌드 가능 여부 검사
  • 각 로직 정상 작동 여부 검사
    • 특히 한글 - 가나, 가나 - 한자 변환 로직과 오토마타 등 핵심적인 부분 정상 작동 여부 확인 자동화 필요.

추가로 더 필요한 커멘트 바랍니다.

ibus와 ibus-hangul 빌드 방법 조사

ibus와 ibus-hangul을 빌드하는 방법을 조사해야 합니다. 또한 빌드 방법에 맞춰 ibus-hanjp의 스켈레톤 코드를 만들어야 합니다.

Improve README.md

Known problems:

  1. Getting started is linking wrong url for cloning repository
    It's linking https://github.com/ubuntu-kr/hanjp-im.git
    (Seems this is legacy link for this project)
  2. Need to describe Build dependancy package
    (Also, It'd be better if you can describe how to install them by command line)
  3. Getting started describes only how to build, not how to use
    (Install hanjp-im to Desktop Environment, enabling hanjp-im, etc...)

Recommendation

  1. Move About Hanjp project and demo video at the top of README.md
    As the README.md is the entry point of the projects, It'd be better to give information on its top
  2. Describe currently supported platforms
    For end-user, supported platform may helpful for using Hanjp-IM
    Also it may invoke some minor & untracked platform users to contribute.
  3. Separate Getting started into other document such as INSTALL.md
    When the contents of README.md becomes longer, It'd be better to separate documents by its topic

Seems these issues are good first issue.

Understand "C++ ABI transition problem"

Migrating engine and library code bases to C++, the engine main routine became the mixture of C++ and C(GObject) code, containing iBus API calling code. Because of simplicity and portability, we are migrating code base to C++.
However, there was problem called "C++ ABI transition problem" when SCIM was activity developed.
Its approximate concept is the C binary and C++ binary aren't fully interoperable to each other. There's risk for calling sub-routines of C, C++ each other.
Still, we don't know what it really is, but we want to fully understand the risk for mixing C and C++ code. Study and sharing knowledge are suggested

Resolve engine_process_key_event trouble

The engine has bug in _process_key_event function.
It must be related with ic_process and am_push.

GDB can attach specific running process to itself for inspection.
This issue can be handled in this way.
First, compile the engine with -g option and install it to your system.
Second, run it with 'ibus engine hanjp' command.
Third, run 'pid -p engine-pid'.
Last, inspect _process_key_event by adding some conditional break points.

old_hangul_free 옵션 구현

옛한글 없이 입력할 수 있는 옵션을 추가 하려고 합니다. 자세한 내용은 input context struct와 hangul_to_kana함수를 참조하세요.

문서화 작업

추후 신규 참여자 유입때와 기존 참여자 이탈로 구성원이 완전히 달라져도, 프로젝트 유지가 가능하도록 프로젝트에 관한 문서화가 필요함.

  • 개발환경 구축 방법

  • 의존성 설치 및 컴파일(빌드) 방법

  • 실행파일 실행하여 기능 테스트 하는 방법

  • 코딩 스타일, 커밋 메시지 스타일, 코드 수정 가이드

  • 프로젝트 구조와 프로그램 작동 과정에 대한 설명

  • 프로젝트에서 사용하는 기술과 라이브러리

  • 브랜치 관리 방법과 절차

  • 이슈 제출 가이드라인

  • 이슈 관리 가이드라인

  • PR 제출 가이드라인

  • PR 검토, 승인 가이드라인

  • 프로젝트 마일스톤과 로드맵에 관한 정보가 담긴 문서

  • 지금까지 구현된 기능과 앞으로 구현이 필요한 기능

문서화 더 필요한 항목이 있다면 커멘트 바랍니다.

use_full 옵션 구현

hangul commit을 초성 중성 종성을 모두 입력하고 변환이 되는 옵션을 구현하려합니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.