Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AkelPad (часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

yozhic



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=1346#1346
// Description(1033): Spell check using Microsoft Word
// Description(1049): Проверка орфографии используя MS Word
// Version: 1.3 mod 1
// Author: VladSh
// Initial code: © Instructor
//
//
// Редакция ..: yozhic
// Дата ......: 2015.01.15
// Основания .: добавлен аргумент - идентификатор языка проверки орфографии
//              Идентификатор = LCID (локальный языковой идентификатор Windows)
//
// Arguments:    prompt - вызов диалогового окна для ввода LCID
//               1033   - английский
//               1049   - русский
//               1032   - греческий
//               1058   - украинский
//
// Usage:
//    Call("Scripts::Main", 1, "SpellCheckMSWord.js", "1032")
//        проверка греческого языка
//    Call("Scripts::Main", 1, "SpellCheckMSWord.js", "prompt")
//        запрос на ввод LCID с клавиатуры
 
var pSelText;
var hMainWnd = AkelPad.GetMainWnd();
var nCursor = -1;
var oSys=AkelPad.SystemFunction();
var nLangID=AkelPad.GetArgLine();
 
if (hMainWnd) {
   var pScriptName = WScript.ScriptName;
   
   pSelText = AkelPad.GetSelText();
   if (!pSelText) {
      nCursor = AkelPad.GetSelStart();
      pSelText = AkelPad.GetTextRange(0, -1);
   }
   
   if (pSelText.charCodeAt(0) != 0)
   {
      var Word = new ActiveXObject("Word.application");
      if (Word)
      {
         var oSpellDoc;
         var pMessage;
         var pTextIn;
         var pTextOut;
         
         Word.Visible = false;
         Word.Options.SuggestSpellingCorrections = true;
   
         if (oSpellDoc = Word.Documents.Add())
         {
 
            if (nLangID)
            {
               if (nLangID=="prompt")
                  nLangID=AkelPad.InputBox(hMainWnd, WScript.ScriptName, "Language ID", "1049");
               // Word.CheckLanguage=false
               Word.Selection.LanguageIDOther=nLangID;
            }
 
            oSpellDoc.Content.Text = pSelText;
            Word.ActiveWindow.WindowState = 2;  //wdWindowStateMinimize
            if (parseInt(Word.Version) >= 15)
            {
               //MS Word 2013 and higher
               Word.Visible = false;
               oSys.Call("user32::SetForegroundWindow", oSpellDoc.ActiveWindow.Hwnd);
            }
             
            pTextIn = oSpellDoc.Content.Text;
            if (Word.Options.CheckGrammarWithSpelling == true)
               oSpellDoc.CheckGrammar();
            else
               oSpellDoc.CheckSpelling();
            pTextOut = oSpellDoc.Content.Text;
 
            oSpellDoc.Close(false);
 
            if (pTextIn != pTextOut)
            {
               if (AkelPad.MessageBox(hMainWnd, GetLangString(3), pScriptName, 36 /*MB_ICONQUESTION|MB_YESNO*/) == 6 /*IDYES*/)
               {
                  if (nCursor != -1) AkelPad.SetSel(0, -1);
                  AkelPad.ReplaceSel(pTextOut.substr(0, pTextOut.length - 1), -2);
               }
            }
         }
         Word.Quit(true);
         Word = 0;
      }
      else
      {
         AkelPad.MessageBox(hMainWnd, GetLangString(0), pScriptName, 48 /*MB_ICONEXCLAMATION*/);
      }
   }
   else
   {
      AkelPad.MessageBox(hMainWnd, GetLangString(1), pScriptName, 64 /*MB_ICONINFORMATION*/);
   }
}
 
function GetLangString(nStringID)
{
   var nLangID = AkelPad.GetLangId(1 /*LANGID_PRIMARY*/);
   
   if (nLangID == 0x19)      //LANG_RUSSIAN
   {
      if (nStringID == 0)
         return "Необходимо сначала установить Microsoft Word 97 или выше.";
      if (nStringID == 1)
         return "Текст отсутствует.";
      if (nStringID == 3)
         return "Вставить исправленый текст?";
   }
   else
   {
      if (nStringID == 0)
         return "You must first install Microsoft Word 97 or higher.";
      if (nStringID == 1)
         return "The text is absent.";
      if (nStringID == 3)
         return "Insert corrected text?";
   }
   return "";
}

Всего записей: 2773 | Зарегистр. 20-03-2008 | Отправлено: 19:49 03-11-2019 | Исправлено: yozhic, 19:52 03-11-2019
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AkelPad (часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru