До чего же неудобное слово “программа”. То ли речь идет о большом проекте, состоящем из серии мероприятий, то ли о расписании концерта или спектакля, то ли, наконец, о представленном в компьютерных кодах алгоритме для решения каких-то задач. Но я не буду разъяснять смысл заголовка этих заметок, надеюсь, что те, кто дочитает до конца, сами разберутся.
В последнее время я с нежностью вспоминаю времена “романтического” компьютерного пиратства, когда программисты, движимые исключительно желанием облегчить жизнь другим обитателям компьютерной вселенной, занимались русификацией популярных программ на кустарном уровне: попросту “залезали” с помощью какого-нибудь редактора в исполняемый модуль и заменяли английские выражения на соответствующие (по их мнению) русские. Основная трудность при этом состояла в том, чтобы оставить длину символьной последовательности неизменной. Одна из отличительных особенностей русского языка в современной технической литературе состоит в том, что практически в любом тексте используются параллельно два алфавита - кириллица и латинский. Поначалу альтернативная кодировка представлялась вполне удовлетворительным решением возникающих проблем, до тех пор пока не возникла пресловутая “проблема буквы эр”. Некоторые программы при выводе русских текстов начинали аристократично грассировать, строчная буква “р” в них попросту исчезала. Возникло даже негласное соревнование хакеров: какое минимальное число байтов следует поправить в редакторе ne (из пакета Norton Utilities), чтобы устранить досадный дефект речи. Известный мне рекорд - всего три байта. А “работу” некоторых халтурщиков, которые составляли клавиатурные драйверы и, не задумываясь о последствиях, заменяли неудобную букву на латинскую аналогичного начертания, я до сих пор вспоминаю с раздражением. В результате таких действий программы проверки орфографии начинали спотыкаться на каждом слове с буквой “р”. А версии программы MS Word вплоть до 5.0 вообще оказалось невозможно русифицировать, не вникая в ее построение: команды, имеющие дело со словами (“выделить слово”, “переместить курсор на следующее слово” и т. д.), применительно к русским словам вели себя произвольным образом, так как альтернативные коды русских букв “о” и “п” были использованы в этой программе в качестве операторных скобок в макрокомандах. Эти строки я ввожу именно с помощью MS Word 5.0, ибо не вижу надобности заново привыкать к другому стилю работы, а программа, в общем, делает все, что мне нужно. Тем не менее должен сказать, что эта версия - прекрасный пример того, как ни в коем случае не следует составлять программы. Например, распределение операций по функциональным клавишам отражает лишь последовательность, с которой разные идеи приходят в голову авторам программы, никакой другой системы в этом усмотреть невозможно.
Но хватит о грустном. Теперь с повсеместным внедрением более совершенных, нежели DOS, операционных систем проблема шрифтов решена или почти решена, а “локализацией” программ занимаются профессионалы при посильном участии и под надзором авторов. Слово “локализация” я ставлю в кавычки не только потому, что оно мне кажется неточным (о причинах я уже когда-то писал). До сих пор считается, что достаточно перевести на русский язык внутренний программный диалог, а затем документацию и справочные файлы, - и дело сделано. В результате очень скоро на прилавках появляются популярные и не слишком книги, по сути дела подменяющие собой фирменную документацию. А ведь и образование, и ассоциации, и стиль работы наших пользователей сильно отличаются от подходов американских коллег. Считаю необходимым повторить: документацию к программным пакетам для российского рынка следует составлять заново, используя американский оригинал только в качестве справочника.
У большинства русифицированных программ есть и еще один недостаток. Широко распространено мнение, что переведенные на русский язык программы работают менее устойчиво, чем их англоязычные версии. И это мнение не лишено оснований. Легко представить себе ситуацию, когда какой-то программист в последний момент спохватился и исправил некоторую ошибку уже после того, как исходные тексты для перетрансляции были отправлены в нашу страну. Это вполне возможно еще и в связи с тем, что канцелярскими делами типа подготовки посылок занимаются одни, а отладкой программ - совсем другие люди.
Выход, разумеется, есть. Современные персональные компьютеры оснащены достаточной оперативной и дисковой памятью, чтобы можно было хранить все тексты - и диалоговые, и справочные - в особых файлах и “подгружать” их в момент запуска программы. Более того, мне известны системы, в которых реализован именно такой подход. Кстати говоря, в результате фирма - создатель программы получает возможность свести к минимуму число людей, допущенных до святая святых - исходных текстов.
Пользовательский интерфейс программ разрабатывается в первую очередь (по крайней мере, так должно быть), поэтому уж тексты диалогов и заглавных надписей программ можно было бы передать соответствующей команде для перевода на другие языки задолго до завершения отладки. И при этом будет полная гарантия того, что исполняемые коды в национальных версиях программ в точности совпадут с “родными”.
Почему же так почти никто не поступает? (Мне известно всего одно исключение.) Скорее всего оттого, что на начальных этапах разработки попросту забывают, что программа будет продаваться не только в странах, где говорят на том же языке, на котором впервые сказали “мама” авторы программы. А между тем руководители фирм, поступающих подобным образом, стимулируют... компьютерное пиратство! В самом деле, англоязычная версия какого-то пакета уже появилась, но в других странах покупать ее не торопятся - подождем, мол, появления версии на нашем языке. А специалисты-хакеры тем временем принимаются осваивать ворованную английскую, чтобы потом консультировать своих менее грамотных (и в программировании, и в языкознании) коллег. Постепенно к английским выражениям нового пакета все привыкают, и вот результат - когда появляется адаптированная версия, объемы продаж оказываются отнюдь не так велики, как могли бы быть.
Хотел бы я дожить до времен, когда известие о том, что выход русифицированной версии какого-либо пакета состоится через неделю после его официального выпуска на других языках, вызовет взрыв всеобщего негодования.
Рубен Герр