translate-shell



Translate Shell


images/166-1.png images/166-2.png images/166-3.png images/166-4.png images/166-5.png images/166-6.png
Translate Shell (ранее Google Translate CLI ) - это переводчик командной строки на базеGoogle Translate (по умолчанию), Bing Translator , Яндекс.Переводчика и Apertium . Это дает вам легкий доступ к одной из этих машин перевода в вашем терминале:
$ trans 'Saluton, Mondo!'
Saluton, Mondo!

Hello, World!

Translations of Saluton, Mondo!
[ Esperanto -> English ]
Saluton ,
Hello,
Mondo !
World!

По умолчанию отображаются переводы с подробными пояснениями. Вы также можете перевести текст вкратце: (будет показан только наиболее подходящий перевод)
$ trans -brief 'Saluton, Mondo!'
Hello, World!
Translate Shell также может использоваться как интерактивная оболочка; введите текст для перевода построчно:
$ trans -shell -brief
> Rien ne réussit comme le succès.
Nothing succeeds like success.
> Was mich nicht umbringt, macht mich stärker.
What does not kill me makes me stronger.
> Юмор есть остроумие глубокого чувства.
Humor has a deep sense of wit.
> 學而不思則罔,思而不學則殆。
Learning without thought is labor lost, thought without learning is perilous.
> 幸福になるためには、人から愛されるのが一番の近道。
In order to be happy, the best way is to be loved by people.

Предпосылки



Системные Требования


Как известно, Translate Shell работает во многих POSIX-совместимых системах, включая, помимо прочего:
• GNU / Linux
• macOS
• * BSD
• Android (через Termux)
• Windows (через WSL, Cygwin или MSYS2)

Зависимости


• GNU Awk ( gawk ) 4.0 или новее• Эта программа сильно зависит от GNU-расширений языка AWK , которые не переносятся для других реализаций AWK (например, nawk).
• Как получить пристальный взгляд:• gawk входит в состав всех дистрибутивов GNU / Linux.
• Во FreeBSD gawk доступен в портах.
• В macOS gawk доступен в MacPorts и Homebrew.


• GNU Bash или Zsh• Вы можете использовать Translate Shell из любой оболочки Unix по вашему выбору (bash, zsh, ksh, tcsh, fish и т. Д.); однако для сценария-оболочки требуется установленный bash или zsh .


Рекомендуемые зависимости


Эти зависимости не являются обязательными, но настоятельно рекомендуется для полной функциональности:
• curl споддержкой OpenSSL
• GNU FriBidi : реализация двунаправленного алгоритма Unicode (bidi)• требуется для отображения текста в сценариях с написанием справа налево (например, арабский, иврит)
• mplayer , mpv , mpg123 или eSpeak• требуется для функции преобразования текста в речь
• меньше , больше или больше• требуется для пейджинга терминала
• rlwrap : оболочка строки чтения GNU• требуется для редактирования в стиле readline и истории в интерактивной оболочке
• aspell или hunspell• требуется для проверки орфографии


Окружающая среда и шрифты


Обязательно наличие соответствующих шрифтов для языка (ов) / скрипта (ов), которые вы хотите отображать в своем терминале. См. Wiki: Writing Systems and Fonts для получения дополнительной информации о скриптах и ​​рекомендуемых шрифтах Unicode.

Попробуйте!


Запустите интерактивную оболочку и переведите все, что вы вводите, на свой родной язык: (в bash или zsh )
$ gawk -f <(curl -Ls git.io/translate) -- -shell
(в рыбе )
$ gawk -f (curl -Ls git.io/translate | psub) -- -shell

Установка



Опция 1. Прямая загрузка


Загрузите автономный исполняемый файл и поместите его на свой путь. Это все, что вам нужно.
$ wget git.io/trans
$ chmod +x ./trans
Есть подпись GPG .

Вариант №2. Из диспетчера пакетов



Используя ваш любимый менеджер пакетов


См . Wiki: Distros о том, как установить из определенного диспетчера пакетов в вашем дистрибутиве.

Использование

Antigen

(для пользователей Zsh)


Добавьте следующую строку в свой .zshrc:
antigen bundle soimort/translate-shell

Вариант №3. Из Git


$ git clone https://github.com/soimort/translate-shell
$ cd translate-shell/
$ make
$ [sudo] make install
Если в вашей системе есть только zsh, но нет bash, выполните сборку с помощью:
$ make TARGET=zsh
По умолчанию PREFIXустановка /usr/local. Чтобы установить программу в другое место (например /usr, ~/.local), используйте:
$ [sudo] make PREFIX=/usr install

Начало работы с примерами



Перевести слово



С любого языка на ваш язык


Google Translate может автоматически определять язык исходного текста, а Translate Shell по умолчанию переводит исходный текст на язык вашего locale.
$ trans vorto

С любого языка на один или несколько конкретных языков


Переведите слово на французский:
$ trans :fr word
Переведите слово на китайский и японский: (используйте знак плюса " +" в качестве разделителя)
$ trans :zh+ja word
Как вариант, =вместо двоеточия (" :") можно использовать знак равенства (" "). Обратите внимание, что в некоторых оболочках (например, zsh) знаки равенства могут интерпретироваться по-разному, поэтому аргумент, определяющий языки, должен быть защищен:
$ trans {=zh+ja} word
$ trans '=zh+ja' word
Вы также можете использовать опцию -target( -t), чтобы указать целевой язык (и):
$ trans -t zh+ja word
С помощью этой -tопции вместо кода языка также можно использовать название языка:
$ trans -t japanese word
$ trans -t 日本語 word

С определенного языка


Переводчик Google может ошибочно идентифицировать исходный текст как другой язык, чем вы ожидали:
$ trans 手紙
В этом случае вам нужно явно указать его язык:
$ trans ja: 手紙
$ trans zh: 手紙
Вы также можете использовать опцию -source( -s), чтобы указать исходный язык:
$ trans -s ja 手紙

Перевести несколько слов или фразу


Переведите каждое слово отдельно:
$ trans en:zh word processor
Сложите слова в один аргумент и переводите их целиком:
$ trans en:zh "word processor"

Перевести предложение


Перевод предложения во многом похож на перевод фразы; вы можете просто процитировать предложение в один аргумент:
$ trans :zh "To-morrow, and to-morrow, and to-morrow,"
$ trans :zh 'To-morrow, and to-morrow, and to-morrow,'
Также можно переводить многострочные предложения:
$ trans :zh "Creeps in this petty pace from day to day,
> To the last syllable of recorded time;
> And all our yesterdays have lighted fools
> The way to dusty death."
Чтобы !оболочка не интерпретировала знаки препинания (например, " ") или другие специальные символы, используйте одинарные кавычки :
$ trans :zh 'Out, out, brief candle!'
Однако в некоторых случаях вы все равно можете использовать двойные кавычки : (например, предложение содержит одинарную кавычку " '")
$ trans :zh "Life's but a walking shadow, a poor player"
В качестве альтернативы используйте параметр -join-sentence( -j), чтобы обрабатывать все аргументы как одно предложение, чтобы можно было опустить кавычки:
$ trans -j :zh Life\'s but a walking shadow, a poor player

Краткий режим


По умолчанию Translate Shell отображает переводы в подробном виде. Если вы предпочитаете видеть только наиболее подходящий перевод, есть краткий режим, доступный с помощью опции -brief( -b):
$ trans -b :fr "Saluton, Mondo"
В кратком режиме фонетическая запись (если есть) по умолчанию не отображается. Чтобы включить это, поставьте знак " @" перед кодом языка:
$ trans -b :@ja "Saluton, Mondo"

Режим словаря


Google Translate можно использовать как словарь. Когда переводится слово и целевой язык совпадает с исходным, отображается словарная запись слова:
$ trans :en word
Чтобы включить режим словаря независимо от того, идентичны ли исходный и целевой язык, используйте параметр -dictionary( -d).
$ trans -d fr: mot
Примечание. Не для всех языков, поддерживаемых Google Translate, есть словарные данные. См. Вики: Языки, чтобы узнать, какие языки поддерживают словарь.

Идентификация языка


Используйте опцию -identify( -id), чтобы определить язык текста:
$ trans -id 言葉

Текст в речь


Используйте опцию -play( -p), чтобы прослушать перевод:
$ trans -b -p :ja "Saluton, Mondo"
Используйте опцию -speak( -sp), чтобы прослушать исходный текст:
$ trans -sp "你好,世界"

Терминальный пейджинг


Иногда содержания перевода может быть слишком много для отображения на одном экране. Используйте опцию -view( -v), чтобы просмотреть перевод в пейджере терминала, например, lessили more:
$ trans -d -v word

Языки с письмом справа налево (RTL)


Языки с письмом справа налево (RTL) хорошо поддерживаются через GNU FriBidi .
Программа автоматически настроит ширину экрана для заполнения при отображении языков с письмом справа налево. В качестве альтернативы вы можете использовать опцию -width( -w), чтобы указать ширину экрана:
$ trans -b -w 40 :he "Saluton, Mondo"
См. Wiki: Languages, чтобы узнать, на каком языке (языках) используется система письма справа налево.

Конвейер, ввод и вывод


Если исходный текст не указан в аргументах командной строки, программа будет читать из стандартного ввода или из файла, указанного параметром -input( -i):
$ echo "Saluton, Mondo" | trans -b :fr
$ trans -b -i input.txt :fr
Переводы выводятся на стандартный вывод или в файл, указанный параметром -output( -o):
$ echo "Saluton, Mondo" | trans -b -o output.txt :fr

Перевести файл


Вместо использования -inputопции в качестве аргумента командной строки можно использовать схему URI файла ( file://за которой следует имя файла):
$ trans :fr file://input.txt
Примечание . Краткий режим используется при преобразовании схем URI файлов.

Перевести веб-страницу


Для перевода веб-страницы в качестве аргумента можно использовать схему http (s) URI:
$ trans :fr http://www.w3.org/
Откроется сеанс браузера для просмотра перевода (через веб-интерфейс Google Translate). Чтобы указать предпочтительный веб-браузер, воспользуйтесь -browserопцией:
$ trans -browser firefox :fr http://www.w3.org/

Сведения о языке


Используйте параметр -list( -L) для просмотра сведений об одном или нескольких языках:
$ trans -L fr
$ trans -L de+en
Будет отображена некоторая основная информация о языке: его английское название и эндоним (название языка на самом языке), языковая семья, система письма, канонический код Google Translate и код ISO 639-3.

Интерактивная оболочка перевода (REPL)


Запустите интерактивную оболочку с помощью параметра -shell(или -interactive, -I):
$ trans -shell
Вы можете указать исходный язык и целевой язык (языки) перед запуском интерактивной оболочки:
$ trans -shell en:fr
Вы также можете изменить эти настройки во время интерактивного сеанса. См. Wiki: REPL для более продвинутого использования интерактивной оболочки перевода.




Содержание