# #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, которые поддерживают все эти операции изначально.