Автор Тема: translate  (Прочитано 2164 раз)

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

Оффлайн BCxTIM

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 11
translate
« : 13 Январь 2012, 17:37:07 »
Здесь я хочу привести скрипт, для создания перевода. Допустим, Вам нужно перевести какой-то текст, или сообщение. Чтобы это сделать, можно долго и нудно пользоваться каким-то переводчиком, либо заходить в гугл, вставлять, и забирать текст.
Скрипт делает все проще.

Для начала мы должны установить
Цитировать
apt-get  install cur
l (это нужно если какой-то другой язык вы хотите, кроме русского поставить, я ставил корейский)

Затем копируем код что у меня,

#!/bin/bash

# http://www.gnu.org/software/bash/manual/bash.html#The-Set-Builtin
set -o errexit

function error()
{
echo "${scriptname}: error:" "${@}" > /dev/stderr
exit 1
}

function introduceglobals()
{
script="$(readlink --canonicalize "${0}")"
scriptdir="$(dirname "${script}")"
scriptname="$(basename "${script}")"

for arg in "${@}"; do
case "${arg}" in
-h|--help)
cat << EOF
usage: ${scriptname} [OPTIONS] SPEECH...
Translate text from one human language to another

N O T E
This script uses http://translate.google.com service to convert
text to speach

FIXME
Not Implemented

Example of Usage:
$ translate -f en -t ko hello
$ translate -f ru -t en Привет, дружище
$ translate -f ko -t ru ?????
EOF
exit
;;

esac
done
}

introduceglobals "${@}"

from='en'
to='ru'
text="${1}"

# translate 'Hello, "whatever" how are you?'
# [[["Здравствуй, \"все\" как дела?","Hello, \"whatever\" how are you?","Zdravstvu?, \"vse\" kak dela?",""]],,"en",,[["Здравствуй,",[5],1,0,502,0,2,0],["\"все\"",[6],1,0,545,2,5,0],["как дела?",[7],1,0,493,5,8,0]],[["Hello ,",5,[["Здравствуй,",502,1,0],["Здравствуйте",0,1,0]],[[0,6]],"Hello, \"whatever\" how are you?"],["\" whatever \"",6,[["\"все\"",545,1,0]],[[7,17]],""],["how are you ?",7,[["как дела?",493,1,0]],[[18,30]],""]],,,[["en"]],73]
#
# s/^\[\[\[//
# "Здравствуй, \"все\" как дела?","Hello, \"whatever\" how are you?","Zdravstvu?, \"vse\" kak dela?",""]],,"en",,[["Здравствуй,",[5],1,0,502,0,2,0],["\"все\"",[6],1,0,545,2,5,0],["как дела?",[7],1,0,493,5,8,0]],[["Hello ,",5,[["Здравствуй,",502,1,0],["Здравствуйте",0,1,0]],[[0,6]],"Hello, \"whatever\" how are you?"],["\" whatever \"",6,[["\"все\"",545,1,0]],[[7,17]],""],["how are you ?",7,[["как дела?",493,1,0]],[[18,30]],""]],,,[["en"]],73]
#
# s/","/\n"/
# "Здравствуй, \"все\" как дела?
# "Hello, \"whatever\" how are you?","Zdravstvu?, \"vse\" kak dela?",""]],,"en",,[["Здравствуй,",[5],1,0,502,0,2,0],["\"все\"",[6],1,0,545,2,5,0],["как дела?",[7],1,0,493,5,8,0]],[["Hello ,",5,[["Здравствуй,",502,1,0],["Здравствуйте",0,1,0]],[[0,6]],"Hello, \"whatever\" how are you?"],["\" whatever \"",6,[["\"все\"",545,1,0]],[[7,17]],""],["how are you ?",7,[["как дела?",493,1,0]],[[18,30]],""]],,,[["en"]],73]
#
# s/^"//
# Здравствуй, \"все\" как дела?
# "Hello, \"whatever\" how are you?","Zdravstvu?, \"vse\" kak dela?",""]],,"en",,[["Здравствуй,",[5],1,0,502,0,2,0],["\"все\"",[6],1,0,545,2,5,0],["как дела?",[7],1,0,493,5,8,0]],[["Hello ,",5,[["Здравствуй,",502,1,0],["Здравствуйте",0,1,0]],[[0,6]],"Hello, \"whatever\" how are you?"],["\" whatever \"",6,[["\"все\"",545,1,0]],[[7,17]],""],["how are you ?",7,[["как дела?",493,1,0]],[[18,30]],""]],,,[["en"]],73]
#
# s/\\"/"/g
# Здравствуй, "все" как дела?
# "Hello, \"whatever\" how are you?","Zdravstvu?, \"vse\" kak dela?",""]],,"en",,[["Здравствуй,",[5],1,0,502,0,2,0],["\"все\"",[6],1,0,545,2,5,0],["как дела?",[7],1,0,493,5,8,0]],[["Hello ,",5,[["Здравствуй,",502,1,0],["Здравствуйте",0,1,0]],[[0,6]],"Hello, \"whatever\" how are you?"],["\" whatever \"",6,[["\"все\"",545,1,0]],[[7,17]],""],["how are you ?",7,[["как дела?",493,1,0]],[[18,30]],""]],,,[["en"]],73]

curl http://translate.google.com/translate_a/t \
--silent \
--user-agent 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1' \
--get \
--data-urlencode 'client=t' \
--data-urlencode "hl=${from}" \
--data-urlencode "tl=${to}" \
--data-urlencode "text=${text}" \
| sed -e 's/^\[\[\[//' -e 's/","/\n"/' -e 's/^"//' -e 's/\\"/"/g' \
| head --lines=1
   
   Сохраняем файл с именем translate.sh в домашнюю папку и там в папку bin
   
   Разрешаем права командой
   
Цитировать
chmod a+x translate
   
   И затем пользуемся.. к примеру, нужно перевести: Hi, how are you?
   
   Вводим в консоли
   
   
Цитировать
translate 'Hi how are you?'
   
   Нажимаем ентер, и терминал через коннет с гугл транслэйтом переводит.
   
   Вот и все. Если кого заинтересовало, в доработке, то прошу скинуть потом код.
 

Оффлайн Angel_ok

  • Интересующийся
  • Местный житель
  • ***
  • Сообщений: 485
  • Lenovo E440 Debain 9 Gnome 3.22.2
Re: translate
« Ответ #1 : 13 Январь 2012, 18:47:04 »
Еще для наутилиса можно создать сценарий
или добавить пункт в меню ПКМ для перевода и конвертации различного мультимедийного контента.
Audio/Video/Image/Text/ISO Convert
Вы думаете, всё так просто? Да, всё просто. Но совсем не так…
                                                                                                          Альберт Эйнштейн
 

Оффлайн BCxTIM

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 11
Re: translate
« Ответ #2 : 13 Январь 2012, 19:11:32 »
С этим пока что не работал, и боюсь, что врятли смогу в ближайшем будущем сделать!
 

Оффлайн Angel_ok

  • Интересующийся
  • Местный житель
  • ***
  • Сообщений: 485
  • Lenovo E440 Debain 9 Gnome 3.22.2
Re: translate
« Ответ #3 : 13 Январь 2012, 19:54:50 »
врятли смогу в ближайшем будущем сделать!
Ничего сложного.
Пять минут работы.
Вы думаете, всё так просто? Да, всё просто. Но совсем не так…
                                                                                                          Альберт Эйнштейн
 

Оффлайн я не знаю

  • Пользователь
  • *
  • Сообщений: 10
Re: translate
« Ответ #4 : 20 Март 2012, 20:26:41 »
На хабре видел подобный скрипт

#!/bin/bash
# Translate text with Yandex API
_zenity="/usr/bin/zenity"
_out="/tmp/translate.output.$$"

text=$(${_zenity} --title  "Enter text" --entry --entry-text="$(xclip -o)" )

if [ $? -eq 0 ]
then
wget -qO- translate.yandex.ru/tr.json/translate --post-data="srv=tr-text&lang=en-ru&text=$text" | sed 's/"//g' | zenity --width=600 --height=240 --title "Translation for $text" --text-info
fi
 

Теги: