«Локализатор исходного кода» предназначен для локализации программных продуктов путем изменения их исходных кодов без предварительной подготовки.
Программа может быть использована при разработке программного обеспечения на серверах сборки, для автоматической локализации исходного кода, но она может также применяться и на рабочих компьютерах пользователей для проверки орфографии в исходных кодах, текстовых файлах, буфере обмена и словарях переводов.
Специальная версия программы позволяет проводить обфускацию исходного кода.


 

пятница, 6 мая 2016 г.

Проблемы проверки орфографии через OpenOffice в CI Hudson и реализация проверки в Hunspell

При вызове функции работы с com-объектом OpenOffice из программы работающий в составе задачи CI Hudson (вероятно это будет и при работе Jenkins) происходит ошибка.

Пример:

     Private OOO_serviceManager As New Object
     ...
     OOO_serviceManager = CreateObject("com.sun.star.ServiceManager")

Происходит ошибка создания объекта com.sun.star.ServiceManager.

Если программу запускать вне CI Hudson, все работает отлично.

Возможно проблемы связаны с ограничениями или правами процесса запускающего программу из CI Hudson.

Решения пока не нашел, поэтому реализовал все через работу с Hunspell.

Примечание: это оказалось лучшим решением, так как позволило расширить функционал программы который OpenOffice предоставить не мог — работу с произвольными языками,
работу одновременно с двумя словарями одного языка и пр.

В программе используется NHunspell.dll, Hunspellx86.dll и Hunspellx64.dll.

Файлы можно скачать с сайта Hunspell или из пакета SpellCheckPack, который используется в программе.

Примечание: подробней про пакет SpellCheckPack

Все файлы dll лежат в том же каталоге что и основной файл программы!

Пример:

                Dim tempasm As System.Reflection.Assembly
                tempasm = Reflection.Assembly.LoadFile(AppDir & "/NHunspell.dll")
                ...
                Dim temptypeHunspell As New Object
                temptypeHunspell = tempasm.GetType("NHunspell.Hunspell")
                ...
                Dim temptypeSpellEngine As New Object
                temptypeSpellEngine = tempasm.GetType("NHunspell.SpellEngine")

Указанный пример корректно работает!

Текущее решение проблемы работы орфографического модуля OpenOffice в среде CI Hudson является замена его на Hunspell.

В программе «Локализатор исходного кода» используется два модуля проверки орфографии, в качестве основного модуля — «Hunspell», и вспомогательного — «OpenOffice(LibreOffice)».

Комментариев нет:

Отправить комментарий