首页 > 解决方案 > 将阿拉伯名字音译为拉丁字符

问题描述

因为

Google Transliterate API已于 2011年5 月 26 日正式弃用。它将继续按照我们的弃用政策工作。

我正在使用Google Translate API将阿拉伯名称音译成拉丁字符,使用“英语”作为目标语言。

这适用于像“رياض”这样变成“riad”的名字。

问题是一些阿拉伯名字是有含义的,

例如“كامل”变成“full”而不是“kamel”

有趣的是,这并不总是适用。例如,我的名字“شادي”被翻译成“shady”而不是“singer”。即使在诸如“أَنا شادي الأَلحان”这样可以翻译成“我是旋律歌手”的语境中,它也会变成“我是阴暗的曲调”

编辑:python代码来举例说明

from google.cloud import translate
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/gcp/key.json"
translate_client = translate.Client()
my_trans = lambda text: translate_client.translate(text, target_language='en')['translatedText']

list(map(my_trans, ["رياض", "شادي",  "كامل"]))

输出是

['Riad', 'Shady', 'Full']

标签: google-apigoogle-translate

解决方案


通过反复试验,将阿拉伯语传递给“我的名字是“kamel akiki””

my_trans('أَنا إِسمي "كامل عَقيقي"')

会给出名称而不将含义翻译为

'My name is "Kamel Akiki"'

然后我可以提取引号之间的任何内容


推荐阅读