Меню сайта
Друзья сайта
Статьи
О жизни одного робота-переводчика.

Эта программа предназначалась для конвейерного перевода софта. Почти все "левые" переводы, особенно если вопрос касался перевода громадных программных продуктов, делались скорее всего ею. Уже по содержимому примитивных баз можно судить о том, какие вещи переводились. Можно лишь гадать, каков полный список ее применений. Хотя более 5 лет программа не обновлялась, до сих пор остается в силе. Не говоря уж о дальних годах, когда у нее просто не было конкурентов. Ну и понятно, что выходящее за рамки обычного редко просачивается внутрь рамок, пока время и технологии не разрушат причины необычности. Короче, если бы у вас появился прямо сейчас какой-нибудь Офис 2020 с функциями диктовки, самостоятельной верстки, генерации текстов и прочих "вкусностей", вы стали бы распространяться о нем? Наверное, нет, ибо держали бы в руках недоступные другим возможности. Так же поступали в свое время и переводческие команды: купы сознательных граждан сознание со знанием дела сознательно спит.

Быть может, где-нибудь в сети проходят сходки поклонников, может в каких-то местах и размениваются "котомками". Я этого не знаю и не интересовался. По-моему, найти их сомнительно, поскольку и сегодня ценность программы еще не докатилась до нуля. Ведь подумайте, некоторый совокупный объем собранных "котомок" позволил бы вам ни с кем больше не знаться и самостоятельно переводить почти любой софт. А если каждый такое сможет? А если в программе доделать режим самообучения с чужих переводов? Издатели и производители запищали бы от наплыва всевозможных переводов.

Вот мы и подкатились к ответу на вопрос "Стоит ли доделывать программу?" К слову сказать, она в принципе доведена до ума в смысле возможности просто переводить софт. Режим самообучения как таковой не предполагался изначально быть в ней. Этот режим реализовывался внешним модулем. На последних порах часть функций такого модуля была введена в программу под галочкой "тест для самообучения переводчика". Но к тому моменту в общем востребованность подобного новшества оказалась не очевидной. Переводческие команды своими руками наработали внушительные базы, к тому же специализировались они нередко на определенном софте, который никто к тому моменту официально не переводил, следовательно, обучать было не с чего. Обучение с чужих левых переводов вело к риску задарма пополнить свою базу возможно неверными переводами фраз. Тотальная перепроверка чужих фраз была не лучше, чем перевести все своими силами.

Теперь вкратце расскажу о том, как команды переводчиков выполняли процесс перевода. У каждой команды, естественно, были свои тонкости в подходе, поэтому рассмотрим общий план действий.

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

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

 

Лучшие из команд поступали так. На режим теста включали галочки "нужен контроль перевода ...", чтобы в тестовые базы попадали и переведенные фразы. Иногда для ресурсов "Строки" включали галочку "особое внимание системным строкам", чтобы в тестовые базы не попадали системные строки, перевод которых чреват слетанием переведенной программы. Например, невинный текст "Templates" может оказаться и именем папки, и названием настройки, и чем угодно. Если это текст системный, то его перевод "Шаблоны" заставит переведенную программу искать папку с русифицированным именем или настройку с таким именем. Это простой пример, а системные строки разнообразны и бывают (правда, редко) такими, что их легко спутать с обычным текстом. Поэтому последняя опция не всегда помогает однозначно. К тому же при этой опции некоторые не системные строки оказываются исключенными. Например, тот же текст "Templates" может случиться и текстом, выводимым где-то на экране. Короче говоря, решающее значение при выставлении галочек имеет опыт и понимание хотя бы некоторых основ переводимой программы, а еще лучше хорошее ее знание на уровне пользователя. Последнее позволяет переводить отдельную фразу и тут же понимать, где (в каком диалоге, менюшке, сообщении) она может выскочить на экране.

Итак, папку со вторым дублем выбрали (то есть вошли в нее) в программе-переводчике, нажали кнопку "Английская версия". Если хотим использовать для переводимой программы какие-то другие базы, а не базы из предопределенной папки (из той папки, откуда была запущена программа-переводчик), то входим в необходимую папку с базами и жмем кнопку "Базы". Затем выставили нужные галочки настроек перевода, нажимаем кнопку "Тест".

Как только программа-переводчик отколбасила тест, в папке переводимой программы появилась папка !Testing.dat, в ней лежат тестовые базы - обычные текстовые файлы с выдернутыми из переводимой программы фразами. Если мы настройками разрешили перевод ресурсов "Меню" и в программе найдены такие ресурсы заданного языка (по умолчанию, английского и нейтрального - их коды 1033 и 0 соответственно), то здесь будет лежать файл !_menus.txt. В нем находятся фразы, что относятся к менюшкам переводимой программы. Сразу замечу, что у некоторых программ определенные фразы элементов меню расположены еще и в ресурсах "Строки", особенно у тех программ, что генерируют меню в зависимости от условий эксплуатации. Если мы разрешили перевод ресурсов "Диалоги", фразы их элементов находятся в файле !_dialogs.txt. И так далее. Как видно, имена создаваемых файлов (и папок) начинаются с восклицательного знака, чтобы при алфавитной сортировке списка файлов они оказались наверху и легче находились.

Теперь человек-переводчик берет эти файлы, открывает в любом удобном редакторе и, строка за строкой, переводит перечисленные фразы. В файлах находятся: строка с английской фразой, следующая строка должна содержать перевод этой фразы на русский язык, и так далее по строкам. Если мы устанавливали в настройках перевода галочки "нужен контроль перевода ..." и к некоторым фразам действительно имеется перевод в базах, то в созданных файлах мы заметим, что в таких строках уже подставлен перевод. Человек-переводчик просто проверяет такую строку и переходит к следующей. В конце концов все тестовые базы будут переведены вручную. Это самый неавтоматизированный момент. Зато все следующие версии переводимой программы переводятся махом, практически не требуя вмешательства переводчика, разве что если в новой версии добавилось десятка два новых элементов меню, диалогов и строк, которые требуется доперевести.

Ну вот, перевели и тестовые базы. Если в них остались какие-то строки, которые уже неохота переводить, откидываем эти строки. Остались все переведенные пары строк: английская, русская. Помечаем их и копируем через буфер обмена, вставляя в базы программы-переводчика. Из файла !_menus.txt строки копируем в базу !mnu_lib.txt, из файла !_dialogs.txt строки копируем в базу !dlg_lib.txt, из остальных файлов !_strings_... строки копируем в базу !str_lib.txt. Причем вставляем скопированные строки всегда наверх базы, то есть предыдущие строки в базах сдвигаются вниз.

Теперь снова запускаем программу-переводчик, выбираем путь к базам (если они в другой папке), выбираем путь ко второму дублю программы, ставим необходимые настройки перевода и жмем кнопку "Перевод" (это работает только в Windows NT/XP). После перевода в папке переводимой программы появится папка !Update.dat, в ней находятся файлы переводимой программы, которые были изменены. Копируем эти файлы прямо в папку реальной установленной программы (откуда делали дубли). Проверяем работу запуском бывшей английской версии. В случае каких-либо проблем у нас есть первый дубль, чисто английский, из него мы можем восстановить копированием измененные файлы.

Мои объяснения, видимо, путаны, но принцип в общих чертах таков. Сложно ничего нет, надо просто приловчиться, так как переводческие команды делали это на ура. У них, правда, были еще свои утилитки для вычищения недопереведенных (тех, что уже неохота доделывать) строк из тестовых баз, утилитки вставки переведенных строк в базы программы-переводчика (они не через буфер обмена копировали). В общем, все те мелочи, которых недостает программе для полного комфорта.

Автор - Дмитрий Сахань, 17 марта 2005 года

МЕНЮ ПОЛЬЗОВАТЕЛЯ
На форуме
Статистика