Сегодня, когда к Интернету подключено так много устройств и так много сайтов, которые можно посетить в Интернете, вполне нормально, что мы находим информацию, которую ищем, на языке, на котором мы не говорим. Мы даже можем найти текст на языке, который, как нам кажется, нам хорошо известен, и прочитать слово, которое мы не знаем, что оно означает. Что нам делать в таких случаях? Что ж, обычное дело - обратиться к странице переводчика, такого как Bing или Google, но не было бы лучше, если бы у нас был более быстрый и удобный способ сделать это? Что ж, как и практически все в операционных системах на базе Linux, есть несколько способов добиться этого, и в этой статье мы научим вас как перевести любой текст в Ubuntu, если язык включен в Google Переводчик.
Возможно, следующее руководство отразит некоторое уважение к пользователям, которые не очень любят прикасаться к терминалу, но оно не объясняет ничего, кроме того, когда мы говорим, как добавить репозиторий и установить пакет, которого нет в официальной версии. единицы. Разница в том, что давайте создадим скрипт это позволит нам запускать компоненты, доступные в Ubuntu. Тем не менее, ниже приведены шаги, которые необходимо выполнить для перевода любого текста в Ubuntu.
Как переводить тексты с Ubuntu
Создание скрипт Нотитранс
- Чтобы использовать скрипт, нам нужно выполнить три установки:
- libnotify-bin чтобы получать уведомления на рабочем столе.
- Wget чтобы получить перевод Google.
- xsell читать текст, который мы отметили.
Для этого открываем терминал и пишем следующее:
sudo apt-get install libnotify-bin wget xsel
- Затем мы создаем новый текстовый файл (просто щелкните правой кнопкой мыши на рабочем столе и выберите «Новый документ / Пустой документ»).
- Внутри документа мы должны вставить следующее:
#!/usr/bin/env bash notify-send --icon=info "$(xsel -o)" "$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(xsel -o | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
- Примечание: в скрипт выше есть строка с надписью «tl = es». Если вы не хотите переводить на испанский, вам нужно только изменить язык, который стоит за знаком равенства (=).
- Сохраняем предыдущий файл и называем его notitrans (без кавычек).
- Затем нам нужно преобразовать предыдущий документ в исполняемый файл. Для этого копируем в нашу личную папку и в терминале пишем следующее:
chmod +x ~/notitrans
- Следующим шагом переместите созданный файл в папку / USR / местные / бен / с помощью следующей команды:
sudo mv ~/notitrans /usr/local/bin/
- Мы еще не закончили. У нас есть (как минимум) еще два шага: теперь мы должны создать сочетание клавиш. Для этого мы заходим в Системные настройки / Клавиатура / Ярлыки и нажимаем на символ плюса (+). Вы увидите следующее окно:
- В окошко помещаем желаемое имя (я дал ему Notitrans) и команду «notitrans» (без кавычек). Мы можем ввести другую команду, но нам нужно будет использовать то же имя, с которым мы сохраняем скрипт.
- Теперь вам просто нужно создать комбинацию клавиш. Для этого мы нажимаем на текст с надписью Disabled и вводим желаемую комбинацию. Я использовал Control + точка (.), Так как я знаю, что не существует комбинации клавиш, которая использует этот ярлык.
варианты
Если вам не нравится, как перевод показывает нам скрипт выше, который фактически не может отображать очень длинные переводы, потому что он ограничен размером уведомления, мы также можем использовать некоторые варианты. Чтобы использовать эти варианты, нам придется проделать тот же процесс, что и предыдущий (при желании также изменить язык), но с использованием соответствующего кода на шаге 2.
Использование Xclip
Если мы хотим, чтобы помимо уведомления мы копировали перевод в буфер обмена, мы также будем использовать Xclip. Сначала убеждаемся, что он у нас установлен, командой:
sudo apt-get install xclip
И в скрипт то, что мы создадим, напишем следующее:
#!/usr/bin/env bash text="$(xsel -o)" translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')" echo "$translate" | xclip -selection clipboard notify-send --icon=info "$text" "$translate"
Использование Zenity
И если то, что мы хотим, отображалось как предыдущее изображение (мое любимое), мы убедимся, что у нас установлен Zenity, набрав команду:
sudo apt-get install zenity
А в документе напишем следующее:
#!/usr/bin/env bash text="$(xsel -o)" translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')" echo -e "Original text:" "$text"'\n' > /tmp/notitrans echo "Translation:" "$translate" >> /tmp/notitrans zenity --text-info --title="Translation" --filename=/tmp/notitrans
Вы пробовали что-нибудь из этого? скрипты? Что вы думаете?
Вы могли бы поменять уловки, что немного поет
Как здорово ... как быстро ...
По крайней мере, вы связались с оригинальным xD
Отлично, а с другими переводчиками, такими как Яндекс или Бинг, будет работать?
И если вы добавите эту строку в конце
spd-say "$ translate"
он поет тебе этим романтическим голосом
Очевидно, необходимо установить spd-say
Мы здесь, чтобы узнать:
- Я не знал о xsel, хотя он был создан в 2001 году Конрадом Паркером:
http: / / linux.die .net / man / 1 / xsel <- (Удалите пробелы, и вы будете перемещаться).
Вот как мы можем написать «xsel -o», и он напечатает в командной строке то, что мы выбрали и сохранили в буфере обмена Ubuntu.
—А как насчет уведомления-отправки, потому что я этого тоже не знал (последнее обновление датировано 2008 годом)
но читая:
ht tp: // manpages.ubu ntu.com/man pages / gutsy / man1 / notify-send.1.html
мы можем попрактиковаться в отправке любого сообщения в Ubuntu графически:
notify-send –icon = info "ПРИВЕТ, МИР!"
Мы можем отправить заголовок и сообщение к уведомлению, попробуйте:
notify-send –icon = info Дата "` date` "
{ОСТЕРЕГАЙТЕСЬ одинарных кавычек внутри двойных, код ASCII - 239}
- Не говоря уже о почтенном wget, вы только вспомните, насколько он мощный, по этой веб-ссылке:
ht tp: // blog.phen obarbital.info/ 2015/02 / знаете ли вы, как загрузить полный веб-сайт wget /
–Команда sed НИКОГДА этого не знала («Я просто знаю, что ничего не знаю»), но, исследуя, мы можем увидеть, насколько она полезна, мне очень понравились эти примеры (на английском языке):
http: // ww w.folkstal k.com/2012 /01/sed-command-in-unix-examples.html
Я "прогонял" примеры, и они отлично работают на моем ubuntu.
ЗДЕСЬ ДОБЫЛИ «ПРИБЫТИЕ»:
перевод не работает, поэтому я «проанализировал» команды компонентов, чтобы увидеть, какая из них работает хорошо, а какая плохо.
Поэтому я обратился за помощью к Уточке, которая знает все DUCKDUCKGO, и обнаружил:
ht tp: // w ww. webupd8.or g / 20 16/03 / translate-any-text-you-select-on-your.html
«Оригинальный сценарий, созданный в 2012 году, больше не работает, но мне удалось его исправить, и я решил поделиться им с вами».
И Я ДУМАЮ, ЧТО ЭТО НЕ РАБОТАЕТ ПОТОМУ ЧТО:
«Google Translate API - платная услуга. Для перевода веб-сайтов мы рекомендуем вам использовать гаджет Переводчика веб-сайтов Google».
https: // облако. Google. ru / translate / v2 / using_rest
Так что, если у вас есть лишние несколько долларов, они берут плату за миллионы писем:
https: // облако. Google. ru / translate / v2 / pricing
- ЭТО МОЯ ТЕОРИЯ, ПОЧЕМУ ЭТО НЕ РАБОТАЕТ, если кто-то знает, как поместить это в демонстрационный режим и в дидактических целях, тогда «опубликуйте» свой ответ, спасибо за внимание!
В СЛУЧАЕ, я вернулся, чтобы выполнить, шаг за шагом (и с другим IP-адресом для подключения к Google, потому что он «на короткое время заблокировал меня за необычный трафик» - необычно, что мы используем GNU / Linux wget без заголовка, ха-ха-ха), шаги описан гражданином России
http ps: // будет ahabr.ru/ post / 137215 / и тоже не работает, тоже плохо. 8- (
Плюс и минус
+ Возможность перевести фрагменты текста.
+ Требуется минимальное количество действий для получения перевода.
+ Поддержка практических vs языков.
+ Отсутствие необходимости в установке отдельных словрей.
- Не работает без подключения к интернету.
- Нет возможности выделить текст перевода.
* Проверенно в Unity, GNOME2, Xfce4, KDE4.
"За и против
+ Возможность переводить фрагменты текста.
+ Требуется минимальное количество действий для получения перевода.
+ Поддержка практически всех языков.
+ Нет необходимости устанавливать специальные словари.
- Он не работает без подключения к Интернету.
- Невозможно назначить переведенный текст.
* Протестировано на Unity, Gnome2, Xfce4, KDE4 ».
ПЕРЕВОД С РУССКОГО НА ИСПАНСКИЙ БЛАГОДАРНОСТЬ «Google Translate».
Автор поста на английском любезно ответил мне и подтвердил мои подозрения: я злоупотреблял сервисом google своими тестами:
https://twitter.com/ks7000/status/708398151351341058
Сейчас, шесть дней спустя, я попробовал еще раз очень осторожно, чтобы не сделать ошибок, а также попытался перевести с английского на французский, изменив «tl = fr», и вот результат:
https://twitter.com/ks7000/status/708397624890662915
Спасибо большое, сегодня узнал что-то новое! * -)
черт возьми, когда я хотел установить переводчик ... У меня были некоторые проблемы, и когда я хотел удалить его через терминал, я больше не мог подключиться к Интернету, проводному или Wi-Fi, я думаю, что удалил драйвер сетевой карты или что-то в этом роде . Как мне установить эти вещи в автономном режиме? С уважением
Отлично. Вы решили мою жизнь этим постом. Я хотел иметь простой в использовании переводчик без необходимости заходить в браузер или какую-либо программу. Большое спасибо.
Мне он очень понравился, и он очень полезен, но ... Кто-нибудь знает, почему я добавляю "en" в конце всех переводов ??
Хорошо!
На линии:
| sed «s / ,,, 0]] ,,. * // g» | awk -F '»' '{напечатать $ 2, $ 6}')»
remove (, $ 6), чтобы это выглядело так:
| sed «s / ,,, 0]] ,,. * // g» | awk -F '»' '{напечатать $ 2}')»
и готово !! без "в" в конце.
Привет!
Хорошо.
Удалите (, $ 6) и вуаля.
Привет.
Большое спасибо за вклад и за «Quita (, $ 6)» ;-P
Большое спасибо за вклад, у меня это сработало в пути / usr / bin
Чтобы удалить "en en" в конце, измените код следующим образом
#! / usr / bin / env bash
текст = »$ (xsel -o)»
translate = »$ (wget -U« Mozilla / 5.0 »-qO -« http://translate.googleapis.com/trans$
translate2 = $ {translate% ??????}
эхо "$ translate2" | xclip -selection буфер обмена
notify-send –icon = info "$ text" "$ translate2"
и готовы
Чтобы удалить в
измените последнюю строку для этого
notify-send –icon = info "$ text" "$ {translate: 0: -17}"
Привет
Когда я даю chmod + x ~ / notitrans, он сообщает мне, что файл не может быть найден
Я зашел так далеко ...
Здравствуйте, когда я помещаю абзац для перевода, он переводит только первое предложение, поскольку есть точка, он не переводит его полностью, и мне нужно переходить от точки к точке, чтобы перевести весь абзац, как я могу это решить ?