транслитерировать арабские имена латинскими буквами - PullRequest
0 голосов
/ 07 мая 2018

Потому что

API-интерфейс Google Transliterate официально объявлен устаревшим с мая 26, 2011. Он будет продолжать работать в соответствии с нашей политикой амортизации.

Я использую Google Translate API для транслитерации арабских имен в латинские символы, используя "английский" в качестве целевого языка.

Это работает для имен типа "رياض", которые становятся "riad".

Проблема в том, что некоторые арабские имена имеют значение,

например. «كامل» становится «полным» вместо «kamel»

Достаточно забавно, это не всегда применимо. Например, мое имя «شادي» переводится как «тенистый» вместо «певец». Даже в таком контексте, как «أَنا شادي الأَلحان», где оно может быть переведено как «Я певец мелодий», оно становится «I'm Shady Tunes»

  • Есть ли какой-то другой API, который мне не хватает, который бы достиг этого?
  • Или есть вариант, который я могу передать в API-интерфейс Translate, чтобы указать его просто транслитерировать?
  • Или, может быть, source language является arabic names вместо arabic?

Редактировать: пример кода 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']

1 Ответ

0 голосов
/ 07 мая 2018

Методом проб и ошибок, если передать арабский язык для слова «меня зовут« kamel akiki »», то

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

даст имя без перевода значения в

'My name is "Kamel Akiki"'

, а затемЯ могу просто извлечь что-нибудь между кавычками

...