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


 

среда, 29 октября 2014 г.

Использование модулей орфографии hunspell и openoffice в программе локализации вместо модуля MS Word

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

Проще всего конечно-же было подключить модуль проверки орфографии MS Word, так как он наиболее популярен и присутствует практически на подавляющем большинстве компьютеров с ОС Windows, а также довольно просто технически интегрируется в ПО.

Но возникает юридическая проблема, а именно, запрет Microsoft на интегрирование модулей орфографии сторонними производителями в свое ПО (имхо).

Согласно статье «Microsoft Общие средства проверки правописания API (CSAPI) для проверки орфографии в Office» (английская версия: http://support.microsoft.com/kb/262605/en)  – нельзя использовать проверку орфографии без получения разрешения от Microsoft (как я это понимаю).

Цитаты статьи:

* В настоящее время Microsoft не предоставляет служебные программы проверки орфографии для использования в продуктах независимых производителей. // Microsoft does not currently provide spell check utilities for use in third-party products.

* Разработчикам, желающим добавить в свои приложения с пользовательской проверки орфографии можно связаться одним из следующих поставщиков для получения лицензии на модуль и разработки проверки орфографии: // Developers who want to add spell checking to their custom application can contact one of the following vendors to obtain a spell check engine and development license:

Примечание: русская версия перевода немного меняется со временем, вероятно из-за автоматического перевода, но английская версия фрагментов осталась дословно такой-же (29.10.2014).

Поэтому в программе решил использовать только средства проверки OpenOffice/LibreOffice и модуль Hunspell (NHunspell).

Возможно, в дальнейшем попробую получить разрешение от Microsoft.

На данный момент модуль Hunspell более чем устраивает, так как легко устанавливается (см. видео установки программы локализации и установки hunspell со словарями), а также позволяет легко проверять слова сразу по нескольким словарям.

Поддержка формата XML на примере ResX

Программа локализации поддерживает ряд популярных текстовых форматов (VB,Delphi,INI,..) для работы с которыми был разработан специальный набор текстовых элементов, основанных на регулярных выражениях, для обработки структурированных текстовых данных, например, для описания синтаксиса Delphi. Специальные элементы позволяет не только выделить текст для локализации, но и производить различные действия над элементами, например, их объединение или реструктуризацию, см. рисунки - «до» и «после» оптимизации...


С помощью регулярных выражений можно обрабатывать и XML-файлы, но есть ряд ограничений по работе с ними.

Для полноценной работ с XML-файлами добавил поддержку XML-DOM, а для описания элементов XML для форматов ResX и др., вместо самостоятельно разработанных элементов описания выбора XML-элементов, воспользовался возможностью XPath.

Фрагмент исходного ResX:
  <data name="button" xml:space="preserve">
    <value>Test</value>
  </data>

Фрагмент конфигурации описания обработки формата XRes:
[file.type:resources.resx]
usefunction=readxmlelements
xmlelement= xpath=/root/data/value  value-tag=../value context-attr:xpath=../../data context-attr:attr=name

вторник, 28 октября 2014 г.

Использование словарей исключений FireFox, Chrome, ThunderBird, OpenOffice

Большинство текстовых редакторов, а также программ, позволяющих проверять орфографию, имеют словари исключений, в которые пользователь может вносить неизвестные орфографическим модулям слова.
Кроме наиболее известных программ, таких как MS Word и OpenOffice, орфографию способны проверять браузеры (FireFox, Chrome) и даже почтовые программы (Thunderbird).

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

Но возник вопрос, а можно ли использовать словари исключений других программ? Оказывается нет никаких технических проблем в их использовании, поэтому добавил настройки в программу локализацию, позволяющие задействовать сторонние словари исключений.

Файлы словарей исключений:
Firefox: C:\Users\username\AppData\Roaming/Mozilla/Firefox/Profiles\xxxxxx.default/persdict.dat
OpenOffice: C:\Users\username\AppData\Roaming/OpenOffice/4/user/wordbook/standard.dic
Thunderbird: C:\Users\username\AppData\Roaming/Thunderbird/Profiles\xxxxxx.default/persdict.dat
Chrome: C:\Users\username\AppData\Local/Google/Chrome/User Data/Default/Custom Dictionary.txt

четверг, 23 октября 2014 г.

Общий инсталлятор для x32 и x64 версий "Локализатора исходного кода"

Множество программных продуктов для установки x64-версий программ используют отдельный инсталлятор.

Т.е. обычно присутствуют два инсталлятора программы: example-setup-x32.exe и example-setup-x64.exe

Для «Локализатора исходного кода» решил сделать общий инсталлятор x32 и x64-версий программы. Сам инсталлятор 32-битный, а x32/x64-версия устанавливаемой программы выбирается на основе x32/x64-версии ОС пользователя.

Решение о выборе версии реализовано средствами InnoSetup, см. фрагмент:

Source: "..\..\..\build\SourceLocalizer-x32.exe"; DestDir: "{app}"; DestName: "SourceLocalizer.exe"; Check: "not iswin64"; Flags: ignoreversion
Source: "..\..\..\build\SourceLocalizer-x64.exe"; DestDir: "{app}"; DestName: "SourceLocalizer.exe"; Check: iswin64; Flags: ignoreversion

В зависимости от флага iswin64 выбирается версия программы для установки.

О преимуществах x64-версии над x32 напишу в следующих постах.

Комментирование словаря исключений

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

Для программы «Локализатор исходного кода» доступен словарь в простом текстовом виде, в который вносятся исключения.
На самом деле можно вносить исключения и через OpenOffice, но встроенный словарь в ряде случаев удобней, а также использование внешнего модуля Hunspell вместо OpenOffice предлагает больше возможностей в проверке, например, букв «Ё».

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

Пример фрагмента словаря:

подпараграфа ;dic.academic.ru/dic.nsf/eng_rus/226248/ 
подпараграф
подпараграфу
подпараграф
подпараграфов
подпараграфы
подпараграфе
шейдеров ;Шейдер — Википедия
шейдер
шейдеры
шейдерами
шейдерам
шейдеру 
USB-флеш-накопитель ;USB-флеш-накопитель — Википедия

пятница, 17 октября 2014 г.

Продвижение видеороликов в Yandex


При Google при поиске видео по ключевым словам, например, «автоматическая проверка орфографии» отлично находится созданное мной видео по проверке орфографии, а вот в Yandex-поиске это видео не находит.

В поиске Yandex практически нет моих видео с Youtube, причем видео перенесенные на другие сервисы (не мной) в нем отражаются, например:
http://euronedvijka.ru/video/oblasti/konvertirovanie-teksta-dfm-fajlov-delphi-dfm-1251.html
(в оригинале: http://www.youtube.com/watch?v=UJU5hM0QZoA)

Если сравнить поиск фразы «Локализатор исходного кода» в yandex (http://yandex.ru/video/search?text="Локализатор исходного кода") и google (https://www.google.ru/search?q="Локализатор+исходного+кода"&tbm=vid),то разница очевидна... Yandex почти не выдает в поиске мои видео с Youtube.

В ряде статей, посвященным SEO и продвижению видео в поисковых системах, рекомендуется для поиска в Yandex размещать видео в Yandex.Video, а также советуют обратить внимание на RuTube.

Для пробы разместил видеоролик «Автоматическая проверка орфографии/правописания основных форматов исходного кода» в сервисе RuTube, т.к. Yandex.Video на данный момент уже закрыт.

Посмотрим как этот ролик на RuTube будет со временем находится Yandex'ом...

Ссылки на ролик:
1) http://www.youtube.com/watch?v=MNgx_aXBArA
2) http://rutube.ru/video/4ac0a181b452dc16e31bb17ea3f52afb/

«Лучше один раз увидеть...»

Для демонстрации возможностей программы ранее уже приобрел «MS Win7 HB (Box)», для тестирования возможностей программы в VirtualBox, а также записи процесса работы программы локализации.

Для повышения качества видео, наложения эффектов, редактирования и пр. приобрел Adobe Premiere Element 13, а заодно и посмотрел процедуру покупки/регистрации современных версий Adobe :)

В последней версии VirtualBox появилась возможность записи видео средствами самой программы, но в формате WebM и с мелкими глюками видео (немного периодически «дергается» видео).
WebM не поддерживается Premier'ом, поэтому приходится WebM сначала преобразовывать в MP4/AVC программой AviDemux, а уже затем редактировать в Premiere.

Отсутствие проверки орфографии в Premiere дает знать... уже есть оЧепятка на одном из видео.

Для создания титров использую AegiSub.

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