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


 

понедельник, 14 ноября 2016 г.

Проверка комментариев коммита перед отправкой на GitHub

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

Свежий пример – при частой публикации коммитов на GitHub'е из VisualStudio 2015 можно легко совершить опечатку в маленьком окне с мелким текстом (см. рис.).


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

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

пятница, 9 сентября 2016 г.

Обновление программы до версии 1.5

Изменения в программе:

  • Russian:
  • Добавил поддержку обфускации для языка C#.
  • Добавил раздел статистики по обфускации.
  • Добавил функции разделения текстовых значений на части (см. "Limit").
  • Добавил функции изменения порядка фрагментов в текстовых значениях (см. "LeftRight").
  • Переоформил отчет по обфускации.
  • Добавил отдельный ярлык позволяющий перезаписывать исходный код.
  • Добавил примеры WinForm для VB.NET и С#.

  • English:
  • Added support of obfuscation for the C# language.
  • Added statistics section on obfuscation.
  • Added the function of separation of text values on the part (see. "Limit").
  • Added function to change the order of the fragments of text values (see. "LeftRight").
  • Renew the report on obfuscation.
  • Added a separate label allows to overwrite the source code.
  • Added WinForm examples for VB.NET and C#.

суббота, 27 августа 2016 г.

Обновление программы до версии 1.4

Изменения в программе:

  • Добавил поддержку обфускации форм VisualBasic.NET (WinForm). Ранее обфускация проводилась только для модулей программы без учета кода форм.
  • Добавил файл исключений стандартных переменных в дополнение к пользовательскому файлу исключений.
  • Добавил ссылки на покупку программы через Avangate и Share-it.

суббота, 20 августа 2016 г.

Обновление программы до версии 1.3

Изменения в программе:

  • Переименовал ряд ярлыков (желательно удалить старые ярлыки перед переустановкой).
  • Выполнил перевод программы, справки, инсталлятора и пр. на английский язык.
  • Добавил инсталлятор английской версии программы.
  • Добавил функции обфускации кода.
  • Добавил отдельные инсталляторы для обфускатора.
  • Переоформил настройки, выбираемые в инсталляторе при установке программы, которые теперь зависят от выбранного типа версии программы.
  • Расширил описание программы в справке.
  • Скрыл ряд второстепенных разделов (свернуты) в отчете по проверке орфографии.
  • Добавил формат txt для проверки орфографии через ярлыки.
  • Добавил примеры для документов: docx, odt и пр.
  • Перенастроил программу и инсталлятор на работу с новым сервером (sourcelocalizer.com).
  • Переименовал файлы инсталляторов.
    Перед обновлением рекомендую удалить старые ярлыки программы, т.к. часть из них была переименована.

    среда, 27 июля 2016 г.

    Обновление программы до версии 1.2

    Изменения в программе:

    • Переименовал ряд ярлыков (желательно удалить старые ярлыки перед переустановкой).
    • Добавил поддержку форматов (только чтение) TMX, XLIFF, GLO.
    • Поправил работу с форматами DOCX и ODT, внеся в них разделение параграфов на части по разделителям, которые делят указанные в xml параграфы на параграфы отображаемые в тексте.
    • Добавил уровень проверки оформления — указывается через инсталлятор.
    • Настроил правила проведения проверки сложного оформления тире только при строгих правилах проверки.
    • Применяется штамп времени для инсталлятора и исполняемых файлов с электронной подписью.
    • Добавил параметр ограничивающий используемую программой память.
    • Поправил статистику учитывающую пустые множественные формы переводов.
    • Переоформил информацию про демонстрационную версию в HTML-отчете.
    • Добавил возможность чтения файлов по настраиваемым правилам регулярных выражений
    • Добавил параметр указывающий на язык проверки текстов.
    • Добавил в инсталлятор указание языка проверки текстов.
    • Улучшил правило проверки оформления многоточия в тексте.
    • Поправил оформление тире в HTML-отчетах.
    • Добавил параметр позволяющих поменять указанные языки проверки наоборот.
    • Добавил указание в параметре на чтение для форматов поддерживающих только чтение файлов.
    • Переименовал значение параметра fictionbook.text.all в fictionbook.fb2.read.
    • Добавил функцию корректировки текстовых элементов в XML-файлах.
    • Улучил возможности настройки работы с XML-файлами.
    • Заменил в названиях ярлыков словари на переводы и пр.
    • Улучшил проверку оформления кавычек в тегах.
    • Добавил указание языка проверки файла в xpath через переменные.
    • Добавил расчет по правилам проверки учитывающим проверяемые языки.
    • Добавил игнорирование проверки DTD при чтении файлов XML.
    • Ввел ограничение по количеству обрабатываемых строк для больших файлов через параметр.
    • Исправил статистику учета размера файлов больше 4ГБ.
    • Добавил параметры указания контекстной информации для ярлыка проверки файлов.
    • Расширил контекстную информацию для форматов ssa/ass.
    • Указал язык для ряда правил проверки оформления.
    • Убрал правила «жи/ши» и пр. из правил оформления.
    • Добавил сокращенные параметры для ярлыков.
    • Расширил правила проверки тире.
    • Уточнил ряд правил проверки оформления.
    • Переименовал раздел проверки оформления кавычек.
    • Перенес правила тире в общий раздел ошибок оформления.
    • Ускорил чтение файлов объемом меньше 1МБ.
    Перед обновлением рекомендую удалить старые ярлыки программы, т.к. часть из них была переименована.

      воскресенье, 12 июня 2016 г.

      Обновление программы до версии 1.1.1

      Изменения в программе:

      • Добавлена информация об установленной версии программы в отчет регистрации программы.
      В связи с изменением работы программы с регистрационным ключом в версии 1.1, данное обновление позволит определить требуемый тип ключа для регистрации программы.

        пятница, 10 июня 2016 г.

        Обновление программы до версии 1.1

        Изменения в программе:

        • Добавлена поддержка форматов (только проверка правописания): MS Word (docx), MS Excel (xlsx), OOO Writer, OOO Calc, OOO Impress, RTF, FB2.
        • Добавлена поддержка формата ResW.
        • Добавлена проверка использования букв Ё/Е в слове через словари «Ё» и «Е».
        • Добавлена проверка слов кроме словаря «Ё» через словари «Е».
        • Добавлено указание «демонстрационной версии» в отчете и количество проверенных и разрешенных проверок для этой версии.
        • Добавлено указание 32/64-bit для используемой версии программы.
        • Добавлена поддержка словарей исключений LibreOffice, Opera.
        • Добавлен вывод информации о применении LibreOffice.
        • Добавлено использование словаря исключений из libreoffice.
        • Добавлена проверка файл словаря исключений из OpenOffice 3 и при его отсутствии, проверяется 4 версия OpenOffice.
        • Улучшен вывод прогресса чтения Po-файлов и обработки больших объемов информации.
        • Расширены функции чтения словарей исключений для учета браузера Opera.
        • Работа программы переведена с FrameWork 2 на FrameWork 4.5.
        • Добавлена возможность в инсталляторе указывать игнорирование «_» при проверке орфографии.
        • Внесены изменения в работу с ключом программы. Update: Выпущено обновление 1.1.1 позволяющее определить номер версии регистрируемой программы.


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

          Негативные словари исключений (орфография)

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

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

          Негативные словари присутствуют в OpenOffice, во всяком случае при работе через API/COM
          указывается тип словаря применяемый при проверке слов.

          Фрагмент документации OpenOffice:
          http://www.openoffice.org/api/docs/common/ref/com/sun/star/linguistic2/XSearchableDictionaryList.html#queryDictionaryEntry

          queryDictionaryEntry( [in] string aWord,
          [in] ::com::sun::star::lang::Locale aLocale,
          [in] boolean bSearchPosDics,
          [in] boolean bSpellEntry );

          Parameter bSearchPosDic
              true if only positive dictionaries should be searched. false if only negative dictionaries should be searched. 

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

          Примером полезности применения рассмотренного негативного словаря может являться спорное написание слово «кеш» и «кэш», которое может быть в используемом орфографическом словаре в неправильном варианте.

          Пример документации «Яндекс» и «Google»:

          «Очистить кэш»,  «и другие файлы, сохраненные в кеше и выберите» (https://yandex.ru/support/common/browsers-settings/browsers-cache.xml)
          «Как очистить кеш, историю просмотров и другие данные о работе в браузере»
          (https://support.google.com/chrome/answer/95582?hl=ru)

          Комплект орфографических словарей 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 и пр.) может быть не востребован у ряда разработчиков.