Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace hardcoded keyboard list with the list provided by libhangul #81

Merged
merged 4 commits into from
Sep 3, 2024

Conversation

joongwon
Copy link
Contributor

@joongwon joongwon commented Aug 25, 2024

Hardcoded keyboard list in nimf-libhangul module is removed. Instead, the available methods list is provided by libhangul, which are parsed from external xml files.

It enables adding user-defined keyboard layouts. Please refer to "한글 키보드 추가 방법" section of libhangul documentation.

@chaeya chaeya self-requested a review August 28, 2024 06:58
@chaeya chaeya self-assigned this Aug 28, 2024
@chaeya chaeya added the enhancement New feature or request label Aug 28, 2024
@chaeya
Copy link
Contributor

chaeya commented Aug 28, 2024

@joongwon 우선 프로젝트에 관심을 가지고 기여해주셔서 감사합니다.

이 변경은 동적으로 키보드를 가져오는 부분은 정상으로 동작하지만, 아래와 같이 트레이에 보이는 nimf 인디케이터에서 한국어 사용환경인 경우 다른 메뉴가 영어로 표시되고 있는 상태입니다.

현재 master 최신 버전의 트레이 팝업메뉴

prev-nimf

PR 코드 빌드 후 테스트

pr-nimf

여러가지 환경에서 테스트는 아직 하지 못했고, 현재 사용하고 있는 ubuntu 24.04 noble 환경에서 테스트만 했습니다.
동적 키보드 추가는 당장 추가할 키보드 레이아웃이 있는 상태가 아니니, 어디에서 문제가 있는지 충분히 테스트 해보고 개선하는 것이 좋을것 같습니다.

@joongwon
Copy link
Contributor Author

joongwon commented Aug 28, 2024

원래 영어 환경으로 쓰고 있었어서 한국어로 변경하여 테스트해보았습니다. 현재 제가 사용중인 6.9.6-arch1-1 + Plasma 6.1.4 환경에서는 master와 PR 버전 모두 트레이 메뉴가 한국어로 나오는 것으로 확인됩니다.

master 최신 버전 빌드 트레이 메뉴

nimf-hamonikr

PR 버전 빌드 트레이 메뉴

nimf-joongwon

(세벌식 중원, 세벌식 세모이는 XML로 추가하여 동적으로 로드한 자판 배열입니다)

트레이 메뉴의 텍스트는 modules/engines/nimf-libhangul/org.nimf.engines.nimf-libhangul.gschema.xml 파일에서 영어로 정의되고, po/ko.po 파일의 맵핑을 통해 한국어로 번역되는 것으로 보입니다.

저도 정확한 빌드 과정을 아는 것은 아니지만, @chaeya 님이 PR 버전을 빌드하실 때는 gettext 관련해서 오류가 난 것이 아닌가 추정됩니다. 만약 그러한 오류라면, master 버전을 빌드해도 비슷한 문제가 발생할 것 같습니다. 빌드하실 때 gettext 관련 워닝이 없었는지, 또 master 코드를 새로 클론하여 직접 빌드했을 때 비슷한 오류가 발생하지 않는지 확인해주시면 감사하겠습니다.

@chaeya
Copy link
Contributor

chaeya commented Aug 29, 2024

@joongwon 다시 깨끗한 환경에서 빌드 후 확인했하니, 이상없이 트레이 메뉴가 표시되고 있습니다.
그대로 적용해도 될 것 같습니다.

이전 이슈 중 #44 글에서 보면 자판을 변경하고 싶은 경우가 있는것 같은데, 이런 경우도 도움이 될 것 같습니다.

다음 릴리즈에 추가하신 새 자판 파일을 함께 포함해서 배포하거나, 사용자 정의 자판을 추가하는 설명을 추가해서 배포하는것이 좋을것 같은데 새 키보드 파일이나 키보드 파일을 생성해서 추가하는 방법은 공유가 가능하신가요?

@joongwon
Copy link
Contributor Author

libhangul에 기본으로 포함된 자판의 XML 파일과, 처음에 링크로 달았던 libhangul 문서를 참고하여 도움말을 작성하면 될 것 같습니다. 이 레포에는 사용자 도움말 문서나 위키는 따로 없는 것 같은데, README.md 파일에 추가하면 될까요?

@chaeya
Copy link
Contributor

chaeya commented Aug 29, 2024

@joongwon 네. 시간 여유가 있으실때 README.md 파일에 내용을 추가해주시면 좋을것 같습니다.

@joongwon joongwon changed the title Replace hardcoded keyboard list with ones parsed by libhangul Replace hardcoded keyboard list with the list provided by libhangul Aug 29, 2024
@chaeya chaeya merged commit aedbb43 into hamonikr:master Sep 3, 2024
@chaeya
Copy link
Contributor

chaeya commented Sep 3, 2024

@joongwon 소중한 기여에 감사드립니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants