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

[RS_HangulInput.rb] Last character combination issue in Korean input method & jamo decomposition library (Korean) #4

Open
biud436 opened this issue Mar 6, 2023 · 0 comments
Assignees
Labels

Comments

@biud436
Copy link
Owner

biud436 commented Mar 6, 2023

I received the bug report via mail yesterday. I leave my answer for managing the issue here too.

How to reproduce bug

The text you provided is correctly combined, but assuming you enter Korean input, if you decompose the previous character of Muriel into jamo and add ㄹ to the result, the bug will be reproduced.


메일 제보가 있어서 Issue Tracking 용도로 여기에도 글을 올립니다.

Known Issue

  • 주어진 글자 뮤리엘이라는 텍스트가 있을 때, 뮤리에ㄹ 이라고 입력되는 현상

답변

제공해주신 텍스트 뮤리엘은 제대로 조합되지만, 한글 입력을 한다고 가정하면
뮤리엘의 이전 글자인 뮤리에를 자소분해하고, 이 결과에 을 더하면 해당 버그가 재현됩니다.

자소 분해

["ㅁ", "ㅠ", "ㄹ", "ㅣ", "ㅇ", "ㅔ", "ㄹ"]
["ㅁ", "ㅠ", " ", "ㄹ", "ㅣ", " ", "ㅇ", "ㅔ", "ㄹ"]

한글 입력하려면 연속된 글자를 조합, 분해를 반복해야 한다는 결론이 생기게 됩니다.
그러나, 분해 과정에서 종성에 빈 글자(공백)가 생기게 됩니다.

제공해주신 케이스로는 정상 출력되지만, 연속 입력을 해야하므로 그 과정에서 종성에 빈 글자가 채워집니다.
즉, 한글 조합 원리에서, 받침이 없을 때, 종성 부분에 빈 부분(" ")으로 채워집니다.

뮤리엘 그 자체는 제대로 조합되는 글자이지만,

연속하여 입력한다고 하였을 때 그 이전 글자 "뮤리에"를 분해하고 ㄹ을 추가하면 뮤리에ㄹ이 됩니다.

 : ["ㅁ"]
 : ["ㅁ", "ㅠ", " "]
뮤ㄹ : ["ㅁ", "ㅠ", " ", "ㄹ"]
뮤리 : ["ㅁ", "ㅠ", " ", "ㄹ", "ㅣ", " "]
뮤리ㅇ : ["ㅁ", "ㅠ", " ", "ㄹ", "ㅣ", " ", "ㅇ"]
뮤리에 : ["ㅁ", "ㅠ", " ", "ㄹ", "ㅣ", " ", "ㅇ", "ㅔ", " "] # <--- 이 부분
뮤리엘 : ["ㅁ", "ㅠ", " ", "ㄹ", "ㅣ", " ", "ㅇ", "ㅔ", " ", "ㄹ"] #  <--- 뮤리에 에 ㄹ을 추가한다면

뮤리엘 전의, 뮤리에를 보면 빈 종성(" ")으로 채우고 있습니다.
즉, 이전 글자가 ㅇ" + "ㅔ" + " " 가 되어, 종성을 빈 글자가 채워버렸고, ㄹ 이 다음 칸으로 넘어간 듯 싶습니다.

즉, 뮤리에를 자소분해하였을 때, ["ㅁ", "ㅠ", " ", "ㄹ", "ㅣ", " ", "ㅇ", "ㅔ", " "] 라고 나오는데,
는 아직 조합이 끝나지 않는 걸로 추측할 수 있습니다.

조합이 끝나지 않았다면 다음에 을 입력되었을 때, 마지막에 있는 " " 이 지워져야 정상 동작이 될 것입니다.

즉, 조합 단계인 마지막 글자의 종성이 " "이면 한 글자를 지워야 하는 걸로 추측을 해볼 수 있습니다.
그러나 한 글자를 지웠을 때, 어떠한 문제가 생길지는 알 수 없습니다. 아마 조건이 있을 것입니다.

이러한 조건들을 다 찾을 수 있다고 자신할 수는 없는 상황입니다.
아무튼 문제점은 위 부분이니 참고 하시기 바랍니다.

해결 방법

  • MZ 때와 같이 조합중과 조합 완료 상태를 추가하여 뮤리에에서 뮤리엘이 입력될 때, 마지막 글자의 종성의 인덱스가 0이라면 아직 조합 중으로 가정하고 공백을 로 대체하여야 한다.

Test Environment

  • RPG Maker VX Ace (Windows 10)
@biud436 biud436 self-assigned this Mar 6, 2023
@biud436 biud436 added the bug label Mar 6, 2023
@biud436 biud436 changed the title [RS_HangulInput.rb] 한글 조합 & 자소 분해 라이브러리에서 마지막 글자 조합 문제 (Korean) [RS_HangulInput.rb] Last character combination issue in Korean input method & jamo decomposition library (Korean) Mar 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant