=====================================================================
AJPapps - Dic sync 2.03
Линда Кайе 2011-2021. Посвящается Ариэль
=====================================================================
Эта программа поможет синхронизировать пользовательские словари в разных программах вроде Microsoft Office, FocusWriter и Pidgin, после чего слово, добавленное в одной программе, уже не будет считаться ошибочным в других.
История создания
----------------
Для написания рассказов я использую сразу несколько программ: FocusWriter, Notepad2, Word (в нём я проверяю текст после Блокнота). А ещё есть куча других программ, в которых встроена проверка орфографии. И вот однажды я заметила, что добавляю в словарь каждый раз одни и те же слова, только в разных программах. Что делать? Проверять в одной программе? А если это аська? Не копировать же текст каждый раз в Ворд.
Решение есть! Большинство программ держат пользовательские словари в текстовых файлах. Достаточно лишь написать программу, которая их синхронизирует: соберёт все слова со всех словарей и раскидает общий список.
За пару дней была написана довольно простая программа, код синхронизации занял не больше часа, а вот интерфейс я переписывала три раза. Страшно вспоминать ^^
История изменений
-----------------
• 1.00.0007
Первый публичный релиз.
• 1.00.0013
[+] Значительно повышена скорость работы программы.
• 1.00.0018
[-] При чтении пустого файла словаря возникала ошибка.
• 2.00.0020
[+] Полностью переделан интерфейс программы.
[+] Синхронизация может выполняться через командную строку.
[+] Список слов теперь редактируется в программе, ассоциированной с текстовыми файлами.
• 2.01.0022
[+] В логе выводится информация о пропущенных файлах.
[+] Ограниченная поддержка словарей Hunspell.
• 2.01.0024 [23.05.2020]
[-] При сортировке списка слов, одинаковые слова в разном регистре больше не скачут туда-сюда.
[+] Обновлены библиотеки.
• 2.02.0026 [23.05.2020]
[+] Более гибкая настройка словарей: можно указать кодировку, BOM, порядок байтов и тип переноса строк.
[+] Справка теперь вызывается из программы по нажатию F1.
• 2.02.0028 [23.05.2020]
[-] При чтении пустых словарей в кодировке UTF-16 BE, программа сообщала об ошибке. Не смертельно, но неприятно.
[-] Приведены в порядок подсказки на кнопках (оказывается, они там были).
[-] Приведены в порядок горячие клавиши (оказывается, они тоже были).
• 2.03.0032 [17.05.2021]
[+] Добавлена полная поддержка словарей OpenOffice.org.
[+] Немного подправлен интерфейс диалога управления словарями.
• 2.03.0033 [22.06.2021]
[-] Если словарь OpenOffice.org не содержал слов, программа считала это ошибкой парсинга.
Зависимости
-----------
Для работы этой программы нужны следующие компоненты:
• AJPapps - AJPapps support library 1.00
Файл AJPappsSupport0100.DLL
• AJPapps - AJPapps support library FBE 1.00
Файл AJPappsSupportFBE0100.DLL
• AJPapps - Common dialogs library 1.00
Файл CommonDialogs0100.DLL
• AJPapps - File I/O support 1.04
Файл FileIOSupport0104.DLL
• AJPapps - Sort 3.00
Файл Sort0300.DLL
• AJPapps - Библиотека общих функций 3.04
Файл CommonFunctions0304.DLL
• Microsoft Visual Basic Virtual Machine
Файл MSVBVM60.DLL
Эти компоненты обязательны. Они уже включены в программу установки ^_^
Важное замечание
----------------
В программе используются иконки из набора Fugue Icons.
Copyright (C) 2011 Yusuke Kamiyamane. All rights reserved. The icons are licensed under a Creative Commons Attribution 3.0 license.
If you can't or don't want to provide a link back, please purchase a royalty-free license.
Информация о разработке
-----------------------
Язык: Microsoft Visual Basic 6.0 SP6
Платформа: Windows XP Professional SP3
Установка
---------
Просто запустите Setup.DicSync.EXE, и программа установки сама создаст все необходимые ярлыки.
Использование
-------------
Программа использует внутренний список слов, который накапливается чтением словарей других программ. Этот список впоследствии копируется в каждый прочитанный словарь, таким образом, делая набор слов-исключений у каждой программы одинаковым. Так работает синхронизация.
После запуска программы появляется окно с несколькими кнопками, при помощи которых осуществляется процесс синхронизации.
В предыдущих версиях здесь был список слов, который можно было редактировать, но начиная с версии 2.00, этот список редактируется в текстовом редакторе по умолчанию. Для этого достаточно нажать кнопку "Слова".
Формат внутреннего списка слов очень прост: одна строка, одно слово. Сам файл хранится в кодировке Unicode (UTF-16), переносы строк - CRLF. Пустые строки игнорируются.
Кнопка "Словари" открывает список словарей для редактирования. Подробнее об этом читайте в следующем разделе.
Кнопка "Дополнить" (F5) последовательно читает все файлы словарей, собирает из них слова и сохраняет их в общей базе слов. При этом повторы отбрасываются, и программа сообщает, сколько новых слов добавилось в базу.
Кнопка "Выгрузить" дополняет словари словами из базы. После нажатия программа последовательно перезаписывает все файлы словарей новым списком слов-исключений. При этом перед перезаписью сохраняется резервная копия каждого файла, а если это не удалось, словарь программа не трогает.
Кнопка "Выход" просто закрывает окно.
Иными словами, при обычном использовании программы её следует запустить, нажать кнопку "Дополнить", дождаться сообщения об успехе, а затем нажать кнопку "Выгрузить". После этого словари будут синхронизированы.
Очень важно понимать, что, если с последней выгрузки в словарях появились новые слова, а дополнение сделано не было, то при очередной выгрузке эти слова пропадут.
Возможен сценарий, когда в словарях какое-то слово оказалось по ошибке, и его нужно удалить. Для этого достаточно, после нажатия кнопки "Дополнить", открыть список слов кнопкой "Слова" и удалить ненужные. После этого список нужно сохранить и закрыть. Теперь можно нажать "Выгрузить". Ненужные слова будут удалены из всех словарей.
Список словарей
---------------
После нажатия на кнопку "Словари" открывается диалог настройки списка файлов словарей. Программа сама не ищет их, так что тут вам придётся выбрать их самостоятельно (в следующем разделе я подскажу, где они могут быть).
Кнопка "Добавить" (Ins) открывает диалог выбора файлов (можно указать более одного), а кнопка "Удалить" (Del) удаляет выбранные файлы из списка. Ctrl+A выделяет все словари в списке.
После добавления файлов, новые будут выделены, так что вы сразу сможете указать их параметры (кодировку и прочее) - делается это при помощи выпадающих списков справа. Обратите внимание, что программа автоматически это не делает - всё на совести пользователя.
Когда всё будет готово, жмите Ok, и начинайте синхронизироваться!
Где все эти файлы?
------------------
Здесь я дам несколько подсказок относительно расположения файлов словарей в разных программах.
Word. Обычно файл словаря называется Custom.DIC, записывается в ANSI кодировке, и располагается в Application Data. Например, у меня в Windows XP путь к нему выглядит примерно так:
C:\Documents and Settings\lk\Application Data\Microsoft\Proof\CUSTOM.DIC
Также можно посмотреть путь к нему в настройках самого Ворда - ищите раздел проверки правописания.
FocusWriter. Файл называется personal (без расширения) и записывается в UTF-8. Тут два варианта. Если у вас обычная установка, файл будет где-то здесь:
C:\Documents and Settings\lk\Application Data\GottCode\FocusWriter\Dictionaries\personal
В случае же портабельной установки, ищите его в подкаталоге Data каталога с программой. Например, у меня это выглядит так:
Y:\Utils\FocusWriter\Data\Dictionaries\personal
Pidgin. Тут всё гораздо сложнее. Даже при портабельной установке, файл словаря хранится в Application Data. Он может называться как угодно, но имеет расширение DIC. Его кодировка - UTF-8 без BOM. Вот, например, у меня он обнаружился под таким именем:
C:\Documents and Settings\lk\Application Data\enchant\ru.dic
Mozilla Firefox, SeaMonkey, PaleMoon, Serpent etc. У этих броузеров словарь хранится в файле persdict.dat, расположенном в каталоге профиля. Его кодировка - UTF-8 без BOM. Путь к нему выглядит как-то так:
C:\Documents and Settings\lk\Application Data\Mozilla\SeaMonkey\Profiles\1241.mermay\persdict.dat
В поисках словарей вам может помочь такой приём. Вы пишете случайный набор букв (например, "лоывимоывиывдмтд") и вносите его в словарь. Далее вы нажимаете Пуск > Выполнить и вводите в появившемся окне "%USERPROFILE%". Открывается папка с вашим пользовательским профилем. Жмём "Поиск" и ищем по внесённой в словарь комбинации (поле "Имя файла" оставляем пустым).
Поддерживаемые форматы
----------------------
На данный момент программа поддерживает работу с файлами такого формата:
• Каждое слово находится на отдельной строке.
• Комментарии начинаются с символа #.
• Пустые строки допускаются.
Поддерживаются следующие кодировки:
• ANSI
• UTF-8
• UTF-16 Big Endian
• UTF-16 Little Endian
• KOI8-R (Hunspell, см. ниже)
При выгрузке слов в словарь, возможны следующие преобразования:
• Слова будут отсортированы по алфавиту с учётом регистра.
• Комментарии пропадут.
• Пустые строки пропадут.
• Пробелы перед и после слов так же будут срезаны.
Внимание! Некоторые программы хранят в комментариях служебную информацию, но обычно работают и без неё. Это относится, например, к словарям Microsoft Office, где в комментариях может быть служебная информация вроде языка словаря.
Формат Hunspell
---------------
Отдельно стоит формат, указанный как "Hunspell". Это формат пользовательского словаря одноимённого движка проверки орфографии. Его использует, например, Notepad++. Текст в таких словарях содержится в кодировке KOI8-R, также там присутствует кое-какая служебная информация.
В отличие от словарей других форматов, в этом не всегда сохраняется регистр символов ("AJPapps" превращается в "Ajpapps"), что может вызвать конфликт с другими программами. Поэтому Dic Sync лишь частично поддерживает данный формат. Программа перезаписывает такие словари синхронизируемыми данными, но не читает новые слова из них. Поэтому любые слова, которые вы добавите в том же Notepad++ в исключения, пропадут при следующей синхронизации.
Синхронизировать словари Hunspell рекомендуется только если нет необходимости добавлять исключения из программ, их использующих. Например, если вы используете Notepad++ только для того чтобы по-быстрому поправить пару файлов, а также сделать глобальную замену в куче файлов, попутно постреляв ошибки, то имеет смысл синхронизировать словарь этой программы. Если же Notepad++ - один из основных текстовых редакторов, и при проверке орфографии часто добавляются исключения, то синхронизировать словарь не стоит.
Окно сообщений
--------------
Все сообщения программа выдаёт в цветастом окошке "Сообщения". Если во время выполнения некой операции произошли ошибки, то текст будет жёлтым на красном фоне. Если же всё прошло хорошо, то текст будет зелёным на тёмно-зелёном фоне.
Обратите внимание, что красный фон не всегда означает полный провал операции. Например, если при обновлении словарей не удалось создать резервную копию какого-то файла, то итоговое сообщение будет красным, даже если все остальные словари обновились успешно. В общем, читайте сообщения внимательно.
Если программа выполнялась без интерфейса с некими параметрами командной строки, то все эти сообщения будут появляться в журнале сообщений Windows.
Командная строка
----------------
Помимо интерактивного режима в версии 2.00 был добавлен неинтерактивный режим, в котором программа не показывает никакого интерфейса и записывает все сообщения в системный журнал событий.
Например, это может пригодиться для автоматизации синхронизации, когда лень постоянно запускать программу. Достаточно добавить вызов программы с одним из перечисленных ниже ключей в планировщик заданий так, чтобы задача запускалась, скажем, каждый час.
• DicSync.EXE /Collect - эквивалентно нажатию кнопки "Дополнить" главном окне программы.
• DicSync.EXE /Update - эквивалентно нажатию кнопки "Выгрузить" главном окне программы.
• DicSync.EXE /Combo - делает оба предыдущих действия за один запуск. Рекомендую этот способ.
При этом настройка словарей по-прежнему делается в основном окне программы.
Синхронизация на нескольких компьютерах
---------------------------------------
Если ситуация усложняется не только наличием нескольких программ, но также и наличием нескольких компьютеров, то она решается достаточно просто.
• Если все компьютеры связаны сетью, то можно расшарить какую-нибудь папку на одном из компьютеров и создать там файл, например, Sync.DIC. Потом вы добавляете его как словарь на каждом компьютере в настройках Dic Sync и синхронизируете словари до достижения полной синхронности ^^
• Можно такой словарь поместить на флэшку, и носить его, скажем, между домашним и рабочим компьютерами. Разумеется, его так же придётся добавить и там, и там.
• От флэшки можно избавиться при помощи Дропбокса или подобного сервиса синхронизации - просто поместите файл в какую-нибудь папку в каталоге программы и добавьте его на каждом компьютере.
Удаление
--------
Удаление производится обычным способом - через Установку и удаление программ. При этом файл данных не удаляется. Файл находится в Application Data.
Маленький копирайт
------------------
1. Программа распространяется бесплатно.
2. Вы имеете право распространять её на тех же условиях.
3. При распространении вы не имеете права менять авторство программы, присваивать его себе или каким-либо иным способом искажать его.
4. Разрешено коммерческое использование программы (в офисе, на производстве) за исключением её платного распространения или сдачи в аренду.
5. Программа распространяется как есть. Автор не несёт ответственности за любые трагедии или несчастные случаи, вызванные использованием программы.
6. Вы имеете право использовать ActiveX компоненты, поставляемые с программой, в собственных программах. При этом автор не гарантирует совместимость будущих версий компонентов.
7. Для любого пункта данного соглашения может быть сделано исключение с разрешения автора программы.
8. По любым вопросам, связанным с данной программой, обращайтесь по адресу lindaoneesama@gmail.com
Контакты
--------
Почта: lindaoneesama@gmail.com
Сайт: https://www.lindachan.net