Недействительное значение (400) при использовании API Google Translate

Что не так с моим запросом?

У меня есть жало по русски: $string = Потенциал, %

Я хочу перевести это на украинский язык с помощью Google API:

Строка urlencode:

$q = urlencode($string)

И я запрашиваю Google API:

https://www.googleapis.com/language/translate/v2?q=%D0%9F%D0%BE%D1%82%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%2C%20%25&target=ua&source=ru&key=A .. .

В ответ получаю:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid Value"
   }
  ],
  "code": 400,
  "message": "Invalid Value"
 }
}

Что не так с моим запросом?


person Prosto Trader    schedule 17.02.2015    source источник
comment
Ваш ключ api недействителен?   -  person TZHX    schedule 17.02.2015
comment
ключ api в порядке, просто тут не выложил)   -  person Prosto Trader    schedule 17.02.2015


Ответы (3)


Решение было простым. У Google есть UK буквы для украинского языка вместо UA.

person Prosto Trader    schedule 11.03.2015
comment
У меня было то же самое, но там я использовал kr или Korea вместо ka. (Что немного странно, потому что API Google Cloud Natural Language использует kr для Кореи, и я просто предположил, что эти два API были стандартизированы в выборе двухбуквенных кодов страны. Это то, что нужно исправить ...) - person Murray Todd Williams; 26.07.2019
comment
Коды стран отличаются от кодов языков. Корейский язык - ко. en.wikipedia.org/wiki/ - person Phil; 21.01.2021

Целью должно быть uk, а не ua. Думаю, это решит проблему.

person Shobhit    schedule 11.03.2015

В моем случае я пытался перевести на es-uy, но, несмотря на то, что был действующим языковой код, Google его не поддерживает.

Вот языковые коды, которые поддерживает API: https://cloud.google.com/translate/docs/languages

person Tom    schedule 25.02.2021