Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Как встроить в свою програму переводчик Pragma   Найти похожие ветки 

 
integeri   (2006-11-10 10:31) [0]

Есть хороший переводчик Pragma , но нужно перевод делать через свою програму, тоесть єсть база даних, пользователь вносить текст, и моя програма в одну ячейку вставляеть текст как есть и сразу делает перевод во вторую ячейку. Может ктото  сталкивался с такой задачкой!!!


 
Орион ©   (2006-11-10 10:35) [1]

> [0] integeri   (10.11.06 10:31)

Есть ли на сайте производителя переводчика API к нему?
Может ли выступать переводчик в роли ActiveX объекта?
Есть ли консольная версия переводчика?


 
integeri   (2006-11-10 10:42) [2]


> Орион ©   (10.11.06 10:35) [1]

Вот именно на сайте никакой информации нет.

> Есть ли консольная версия переводчика?
-наверное нет

> Может ли выступать переводчик в роли ActiveX объекта?
 - установил програму , и прошолся по всех ActiveX которие установление , кажися нет там новых


 
Орион ©   (2006-11-10 10:44) [3]

> [2] integeri   (10.11.06 10:42)

тогда скорей всего никак :(


 
ЮЮ ©   (2006-11-10 10:44) [4]


> Может ктото  сталкивался с такой задачкой!!!


В базу данных - автоматический перевод? Ты наверное - первый. Переводом, да ещё хранящимся в БД, должны заниматься профессиональные переводчики.
З.Ы. А они тем временем проги в Дельфи клепают :)


 
integeri   (2006-11-10 10:45) [5]

знаю што програма добавляет свою менюшку в програмы:IE,notepad,MS Word


 
integeri   (2006-11-10 10:46) [6]


> ЮЮ ©   (10.11.06 10:44) [4]
например какие
> профессиональные переводчики


 
Elen ©   (2006-11-10 10:49) [7]


> integeri

Я делаю так : У меня Прагма 4 - Программно запускаю pragma.exe он свою иконку запуздыриват в часики. Далее в своей проге выделяю нужный для перевода текст и программно кликаю по запуздыренной иконке (можно и по другому конечно). В прагме предварительно выставляю настройки - сразу брать выделенный текст, сразу переводить и сразу копировать в буфер обмена. Далее закрываю прагму и беру текст из буфера. Трудность только в определении закончила ли прагма переводить, это сами...


 
integeri   (2006-11-10 10:50) [8]

От нашол код
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*   Trident Software, trident@kagi.com, original author
*/

var pragmgr = Components.classes["@trident.com.ua/pragma;1"].getService();
pragmgr = pragmgr.QueryInterface(Components.interfaces.ipPragma);

function toTranslate()
{
   var doc = document.commandDispatcher.focusedWindow.content.document;
   var pframes = document.commandDispatcher.focusedWindow.content.frames;

//    alert ("this object is:   " + pframes);
   var count = pframes.length;
//    alert ("frames count =   " + count);

   if ( count > 0 ) {
       for (var i=0; i<count; i++) {
//            alert (pframes.frames[i].document);
//            alert (pframes.frames[i].document.body.innerHTML);

           pragmgr.TranWindow(pframes.frames[i].document.body.innerHTML);
           pframes.frames[i].document.body.innerHTML = pragmgr.TranHtml;
       }
   } else {
       pragmgr.TranWindow(doc.body.innerHTML);
       doc.body.innerHTML = pragmgr.TranHtml;
   }
}

function toOptions()
{
   pragmgr.Options();
}

function toAbout()
{
   pragmgr.About();
}


 
Ketmar ©   (2006-11-10 11:00) [9]

>[7] Elen(c) 10-Nov-2006, 10:49
>Трудность только в определении закончила
>ли прагма переводить, это сами...
да? только в этом? поделись эксклюзивным универсальным методом определения координат любой иконки в области уведомлений, а? можешь даже статью написать. прославишься. без дураков прославишься.


 
integeri   (2006-11-10 11:10) [10]

код вище для интеграции в мозилу


 
Elen ©   (2006-11-10 11:35) [11]


> Ketmar

Так, Пардон, Немного не так было 8)
Запускался PragmaBar и висел на экране. Далее EnumchildWindow в этом баре находилась кнопка от блокнота. по ней давался клик WM_LBUTTONDOWN, далее запускался блокнот и там уже манипуляциями с менюшкой проводился перевод. Знаю это не совсем правильно так делать, но нужно было чето быстро решать - решили так...


 
Ketmar ©   (2006-11-10 11:45) [12]

>[11] Elen(c) 10-Nov-2006, 11:35
>Так, Пардон, Немного не так было 8)
понял. вопрос снят. %-)


 
integeri   (2006-11-10 11:53) [13]


> Elen ©   (10.11.06 11:35) [11]

можна кусочек кода


 
Elen ©   (2006-11-10 12:17) [14]


> integeri

Можна : Запуск блокнота с прагмой в миню :
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   ListBox1: TListBox;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public  ChildElements:string;
   { Public declarations }
 end;
  function enumChildWindow_Crtfox_Enum(h:THandle;l:integer):boolean; stdcall;

var         win:hwnd;
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

//********** FUNCTION **********
function enumChildWindow_Crtfox_Enum;
begin
form1.ChildElements:=form1.ChildElements+inttostr(h)+" ";
result:=true;
end;
//********** END FUNCTION ******

procedure TForm1.FormCreate(Sender: TObject);
var w:hwnd; s:string;
begin
w:=FindWindow("PragmaBarClass","");
EnumchildWindows(w,@enumChildWindow_Crtfox_Enum,0);
ListBox1.Items.CommaText :=ChildElements;

w:=strtoint(ListBox1.Items[2]);
  SendMessage(w, WM_LBUTTONDOWN,MK_LBUTTON,5);
  SendMessage(w, WM_LBUTTONUP,MK_LBUTTON,5);
  {}
w:=FindWindow("Notepad","&#193;&#229;&#231;&#251;&#236;&#255;&#237;&#237;&#251;& #233; - &#193;&#235;&#238;&#234;&#237;&#238;&#242;");
w:=FindWindowEx(w,0,"Edit","");

end;

end.


 
Elen ©   (2006-11-10 12:19) [15]


> integeri

Дальше на твое усмотрение открывать файл или вставлять из клипбоарда


 
integeri   (2006-11-10 12:41) [16]

я запустил но чото мне в ListBox1 загнало какието циферки, чо с ними то делать


 
Elen ©   (2006-11-10 12:46) [17]


> integeri

Тем примером Я тебе наводку даю как можно сделать.
w:=strtoint(ListBox1.Items[2]);
 SendMessage(w, WM_LBUTTONDOWN,MK_LBUTTON,5);
 SendMessage(w, WM_LBUTTONUP,MK_LBUTTON,5);

Цыферки те - хендели. второй хендель это копка нотепада, а этот код должен ей послать клик


 
Anatoly Podgoretsky ©   (2006-11-10 13:10) [18]

> integeri  (10.11.2006 10:31:00)  [0]

К авторам обращались (обращался)?


 
Anatoly Podgoretsky ©   (2006-11-10 13:11) [19]

> Орион  (10.11.2006 10:44:03)  [3]

Почему, что все пути проверены, включая покупку фирты изготовителя?


 
Anatoly Podgoretsky ©   (2006-11-10 13:12) [20]

> integeri  (10.11.2006 10:45:05)  [5]

Значит возможно и здесь сильно пахнет СОМ.
Надо обращаться к авторам.


 
Anatoly Podgoretsky ©   (2006-11-10 13:13) [21]

> integeri  (10.11.2006 10:50:08)  [8]

Вот это видишь

> Copyright (C) 1998 Netscape Communications Corporation. All Rights Reserved.


 
Орион ©   (2006-11-10 14:26) [22]

> [19] Anatoly Podgoretsky ©   (10.11.06 13:11)

Все прямые пути прорверены. Дальше - извращения :)


 
integeri   (2006-11-13 10:25) [23]

Автор сказал што ито будет стоить, но несказал сколько , жду ответ на сколько потянит???


 
Anatoly Podgoretsky ©   (2006-11-13 10:35) [24]

> integeri  (13.11.2006 10:25:23)  [23]

Если у него массовое распространение, то вряд ли свыше 200 зеленых, или может зависить от количество экземпляров программы.


 
Наиль ©   (2006-11-13 16:10) [25]

> Значит возможно и здесь сильно пахнет СОМ.

Судя по Notepad, COM"ом здесь и не пахнет.
Просто программа избирательно втыкает свой пункт в чужое меню.
А вот для получения текста из IE и Word, Pragma вполне может воспользоваться предоставленым COM"ом.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.037 c
2-1165914539
WhiteBarin
2006-12-12 12:08
2006.12.31
Как узнать имя текущего пользователя и его логин


15-1165982425
ПасЮзер
2006-12-13 07:00
2006.12.31
Бейсик в Паскаль перевести Есть такие утилиты?


15-1165600933
Piter
2006-12-08 21:02
2006.12.31
Использование "пустых" try .. except


2-1165476420
Xmen
2006-12-07 10:27
2006.12.31
Сброс данных из базы в TreeView


2-1166103298
Defort
2006-12-14 16:34
2006.12.31
Остановка программы и выход





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский