translate-shell
Translate Shell
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 для более продвинутого использования интерактивной оболочки перевода.
Содержание