2016-06-11 4 views
1

저는 루비와 함께 일하고 있습니다. 아랍어로 이름/성을 가지고 있는데, 라틴어로 번역하고 싶습니다. 예를 들어, 나는 "رضوان" => "Redouane" (Radouane, Radwan 또는 이와 유사한 내용도 허용됩니다.)아라비아어에서 이름/성을 번역합니다.

Google 번역과 같은 공용 API는 일부 이름에서는 잘 작동하지만 이름에 의미가 있으면 "발음대로"번역하지 못합니다 (예 : Google 번역에서 영어로 번역) : "رمزي" => "symbolic" while 내가 원하는 것은 "Ramzy" (나는 "Ramzi"도 받아 들일 수있다)

이름을 번역 할 루비 보석이 있습니까? Printing a CP850 encoded string with Ruby (IRB)

+0

나는 그들이 내가하고 싶은 것, 정말 문제가되지 않습니다, 실수를 받아 들일 수 : I이 서버에서 일부 데이터를 수집하는 스크립트 , 데이터는 아랍어로 이름과 성을 포함하고 학년은 콘솔에 이름/성을 표시하려고하는데 아랍어를 콘솔에 표시 할 수 없어 번역을 시도했습니다. –

+0

나는 이것이 주제 밖이라고 생각하지 않으며 다시 열어야한다. – larapsodia

+1

대답을 추가 할 수는 없지만 단지 후손을 위해 : 현재하려는 것은 불가능합니다. 자동화 된 시스템이 رمزي이 적절한 명사 또는 공통 명사로 사용되는지 여부를 판단 할 수있는 방법이 없습니다. 그래서 가장 좋은 방법은 출력 문제를 해결하는 것입니다. 거기에 대한 답을 제출 했으므로 도움이되기를 바랍니다. – larapsodia

답변

2

아니 확답을, 그러나 당신은 Unidecoder gem을 보았다 :

내가 루비에 아랍어 텍스트를 인쇄 할 수 있었다 직접 콘솔하지 않았기 때문에 번역하기 위해 노력하고있어 참조하십시오? 유니 코드 문자에서 일반 ASCII 로의 기본 음역을 제공합니다. 그러나 실제로는 단순한 음역입니다. 그것은 필사장에 모음을 추가하지 않습니다. 의 README에서 인용 : 히브리어 및 아랍어 같은

다른 언어 것은, 모음을 쓸 수 있지만이 라이브러리에 의해 제공이 langages의 ASCII 표현은 원어민 상당히 예쁘게 있도록, 문맥에서 그들을 생각하지 않습니다.

당신의 두 가지 예

다음 음역에 굴복 :

require 'unidecoder' 
=> true 
>> "رضوان".to_ascii 
=> "rDwn" 
>> "رمزي".to_ascii 
=> "rmzy" 
+0

고맙습니다. 더 나은 솔루션을 찾지 못하면 사용하겠습니다. –

관련 문제