Sabbath Black L@B

 

Редактор ресурсов PASSOLO

 

Новости 
Русики 
BSLStudio 
GTAMotors 
Статьи 
MyAssist 
Форум 
Друзья 
Диски 
Гостевуха 
Мыло 

Шаблонный переводчик PASSOLO

Программа PASSOLO - это шаблонный редактор ресурсов и при грамотном использовании может помочь переводчику сэкономить уйму сил и времени при локализациях программ. Это из-за того, что в программе предусмотрена функция автоматического перевода и проверки переведённого текста на большинство типичных ошибок. Функция автоматического перевода осуществляется при наличии определённых словарей, которых существует множество в интернете, в том числе и от компании Microsoft. Если вас уже готовые словари не устраивают (а готовые словари не всех устроят из-за отвратительного качества оных), то их можно создавать самому. Достаточно один раз перевести какую-нибудь программу и экспортировать список перевода в словарь. И в дальнейшем этот словарь можно будет подключать при переводе новых версий программ.

 

В PASSOLO очень развита визуальная корректировка диалоговых окон в переводимых программах. Достаточно будет сказать, что она не намного уступает редактированию форм в Microsoft Visual Studio.Net. Если вы скажете, что и в Resource Hacker хорошая корректировка диалогов, то значит вы не видели PASSOLO. На этом список достоинств PASSOLO не ограничивается. Но, обо всём по порядку...

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

 

После установки и при первом запуске PASSOLO предлагает создать новый проект локализации (Файл - Создать). Для начала нужно ввести название создаваемого проекта в поле 'Имя'. В поле 'Расположение' нужно ввести путь, куда будет сохранён файл проекта. Этот файл может быть сохранён где угодно, независимо от расположения исходных файлов. Файлы проектов PASSOLO - это файлы с расширением *.lpj. В этом файле сохраняются исходный список строк и то, что вы сделаете с этим списком. То есть, ваш перевод этого списка, комментарии, журнал проекта, статистика перевода и т.д. По сути дела, файлы *.lpj - это обычные архивы, но посмотреть содержимое находящихся в нём файлов, так просто не удастся, так этот архив защищён паролем.

 

Далее следует нажать кнопку 'Добавить источник' и выбрать исходный файл. Исходный файл - это файл, который вы хотите перевести. При нажатии на кнопку 'Добавить источник' открывается стандартное окно открытия файла, в котором вы можете выбрать нужный файл. К слову сказать, PASSOLO умеет работать не только со стандартными файлами ресурсов (*.exe. *.dll, *.scr), но и со многими другими, в частности файлами Java (*.java, *.properties, *.class, *.jar). В таких файлах хранятся ресурсы программ, написанных на языке JAVA. Наверное, самым ярким представителем таких программ является небезызвестная Mozilla. Также, PASSOLO может открывать обычные RC-файлы. Так, если вы приверженец Restorator'a, то вы запросто можете извлекать диалоговые ресурсы из Restorator'a, редактировать их в PASSOLO, а затем закидывать обратно в Restorator. Я не знаю, есть ли в этом какой-либо смысл, но, во всяком случае, редактирование диалогов в Restorator'е реализовано просто отвратительно. Поэтому, мне кажется, что извлечение диалогов из Restorator'а и редактирование их в PASSOLO будет гораздо более быстрым и продуктивным. Но о редактировании диалогах в PASSOLO поговорим ниже.

 

После выбора файла для перевода, открывается ещё одно окно, в котором как правило ничего не нужно указывать, за исключением языка, который будет извлекаться из исходного файла и языка текста. Язык текста указывает программе с какого языка будет переводиться исходный файл. В этом же окне есть кнопка 'Параметры'. При нажатии на неё открывается окно дополнительных параметров исходного файла. Здесь можно настроить, чтобы из исходного файла были извлечены рисунки, значки, указатели и двоичные ресурсы. Как правило, необходимость в настройке дополнительных параметров возникает не часто.

 

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

 

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

 

На этом создание проекта можно считать законченным и при нажатии кнопки OK в окне проекта появляются как минимум две кнопочки, но может быть и больше, в зависимости от количества языков, на которые вы будете переводить исходный файл. Первая кнопочка - это строки исходного файла, а последующие - строки перевода конечных файлов. Ах да, совсем забыл: перед добавлением какого-либо файла в проект, его лучше всего переименовать, например, к имени файла добавить слово '_ORIGINAL'. Дело в том, что этот файл уже нельзя будет изменять никакими другими редакторами ресурсов, так этот файл будет использоваться в качестве базового и от него будет плясать PASSOLO, компилируя конечный файл. В противном случае, результат конечного файла может быть непредсказуемым. Допустим все условности соблюдены. Далее нужно указать параметры конечного файла. Щелчок правой кнопкой мыши по второй кнопочке, команда 'Свойства' и в поле имя файла нужно ввести имя и путь файла, который будет создавать PASSOLO. Это может быть или оригинальное (ещё не переименованное) имя исходного файла или какое угодно другое. В окне свойств конечного файл можно даже указать, чтобы PASSOLO скомпилировал не весь файл, а только библиотеку с ресурсами. Такие ресурсные библиотеки поддерживают многие программы, в частности PASSOLO, Nero Burning ROM, Restorator...

Собственно перевод

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

На рисунке сверху отображён весь список строк переводимого файла. Небольшое пояснение о строках: то, что вы переводите (диалоги, меню, фразы) PASSOLO считает в первую очередь строками, а уж потом - ресурсами. Красным цветом обозначаются те строки, к которым ещё не прикасалась безжалостная рука переводчика. Синим цветом помечены строки 'Для просмотра'. Это те строки, которые переведены с помощью авто-перевода, или те, которые переводчик пометил таким образом, например, для того, чтобы впоследствии перевести эти строки как-нибудь по-другому. Пометка строк 'Для просмотра' используется, когда переводчик сомневается в том, как он перевёл эту строку и хочет поработать с ней в дальнейшем. Ну и чёрным цвет помечаются те строки, в переводе которых у переводчика уже не осталось никаких сомнений или больше он не хочет возвращаться к этой строке. В терминах программы, это называется утверждённый перевод. В общем, цветные строки созданы исключительно для наглядности и удобства и на конечном файле никак не отражаются. Я хочу сказать, что даже синие строки в конечном файле будет переведены. Состояния строк сохраняются и поэтому всегда можно вернуться к любому состоянию, в том числе и полностью отменить перевод.

 

Кроме всего списка строк, PASSOLO умеет отображать каждый ресурс по отдельности. То есть, меню выглядят как меню, а диалоги - как диалоги. Единственно, строковое ресурсы отображаются не так, как мы привыкли в Restorator'е и Resource Hacker. В PASSOLO стоковые ресурсы отображаются единым, длинным списком. Поначалу мне это показалось дикостью, но понемногу привык и теперь мне кажется, что так даже удобнее. Единственное, что омрачает, так это то, что в PASSOLO не предусмотрена возможность импорта/экспорта ресурсов во внешний RC-файл. Встроенный текстовый редактор очень несовершенный и глючный. Например, все знают, что в обычных текстовых редакторах двойной щелчок по слову выделяет это слово. А в PASSOLO этот же двойной щелчок выделяет не только слово, а ещё и близлежащие знаки. Например, скобки, кавычки, амперсанды (&). А это очень неудобно. Также многие знают, что нажатие клавиш CTRL + Стрелка перемещает курсор не на один символ, а на всё слово. А в PASSOLO эта возможность может работать, а может не работать. По крайней мере в версии 4.0.004.

 

Если у вас имеются подключённые словари, то можете попробовать в действии функцию автоматического перевода. Команда меню Перевод - Авто-перевод. В параметрах Авто-перевода можно указать используемые источники для автоматического перевода (общие словари, словари проекта, уже переведённые строки). Там же можно настроить поведение PASSOLO, если он найдёт несколько соответствий переводимой фразы. В этом случае лучше всего, наверное, будет установить параметр 'Показать все соответствия'. Так, если PASSOLO найдёт несколько вариантов перевода исходной фразы, то он отобразит все эти варианты, а вам останется только выбрать понравившийся вариант. В настройках нечёткого соответствия (Сервис - Параметры - Нечёткое соответствие) можно указать процент соответствия автоматически переводимых фраз. Так, если процент указан 100%, то слова '&File' и 'File:', будут считаться разными. А если процент соответствия указать меньше, то эти же слова будут считаться одинаковыми, и будут переведены так, как указано в подключённом словаре.

 

При ручном переводе можно нажимать клавишу F8 и тогда PASSOLO будет или автоматически переводить переводимую строку, если найдено соответствие в подключённых словарях или покажет варианты переводов, в том случае, если найдётся несколько соответствий. А вообще, наверное, идеальным вариантом будет постепенно создавать один общий словарь для всех программ и в этот словарь вносить те фразы, которые будут приемлемы для всех программ. Как правило, это довольно длинные фразы и системные сообщения, которые ну никак не могут иметь несколько значений. Например, часто встречаемая фраза 'For Help, press F1'. Во всех программах она имеет одно и то же значение и её никак нельзя перевести, кроме как 'Для вывода справки нажмите клавишу F1'. Следовательно, этой фразе и место в генеральном словаре. Или фраза 'Save the active document\nSave' во всех программах не может иметь иного значения, кроме как 'Сохранение активного документа\nСохранить'. Вот такие фразы и нужно заносить в словари, общие для всех программ. С другой стороны, не следует в общие словари вносить такие слова, как 'Edit' или 'Frame' и слова, которые могут иметь разное значение в разных программах. Например, слово 'Frame' в веб-редакторах можно перевести как 'Фрейм', а для графических редакторов будет уместнее слово 'Рамка'. Для узкоспециализированных программ нужно и словари создавать соответствующие.

Перевод меню

PASSOLO имеет очень продвинутый редактор меню. Как правило, многие переводчики начинаю переводить новую программу именно с главного меню. И главное меню, это то, что постоянно видно на экране и с чего начинается знакомство с программой. Поэтому, грамотно переведённое меню - это залог успеха вашего будущего русификатора. Переводимое меню в PASSOLO не закрывается как в других редакторов ресурсов, поэтому вы всегда видите свой перевод перед глазами. Команда Вид - Оригинальный ресурс или кнопка 'Показать оригинальный ресурс' на панели инструментов позволяют в любой момент посмотреть исходный (непереведённый) ресурс. К слову сказать, эта команда действует не только для меню.

Во многих программах имеется строка состояния, в которой отображаются различные подсказки и сообщения. При наведении указателя мыши на пункт меню в строке состояния отображается краткая подсказка об этом пункте меню. В PASSOLO эта подсказка отображается в строке 'Сообщение'. При нажатии на слово 'Сообщение' вы будете автоматически перенесены в строковые ресурсы для перевода этой подсказки. А команда Правка - Перейти - К строке (CTRL + G) перенесёт вас обратно на переводимое меню. Конечно, в рабочей программе подсказка будет отображаться немного не так, как в PASSOLO. То есть, в рабочей программе в строке состояния будет отображаться подсказка до символов '\n'. Фразы, следующие за этими символами - это всплывающие подсказки панелей инструментов. А в традиционных редакторах пришлось бы все эти подсказки искать и переводить вручную.

 

По ходу перевода можно создавать словарик. Обычно, внутри переводимой программы существует множество различных меню. Это для конечного пользователя существует только главное и контекстное меню. А на самом деле внутри программы полно разных менюшек и почто все они однотипны и повторяющиеся. И переводчик может значительно упростить себе жизнь при их переводе с помощью словарика. Делается это так: переводится пункт меню, например, как в случае на рисунке выше, фраза '&Open...\tCtrl+O' переведена как '&Открыть изображение...\tCtrl+O'. И тут же переведённую фраза заносите в словарь командой Перевод - Добавить в словарь (или клавишами CTRL + F10). Откроется диалоговое окно, в котором предлагается добавить переведённую фразу в существующий словарь, или создать новый словарь. Как уже говорилось выше, для таких фраз лучше создавать специализированный словарь для конкретной программы. В разных типах программ - и меню нужно переводить по разному. Так, слово 'Open' в графическом редакторе можно перевести как 'Открыть изображение', а этот же перевод в текстовом редакторе будет выглядеть извращением. Так вот, когда вы переведёте какое-нибудь меню и занесёте все переводы в только что созданный словарь, просто выбирайте команду Перевод - Авто-перевод, и остальные меню в программе будут переведены автоматически и почти полностью. Времени экономится уйма. Останется только доперевести непереведённые команды и на этом перевод менюшек можно считать законченным. Хотя, прежде чем добавлять слова в словарь, желательно проверить хотя бы одно переведённое меню на ошибки с помощью команды Перевод - Проверить перевод ресурса. Эта команда проверяет не орфографические ошибки (об этом вам придётся позаботиться самостоятельно), а наличие ошибок перевода. Например, в одном меню одна и та же буква будет подчёркнута несколько раз. Это ошибка называется 'Двойная клавиша доступа' или что-то в этом роде. А подчёркивание буквы достигается вставкой так называемого амперсанда (&) перед подчёркнутой буквой. Ну это для справки, и для тех, кто слышит об этом впервые.

Перевод диалогов

 

Редактировать диалоги в PASSOLO сплошное удовольствие. В этом плане Restorator, PE Explorer и даже Resource Hacker рядом не стоят с PASSOLO.

Все команды с объектами диалоговых окон доступны в меню 'Размещение'. Чтобы выбрать несколько объектов, нужно нажать клавишу SHIFT и щёлкнуть по нужным элементам управления. Изменить размер выбранных объектов можно с помощью комбинации клавиш SHIFT и стрелка. SHIFT и стрелка вправо увеличивают длину объекта, SHIFT и стрелка влево - уменьшают длину объектов, SHIFT и стрелка вниз - увеличивают высоту, а SHIFT и стрелка вверх - уменьшают высоту объекта. Можно не возиться с клавишами, а сразу ввести координаты и размеры объекта. В PASSOLO очень просто выровнять объект относительно другого объекта. Объект, относительно которого будут выравниваться другие объекты, следует выбирать последним, так как он  в этом случае будет активным. Доступны выравнивания по левому и по правому краям, по верху или по низу (соответственно, клавиша CTRL + стрелка в нужную сторону, или с помощью команд меню Размещение - Выровнять - По... подставь сам). Также возможно центрирование по вертикали или по горизонтали относительно активного объекта.

 

Очень просто выбрать, например, несколько кнопок и установить между ними одинаковое расстояние с помощью команды Размещение - Равномерное выравнивание - По горизонтали (и по вертикали тоже). А ещё можно выбрать несколько разных объектов и сделать у них одинаковый размер командой Размещение - Выровнять размер - Ширину (а также высоту или и то и другое). А с помощью команды Размещение - Центрировать в диалоге - По вертикали (По горизонтали) можно установить выбранные объекты точно по центру в диалоге. Прошу заметить, все эти команды доступны не только с одним объектом, а с несколькими сразу. Такого я больше ни в одном редакторе не видел.

 

Очень часто переведённая фраза не вмещается в отведённое ей место. Для таких случаев есть команда Размещение - Размер по содержимому (SHIFT + F7) и объект самостоятельно изменит свой размер и станет равным размеру находящемуся в нём тексту.

 

Кроме всего прочего, бывают очень навороченные диалоговые окна, в которых содержится очень много элементов управления и все они находятся друг на друге. Но в рабочей программе отображаются не все эти объекты, а только часть из них. Эти объекты отображаются в зависимости от выполняемый в данный момент задачи и поэтому, конечный пользователь даже и не догадывается об этой мешанине объектов. Такие ресурсы в обычных редакторах довольно трудно редактировать из-за того, что видна только часть объектов. А в PASSOLO для таких случаев предусмотрено временное скрытие объектов. Достаточно скрыть часть объектов и все остальные появятся и редактирование не вызовет больших трудностей. Также, объекты диалогов можно объединять в группы и все действия по редактированию будут выполняться с выбранной группой.

 

Иногда переведённый объект становится настолько длинный, что не вмещается в объект. Для таких случаев есть флажок 'Многострочность', который позволяет разместить объект в несколько строк.

 

Кстати, дельфийские формы (RCData) PASSOLO отображает как обычные меню и диалоги. И также просто их редактирует!

 

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

Редактирование ресурса 240

Умением редактировать ресурс 240 (он же Dialog Data) славятся далеко не все редакторы ресурсов. Как правило эти ресурсы связаны с выпадающими списками в программах. Restorator и Resource Hacker отображают этот ресурс в шестнадцатеричном виде и не редактируют никак. PE Explore отображает этот ресурс в нормальном виде, но тоже редактировать пока не научился. Говорят, ресурс 240 может редактировать глюк под названием eXeScope. Но обычно после этого программа редко работает. В PASSOLO ресурс 240 называется DLGINIT и отображается в виде обычных строк. И редактируется как обычные строки.

Редактирование двоичных ресурсов

 

В PASSOLO встроен простенький графический редактор, который способен произвести небольшие косметические изменения с рисунками, указателями и значками, а также добавить текст в рисунки. Если нужна серьёзная обработка рисунка, то лучше будет назначить редактирование рисунков на внешний графический редактор (Сервис - Параметры - Двоичные ресурсы). Ну а в глубоком смысле PASSOLO не умеет редактировать двоичные ресурсы, даже RTF. Но для этих целей можно назначать внешние редакторы. И к тому же, двоичные ресурсы очень редко когда требуется редактировать. Так что, это может и не понадобиться.

Версия

 

Насчёт 'версии' я мало чего могу сказать вразумительного, и поэтому позволю себе процитировать слова мною уважаемого NyBumBum'а:

 

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

 

        BLOCK "041904b0" и

        VALUE "Translation", 0x0419 0x04B0 (1049/1200)

 

вместо:

 

        BLOCK "041904E3" и

        VALUE "Translation", 0x0419 0x04E3 (1049/1251)

 

Исправить можно в Resource Hacker".

 

Я так и не понял, что это за глюк и глюк ли это вообще. Во всяком случае я не замечал каких-либо изменений в работе программ после исправления вышеуказанных букв.

Проверка перевода

 

После перевода какой-либо программы можно произвести контрольную проверку всего перевода. Команда Перевод - Проверить весь перевод. Как уже говорилось выше, PASSOLO может проверять перевод на большинство типичных ошибок, появляющихся в процессе перевода. А в параметрах проверки (Сервис - Параметры - Проверка) можно указать, какие именно ошибки будет искать PASSOLO. По умолчанию включён поиск всех возможных ошибок.

 

PASSOLO может искать отсутствие клавиши доступа (&) в переведённой строке, или наоборот, присутствие этой клавиши, но при отсутствии оной в исходном переводе.

Двойная клавиша доступа в меню или в диалоге. Не положено быть двум клавишам доступа в одном ресурсе.

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

Для диалогов наиболее типичные ошибки - это:

Длина текста превышает превышает длину элемента управления. Эта ошибка легко исправляется клавишами SHIFT + F7.

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

 

Навигация по ошибкам: клавиша F4 - переход к следующей ошибке, SHIFT + F4 - переход к предыдущей ошибке. Конечно, лучшим вариантом будет проверять на ошибки каждый ресурс сразу после перевода (Перевод - Проверить перевод ресурса).

Словари

 

После перевода программы, после ликвидации всех найденных ошибок и после тщательного тестирования, вы можете экспортировать свои списки перевода в словарь и использовать этот словарь при переводе следующих версий программы. Словари экспортируются командой Файл - Экспорт. Из кучи предлагаемых форматов самым распространённым и удобным является формат PASSOLO Glossary Maker. Это файл формата *.glo, который при необходимости можно открыть и отредактировать в любом текстовом редакторе, например, в EditPlus.

 

Сайт http://edfoxrus.narod.ru целиком посвящён локализациям программ. На этом сайте находится великое множество различных программ, предназначенных для перевода других программ, а также русификаторы к ним. Кроме этого, на этом сайте собрано огромное количество словарей для PASSOLO. Почти все эти словари 'безымянные' или присланные неизвестными переводчиками. Я загрузил оттуда для проверки несколько словарей, в том числе и два словаря для PASSOLO. Мои впечатления: когда я просматривал эти словари, то мне казалось, что их 'создали' какие-то дауны. До того отвратительно и некачественно они переведены. И я для себя решил не пользоваться неизвестными словарями. А использовать или не использовать их вам в своих переводах - решайте сами. Я не говорю, что там все словари туфтовые. Возможно, мне попались такие, и также возможно, что вам повезёт больше, чем мне.

 

Исключение составляют словари, разработанные компанией Microsoft, или созданные на основе словарей от Microsoft. Вот эти словари можно и даже нужно использовать в своих работах. Компания Microsoft постоянно тестирует, проверяет и улучшает свои переводы уже много лет. Эти словари доступны в двух вариантах:

Оригинальные словари компании Microsoft в формате *.csv - 8 МБ

Переделанные для PASSOLO в формате *.glo - 4 МБ

Прочее

 

В PASSOLO 4.0.004 имеется очень серьёзный глюк.  Ресурсы с формами Delphi и C++ Builder PASSOLO нормально отображает и редактирует, но при компиляции переведённого файла появляются различные ошибки, вплоть до невозможности запуска переведённой программы. Это из-за ошибок в дельфийских надстройках (плагинах). Но в моей сборке эти модули взяты с версии 4.0.006, а в них вышеуказанные ошибки исправлены.

Copyright (c) 2004 Sabbath Black L@B. Все права зарезервированы.

 

Hosted by uCoz