|
Рассказ об этой программе вызывает у меня смешанные чувства. Как бы это
правильнее выразиться? С одной стороны, я – автор программы, с другой – могу за
давностью времени смотреть на программу как обычный пользователь. Сие творение
есть украинское творение, поскольку родилось в недрах этой страны. Однако,
несмотря на то, что рождение датируется где-то 7 годами ранее настоящего
времени, программа по определенным причинам до сих пор оставалась зашторенной от
глаз общественности. Чтобы понять основную побудительную причину такого
молчания, нужно представить себе уровень развития локализационного (для перевода
с одного языка на другой) программного обеспечения того времени и сопоставить с
ним то, насколько опасным инструментов выглядела рассматриваемая программа. То
есть это был самый обыкновенный робот в понятиях 20 века. А понятия эти
подразумевали, что подобный механизм, будь он хоть трижды программным, будет
выполнять возложенную на него задачу до предсмертного вздоха, до последнего
электрона в проводах, не прося ни есть, ни пить, ни зарплаты, ни отпусков.
И все же несправедливо говорить, что все это время программа находилась за
семью печатями. Как оказалось, она колоссальное количество раз использовалась,
только пользователи, кому она по случаю досталась в юзание, проявили поистине
потрясающее благоразумие. Что ж, это делает честь программе, что никто из них не
захотел за все прошедшие года выдавать ее в общедоступное пользование. Ну да
ладно, не будем касаться мотивов их поступков - все это можно понять, поскольку
главной с их стороны, конечно, была совсем не забота оберегания компьютерного
мира от "чудодейственного" средства. Я же со своей стороны вообще удивлен, что и
на сегодняшний день программа даст фору многим схожим пакетам, хотя, по моим
строгим меркам, она явно устарела.
Кстати, раз уж швыряюсь словами типа "опасный инструмент" и "забота
оберегания", поэтому стоит сразу объяснить, в чем заключалась эта пресловутая
опасность. Движимый болезненно теплыми чувствами к роботам, я и программу
решился делать исключительно в духе программы-робота. Причем мои "теплые
чувства" относились только лишь к тому моменту в робототехнических системах, что
мне нравится их "духовная" надежность. То есть "духовности" нет как таковой, и
отсюда робот 20 века – это прекрасный рутинный работник, на которого можно
всецело положиться, чего не скажешь о человеке как работнике. То человеку что-то
не нравится, то он устал от работы и ему подавай "Ничего не делать и много
получать", то он пытается качать права, которые не заслужил из-за лентяйства или
бестолковости. В общем, давно известна прописная истина: найти хорошего
работника или партнера в команду очень трудно. И робот, безусловно, в этом
случае превосходный вариант, потому как не задает лишних вопросов и делает свое
дело буквально до потери пульса.
Подумать только, ну и что же здесь опасного, спросит удивленный читатель.
Программа-робот, способная переводить программное обеспечение, практически не
прибегая к помощи человека, да к тому же ведомая рукой своего владельца, будет
выполнять перевод, не спрашивая, а разрешено ли это переводить, для каких целей
это делается. В то время мощного переводческого софта не существовало (по
крайней мере, в общем доступе точно не было). Официальные переводы стоят
огромных денег, работает множество людей, да и сама работа выполняется не за
один день. И вот представьте, если работу всех этих людей может перечеркнуть
самый затрапезный юзер, просто щелкнув в роботе кнопочку "Перевод". Программа
отдаст честь (в смысле, козырнет) и пойдет выполнять работу. За каких-то 2-3
часа она в состоянии перевести программу объемом типа MS Office. Конечно, я
несколько загнул, говоря: "самый затрапезный юзер", ведь кое-что знать этому
юзеру все равно необходимо, но, один черт, это не идет ни в какое сравнение с
затратами официальной переводческой команды. В буквальном смысле, на дому (то
есть в домашних условиях) мистер Самоделкин может сделать перевод, не хуже
официального, причем времени и сил затратить на работу ему придется много
меньше.
Сегодня, смотрю, достаточно появилось в общем доступе локализационного софта,
возникло множество сайтов с неофициальными локализациями, так что критически
настроенным лицам нечего пенять: дескать, ты не оберегаешь работу официальных
команд. Оберегать уже нечего, а время летит – программа стареет. Но все-таки на
стареющем скелете "старушки" еще играют сушки мускул, еще не выпарилась былая
молодецкая силушка. Ладно, это я подбадриваю украинцев, что мы не совсем
законченная нация, и можем, если захотим. В конце концов, могут же украинцы
попользоваться тем, чем, как мне кажется, сделано подавляющее большинство
неофициальных (то есть рыночных) русскоязычных локализаций? Быть может, кто из
нынешних юзеров с помощью моей программы будет делать это лучше, а то последние
переводы ну совсем какие-то кривые пошли.
О программе
Теперь поближе к делу. Значится, робот роботом, но все же программа работает
из обычных текстовых баз, где прописаны англоязычные строки и их русские
переводы (кстати, программа предназначена для перевода только с английского на
русский). Без этих баз программа – фигня, способная только извлекать английские
строки и вставлять русский перевод назад. А если баз нет, то и перевод вставлять
назад не получится. То есть его нужно вручную будет прописать в базы, что весьма
и весьма противно делать, особенно если в английском ни бум-бум. В то время у
меня была задумка вставить внутрь элементарный переводчик текста, однако дело до
этого не дошло. И слава Богу, иначе мне пришлось бы еще лет X молчать о таком
комплексе.
Досконально описывать работу с программой не берусь. Это так давно было, что
я уже, честно говоря, позабывал многое. Конечно, вспомнить можно, но только
зачем это мне конкретно нужно? Мне кажется, программа проста в управлении, так
что разобраться без описания не составит огромного труда, особенно дотошному
пользователю. Поймите, что я делал программу из увлечения "получится или нет?",
как говорится, на энтузиазме, поэтому не стремился писать руководство или что-то
в этом духе. Лишь ради мизерной помощи на элементы окна программы я добавил
небольшие всплывающие подсказки.
Работает программа под линейкой Windows 9x, но конкретно перевод
осуществляется только в Windows NT. Было дело, решился перенести режим перевода
в Win9x да не захотел извращаться без веских на то причин. Еще что? Разрешение
экрана необходимо не менее 1024х768 пикселей, глубина цвета не играет роли.
Используемые базы: текстовые и так называемые RES-базы. Последние предназначены
в основном для качественного перевода диалогов. Основное предназначение
программы: перевод больших программных пакетов. Распознаваемые типы ресурсов:
много хороших и разных (все уже не помню), хотя за старостью возраста новые типы
ресурсов программа не возьмет. Впрочем, по мнению юзавших пользователей,
нормально переводит и новый софт. Некоторые последние Delphi-овые формы,
говорят, программа не видит или неверно переводит да еще несколько ресурсовых
новшеств не признает или запинается с их нормальным переводом, но так, в целом,
больше половины нового софта "кушает" якобы без проблем. Что-то мне с трудом
верится.
У программы хватает отличительных специфик, рассказ о которых непосвященному
мало о чем скажет, поэтому умолкаю о возможностях. Перейду-ка к вопросу, где и
что можно скачать. Начнем с того, что желающему поюзать программу-переводчик
никак не обойтись без самой программы, ее исполняемого файла. Качайте его отсюда (249,9 Кбайт). Прямо в этом архиве находится еще и
папка Public, где лежит небольшая текстовая база, демонстрирующая, как
именно вставляется в перевод менюшек или диалогов акселераторы. Акселераторами
называются горячие клавиши, с помощью которых открывается тот или иной раздел
меню, если нет желания двигать курсором мышки к самому меню. То же самое
касается и элементов диалогов: нет желания вести к ним мышку, топчите
клавишу-акселератор. В ресурсах меню или диалогов "акселерируемые" клавиши (их
буквы) выделяются знаками амперсанда. Дело в том, что программа при выдирании
англоязычных фраз удаляет акселераторы, чтобы они не мешались
человеку-переводчику, пополняющему базы. Но если тот захочет акселераторы
вставить в русский перевод, программа без сложностей втащит акселераторы в
ресурсы меню, диалогов или строк. Так вот менюшная база из каталога Public как
раз и показывает, что нет проблем и с акселераторами.
Следом за этим качайте текстовую базу для перевода меню. Брать отсюда (246,4 Кбайт). Далее качайте отсюда (1206,4 Кбайт) текстовую базу для перевода диалогов. В
завершение скачайте отсюда (490,5 Кбайт) худо-бедную текстовую базу для перевода
ресурсов типа "Строки". Кстати, все эти архивы запакованы третьим WinRar-ом, так
что в предыдущих версиях WinRar-а распаковываться не станут. И вот все эти файлы
распакуйте в одну папку и можете запускать оттуда файл Trd_Prog.exe. Если
вы запущены в Windows NT (Win2000 или следующее поколение), то выбирайте папку с
английской программой и кликайте кнопку "Перевод". Можете пойти погулять, пока
программа справится с работой. Вот примерно так придется управляться с
программой-переводчиком. В общем, как я уже говорил, дотошный пользователь
разберется. Если что не ясно, читайте всплывающие подсказки, для чего подводите
курсор мыши к непонятному элементу окна программы и через мгновение должна
появиться подсказка.
Замечу, порой в процессе написания какой-нибудь программы меня посещает
дурная педантичность доводить контроль над ошибками до абсурдного абсолюта. Я
просто не люблю слетающие на каждом шагу программы, поэтому, бывает, здорово
увлекаюсь тотальным предупреждением всевозможных аварийных ситуаций. Однако
помнится, вся педантичность иссякла к тому моменту, когда нужно было сделать
наблюдение за доступом к переводимым файлам. Если какой-то из них находится в
использовании или недоступен для записи (как пример, защищен от записи), то
программа может "тормознуть". Еще я люблю всякие разные быстроходные системы,
отчего тоже иногда посещает шиза закодить некую особенность программы уникальным
алгоритмом собственной разработки, реализовав все в ассемблерном коде. Вот и в
переводчике часть алгоритмов переводческой работы с ресурсами, а тем более с
текстовыми и RES-базами, написана непременно на ассемблере. Но обработка
определенных типов ресурсов была добавлена значительно позже в качестве
оздоровления "старческого маразма" программулины, причем некоторые обновления
выполнялись на скорую руку, так что вы сами сможете заметить, что с одними
ресурсами программа справляется прямо "на лету", а с другими – весьма
неторопливо. Думаю, простите "старушке" такие мансы.
К минусам, пожалуй, отнесу и то, что в информационном окне отражается не
полная информация о переводе ресурсов. То есть "оздоровительные вливания" в
программу выполнялись на уровне перевода новых типов ресурсов, но иногда руки не
доходили добавить в информационное окно сведения о дополнениях. Перевод делает
"на ура", да вот инфу о количестве обработанных ресурсов дает усеченную. Хотя
это не так существенно, лишь бы переводила нормально.
О скачиваемых базах
Теперь несколько слов о тех базах, на которые были указаны ссылки для
выкачки. Вообще, по нынешним меркам, это очень малюпусенькие базы, так что не
раскатывайте особо губу. Я накарябал их из разных источников: где юзавшие
пользователи поделились ненужными им кусочками своих баз, где я дополнил базы
при помощи режима теста для самообучения переводчика, то есть в этом случае
набрал на рынке русифицированных дисков и обучил переводчик прямо с чужих
переводов. Жаль, этот режим не роботизировал полностью (ух, получилась бы
классная штука), а то дюже сложновато работать между двумя разными программными
модулями. По большому счету мне глубоко "по барабану" все дописанные и
недописанные возможности программы, так как мое юзание как разработчика все ж
сводилось к "протестировал - вроде работает, и забросил на полку". И только
амбициозная часть души понимает, какая бы вышла Чуча, доведи я зарезервированные
нюансы до совершенства. Однако энтузиазм, как известно, штука не бездонная и он
когда-нибудь исчезает.
Так вот вернусь к базам. Хоть они и собраны из "помойных отбросов", но даже в
таком виде (так здесь еще отсутствуют RES-базы) оцените перспективу. Вот список
пакетов, с которыми программа-переводчик при такой "помойной" базе может
управиться (согласен, перевод получится не лучшим, но и не хуже современных
рыночных переводов):
3D Studio MAX
3D Studio MAX 4
3D Studio MAX 5
ACDSee32 v.2.4
Adobe Acrobat 5.0
Adobe After Effects 5.0
Adobe After Effects 5.5
Adobe Illustrator 9.0
Adobe PageMaker 7.0
Adobe Photoshop 6.0
Adobe Photoshop Elements
Adobe Premiere 6
Adobe Type Manager Deluxe
AlcaTech BPM Studio 4.6 Profi
AllPlan 17
AllPlan FT 17
Animation Master 2000
Animation Master 2002
Animation Master 99
ArchiCAD 6.5 R2
ArchiCAD 7.0
ArchiCAD 8.0
Aucotec ELCAD 7.0
AutoCAD 2000i
AutoCAD 2002
AutoCAD Mechanical 6.0
Autodesk Architectural Desktop 3.0
Autodesk Architectural Desktop 3.3
Autodesk CAD Overlay 2002
Autodesk Mechanical Desktop 6.0
Borland Delphi 6.0
Borland Delphi 7.0
Cakewalk Club Tracks 2.0
Cakewalk Music Creator 2002
Cakewalk Pro Audio 9
Cakewalk Pyro 1.0
Cakewalk Sonar XL 1.0
Canon Photo Advanced
Cinema 4D Studio 8.0
Corel Print House 2000
Corel Ventura 10
CorelDRAW 10
CorelDRAW 10 + SP1 + SP2
CorelDRAW 11
DesignPro 2000
eJay 360 Xtreme Sound Trax
eJay Dance 4
eJay House
eJay Music Clearing Studio
eJay Street Style
eJay Studio
EyeMatic FaceStation 2
Future Beat 3D
Graphisoft ArchiCAD 7.0
Macromedia Director 8.5
Macromedia Flash 5
Macromedia UltraDev 4 Studio
Mathcad 2001
Mathcad 2001i
MathLab 6.0
MetaStock 8.0
Microsoft FoxPro 7.0
Microsoft Office XP
Microsoft Visio 2000
Microsoft Visio 2002
Microsoft Visio 2002 SR1
Microsoft Word Viewer 97
Mixman DJ MegaMix
MODplug Tracker
MS AutoRoute 2003
Multigen Creator 2.4
Native Instruments Pro-52
OrCad 2002
OrCad 9.2
Paint Shop Pro 6
PartitionMagic 6.0
P-CAD 2001
PhotoModeler 4.0
Pinnacle Studio 7
Propellerheads Reason 2.0
QuarkXPress 4.0 Passport
Roxio Easy CD Creator 5.0
Roxio Easy CD Creator XP
Sierra Print Artist 15
Sonic Foundry Acid 2
Sonic Foundry Acid 3
Sonic Foundry SoundForge 4.5
Sonic Foundry Vegas Video 2.0
Sony SoundForge 7.0
SPSS 10.0.5
SPSS 11
Statistica 6
Steinberg GigaStudio 1.6
Symantec WinFax Pro 10
Ulead COOL 3D 3.0
Ulead COOL 3D 3.5
Ulead DVD PictureShow 2
Ulead GIF Animator 4.0
Ulead GIF Animator 5.0
Ulead MediaStudio 5.0 Pro
Ulead MediaStudio Pro 6.0
Ulead MediaStudio Pro 6.5
Ulead Photo Explorer 6.0
Ulead Photo Express 4.0
Ulead PhotoImpact 5.0
Ulead PhotoImpact 7.0
Ulead SmartSaver Pro 3.0
Ulead VideoStudio 7
Xara WebStyle 2 |
Тут что ни пакет, то здоровая программа. Кстати, я внутри баз побил все на
секции (разделил надписями [SECTION]), поскольку сваливал накарябанные
кусочки в одну кучу, то есть базу. Справа у некоторых секций добавил надпись
(checked), чтобы выделить те, которым, по моему мнению, можно хоть как-то
доверять. Это мое субъективное мнение и оно не претендует на истинность,
поскольку свои познания в английском оцениваю слабой троечкой (по советской
пятибалльной системе). Иными словами, мне кажется, что перевод там похож на
нормальный, но так ли это на самом деле, я не дам никаких гарантий.
База строк оказалось худенькой, поскольку подаренных кусочков оказалось мало,
а обучать с чужих переводов – меня на долго не хватило (да и нудно это: сидишь,
как болван, устанавливаешь один за другим русифицированные пакеты, которые тебе
и нафиг не нужны). Этим хочу сказать, что я вам склеил небольшую
демонстрационную базу строк, а если вам очень нужно, дополняйте ее сами, ибо мне
это вообще нужно не более чем зайцу стоп-сигнал.
Еще пара слов просто на заметку. По моим сведениям, одна из малозначительных
баз занимает порядка 100 с лишним мегабайт. А есть у юзавших пользователей базы
с несколькими сотнями мегабайт. Вы представляете, если все эти базы объединить
вместе, во что превратится работа по локализации программного обеспечения.
Такому комплексу будет безразлично, что, где и как переводить. Как поется в
песне: "Нажми на кнопку и получишь результат". А теперь перенеситесь мысленно
лет на семь назад, когда программные пакеты были не такими здоровенными, и вы
поймете, каких "бед" мог натворить весь этот комплекс. Действительно, все
сильнее научно-технический прогресс откусывает у человечества возможность быть
приоритетным звеном в выполняемой на Земле работе. Как пример, японцы недавно
сотворили чудный пакет, который умеет петь за человека. Пусть он на первых
порах использует свои базы (пополняемые человеком), так называемые ВойсФонты
(Voice Font). Пройдет время и не известно, как перевернут мир певцов такие
программные разработки. Точно так и в переводческой программе: кто знает, сможет
ли человек в будущем козырять своим безупречным знанием перевода программ или
будет сиротливо помалкивать, завистливо поглядывая в сторону программных
переводческих комплексов?
Заметки переводчикам
В режиме тестирования перевода программа-переводчик проверяет желаемую к
переводу программу на возможность ее перевода и одновременно складывает
непереведенные фразы в специальные тестовые файлы. Внутри папки тестируемой
программы создается папка !Testing.dat и в ней располагаются все такие
файлы. Для фраз из ресурсов меню предусмотрен тестовый файл !_menus.txt.
Этот файл содержит в себе список всех непереведенных элементов меню, относящихся
к тестируемой программе. Ввиду того, что меню являются самой основной визуальной
составляющей программы, этот файл необходимо переводить в первую очередь. То
есть человек-переводчик допереводит недостающие фразы и добавляет содержимое
этого файла в менюшную базу. Ниже приведен пример исходного файла
!_menus.txt, будто бы полученного после тестирования некоей
программы.
PU_Edit
!2
MI_Cut
!2
MI_Copy
!1
PU_File
!1
MI_New
!3
MI_Open
!3
MI_Recover
!1
MI_Save As
!4
И так далее по порядку:
английская строка
количество ее повторений
английская строка
количество ее повторений
.... |
Как вы можете видеть, за каждой английской строкой следует строка,
начинающаяся с восклицательного знака плюс какое-нибудь число. Число может
лежать в диапазоне от 1 и выше. Этим числом обозначается важность
соответствующей фразы для перевода. Представим, что в некоей программе есть 100
разных меню. Допустим, строка Open File встретилась в 8-ми из этих меню,
строка Save As - в 5-ти из них, а строка
Recover - только в одном
меню. Соответственно, важность строки Open File гораздо выше важности
строки Recover. Фактически, число после восклицательного знака указывает
количество раз, которые данная строка встретилась во всех меню программы. От
переводчика требуется заменить строки с восклицательным знаком плюс число (это
четные строки файла) на русский перевод английских строк.
Есть две идеи перевода элементов меню. Переводчик выбирает любую из них на
свое усмотрение. Первая идея заключается в том, что названия элементов меню
переводятся как команды, отдаваемые пользователем программе при выборе
соответствующего элемента меню. Таким образом, строка Open File будет
переведена как Открыть файл, строка
Save As - как
Сохранить
как, а строка Recover - как
Восстановить. В данном случае
используется вопрос Что сделать?.
Вторая идея подразумевает описательный характер выполняемого события, то есть
глаголы используются в форме отглагольных существительных. Программа как бы
описывает в названии элемента меню действие, которое будет выполнено при выборе
этого элемента. Тут используется вопрос Что это?. А это значит, что
строка Open File будет переведена как
Открытие файла, строка
Save As - как Сохранение как, а строка
Recover - как
Восстановление.
Вот небольшой пример перевода строк этого файла, как будто бы переведенного
по второй идее.
PU_Edit
Редактирование
MI_Cut
Вырезание
MI_Copy
Копирование
PU_File
Файл
MI_New
Новый
MI_Open
Открытие
MI_Recover
Восстановление
MI_Save As
Сохранение как |
Обратите внимание! В файле со строками элементов меню английская
строка всегда начинается с 3-буквенного префикса, который обозначает
следующее:
PU_ = эта строка является наименованием
выпадающего меню (PU_ это сокращение
от слова Popup)
MI_ = эта строка является текстом
элемента меню (MI_ это сокращение
от словосочетания Menu Item) |
Русский перевод английской фразы вводится без префикса. Никаких
ведущих или замыкающих пробелов в русский перевод вводить не нужно. Поскольку
файл состоит из набора парных строк (английская строка и строка с ее русским
переводом), переводчику нельзя нарушать порядок строк внутри пары. Он
может перемещать любую пару по своему усмотрению вверх или вниз по файлу, но
только обязательно пару строк (английскую и русскую). Не допускается никаких
пустых строк между парами строк. Также нельзя вводить пустую строку в качестве
русского перевода. Английская строка не должна подвергаться каким-либо
изменениям.
Если переводчик уверен, что какая-то английская строка вообще не подлежит
переводу (то есть вдруг это некая аббревиатура, или название какой-либо
системной переменной, или набор каких-то чисел или тому подобное), то в русском
переводе он должен ввести только один символ "-" (клавиша Минус), который будет
обозначать, что данная английская строка вообще не подлежит переводу.
В английских строках могут находиться некоторые комбинации символов (в меню
это очень редкое явление, а вот в диалогах и строках ресурсов типа "Строки"
могут попадаться), которые нельзя изменять и они обозначают следующее:
\b - символ звонка (код 8)
\t - символ табуляции (код 9)
\n - символ перевода строки (код 10)
\f - символ перевода формата (код 12)
\r - символ возврата каретки (код 13)
\0, \1, \2, \3, \4, \5, \6, \a, \v – разные
системные
символы
\\ - пара этих символов обозначает
один символ \ (слэш)
&& - пара этих символов обозначает
один символ & (амперсанд)
%% - пара этих символов обозначает
один символ % (процент)
%s - обозначает, что программа в это
место подставит какой-то текст
%c - обозначает, что программа в это
место подставит какой-то символ
%d - обозначает, что программа в это
место подставит какое-то число
%ld - то же самое
%lu - то же самое
%x - то же самое
%f - то же самое (вообще между процентом
и буквой может стоять какое-нибудь
число и такие комбинации тоже не должны
изменяться - например, %3d, %.3f, %3x
и тому подобное) |
Для фраз из ресурсов диалогов предусмотрен тестовый файл
!_dialogs.txt. Этот файл содержит в себе список всех непереведенных
элементов диалогов, относящихся к тестируемой программе. В принципе, файл похож
на тестовый файл меню, точно так же переводится и точно так же английские строки
этого файла начинаются с 3-буквенного префикса, только сами префиксы обозначает
следующее:
TL_ = эта строка является заголовком
диалога (TL_ это сокращение
от слова Title)
PB_ = это строка текста кнопки
(PB_ это сокращение от
словосочетания Push Button)
GB_ = это строка текста контейнера
(GB_ это сокращение от
словосочетания Group Box)
CB_ = это строка текста проверочного
поля (флажка) (CB_ это сокращение
от словосочетания Check Box)
RB_ = это строка текста радио-кнопки
(RB_ это сокращение от
словосочетания Radio Button)
LB_ = это строка текста сообщения
(LB_ это сокращение от слова Label)
3S_ = эту строку воспринимать как строку
текста сообщения (3S_ это сокращение
от словосочетания 3D State Object)
CU_ = эту строку воспринимать как строку
текста сообщения (CU_ это сокращение
от словосочетания Custom Object)
UN_ = эту строку воспринимать как строку
текста сообщения (UN_ это сокращение
от словосочетания Undefined Name)
ON_ = эту строку воспринимать как строку
текста сообщения (ON_ это сокращение
от словосочетания Other Name) |
Лишний раз напомню, что для тестового файла диалогов применяются те же
правила перевода, что и для тестового файла меню. Разница между ними заключается
лишь в разных префиксах для каждого конкретного элемента меню и диалогов.
Для фраз из ресурсов "Строки" предусмотрены сразу 3 тестовых файла:
!_strings_for_interface.txt, !_strings_singleword.txt и !_strings.txt. Эти
файлы содержат в себе список всех непереведенных строк, относящихся к
тестируемой программе. В первый файл заносятся строки, которые с большой
вероятностью относятся к интерфейсной части программы, то есть обязательно
появятся в каком-то месте на экране переводимой программы. Во второй файл
заносятся строки из одного слова. В третий файл заносятся все остальные строки.
В отличие от файла меню и файла диалогов в файле строк не используется
3-буквенный префикс. То есть каждая английская строка в этом файле выглядит так,
как она была обнаружена. С точки зрения качественного перевода (чтобы перевести
элементы меню и диалогов истинными наименованиями), предпочтительнее начинать
перевод с файла строк, а не с файла меню или диалогов, поскольку в файле строк
находится достаточно различных фраз с расширенным описанием особенностей
переводимой программы. Начиная с меню или диалогов, можно натолкнуться на
какую-нибудь короткую фразу (а они там чаще всего короткие), смысл которой сразу
неизвестен. Только потом, переводя файл строк, вдруг становится ясным назначение
этой фразы. Но тогда приходится исправлять неверный перевод этой фразы в файле
меню или диалогов.
Есть некоторые особенности, позволяющие человеку-переводчику быстро отыскать
в файле строк те строки, которые в первую очередь отвечают за интерфейсную
(видимую на экране) часть программы. По большому счету все эти строки находятся
в файле !_strings_for_interface.txt, но будет полезным лишний раз
напомнить переводчику некоторые особенности, чтобы он разбирался в нюансах
перевода.
1. Строки, завершающиеся тремя точками (например, Save File...), либо
используются в названиях различных элементов меню, либо в сообщениях типа этого:
"Searching in progress, please wait...". Эти строки точно когда-нибудь появятся
на экране переводимой программы.
2. Строки, содержащие комбинацию символов \t (так обозначается код
табуляции) используются в названиях элементов меню, в которых табуляцией
отделяется название элемента меню от комбинации клавиш, нажатием которых это
меню вызывается (например, Copy To Clipboard\tCtrl+C). Также
строки с комбинацией \t используются для сообщений, где табуляцией
разделяются какие-то значения: Available memory:\t64 Mbyte.
3. В категорию интерфейсных попадают строки, в которых имеются слова
Please, или что-то типа Do you want, или вопросительный знак. То
есть строки, где явно идет обращение к пользователю или у него что-либо
спрашивается, точно появляются на экране в виде какого-нибудь сообщения.
4. Так уж повелось, но разработчики программного обеспечения следуют
следующему правилу при наборе интерфейсных строк (это применимо к строкам типа
названий элементов меню и диалогов, выпадающих строк с названиями инструментов):
"ВСЕ СЛОВА в таких строках начинаются с первой заглавной буквы. С маленькой
буквы (не всегда) могут начинаться только артикли, союзы и предлоги типа
to, by, in, on и тому подобные". Вот примеры таких
строк: Save Project, Detach Selected Vertex, Clear Values in Global Table, Save
As Template.
5. Строки с двоеточием в конце строки, скорее всего, используются как
названия, появляющиеся слева или сверху от какого-то элемента диалога. Например,
Select Transparency:.
6. Часто (но не всеми разработчиками программ) используются строки типа
следующего формата: Copy selected region to clipboard.\nCopy To
Clipboard. В таких строках всегда есть только одна комбинация символов
\n (так обозначается перевод строки), разделяющая всю строку на две
части. Правая часть строки выполнена по правилу "Все слова начинаются с первой
заглавной буквы" (смотрите выше пункт 4). Эта часть является текстом выпадающей
подсказки, появляющейся, когда пользователь навел курсор мыши на соответствующий
инструмент на панели инструментов. Левая часть является текстом строки,
описывающей, что конкретно делает инструмент, на который навели курсор мыши. Как
правило, текст левой части завершается точкой. Если текст правой части выпадает
в виде подсказки рядом с выбранным инструментом, то текст левой части появляется
в строке состояния программы.
А вообще под "интерфейсную" категорию должны попадать еще и строки с
комбинациями \r или \r\n, поскольку так помечаются коды возврата
каретки и перевода строки, а значит, содержащий эти символьные
последовательности текст, видимо, предназначен для экрана.
Хватит, перестаю надоедать вам своими комментариями. Так можно рассказывать
тонкости работы программы-переводчика до бесконечности. На целую книгу хватит.
Надеюсь только, из моего скудного повествования вам удалось извлечь хоть чуток
полезной информации. Если так, рад за вас и желаю удачи и работы с хорошими
русифицированными пакетами.
Дмитрий Сахань, 12 декабря 2003 года
|