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


 

вторник, 17 сентября 2013 г.

Автоматическая проверка орфографии исходных файлов на примере OpenSuse

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

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

При установке программы со значениями по умолчанию (включен пункт "Автоматическая проверка орфографии") на рабочий стол устанавливается ярлык "Автоматическая проверка орфографии ...". При "броске" на него файлов и каталогов проводится проверка орфографии для "брошенных" файлов, кроме не текстовых форматов jpg/png/exe/и т.п. Также исключаются файлы из специальных каталогов SVN (\.svn\).

При проверке учитываются спец.символы \n,\t,%s и прочие, которые встречаются среди текста в программах, а также теги <b>/<i>/... как пустые элементы, что позволяет найти ошибки слитых слов ("пример<b>текста</b>" должен быть "пример <b>текста</b>").

Для данного ярлыка указана кодировка проверяемых файлов UTF8. Если следует использовать ANSI то выберите другой ярлык, подробней см. справку.


Если необходимо проверить файлы определенных языков/форматов, то лучше выбрать соответствующий ярлык из меню ("Пуск") программы в подкаталоге Ярлыки, в которых учитывается синтаксис языков и форматов. Особенно это относится к Delphi7, в котором текст в dfm зачастую закодирован.

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

Исходные файлы:
http://svn.opensuse.org/svn/opensuse-i18n/trunk/yast/ru/po/
http://svn.opensuse.org/svn/opensuse-i18n/trunk/lcn/ru/po/

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

Достаточно бросить каталоги "yasn" и "lcn" на ярлык и подождать несколько минут, после чего получим следующий отчет (был создан для ревизии 83825):

1) Скачать архив с созданным html-отчетом.
2) Посмотреть "распечатанную" PDF-версию (часть страниц "подрезана").

Сразу увидим набор слов "Cбой, Cвёртка, Cервер, cервера, cохранены, Cъёмное", в которых первые буквы выделены красным, что означает
использование английской первой буквы
в русском слове.

Ряд слов OpenOffice не может проверить, поэтому сообщает об ошибке, например, для "Аплет, апплет, Апплет, апплетов,". В данном случае мы видим, что используется разное количество букв "п" в слове, что является ошибкой.

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

Например, слова "вашипараметры" и подобные появились из-за того, что по умолчанию "_" считается пустым элементом, так как часто используется для указания ключевой буквы для меню и пр.".
Если необходимо считать символ как пробел, достаточно добавить команду
-SPELLCHECKSETTINGS="_asSPACE" в начало параметров программы в ярлыке.

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

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

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

Буду рад услышать предложения/замечания по данному функционалу программы "Локализатор исходного кода".

P.S. Теперь перед коммитом своей программы обязательно "бросаю" измененные текстовые файлы проекта на данный ярлык.

P.P.S.
В дальнейшем планирую еще ряд постов на тему орфографии известных продуктов, особенно создаваемых нашими разработчиками.
Будут веселые примеры, как опечаток, так и юмора программистов, как например для FAR:

if (DrvType == DRIVE_UNKNOWN) // фигня могла кака-нить произойти, посему...
DrvType=DRIVE_CDROM;       // ...вертаем в зад сидюк.


UPDATE:

О данном посте написал координатору команды локализации OpenSuse, а также создал пост в теме форума по локализации этой операционной системы - http://unixforum.org/index.php?s=&showtopic=67972&view=findpost&p=1248157

Очень рад позитивному отношению к отчету по ошибкам, а также исправлению ряда ошибок указанных в отчете - см. http://forums.opensuse.org/p-russian/dhydhdhdhdhundhdhdh/1054-1073-1097-1080-1081/430401-dhzndhdhdhdh-dh-dhdhundhudhdhdhdhu-opensuse-11.html#post2585866 "Изменения зафиксированы в ревизии 83835." - см. сообщение к ревизии "Lots of typos fixed, thanks to sourcelocalizer" :)

Решил перепроверить внесенные изменения, а также проверить новый подотчет ищущий опечатки и ошибки оформления.
В качестве исходного кода была взята ревизия 84698 (см. https://svn.opensuse.org/svn/opensuse-i18n/trunk/)

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

Для формирования нового отчета использовал ярлык для po-файлов.

Сгенерировал новый отчет:
https://docs.google.com/file/d/0B2P_Drl0OiU9dnd2b25ONDVYTkU/edit?usp=sharing

Буду рад советам по улучшению отчета.

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

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