2016-11-15 11 views
0

나는 로마 영어 단어를 우르두어로 번역하려고합니다. 이처럼 많이 website tool. 나는 transliterator icu4j을 사용하고 있습니다. 출력 음역은 예기치 않은 예입니다.icu4j 음역 영어를 ​​우르두어로 번역

입력 : "namaz"

출력 : "نمز"

예상 출력 : "نماز"

영어 번역 : "기도는"다음

내 ID입니다 인스턴스를 얻으려면.

String id = "Eng-ur; NFD;"; 

아무도 내 ID 문자열에 문제가 있는지 ... ???

+0

urdu에서 roman urdu 로의 변환에 관한 것을 찾았습니까? –

답변

1

ID 문자열 자체에 문제가 있다고 생각하지 않습니다. (아마도 en-ur이면 충분합니다 - NFD를 요청하는 이유는 무엇입니까?) 문자열 nmạz은 정확히 을 음역합니다.. 음역 규칙에 개선의 여지가 있을까요?

+0

답장을 보내 주셔서 감사합니다. NFD를 사용하여 입력에서 악센트 문자를 제거했지만 괜찮습니다. NFD를 제거하더라도 여전히 동일한 출력을 제공합니다. 둘째 음역 규칙을 향상시킬 수 있습니까? 음역 규칙이 무엇인지 모릅니다. 둘 다 나는 그들을 개선하는 방법을 안다. 왜냐하면 나는 그것이 옳다면 icu4j가 관리하는 것이라고 생각하기 때문이다. –

+0

NFD는 악센트 문자를 제거하기위한 것이 아니며 분해에 불과합니다. 모음 표식을 삭제 하시겠습니까? 그것은 다른 규칙 일 것입니다. 그러나 예 icu4j 데이터는 CLDR에서 가져옵니다. http://cldr.unicode.org –

1

ICU의 규칙 프레임 워크는 불규칙한 발음을 가진 소스 언어에서는 잘 작동하지 않습니다. 슬프게도 영어는 특히 발음하기 어렵습니다.

음역이란 대상 언어로 된 원어의 발음을 에뮬레이션하는 것을 의미합니다. 이것은 두 부분으로 구성된다. (a) 입력을 발음을 나타내는 중간 표현으로 변환한다. (b) 발음을 최종 출력으로 변환하는 것.

영어 - 우르두어에서 규칙 기반 ICU 프레임 워크는 결코 (a)에 대해 좋은 결과를 제공하지 않지만 (b)를 수행하는 좋은 시스템이 될 가능성이 높습니다. TTS (text-to-speech) 시스템을 통해 영어 문자열을 실행하거나 적어도 매우 큰 발음 사전에서 입력을 찾는 것이 좋습니다. 이것은 International Phonetic Alphabet에서 발음을 줄 것입니다. 일단 발음을하면 ICU는 Urdu를 생성하기에 합리적으로 잘 작동해야합니다.

이제 ICU에는 국제 음운 알파벳을 우르두어로 변환하는 규칙이 없습니다. 유니 코드의 음역 규칙을 관리하는 사람으로서 이것은 구현하기가 매우 쉽다고 생각합니다. 나는 약간의 시간을 찾았을 때 기꺼이 그것을 할 것입니다. (그러나 누구나 패치를 보내실 수 있습니다!)이 길로 가고 싶다면 http://unicode.org/cldr/trac/newticket에 버그를 보내주십시오.