К основному контенту

Gedit and Google translator

В Gedit очень хороший и большой набор расширений ( plugins ), но мне не удалось найти расширение для перевода текста. Попробуем найти выход из этой ситуации.

1. Скрипт на языке Python я взял где то в интернете и чуть подредактировал. Также положим скрипт в стандартное место чтобы он был доступен Всем пользователям :
cat /usr/local/bin/gtranslate.py
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re, urllib, sys
import simplejson as json

proxy = {'http': 'http://proxy:3128'} # proxy = None (for no proxy)
base_uri = "http://ajax.googleapis.com/ajax/services/language/translate"

class UrlOpener(urllib.FancyURLopener):
version = "py-gtranslate/1.0"

def translate(phrase, src="uk", to="en"):
data = urllib.urlencode({'v': '1.0', 'langpair': '%s|%s' % (src, to), 'q': phrase.encode('utf-8')})
resp = json.load(UrlOpener(proxy).open('%s?%s' % (base_uri, data)))
try:
return resp['responseData']['translatedText']
except:
return ""

def main(words):
print translate(words, src="en", to="ru").encode('utf-8')

if __name__ == "__main__":
main(sys.argv[1])
Проверяем скрипт:
$ gtranslate.py 'one table'
один стол
2. Теперь задействуем станадртный плугин gedit : External tools

a. Запускаем gedit и в меню выбираем : Правка -> Параметры -> Закладка "Модули", делаем активным модуль Внешние инструменты и нажимаем кнопку Настроить модуль.

б. Далее нажимаем кнопку Создать и вводим имя Сервиса - Gtranslate, справа прописываем необходимые параметры :
- Описание : Google Translate
- Комбинация клавиш : (Shift)(Control)(g)
- Команды : xargs -0 -I '{}' gtranslate.py {}
- Ввод : Текущее выделение
- Вставить : В панель вывода
- Применимость : Только локальные файлы

* Вообще настройки сервиса могут быть такие какие нравятся вам, главное чтобы строка команды : xargs -0 -I '{}' gtranslate.py {} осталось такой для перевода только выделенного текста.

3. Проверка. Открываем в gedit какой нибудь файл с английскими словами, выделяем нужное предложение, нажимаем Shift+Control+g и в панели вывода видим перевод фразы.

Комментарии

Популярные сообщения из этого блога

FF 31.x ESR and Nagios Checker

Оказывается FireFox 31.x сделали ESR. И достаточно быстро его затискали в обновление CentOS 6 . Но этот Firefox уже с новым интерфейсом и на нем отсутcтвует статус бар внизу :( В частности я использую Nagios Checker его перенести нельзя и мне это доставляет большое неудобство. К счастью прям на странице Nagios Checker рекомендуют установить дополнение status-4-evar , и все сразу становится как было :)

bootc

 С большим опозданием, хочу сообщить вам о новой крутой технологии bootc . Получается она вышла достаточно давно, и уже с весны 2025 года стала доступна в RHEL 10. Сам я с этой технологией познакомился случайно, благодаря статье про Fedora Hummingbird из журнала Fedora Magazine . Там упоминается это замечательная технология как bootc. По сути bootc - переводится как загружаемый контейнер.  Т.е. контейнер может работать как обычный OCI/Docker контейнер, но также может работать в виртуальных машинах и даже на голом железе. Причем сам контейнер по сути есть атомарный т.е. (immutable) и после создания его нельзя изменить и как следствие надежный и безопасный. При обновлении старый объект удаляется и заменяется новым. Причем все это может делать сам контейнер, следить о появлении новой версии в регистре, скачивать слой контейнера и если что не так то откатывать изменение. Причем вся сборка этого контейнера управляется через API (API-driven), т.е. полная автоматизация, модульность...

Install Redmine 2.3.1 in CentOS 6.x

Я собрал стек Ruby on Rails версии 3.2.13 под ruby 1.8.7 из дистрибутива CentOS 6.x. Теперь можно легко и просто установить на сервер с EL6 систему управления проектами Redmine версии 2.3.1 . Установить все это можно простым скриптом ( если не нравится скрипт то можно посмотреть внутрь него и выполнить все шаги руками ) Загрузка скрипта P.S. К сожалению из за невозможности удалять пакеты в системе сборки koji пришлось сделать репозитарий на google drive. P.P.S. С помощью костылей в виде указывание EPOCH в spec, удалось таки собрать пакеты в russian KOJI, так что в качестве репозитария можно указывать теперь: baseurl=http://koji.russianfedora.ru/repos/dist-el6-build/latest/$basearch/