toss / es-hangul

A modern JavaScript library for handling Hangul characters.
https://es-hangul.slash.page/
MIT License
1.24k stars 83 forks source link

[Feature]: 한글 음절을 로마자로 변환하는 함수 #162

Closed beberiche closed 2 months ago

beberiche commented 2 months ago

Description

한글 음절을 파악하여 로마자로 변환하는 함수를 만들려고 합니다. 각 글자를 초성, 중성, 종성으로 분리한 후 각 문자마다 매핑하는 로마자를 결합하여 반환하는 방식으로 구현하려고 합니다. 발음 이해를 위해 인자로 param을 추가하여 변환되는 각 문자 사이마다 넣을 수 있도록 했습니다.

한글/로마 간 매핑 정보는 문화체육관광부의 국어의 로마자 표기법 에 따른 고시 제2014-0042호에 준수하여 구현될 예정입니다. 관련 자료

음운 변화(구개음화, 자음동화, 된소리 등)의 경우, 사례가 많아 우선 해당 함수 구현 후 나중에 필요한 사항만 추려서 새로운 이슈로 반영시킬까 합니다.

Possible Solution

const chosungMap = { 'ㄱ' : 'g', 'ㄴ' : 'n' ... }
const jungsungMap = { 'ㅏ' : 'a' , 'ㅐ' : 'ae' ... }
const jongsungMap = {  ... }

const convertHangulToRoman(hangul, param) {
  const ret = [];
  for(int i=0; i<hangul.length; i++) {
    const code = disassmebleCompleteHanguleCharacter(hangul.charAt(i));
    const chosung = '';
    const jungsung = '';
    const jongsung = '';

    ...
    ...
    ...

    ret.push(chosungMap[chosung] + jungsungMap[jungsung] + jongsungMap[jonsung]);
  }
  return ret.join(param);
}

console.log(convertHangulToRoman('한글')); // hangeul
console.log(convertHangulToRoman('강아지')); // gangaji
console.log(convertHangulToRoman('강아지','-')); // gang-a-ji

etc.

궁금사항이 있습니다.

  1. convertHangulToRoman() 에 대한 함수명이 적절한가요?
  2. 문자별 로마자 매핑 정보 xxxMap/src/constants.ts 에 작성하면 될까요?
okinawaa commented 2 months ago

안녕하세요! 좋은 기능 말씀해주셔서 감사합니다!

33 #115

이 두 이슈와, PR과는 다른 기능인가요!? 현재 romanize라는 함수가 es-hangul에 들어오려고합니다!

beberiche commented 2 months ago

아하! 이미 작업중이었네요ㅠ 동일한 기능입니다!!