Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Автоматический переводчик выделенного текста  (Прочитано 1476 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн User_Name_OS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Всем привет, написал не большую программу и скрипт для вывода перевода в всплывающие уведомления.
Работает все хорошо только когда выделяю большой текс перевод полностью не помешяеться в уведомление помогите по Братски исправить данный косяк!) Хочу чтобы текс в уведомлении высвечивался полностью без......


Программа:
from googletrans import Translator
import sys

translator = Translator()
c = sys.argv[1]

def test(a):

    b = translator.translate(a,dest='ru')
    return b.text

x = test(str(c))
print(x)

Скрипт:
#!/bin/bash

text=`xsel -o`

translated=`python3 /home/unknow/translete/translate.py "$text"`

run=`echo $translated`

notify-send "$run"
« Последнее редактирование: 11 Марта 2021, 11:19:38 от ALiEN175 »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6834
    • Просмотр профиля
Попробую ответить примером.
Для вывода уведомлений использую скрипт.
Для демонстрации многострочного вывода написал скрипт multiline:
#!/bin/bash
msg1="Все сообщение в одной строке"
msg2="Каждое
слово
сообщения
на отдельной
строке"
/usr/local/bin/notify-send "$msg1"
avnotify --msg_svc=notify --msg="$msg1" --
/usr/local/bin/notify-send "$msg2"
avnotify --icon=ubuntu-logo-icon --msg_svc=notify --msg="$msg2" --
Запускаю. Результат:

« Последнее редактирование: 11 Марта 2021, 04:48:36 от andytux »

Morisson

  • Гость
Это видимо особенность нотификатора gnome. В других нотификаторах должно нормально работать. Или используйте какой-нибудь zenity.
А вообще вы опоздали, ведь есть уже crow translator, который переводит из любого выделенного фрагмента из любого приложения на основе трех движков (yandex, google , bing)да еще и с проговариванием по хоткею через dbus/qdbus. Есть также под windows и, емнип, Mac

Оффлайн User_Name_OS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
andytux, спасибо за пример) только честно я не разобрался как работает дынный скрипт)
Morisson, спасибо огромное за наводку Zenity решил мой вопрос)

Скрипт:
#!/bin/bash

text=`xsel -o`

translated=`python3 /home/unknow/translete/translate.py "$text"`

run=`echo $translated`

zenity --info --text "$run"  --width=600

« Последнее редактирование: 11 Марта 2021, 11:16:54 от ALiEN175 »

Оффлайн AlexDem

  • Активист
  • *
  • Сообщений: 696
    • Просмотр профиля
А зачем эта программа если есть плагин google translate?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6834
    • Просмотр профиля
Цитировать
спасибо за пример) только честно я не разобрался...
...с примером.
Немного подправил его в предыдущем сообщении.
Если словами, по-русски, то нужно отформатировать сообщение перед его передачей notify-send.
Впрочем, справедливости ради стоит сказать, что в современом гноме все это не работает. В нем изуродовали все, не только уведомления и notify-send.
« Последнее редактирование: 11 Марта 2021, 05:27:31 от andytux »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Цитировать
notify-send "$run"
У notify-send первый параметр - имя оповещения, второй - текст.

notify-send "Перевод:" "$run"Так должно не обрезаться.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн User_Name_OS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Так должно не обрезаться.

Спасибо, проверил данный метод)

Работает он так если выпадает уведомление то чтобы прочитать текс полностью нужно навести курсор мыши на него но все ровно в уведомления не помещяется слишком большой текс)

Пришел к такому выводу что самый удобный вариант это Zenity
Честно удобная штука получилась можно из любого места очень быстро переводить текс=)

zenity --info --title="Перевод" --text "$run"  --width=600

Morisson

  • Гость
самый удобный вариант crow. Выделяешь любой текст, нажимаешь хоткей и во всплывашке перевод. Причем, если не нравиться, то тут же можно выбрать другой движок. Или другой хоткей и проговаривается. Все уже придумано. дебки лежат на гите.

Оффлайн User_Name_OS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
самый удобный вариант crow. Выделяешь любой текст, нажимаешь хоткей и во всплывашке перевод. Причем, если не нравиться, то тут же можно выбрать другой движок. Или другой хоткей и проговаривается. Все уже придумано. дебки лежат на гите.


Честно делать мне нечего вот херней и занимаюсь ;D ;) 8)

 

Страница сгенерирована за 0.051 секунд. Запросов: 24.