View previous topic :: View next topic |
Будет ли для вас такой плагин полезным? |
Да! |
|
50% |
[ 3 ] |
Нет! |
|
50% |
[ 3 ] |
|
Total Votes : 6 |
|
Author |
Message |
user-id-4576
Joined: 23 Apr 2011 Posts: 9
|
Posted: Sun Apr 24, 2011 12:40 pm Post subject: Request: плагин - переводчик |
|
|
Было бы круто сделать плагин - переводчик, работающий по принципу HexShell - экран делиться пополам, вверху оригинал, внизу перевод, при выделении переводиться только выделенное, каретка ездит синхронно. В подсказках при задержке указателя вылазят варианты перевода.
Было б круто работать с документацией на англ языке. |
|
Back to top |
|
 |
user-id-4576
Joined: 23 Apr 2011 Posts: 9
|
Posted: Tue Apr 26, 2011 9:11 am Post subject: |
|
|
Блин неужели настолько бесполезная идея.
Ведь часто попадаются рид ми на английском и иметь под рукой переводчик былобы очень полезно.
Может стоило сделать опрос по другому.....
Что то типа "Имеет ли право на существование такой плагин?" |
|
Back to top |
|
 |
Deim0s
Joined: 12 Feb 2010 Posts: 139
|
Posted: Tue Apr 26, 2011 10:19 am Post subject: |
|
|
user-id-4576,
Quote: | Блин неужели настолько бесполезная идея. |
Скорее непонятная. Каков должен быть движок плагина? Из опен-сорсного на ум приходит StarDict, установка которого без словарей, если не изменяет память, занимает более 50 Мб. |
|
Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 3076 Location: Киев, Русь
|
Posted: Tue Apr 26, 2011 10:23 am Post subject: |
|
|
user-id-4576 wrote: | Что то типа "Имеет ли право на существование такой плагин?" | Право на существование имеет любой плагин, только кто его писать будет?
user-id-4576 wrote: | Блин неужели настолько бесполезная идея. | Идея бесполезная, т.к. тексты в основном переводятся с помощью онлайн-переводчиков.
Для открытия словарных статей в Яндекс.Словарях, Википедии в Punto Switcher'е можно настроить комбинации клавиш, например у меня настроено так:
- Win+Я - поиск в Яндексе;
- Win+C - открытие словарной статьи в Яндекс.Словарях;
- Win+W - открытие словарной статьи в русской Википедии; можно ещё в английской настроить.
Для перевода словосочетаний или коротких предложений есть InternetRequest.js.
Длинный текст просто копирую и вставляю в онлайн-переводчик, что неудобно.
Лучше бы сняли ограничение на количество передаваемых символов или, если это невозможно (вроде бы это ограничение WshShell.Run), лучше бы добавили тег, который не просто берёт выделенный текст (\s), а копирует его в буфер обмена, а потом вставляет при формировании запроса целиком, как это сделано в Opera. Пример пункта меню Opera:
Code: | Item, "En -> Ru (Google)" = Go to Page, "javascript:void(window.open('http://translate.google.com/#en|ru|'+encodeURIComponent(function(){var d=document,s=d.getSelection(),t=d.querySelectorAll('textarea,input[type=\x22text\x22],input[type=\x22search\x22],input:not([type])');if(!s)for(var i=0,e;e=t[i];i++){if(s=e.value.substring(e.selectionStart,e.selectionEnd))break}return s}()),'','width=800,height=576,left=100,top=100,scrollbars=yes,location=no'));",,, "lng_ru" | вернее вот так:
Code: | Item, "Грамота.Ru" = Copy, -2,,, "null" & New Page & Go to page, "http://www.gramota.ru/slovari/dic/?word=%c&all=x&lop=x&efr=x&zar=x&ag=x&ab=x&sin=x&lv=x&az=x&pe=x" | Здесь, правда, используется передача через ini-переменную %c, но не поверю, что кроме как Раном больше не передать необходимую строку...
Вот это было бы толково.
А если бы сделать так, чтобы предыдущее значение в буфере восстанавливалось, то вообще было бы здорово. |
|
Back to top |
|
 |
user-id-4576
Joined: 23 Apr 2011 Posts: 9
|
Posted: Tue Apr 26, 2011 12:00 pm Post subject: |
|
|
Quote: | Идея бесполезная, т.к. тексты в основном переводятся с помощью онлайн-переводчиков. |
Под рукой может не быть интернета, к тому же текст (допустим) уже открыт и оказался на другом языке (чаще всего англ) - жмем кнопку сразу видим перевод. Помоему весьма удобно.
Quote: | только кто его писать будет? |
Но ведь уже существующие плагины не сами собой появились.)) И за это авторам огромное спасибо, лично я для себя решил что акел это лучший редактор из всего что я видел, очень простой, легко переносимый с компа на комп и очень грамотно сделаный. |
|
Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 3076 Location: Киев, Русь
|
Posted: Tue Apr 26, 2011 3:29 pm Post subject: |
|
|
user-id-4576 wrote: | Под рукой может не быть интернета | Как уже сказал Deim0s - можно воспользоваться программой переводчиком. Проблема та же - не удастся передать большой кусок текста.
user-id-4576 wrote: | Но ведь уже существующие плагины не сами собой появились.)) | А этот - нет.
Напишите - появится  |
|
Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Tue Apr 26, 2011 5:35 pm Post subject: |
|
|
VladSh wrote: | Лучше бы сняли ограничение на количество передаваемых символов или, если это невозможно (вроде бы это ограничение WshShell.Run), лучше бы добавили тег, который не просто берёт выделенный текст (\s), а копирует его в буфер обмена, а потом вставляет при формировании запроса целиком, как это сделано в Opera. | Это ограничение на длину URL передаваемую через командную строку как минимум самих браузеров. Лучше напрямую запросить перевод через ActiveX "http://code.google.com/intl/ru/apis/language/translate/overview.html", но это к Infocatcher'у - он тут спец  |
|
Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 3076 Location: Киев, Русь
|
Posted: Wed Apr 27, 2011 4:43 pm Post subject: |
|
|
Из ЛС (было вставлено позже):
Infocatcher wrote: | VladSh wrote: | Это на комп надо устанавливать какое-то апи и регистрировать его как ActiveX? Может есть какой-нибудь универсальный (уже существующий в Винде) ActiveX, с помощью которого можно было бы передавать запросы в инет и получать результаты? | Нет, ничего дополнительного не требуется.
Фокус в том, что у MS AJAX запросы надо делать через ActiveX. Особенно в WSH – там XMLHttpRequest вообще не реализован, а в IE на него действует ограничение по домену.
Так что в данном случае API – это когда сервер отдает данные в удобном виде. |
Instructor wrote: | Лучше напрямую запросить перевод через ActiveX "http://code.google.com/intl/ru/apis/language/translate/overview.html", но это к Infocatcher'у - он тут спец  |
Infocatcher, помогите!
Чё-то badRequest всегда возвращается: май кодэ
Code: | var req = createRequestObject();
if (req)
{
var sURL = "https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=ru&callback=resultText&q=" + encodeURIComponent(AkelPad.GetSelText());
req.open("GET", sURL, false);
req.onreadystatechange = processReqChange;
req.send();
}
function createRequestObject()
{
if (typeof(XMLHttpRequest) === 'undefined')
{
XMLHttpRequest = function()
{
try { return new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) {}
throw new Error("Your system does not support XMLHttpRequest.");
};
}
return new XMLHttpRequest();
}
function processReqChange()
{
try {
// только при состоянии "complete"
if (req.readyState == 4)
{
// для статуса "OK"
if (req.status == 200)
{
// обработка ответа
WScript.Echo("|" + req.responseText + "|");
}
else {
WScript.Echo("|" + "Не удалось получить данные:\n" + req.statusText + "|");
}
}
}
catch( e ) {
WScript.Echo('Ошибка: ' + e);
}
} |
Last edited by VladSh on Fri Apr 29, 2011 9:42 am; edited 1 time in total |
|
Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1767
|
Posted: Thu Apr 28, 2011 8:08 am Post subject: |
|
|
Quote: | ?key=INSERT-YOUR-KEY |
Ммм?
Где-то на http://forum.wincmd.ru/ был скрипт в виде HTA. |
|
Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 3076 Location: Киев, Русь
|
Posted: Thu Apr 28, 2011 3:37 pm Post subject: |
|
|
Нашёл здесь, но оно жутко бажит, и никакого кода для формирования запроса я не увидел...
Хотелось бы чисто под Акел замутить скриптец.
Infocatcher wrote: | Quote: | ?key=INSERT-YOUR-KEY |
Ммм? |
на сайте гугла есть такое:
Quote: | Warning: You need your own API key in order to use the Google Loader. In the example below, replace "INSERT-YOUR-KEY" with your own key. Without your own key, these examples won't work.
...
You must have a Google Account to obtain a Google API key, and your API key is tied directly to your Google Account... | Никто не знает, где можно на шару взять такой ключ?
P.S. Не обязательно в Акел результат возвращать, достаточно было бы просто передать большой текст в открывающуюся страницу браузера.. только вот как это сделать? |
|
Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 2240 Location: Vinnitsa, Ukraine
|
Posted: Thu Apr 28, 2011 6:39 pm Post subject: |
|
|
VladSh
Quote: | Никто не знает, где можно на шару взять такой ключ? | Если это этот ключ http://code.google.com/intl/uk-UA/apis/loader/signup.html то, можно сделать за две минуты:
1. Регистрируемся в гугле(gmail-ом и/или прочими сервисами).
2. Заводим себе где-то халявную страничку(даже на том же гугле).
3. Логинимся в гугл.
4. Переходим по выше указанной ссылке.
5. Вбиваем ссылку на страничку. И получаем ключ. |
|
Back to top |
|
 |
KDJ
Joined: 06 Mar 2010 Posts: 1929 Location: Poland
|
Posted: Thu Apr 28, 2011 7:42 pm Post subject: |
|
|
VladSh
Your script works.
 |
|
Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 3076 Location: Киев, Русь
|
Posted: Fri Apr 29, 2011 7:37 am Post subject: |
|
|
Да, этот. Только не хочется региться ещё и на гугле, и так уже столько регистраций, что запутаться можно...
KDJ
Thank you for being tested. Now I know that it works
EDITED: друг сгенерил APIkey, я его подставил в скрипт, но всё равно получается вот такая фигня: текст сообщения Quote: | ---------------------------
|resultText({
"error": {
"errors": [
{
"domain": "global",
"reason": "badRequest",
"message": "Bad Request"
}
],
"code": 400,
"message": "Bad Request"
}
}
);|
---------------------------
ОК
--------------------------- |
Может гугловский браузер должен стоять на компе? Или может быть это всё работает, когда залогинился на Гугле? Уже не знаю что и думать...
Есть какие-нибудь идеи?
Добавлено: текущая отладочная версия скрипта: ... [ выпилено ]
Ещё раз отредактировано
Решение простое: доку надо было лучше читать - v.2 - тестовая, в ней требуется API_KEY. Пока надо использовать v.1, в которой API_KEY опционален. Будем надеяться, что в финальной v.2 его опять переведут в статус опциональных..
Рабочая версия скрипта: TranslateWithGoogleAPI.js; поддерживаются v.1 и v.2 API. |
|
Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Fri Apr 29, 2011 2:36 pm Post subject: |
|
|
VladSh
Удобно теперь Только "AkelPad.Command(4101);" закомментировал. Можно добавить новый второй параметр "2" - менять на месте и в таком случае добавить true в методе ReplaceSel, т.к. наглядно видно какой текст был заменен. |
|
Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 3076 Location: Киев, Русь
|
Posted: Fri Apr 29, 2011 3:00 pm Post subject: |
|
|
Infocatcher wrote: | VladSh wrote: | у меня почему-то не работает мой код | Я так понимаю, заработало?
Если пустить скрипт в сеть, то у меня работает.  | Не, v.2 так и не работает, и не знаю почему ((
Что значит "пустить скрипт в сеть"?
Instructor
Сделано.
Новую вкладку планировал для "больших строк", да не тут-то было... - ещё один трабл обнаружился досадный.. - русского текста можно перевести только 542 символа, а английский - 1400 (( пишет:
Quote: | Unable to retrieve data:
Request-URI Too Large | P.S. Человек пробовал вытянуть аякс-запросы при переводе большого текста (200 тысяч отправил и 50 тысяч получил результата) со страницы гугл-транслейта и заюзать из PHP, то у него получилось. Но там легче, т.к. юзается специальный фреймворк - отдельным методом задаётся url, отдельным методом параметры и т.п... на JS такое не получается, т.к. всё в url'е д.б. или я не разобрался.
И ещё неприятно - съедаются переводы строк.. можно ли что-то с этим сделать?
Поделитесь мыслями!  |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|