Перевод с языка на английский на консоли

# #bash #google-translate #lynx #elinks

Вопрос:

Я работаю в компании с различными другими языками, кроме моего собственного (английского), и поэтому я использую https://translate.google.com разумная сумма, но, поскольку я часто нахожусь в терминале, я бы нашел гораздо больше удобства в том, чтобы сделать это там, чем открывать новую вкладку Google. Структура URL-адреса тривиальна, и это работает, если поместить ее в любой браузер https://translate.google.com/?sl=framp;tl=enamp;text=bonjouramp;op=translate, замените fr любым исходным языком, en любым целевым языком и bonjoun mon ami любым словом/фразой. В идеале я хотел бы иметь 2 функции в bash:

 tt (translate to), tt <target-lang> <English word or phrase to translate to target-lang>
tf (translate from), tf <source-lang> <word or phrase to translate to English>
 

Я безуспешно пытался в течение нескольких дней с lynx и т. elinks Д. И многими поисками на commandlinefu и других сайтах (например https://www.commandlinefu.com/commands/matching/translate-english/dHJhbnNsYXRlIGVuZ2xpc2g=/sort-by-votes), но не нашел способа вернуть переведенный текст. Блокирует ли Google что — то каким-то образом, и есть ли обходной путь-наверняка какой-то инструмент ( lynx , elinks , links2 ) может разрешить текст, отправляемый обратно, когда мы попадаем по URL-адресу , а затем мы можем извлечь только переведенный текст с помощью sed , cut и т. grep Д.?

Если это блокируется файлами cookie или некоторыми требованиями для входа, существуют ли альтернативные консольные инструменты или сайты для Google Translate, которые позволили бы другим службам перевода?

Комментарии:

1. translate-shell По крайней мере, в Ubuntu есть инструмент.

2. Это может помочь: Лучшие переводчики языков командной строки для Linux

3. Это значительно превосходит то, что я хотел сделать, ткнув в URL-адрес Google Translate. Я вижу, что translate-shell это немедленно доступно из apt репозиториев и dnf репозиториев, а также может отображать определения словарей (что-то еще, что мне полезно, например trans -d dog ). Если я хочу создать tt / tf как алисы или функции, я также могу легко создать их с помощью trans . Спасибо за это.

Ответ №1:

Различные службы перевода имеют API, Google Translate имеет API, Deepl имеет API. Я нахожу, что некоторые из них более точны, чем другие, но это вопрос личных предпочтений.

https://www.deepl.com/docs-api

https://cloud.google.com/translate/docs/reference/rest/v2/translate

Если вы хотите использовать его из оболочки, достаточно просто создать небольшой скрипт bash curl и jq обработать ответы JSON, или, что еще лучше, использовать Python или Perl, которые поддерживают все эти операции изначально.