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


 

воскресенье, 8 мая 2016 г.

Комплект орфографических словарей LibreOffice

При разработке программного обеспечения, позволяющего проводить проверку орфографии в тексте, разработчики сталкиваются с вопросом — «Где взять орфографические словари?»

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

Как вариант, решение этой проблемы, может быть в использовании набора обновляемых орфографических словарей из LibreOffice, который можно скачать с его страницы обновлений.

Прямая ссылка на орфографические словари из LibreOffice 5.0.5: http://download.documentfoundation.org/libreoffice/src/5.0.5/libreoffice-dictionaries-5.0.5.2.tar.xz

Примечание: предложенный ранее комплект орфографических словарей и модуля проверки орфографии (правописания) SpellCheckPack решает задачу использования hunspell-модуля и словарей основных языков, при этом для одного языка может быть использовано несколько словарей (с Ё, без Ё, из OpenOffice, из FireFox, пр.), поэтому рассмотренный комплект орфографических словарей из LibreOffice может расширить его возможности.

суббота, 7 мая 2016 г.

Определение используемой программы OpenOffice/LibreOffice через API

При внедрении в программы проверки орфографии(правописания) часто используются функции популярных пакетов OpenOffice и LibreOffice.

При работе через API-функции (COM-объекты) с пакетами OpenOffice и LibreOffice используются одни и те-же COM-объекты.

Если необходимо указать в программе какой офис используется, то для этого можно использовать функцию получения каталога программы через следующий com-объект: com.sun.star.util.OfficeInstallationDirectories (https://wiki.openoffice.org/wiki/Программирование:_Часто_задаваемые_вопросы,  https://www.openoffice.org/api/docs/common/ref/com/sun/star/util/XOfficeInstallationDirectories.html#getOfficeInstallationDirectoryURL).

Пример работы с функцией на Visual Basic.NET:

                    Dim tempobj As New Object
                    tempobj = CreateObject("com.sun.star.ServiceManager")

                    Dim tempobjdirectory As New Object
                    tempobjdirectory = tempobj.createinstance("com.sun.star.util.OfficeInstallationDirectories")

                    Console.WriteLine("com.sun.star.util.OfficeInstallationDirectories=" & tempobjdirectory.getOfficeInstallationDirectoryURL.ToString)

Пример результата выполнения функции:
«file:///C:/Program%20Files%20(x86)/OpenOffice%204»

По содержанию «OpenOffice»/«LibraOffice» в этой строке можно определить какой именно пакет используется программой через API-функции/COM-объекты.

Связанные статьи: OpenOffice vs LibreOffice на примере COM-объектов

пятница, 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)».

четверг, 5 мая 2016 г.

OpenOffice vs LibreOffice на примере COM-объектов

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

Кроме уже привычного OpenOffice сейчас развивается пакет LibreOffice предоставляющий схожую функциональность.

В интернете можно найти множество сравнений этих двух пакетов, при этом сравнения касаются именно их функциональности но на возможности использования их другими программами через API-функции или COM-объекты обычно не обращают внимания.

Если разработанная программа использует COM-объекты OpenOffice то будет ли она работать с LibreOffice и в чем отличия?

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

Программа работает с COM-объектами LibreOffice полностью идентично как и с COM-объектами OpenOffice.

Работа с COM-объектами

 com.sun.star.ServiceManager
 com.sun.star.linguistic2.SpellChecker
 com.sun.star.lang.Locale
 com.sun.star.linguistic2.DictionaryList

полностью одинакова и при установленном пакете OpenOfiice и при LibreOffice.

Решив указать в программе какой именно пакет сейчас задействован оказалось, что определить через COM-объекты это не получается.
В программе «Локализатор исходного кода» указан OpenOffice в случае использования его COM-объектов, при этом возможно на компьютере вместо него используется LibreOffice.

среда, 4 мая 2016 г.

Использование GPL-компонентов в коммерческой программе

Большинство программ предоставляющих возможность проверки правописания и/или орфографии обычно используют функции популярных библиотек, таких как Hunspell.
Hunspell разработан под лицензией LGPL и MPL (см. wikipedia) и внедрение ее в коммерческую программу может нарушить лицензию использования этой библиотеки.

Решил обобщить в статье LGPL, MPL и ряд других лицензий указав их как GPL-лицензия, так как она очень похожа на многие открытые лицензии и в подобных случаях советы из статьи могут подойти.

В программе «Локализатор исходного кода», как на этапе подготовки к локализации, так и на этапе проверки уже подготовленного перевода, используется проверка орфографии, которая также требует использования внешних модулей проверки орфографии.

Решил использовать внешние ресурсы, как и ряд программ (OmegaT, Audacity,..), которые предлагают пользователю самостоятельно скачать модули/ресурсы для их использования в программе.

Кроме библиотеки Hunspell в программе используются и орфографические словари, что потребует от пользователя самостоятельно скачивать их и распаковывать в каталог программы.
Такие действия затруднительны для пользователя, поэтому решил подготовить полный комплект всех необходимых файлов, как модулей из проекта Hunspell, так и файлов словарей популярных языков с сайтов OpenOffice/FireFox.
Перечисленные файлы оформил в сборник, который любой может скачать с сайта GitHub и использовать его как в этой, так и в любой другой программе.

Скачать: Сборник словарей и модулей проверки орфографии «SpellCheckPack»

Это решение позволило использовать в программе весь необходимый функционал представляемый hunspell-модулями и словарями при этом не нарушая их лицензий.
Пользователь может без труда скачать файл по прямой ссылке и разархивировать все файлы в каталог программы которая при запуске их обнаружит и будет использовать в работе.

воскресенье, 1 мая 2016 г.

Коммерческая версия программы 1.0

Выпущена коммерческая версия программы (1.0) доступная на сайте allsoft.ru

Проведено разделение программы на типы: «Корректор», «Переводчик», «Локализатор».

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

Примером может служить проверка орфографии документации проекта, для которой следует найти только ошибки правописания и оформления в тексте и не требуется весь функционал программы.

Проведено разделение типов версий по использованию на сервере и обычном компьютере, так как серверный функционал (взаимодействие с CI, построение отчетов JUnit и пр.) может быть не востребован у ряда разработчиков.

понедельник, 31 августа 2015 г.

Обновление программы локализации до версии 0.16.1

Изменения в программе:
  • Продлил дату окончания BETA-теста программы.
  • Добавил новые слова в словарь.
  • Заменил вывод информации о программе и авторе на новый.
  • Добавил названия символов в правила определения спецсимволов.
  • Проверка спецсимволов производится по каждому символу отдельно вместо диапазонов.
  • Добавил лог используемых правил проверки.
  • Добавил вывод в лог проверяемого фрагмента из буфера обмена (при разрешении на его проверку) с указанием кодов символов.
  • Добавил правила статистики ошибок и оформления.
  • Добавил настраиваемую статистику в отчеты.
  • Улучшил обработку переменных отчетах.
  • Добавил подсчет букв «Ё» в общую статистику ошибок.
  • Добавил правила проверки орфографии.