Comments 26
Всё это, конечно, хорошо, но простите, это уже который по счёту?
0
Под операционные системы семейства Windows существует уже давно много переводчиковОга, целый один вменяемый переводчик, и тот переводит достаточно убого по сравнению с онлайн-сервисами.
весь перевод осуществляется через интернет. Но в век интернет-технологий, когда интернет в каждом доме — я думаю это не проблема.Может хотя бы 1 декабря этого года люди наконец поймут, что привязка на облачные сервисы с закрытым исходным кодом это зло? Ну или хотя бы шапки страниц с описанием API читать научатся.
+5
> Действительно, набирать такую большую команду запуска в консоли действительно затруднительно.
echo 'alias ru="python ~/src/translate/translate.py ru"' >> .bashrc
+4
Посмотрите в своем репозитории и вы обнаружите значительное количество разнообразных словарей и переводчиков, причем со своими базами, без необходимости в интернет-подключении.
Да, чем вам не угодила встроенная библиотека json?
Да, чем вам не угодила встроенная библиотека json?
-1
> при этом думая как хорошо было бы, если это было реализовано бы в виде софта под *nix.
У меня есть подозрение, что автор опоздал со статьёй лет так на 5. А то и больше.
У меня есть подозрение, что автор опоздал со статьёй лет так на 5. А то и больше.
0
Автор молодец. Эта статья очень поможет новичкам, так как пример, мне кажется, заставит писателя продолжить ) К простенькому скрипту можно прикрутить много чего. Ну лучше с такой статьи начать чем с хеловорлда) Или не так, хороша стать тем, кому хелловорлд не помог влиться )
0
Стоит прикрутить автовыбор языка, тем более, что это делается элементарно
0
Пара советов:
1) Прочтите и соблюдайте PEP8 (http://www.python.org/dev/peps/pep-0008/)
2) Зачем вам прикидыватся браузером?
3) Зачем так много кода завернуто в try? HTTPError бросает только urlopen.
4) Забыли закрыть соединение. Вместо try/catch заверните urllib в contextmanager
5) Как уже сказали, воспользуйтесь стандартной json-библиотекой.
6) Не храните сторониие библиотеки в одной папке со своим кодом. На досуге почитайте про distutils, virtualenv и pip.
1) Прочтите и соблюдайте PEP8 (http://www.python.org/dev/peps/pep-0008/)
2) Зачем вам прикидыватся браузером?
3) Зачем так много кода завернуто в try? HTTPError бросает только urlopen.
4) Забыли закрыть соединение. Вместо try/catch заверните urllib в contextmanager
5) Как уже сказали, воспользуйтесь стандартной json-библиотекой.
6) Не храните сторониие библиотеки в одной папке со своим кодом. На досуге почитайте про distutils, virtualenv и pip.
+7
В обёртке (/usr/bin/ru) лучше юзать "$@" вместо $*
0
А, еще кроме «en» можно дополнительно сделать аналогичную подстановку «англ».
Это позволит избежать переключения раскладки при наборе команды.
То есть набирать можно будет так:
Предвидя возражение желающих минуснуть этот коммент, что типа, все равно раскладку переключать придется, и типа нефиг выпендриваться, отвечу:
Если возникает необходимость не одно слово проверять, а несколько, и причем не сразу, то раскладку между несколькими командами и вовсе не нужно будет ни разу переключать.
Если же подстановка «англ» кому-то (кто очень часто будет этой командой пользоваться) покажется чересчур длинной, по сравнению с тем же «en», то также дополнительно можно заюзать подстановку «ё».
Эта буква очень удобно расположена с края клавиатуры и позволит сэкономить на несколько нажатиях.
А, еще можно написать малюсенький апдейтик к скрипту, который вообще позволит отказаться от переключения раскладки. А именно:
Если в режиме EN вводятся латинские (английские) буквы, то, автоматически корректировать ввод в русскую раскладку. Например:
преобразовывать в скорректированный аналог:
А, еще можно кэшировать результаты (чтоб при полном совпадении запроса не делать лишних обращений в Интернет).
Это позволит избежать переключения раскладки при наборе команды.
То есть набирать можно будет так:
англ привет
Предвидя возражение желающих минуснуть этот коммент, что типа, все равно раскладку переключать придется, и типа нефиг выпендриваться, отвечу:
Если возникает необходимость не одно слово проверять, а несколько, и причем не сразу, то раскладку между несколькими командами и вовсе не нужно будет ни разу переключать.
англ привет
англ пока
Если же подстановка «англ» кому-то (кто очень часто будет этой командой пользоваться) покажется чересчур длинной, по сравнению с тем же «en», то также дополнительно можно заюзать подстановку «ё».
Эта буква очень удобно расположена с края клавиатуры и позволит сэкономить на несколько нажатиях.
ё привет
А, еще можно написать малюсенький апдейтик к скрипту, который вообще позволит отказаться от переключения раскладки. А именно:
Если в режиме EN вводятся латинские (английские) буквы, то, автоматически корректировать ввод в русскую раскладку. Например:
en ghbdtn
преобразовывать в скорректированный аналог:
en привет
А, еще можно кэшировать результаты (чтоб при полном совпадении запроса не делать лишних обращений в Интернет).
+1
Я для себя сделал просто bat-ник, который grep-ает словарик.
@ECHO OFF
if "%1" == "" (
echo "usage: dic "
) else (
@ECHO ON
grep %1 d:\dic\enru.txt
@ECHO OFF
)
0
Статья ценна уроком по Python, а так —
Под него много словарей (я пользовался английским и эсперанто) и клиентов, консольных и гуевых, довольно мощные утилиты конвертации словарей в формат dict.
Доступ в интернет не обязателен, если сервер стоит у вас на локалке, но есть приятный момент — в сети существуют рабочие сервера dict, и вы можете соединяться с ними при помощи любого клиента dict, не устанавливая себе сервер.
# aptitude install dictd
Под него много словарей (я пользовался английским и эсперанто) и клиентов, консольных и гуевых, довольно мощные утилиты конвертации словарей в формат dict.
Доступ в интернет не обязателен, если сервер стоит у вас на локалке, но есть приятный момент — в сети существуют рабочие сервера dict, и вы можете соединяться с ними при помощи любого клиента dict, не устанавливая себе сервер.
+1
Нашел однажды на commandlinefu.com:
Проще некуда уже :)
bahbka@bahbka-notebook:~$ grep translate .bashrc
translate(){ wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=${2:-en}|${3:-ru}" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/'; }
bahbka@bahbka-notebook:~$ translate hello
привет
Проще некуда уже :)
+3
Где-то нашел решение для яндекс словарей, чуток его допилил и положит вот такую функцию в ~/.bashrc:
}
trans() {
curl -s 'm.slovari.yandex.ru/translate.xml?lang=en-ru-en&text='"$1" | grep -Eo '[аa1]\)
' | head -n 1 | awk -F'>' '{print $3}' | awk -F'<' '{print $1}'}
0
Эх… Уже не работает… Код страницы изменился :(
0
Тоже сделал клиента такого, только на питоне.
goo.gl/6jW0u
sudo easy_install yaslov && yaslov привет
goo.gl/6jW0u
0
О! Брат-велосипедостроитель :)
А я на баше писал скрипт для простенького словарика (трехъязычный: русско-английско-карачаевский). Англо-русский словарь брал уже даже не помню где, а карачаево-русский получил путем grep'ания табличек с какого-то сайта.
А я на баше писал скрипт для простенького словарика (трехъязычный: русско-английско-карачаевский). Англо-русский словарь брал уже даже не помню где, а карачаево-русский получил путем grep'ания табличек с какого-то сайта.
0
UFO just landed and posted this here
Sign up to leave a comment.
Пишем консольный переводчик для *nix на Python