В качестве примера будет использован тестовый пример <каталог программы локализации>/examples/Lazarus/SimpleMath
Необходимо перенести исходные файлы в свой рабочий каталог. Создадим каталог c:\work и скопируем туда папку SimpleMath.
Программа локализации будет вносить изменения в исходный код программы, поэтому создадим копию рабочего каталога (со всем содержимым) для локализации — SimpleMathEng (полный путь будет: c:\work\SimpleMathEng).
Для настройки параметров программы используем «Генератор параметров…», его можно запустить с рабочего стола или через меню Пуск.
Включим следующие параметры на вкладке «Параметры программы»:
Разрешим перевод только фраз содержащих русский язык, что позволит игнорировать служебные строки программы. На вкладке «Перевод» следует указать для «Разрешен перевод для…» (параметр TEXTALLOW) значение [А-Яа-я], которое является регулярным выражением верным только при наличии любого символа кириллицы в проверяемой фразе. Так как командная строка может не поддерживать юникод, правильней указать выражение [^\x00-\x7F], указывающее на символ вне диапазона ASCII.
На вкладке «Перевод», тип перевода оставим прежним — основной.
На вкладке «Исходные файлы», в поле «Каталог с исходными файлами» впишем каталог c:\work\SimpleMathEng
Отметим следующие форматы исходных файлов на вкладке «Форматы исходных файлов»:
На вкладке «Перевод» в качестве языка перевода укажем 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-файл позволяющий:
Пример 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-файле такого переноса быть не должно. |