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


 

воскресенье, 17 марта 2013 г.

Решение проблем с кириллицей в dfm-файлах Delphi

Проблема состоит из двух частей:
1) проблема передачи исходных файлов программисту команды, у которого локализация (н.п. английская вместо русской) ОС отличается от ОС у других программистов;
2) проблема отображения кириллицы при работе программы на ОС (операционная система) разной локализации.

Решение пункта 1

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

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

Решение пункта 2

В Delphi7(6) есть проблема с отображением текста форм в зависимости от кодировки системы, заключающаяся в появлении знаков вопросов, если кодировки не совпадают - delphi, начинает считать юникод как 1251 или наоборот.

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

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

Причины создания программы "Локализатор исходного кода"

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

При выборе программы локализации к ней были определены следующие требования:
1. Отсутствие или минимум доработки исходного кода для локализации.
2. Отслеживание дальнейших изменений/дополнений, требующих локализации.
3. Хорошая работа с системами сборки для выполнения пункта 2 (Junit-отчеты) и возможности получать переведенный проект при изменении только функционала без необходимости обращаться к переводчикам.

4. Дополнительное, но важное, требование - решить проблему с кириллицей, а именно ее замену на знаки вопросов в формах при работе с разрабатываемой программой в ОС с другой кодировкой (Английская, Немецкая, пр.), в том числе с Русской (1251), так как описание формы в Delphi7 генерируются в 1251 либо юникоде (либо другой кодировке).
Проблема с кириллицей касается и разработчиков, если один из них работает с ОС другой локализации, то работать с формами проекта он не может, а с его формами не могут другие.
Был вариант использовать для решения этой проблемы юникод-компоненты, но это привело бы к полному переписыванию форм программы.

Все рассмотренные программы локализации не соответствовали перечисленным требованиям.

В связи с этим я разработал свою программу локализации, которая отвечает всем требованиям.

Сайт моей программы локализации: www.sourcelocalizer.ru

http://www.youtube.com/watch?feature=playe...p;v=OFFzXvI_A9k
Пример локализации разрабатываемой программы с помощью "Локализатора исходного кода", на примере тестового проекта на Lazarus. На видео показаны все этапы локализации примера подробно описанные в руководстве пользователя.
На видео, начиная с 19:45, описан процесс внесение изменений в проект, отслеживание их программой локализации, а также процесс локализации добавленных элементов.

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