我正在使用Ruby,我有一个阿拉伯语的名字/姓氏列表,我想将它们翻译成拉丁语,因为它们的发音,例如,我有名字"رضوان" => "Redouane"
(我也可以接受Radouane
,Radwan
或类似的东西)。
像谷歌翻译这样的公共 API 在某些名称上工作正常,但是当名称具有含义时,它们无法"按发音"翻译它,例如,使用 Google 翻译,翻译成英语,它会给出:"رمزي" => "symbolic"
而我想要的是"Ramzy"
(我也可以接受"Ramzi"
)
有没有好的红宝石来翻译名字?
我正在尝试翻译,因为我无法直接将阿拉伯语文本打印到 Ruby 控制台,请参阅: 使用 Ruby (IRB) 打印 CP850 编码字符串
不是一个明确的答案,但你见过Unidecoder宝石吗?它提供从任何 unicode 字母到纯 ASCII 的基本音译。然而,它确实只是一个简单的音译,例如它没有在转录中添加元音。引自述文件:
其他语言,如希伯来语和阿拉伯语,不写元音,而是从上下文中假设它们,因此这个库给出的这些语言的 ASCII 表示对于母语人士来说看起来相当丑陋。
您的两个示例产生以下音译:
require 'unidecoder'
=> true
>> "رضوان".to_ascii
=> "rDwn"
>> "رمزي".to_ascii
=> "rmzy"