12. Примеры работы с программой

12.1. Простая локализация проекта Lazarus (SimpleMath)

В качестве примера будет использован тестовый пример <каталог программы локализации>/examples/Lazarus/SimpleMath

Подготовка файлов проекта к локализации

Перенос файлов примера в рабочий каталог

Необходимо перенести исходные файлы в свой рабочий каталог. Создадим каталог c:\work и скопируем туда папку SimpleMath.

Создание каталога локализации

Программа локализации будет вносить изменения в исходный код программы, поэтому создадим копию рабочего каталога (со всем содержимым) для локализации — SimpleMathEng (полный путь будет: c:\work\SimpleMathEng).

Создание каталога временных файлов

Создадим каталог для временных файлов, в который будут генерироваться временные файлы и файлы отчетов - каталог SimpleMathTemp (c:\work\SimpleMathTemp)

Настройка параметров локализации

Для настройки параметров программы используем «Генератор параметров…», его можно запустить с рабочего стола или через меню Пуск.

Настроим параметры локализации

Включим следующие параметры на вкладке «Параметры программы»:

  • Пауза при ошибке программы (-PAUSEIFERROR)
  • Разрешена перезапись исходных файлов (-SOURCEWRITE)

Разрешим перевод только фраз содержащих русский язык, что позволит игнорировать служебные строки программы. На вкладке «Перевод» следует указать для «Разрешен перевод для…» (параметр TEXTALLOW) значение [А-Яа-я], которое является регулярным выражением верным только при наличии любого символа кириллицы в проверяемой фразе. Так как командная строка может не поддерживать юникод, правильней указать выражение [^\x00-\x7F], указывающее на символ вне диапазона ASCII.

На вкладке «Перевод», тип перевода оставим прежним — основной.

На вкладке «Исходные файлы», в поле «Каталог с исходными файлами» впишем каталог c:\work\SimpleMathEng

Отметим следующие форматы исходных файлов на вкладке «Форматы исходных файлов»:

  • Lazarus/Формы/Все
  • Lazarus/Код/Все

На вкладке «Перевод» в качестве языка перевода укажем english, а короткий вариант — en.

В данном примере рассмотрим упрощенный вариант локализации, который основан на CSV-файлах

Укажем на вкладке «Файлы словарей» файл для записи CSV-файла: c:\work\SimpleMath\englishnew.csv

[Подсказка]Подсказка

Данные файлы можно разместить и вне каталога проекта.

Укажем на вкладке «Отчеты» временный каталог для рабочих файлов HTML-отчета — c:\work\SimpleMathTemp

В поле запуска отчета укажем DeveloperSimple (выбрать из списка). Данный отчет является упрощенным и отражает только ключевую информацию, для более детальной информации смотрите основной отчет Developer («ОТЧЕТ ПО ПЕРЕВОДУ»).

Нажмем кнопку Сгенерировать параметры — в нижнем поле появится набор параметров программы.

Нажмем кнопку Запустить программу с параметрами для проверки корректности указанных параметров.

На экран будет выведен отчет о результатах работы.

Для автоматизации — создадим bat-файл следующего содержания:

copy /Y c:\work\SimpleMath\*.* c:\work\SimpleMathEng

Строка предназначена для копирования последней версии исходных файлов в каталог для локализации.

[Примечание]Примечание

Желательно предварительно очистить каталог c:\work\SimpleMathEng

Следующая строка bat-файла предназначена для запуска программы локализации с сгенерированными параметрами.

"c:\Program Files\SourceLocalizer\SourceLocalizer.exe" <сгенерированные параметры>

Вместо <сгенерированные параметры> необходимо вставить параметры из программы генератора.

Пример сгенерированных параметров. 

-PAUSEIFERROR
-SOURCEWRITE
-SOURCETYPETRANSLATE=Lazarus.Form.All
-SOURCETYPETRANSLATE=Lazarus.Code.All
-LANGNAME="english"
-LANGNAMESHORT="en"
-TEXTALLOW=[^\x00-\x7F]
-RESULTHTMLDIR="c:\work\SimpleMathTemp"
-OPENREPORTHTML="DeveloperSimple"
-SOURCEDIR="C:\work\SimpleMathEng"
-FILELANGCSVREAD=c:\work\SimpleMath\english.csv
-FILELANGCSVWRITE=c:\work\SimpleMath\englishnew.csv

[Подсказка]Подсказка

В дальнейшем можно добавить в bat-файл, запуск компилятора с указанием своего проекта из каталога c:\work\SimpleMathEng, что позволит сразу получить готовую локализованную программу. В дальнейшем при рассмотрении более сложных вариантов локализации с применением билд-сервера, системы контроля версий, JUnit-отчетов и пр. будет рассмотрен вариант полной автоматизации процесса локализации.

Проверим работу запустив созданный bat-файл.

Начало локализации

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

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

Данный файла следует перевести и пересохранить как english.csv — для дальнейшего чтения программой локализации.

Укажем файл для чтения CSV-файла: c:\work\SimpleMath\english.csv Перегенерируем параметры и заменим их в bat-файле.

[Подсказка]Подсказка

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

После перевода csv-файла и повторного запуска bat-файла, следует проверить отчет о новых словах, ошибках перевода и пр.

В дальнейшем следует выполнять действия из раздела «Повторная локализация».

Повторная локализация

В случае изменения исходного кода следует запустить bat-файл и ознакомиться с отчетом. После этого можно скомпилировать проект.

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

[Примечание]Примечание

Новые слова в таблице легко найти по отсутствию в них перевода во втором столбце, например отсортировав таблицу по этому столбцу. Будьте аккуратны и не включайте в сортировку первые две строки. Подобный подход позволяет выявить все пропавшие строки (notfound в третьем столбце) и пр.

Автоматизация повторной локализации

Можно создать bat-файл позволяющий:

  1. автоматически копировать последние версии исходного кода в каталог локализации;
  2. проводить локализацию;
  3. компилировать локализованный проект.

Пример bat-файла выполняющего такие функции для примера SimpleMath:

copy /Y c:\work\SimpleMath\*.* c:\work\SimpleMathEng

"c:\Program Files\SourceLocalizer\SourceLocalizer.exe"
        -PAUSEIFERROR
        -SOURCEWRITE
        -SOURCETYPETRANSLATE=Lazarus.Form.All
        -SOURCETYPETRANSLATE=Lazarus.Code.All
        -LANGNAME="english"
        -LANGNAMESHORT="en"
        -TEXTALLOW=[^\x00-\x7F]
        -RESULTHTMLDIR="c:\work\SimpleMathTemp"
        -OPENREPORTHTML="DeveloperSimple"
        -SOURCEDIR="C:\work\SimpleMathEng"
        -FILELANGCSVREAD=c:\work\SimpleMath\english.csv
        -FILELANGCSVWRITE=c:\work\SimpleMath\englishnew.csv

C:\lazarus\lazbuild C:\Work\SimpleMathEng\simplemath.lpr

pause
[Примечание]Примечание

В листинге сделан перенос части строк для более удобного отображения, в bat-файле такого переноса быть не должно.

Site      PDF      Content