1 Востаннє редагувалося Master_Sergius (17.08.2016 22:42:57)

Тема: Безкоштовний API якогось хорошого перекладача

Корпорація добра Гугл прикрила свій translate API v1 і хоче, щоб люди використовули платний API v2. А Я саме зібрався написати якийсь простяцький консольний перекладач. У зв'язку з цим звертаюся до Вас, панове, чи відомі вам якісь безкоштовні API такого плану. Або прийдеться користуватися яндексом :)

upd:
Виявляється в моєму улюбленому Python є вже написана ліба goslate - Free Google Translate API, і навіть працює, але недовго. Гугл це швидко трекає, щоб йому добре було.

Подякували: 221VOLT1

2

Re: Безкоштовний API якогось хорошого перекладача

Теж шукаю..
Думаю можливо просто робити curl POST запити до сервісів типу
http://perevod.i.ua
І парсити відповідь (переклад) с html.

Подякували: Master_Sergius, 221VOLT2

3

Re: Безкоштовний API якогось хорошого перекладача

bing не так часто робить зміни/


Гугл це швидко трекає, щоб йому добре було

тому відстежую це неподобство, щоб було добре не тільки йому:

Подякували: Master_Sergius, 221VOLT2

4

Re: Безкоштовний API якогось хорошого перекладача

користуюсь цим. Наче норм ;)
https://tech.сайт-злодій/translate/

translate.selection(){
  key="ваш api ключ";
  text="$(echo $(xsel -o) | sed "s/[\"\'<>]//g")"
  translate="$(wget -qO - "https://translate.yandex.net/api/v1.5/tr.json/translate?key=$key&text=$text&lang=ru")"
  zenity --info --text "$(echo $translate | sed 's/.*\[\"\(.*\)\"\].*/\1/')"
}
Подякували: Master_Sergius, 221VOLT2

5

Re: Безкоштовний API якогось хорошого перекладача

Та якраз яндекса теж надибав, але ж бо думав є щось ліпше.

Подякували: 221VOLT1

6

Re: Безкоштовний API якогось хорошого перекладача

7

Re: Безкоштовний API якогось хорошого перекладача

Колись використовував Microsoft Translator, працював начебто справно, але тривалого знайомства з ним не мав (налаштував і забув)

8

Re: Безкоштовний API якогось хорошого перекладача

Поки що взяв у користування той яндекс. Поділюся скриптом, може ще комусь знадобиться, або хтось захоче поліпшити.

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import json
import requests
import sys

""" Full url
https://translate.yandex.net/api/v1.5/tr.json/translate ?
key=<API-ключ>
 & text=<переводимый текст>
 & lang=<направление перевода>
 & [format=<формат текста>]
 & [options=<опции перевода>]
 & [callback=<имя callback-функции>]
"""

API_URL = "https://translate.yandex.net/api/v1.5/tr.json/translate?"\
          "key=%s&lang=%s&text=%s"
API_KEY = "Тут уже вводьте свій ключ :)"

STATUS_CODE = {200: "Success",
               401: "Wrong API-key",
               402: "API-key is blocked",
               404: "Daily limit exceeded",
               413: "Text limit exceeded",
               422: "Can't translate this text",
               501: "Lang direction is not supported"}

def translate(lang, text):
    response = requests.post(API_URL, data={"key":API_KEY, "lang":lang, "text":text})
    if response.status_code == 200:
        return ''.join(json.loads(response.text)['text'])
    else:
        return STATUS_CODE.get(response.status_code, 'Unknown error')

if __name__ == "__main__":
    try:
        lang = sys.argv[1]
        text = ' '.join(sys.argv[2:])
    except:
        print("Usage: yandex_translate <lang> <text>")
        print("Example: yandex_translate en-uk Hello world")
        sys.exit(1)

    print(translate(lang, text))
    sys.exit(0)

Ну а далі - стандартна процедура, створюємо лінку на скрипт і кидаємо її по одному із шляхів змінної PATH (лінукс-рецепт)

9

Re: Безкоштовний API якогось хорошого перекладача

А нам найбільше сподобався перекладач Google. Гарна швидкість і чіткий переклад. Хоча потрібно дещо допрацювати.

10

Re: Безкоштовний API якогось хорошого перекладача

daryna.vod написав:

А нам найбільше сподобався перекладач Google. Гарна швидкість і чіткий переклад. Хоча потрібно дещо допрацювати.

Про гуглопереклад з української на російську нічого поганого сказати не можу (тут він справді більш-менш чіткий), але на українську перекладає жахливо (ймовірно, через недостатній корпус українських людських перекладів). При перекладі між англійською та східнослов'янськими часто робить помилки через існування в нас подвійного заперечення, внаслідок чого база гугла засмічена перекладами на протилежне значення, і ці протилежні значення виринають навіть там, де заперечень безпосередньо нема. На українську з англійської та інших мов перекладає через проміжну російську, тому результат засмічений російськими кальками. З української на англійську перекладає напряму́, але ще гірше — знову ж, через брак зразків людського перекладу.

ІМНО для української мови гуглівський алгоритм у принципі не може дати кращого результату, ніж переклад з програмно прописаним граматичним розбором та фіксованим словником. Єдиний плюс гуглоперекладача — кількість підтримуваних мов.