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


 

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

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

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

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

            четверг, 7 мая 2015 г.

            Проверка PDF-файлов

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

            Порядок проверки pdf-файла:
            1. Открыть pdf-файл в AcrobatReader (или браузере).
            2. Выделить весь текст (Ctrl+A) и скопировать его в буфер обмена (Ctrl+C).
            3. Запустить ярлык «Буфер обмена...»

            Подобный подход проверки текста с использованием буфера обмена позволяет проверять различные макеты, сайты и пр.

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

            Примечание: 
            1) Как скачать, установить и настроить программу, а также пример запуска ярлыка проверки буфера обмена подробно изложено в видео.
            2) Программу проверки можно скачать с сайта программы.

            В качестве проверки новых возможностей программы решил проверить ее на журнале SkReview 2015/2 (просмотреть на сайте, скачать).



            Ниже приведены фрагменты отчета и найденные ошибки в журнале (фрагменты pdf-файла).







            Подробней с большим количеством примеров ошибок изложено в моем отдельном блоге, посвященном проверке различных изданий...

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

            понедельник, 4 мая 2015 г.

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


            Изменения в программе:
            • Добавил разделы «Результаты проверки орфографии» с ярким html-оформлением, для текста и словарей.
            • В процессе обработки файлов выводится процент выполненной работы.
            • В отчет добавил открывающийся список «Содержание».
            • Добавил поддержку формата Wiki как xml-текста (раньше считался как текст).

            четверг, 23 апреля 2015 г.

            Проверка оформления страниц сайтов на примере сайта «Сколково»

            Программа локализации SourceLocalizer позволяет успешно проводить проверку оформления текста перед его локализацией, что позволяет использовать ее для проверки произвольного текста, например, статей на сайтах.

            В качестве примера использования программы локализации для поиска ошибок оформления была проведена проверка ряда статей с сайта «Сколково».

            Для проверки статьи необходимо в начале скопировать ее в буфер обмена (ctrl+A) и запустить ярлык «Буфер обмена – проверка...»

            Примечание: программу можно скачать с сайта, а также просмотреть видео установки – на канале программы в youtube.

            Статьи взятые для примера написаны грамотно, замечаний по орфографии нет, но есть ряд замечаний по оформлению.

            Статья: Венчурные инвестиции на фоне кризиса (http://sk.ru/news/b/press/archive/2015/04/13/venchurnye-investicii-na-fone-krizisa.aspx)

            В статистике по тексту видно, что кроме кавычек «елочек» присутствуют и кавычки «дюймы» ("").


            В статистке указано на наличие двух букв «Ё».


            При проверке выяснилось, что одна из них явная ошибка, а во втором случае лучше заменить на «Е», так как слово безошибочно читается с буквой «Ё».



            В случае добавления «Ё» в статью, потребуется внести множество изменений в другие слова:
            достается, еще, ждет, идет, надежно, наукоемких, нее, 
            неопределенности, неопределенность, неопределенностью, объема, 
            объемом, объемы, определенной, определенную, оснащенный, Остаемся, 
            партнера, Партнерам, партнеров, Партнеры, подтвержденная, подъеме, 
            посвященным, приведет, привлекшие, придется, причем, 
            Причем, проведенное, продает, произошел, пройдет, растет, рублевые, 
            рублевых, свое, своем, серьезная, серьезно, серьезного, 
            серьезные, серьезный, Соловьев, счет, ученых, учета, учетом, 
            учрежден

            В ряде других проверенных статей буква «Ё» не используется, поэтому проще заменить «Ё» на «Е».

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

            Статья: Импортозамещение экзоскелетов (http://sk.ru/news/b/press/archive/2015/04/06/importozameschenie-ekzoskeletov.aspx)

            В тексте присутствуют ошибки связанные с лишними пробелами.

            среда, 22 апреля 2015 г.

            Настройка html-оформления фрагментов отчета

            Добавил возможность настройки оформления не только всего отчета целиком,
            но и настройки фрагментов html/css которые добавляются в отчет.
            Подобный фрагменты могут содержать метки переменных заменяемые при генерировании отчета на значения.
            Для раздела отчета можно не только указать html-фрагмент, но и css-оформление, которое будет добавлено в начало документа (head) к основному css-оформлению.

            Ниже привел примеры раздела отчета и его html/css-кода.









            Переменные не только отображаются в отчете, но и передаются в атрибуты (data), позволяя менять оформление в зависимости от их значений ([data="0"]).