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


 

воскресенье, 27 октября 2013 г.

Проверка локализации игры WorldOfTanks 0.8.8

Gettext'ом в качестве программы локализации ПО пользуются не только разработчики открытого ПО, но и разработчики проприетарного ПО.

Известная игра World Of Tanks использует подобную систему, основанную на файлах перевода формата gettext.
Исходных кодов нет, поэтому утверждать на 100% не могу.

...
UPDATE:

Нашел ряд ошибок (имхо) локализации в игре. Сообщил разработчикам через баг-репорт "Ошибки игры #6739: Ошибки локализации (русский язык)" (https://bugs.wargaming.net/issues/6739). Администратор просил оставить поиск ошибок разработчикам и не исследовать файлы локализации.
Посему ошибки из поста удаляю.

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

суббота, 19 октября 2013 г.

Создание отчета из 300k+ фрагментов текста на основе проекта из 290k+ файлов (653 пакета Gnome)

Создание отчета из 300000+ фрагментов текста на основе проекта из 290000+ файлов.
В качестве исходного кода взят набор репозиториев 653 проектов Gnome рассмотренных ранее.

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

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

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

Исходные данные:
- исходный код расположен в каталоге: i:\gnomegit
- производится поиск текста только в файлах ru.po (остальные игнорируются по рег.выражению - см. параметры)
- отключены все лишние отчеты
- программа запущена на ОС Windows
- результаты отчета выгружаются в d:\temp
- все файлы в отчете корректируются рег.выражением убирающем корневой каталог.
- используется версия программы "Локализатор исходного кода" 0.9.2 - скачать. Подходит как windows-, так и wine-версия.

Скачивание исходного кода 653 пакетов Gnome из git-репозитория

Для генерирования общего отчета по всем пакетам Gnome возникла необходимость их всех скачать. Каждый пакет представлен отдельным репозиторием, к которому необходимо обращаться отдельно.
Всего пакетов 653 (см. далее как удалось определить количество), соответственно надо обратиться к 653 репозиториям.

На странице https://git.gnome.org/browse/ представлен полный список пакетов с указанием разделов, к которым они относятся и описаний пакетов.

Скачать отдельный пакет можно командой:
"D:\Program Files\Git\bin\git" clone git://git.gnome.org/MODULE

где MODULE - название пакета.

Пример команды приведен для windows.

Проблема в том, что необходимо выполнить 653 команды с названиями пакетов.
Если хватит терпения скопировать 653 раза строку команды и 653 раза через буфер скопировать с сайта название модуля в эту строку, то можно дальше не читать... :)

Попробовав так сделать... я быстро понял, что это не решение... это отдельная проблема.

Далее привел мое решение генерирования списка команд для скачивания пакетов:

1) Копируем список с сайта в NotePad++.

Далее производим замену текста регулярными выражениями и обязательно указываем учитывание регистра в NotePad++.

2) Производим замену ^(\S+\s).*$ на $1 - удаляем все описания.

Получится список первых слов в предложениях, содержащих названия пакетов.

понедельник, 7 октября 2013 г.

Результаты проверки орфографии исходного кода Ubuntu 13.04

Провел проверку исходного кода ОС Ubuntu 13.04 версии, скачанной с ftp, 29 сентября 2013: ftp://cdimage.ubuntu.com

Проверял каталоги:
- language-pack-ru
- language-pack-ru-base

Результаты проверки:
- фраз содержащих кириллицу: 99260
- на проверку ушло примерно 1700сек (виртуальная машина Win7HB 1gb 1ядро HT, на компьютере i7-860)
- найдено 3109 слов с "ошибками", встречающиеся 8525 раз в тексте.

Скачать отчет: https://docs.google.com/file/d/0B2P_Drl0OiU9OVdpeE15QmtMRXc/edit?usp=sharing

Найдено множество ошибок:
002282     chk:   аналговые     text:   Изящные аналговые часы 
003017     chk:   Настрока     text:   Настрока Debian 
017250     chk:   Интсрумент     text:   Интсрумент GNOME для поиска строки в наборе файлов
000028     chk:   значиние     text:   Применение: %s [-LRSq] -s имя_атрибута [-V
...
Фрагмент отчета:

Ранее уже проверял открытые ОС - см. Автоматическая проверка орфографии исходных файлов на примере OpenSuse, по результатам которой ошибки были исправлены в ОС (см.Update), и по совету координатора локализации этой ОС, был скорректирован и улучшен данный отчет.

Профиль в Google+ и его оформление

Обнаружил трансляцию всех моих постов в свой аккаунт на google+...
Специально его не создавал, но оказалось Google другого мнения (или мелкая "галочка" где то в соглашении есть) по этому поводу.
Но с виду хорошо все выглядит и удобно сделано, потому спасибо им.

Только странные пропорции заглавной картинки. У OpenSuse и ряда аккаунтов картинки явно горизонтальные, а у других высокие-прямоугольные... в своем аккаунте Google упорно настаивает на своих пропорциях.
Решил отрисовать заглавную картинку в новых пропорциях и светлых тонах, потом может и редизайн сайта/блога/инсталляторов сделаю под новый стиль... посмотрим...

Google+: https://plus.google.com/u/0/103029391702241740789/posts
Картинка:
P.S. Застолбил название сообщества SourceLocalizer, но так как все записи транслировались в мой профиль, вероятно так и останусь на нем... 

воскресенье, 6 октября 2013 г.

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

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

  • Добавлена работа с буфером обмена.
  • Добавлена обработка po-файлов как текстового формата.
  • Улучшена подготовка текста к проверке орфографии (чистка спец.символов и тегов).
  • Добавлена настройка орфографии через параметр (для нижнего подчеркивания).
  • Добавлен пользовательский словарь исключений.
  • Изменены настройки контекста.
  • Добавлены параметры для гибкой настройки орфографии OpenOffice.
  • Продлил дату Бета-версии.
  • Расширены отчеты орфографии.
  • Добавлено игнорирование специальных файлов и каталогов при проверке "любых" файлов.
  • Добавлена информация в справку.
  • Добавлен отдельный инсталлятор тестовой версии для Linux(wine).

    суббота, 5 октября 2013 г.

    Проверка орфографии в буфере обмена или эволюция от командной строки до окон

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

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

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

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

    Читать мысли программы пока еще не умеют, поэтому эволюцию своей программы в этом направлении приостановлю... :)

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

    Давайте проверим работу на примере сайта для переводчиков:
    https://help.launchpad.net/Translations/GuidesList/Russian
    "Справка Launchpad > Переводы > Общий путеводитель по переводу"

    Выделяем всю страницу и копируем в буфер, затем запускаем ярлык "Буфер обмена - проверка орфографии...".

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

    Словарь локализатора GPL. Почему его нет?

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

    Если загрузить перевод в текстовый редактор, например, в OpenOffice или другой поддерживающий словари орфографии, например, Notepad, то целый ряд слов будет подчеркнут, как ошибки. Это в первую очередь относится к терминам и названиям, которых нет в словарях.
    Между такими терминами и названиями легко "прячутся" ошибки, которых не заметно на фоне множества ложных срабатываний.

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

    Пример: "Словарь устоявшихся терминов" http://team.ubuntu.ru/translate/словарь_переводов

    В примечании к "кеш" (по ссылке к слову):
      Уважаемые переводчики, использующие слово "кеш"!
      Пожалуйста, пишите правильно - "кэш". Спасибо. --Артём

    Если слово "кэш" добавить в словарь, как и ряд других, то подчеркнутое слово "кеш" явно подскажет локализатору об ошибке.

    Отличным примером является название "Ши-сен-сё" и второй его вариант "Ши-сён-сё", встречающийся в переводе OpenSuse. При наличии правильной версии данного названия
    в словаре локализатор сразу бы увидел ошибку.

    Наиболее распространенными являются словари для утилиты hunspell, но также можно использовать словари пользователей для OpenOffice.

    Для начала рассмотрим формат OpenOfice, основной пользовательский словарь standard.dic, который имеет следующее содержание:

    четверг, 3 октября 2013 г.

    Тестовая версия программы для Linux (wine)

    Добавил инсталлятор для Linux.
    В связи с необходимостью наличия wine/mono в Linux, решил не делать deb-пакет, а реализовать все средствами InnoSetup, просто упростив основной инсталлятор: отключив создание ярлыков, регистрацию журналов, наличие большого количества примеров и убрав оконную программу "Генератор параметров" из инсталлятора.

    Получился простой дистрибутив с простой установкой.