Мультиязычность программ

Игорь Шенин

МУЛЬТИЯЗЫЧНОСТЬ ПРОГРАММ


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

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

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

Увы, каждое такое приложение имеет собственный словарь, и получается, что на компьютере их довольно-таки много и, мало того, они не совпадают друг с другом. Было бы гораздо удобнее, если бы существовали единые для всех программ словари (англо-русский — russian.lng, англо-китайский — chinese.lng, англо-арабский — arabic.lng…), и они бы размещались в условленном месте на системном диске.

Однако слов и фраз, которые могут понадобиться различным приложениям, десятки или даже сотни тысяч. Что, их все пихать в один словарный файл? Но ведь каждой отдельной программе столько не нужно. Поэтому было бы лучше разбить это огромное текстовое поле на несколько (десятки, сотни) разделов: компьютер, медицина, радио, архитектура, экономика, физика, математика и так далее (russian.lng, russian-medical.lng, russian-radio.lng, chinese.lng, chinese-medical.lng; chinese-radio.lng…).

Обязательно ли все эти тысячи (число разделов, умноженное на количество языков) текстовых файлов иметь на компьютере? Нет. Если человек использует в работе только свой родной язык, то списки с другими не нужны (но можно их в любой момент подгрузить). Если же человек интересуется какими-то темами, то скачивает себе соответствующие словарные файлы, которые необходимы используемым программам. Мало того, сами эти программы при установке могут проверять наличие нужных им файлов и при ненахождении последних скачать их из Интернета.

Тут, правда, существует проблема разных кодировок, которые операционные системы применяют для языков, основанных не на латинице. Например, для русских букв используется CP866, KOI-8R, ISO-8859-5, ANSI-1251 (CP1251, Windows-1251), MacCyrillic, UTF-8. Что же, создавать разные словари? Не обязательно. Ведь в последнее время всё большую популярность завоёвывает универсальная кодировка UTF-8, поэтому желательно оставить одну её, что и устранит проблему.

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

Если же вдруг в стандартных словарях не найдётся нужных фраз, то программисты всегда могут создать дополнительный текстовые файлы (russian-private.lng, chinese-private.lng, italian-private.lng и т. д.), которые, в отличие от остальных, необходимо располагать только в папке с программой.

Тут, правда, имеется парочка нюансов. Первый связан с оформлением кнопок программ. Для нормального отображения надписей на любом выбранном языке, размеры кнопок в обязательном порядке должны позволять вписывать в них восемь — десять букв (три-четыре иероглифа). Более длинные слова придётся автоматически обрезать по длине. В этом случае, к примеру, слово «Конфигурация» в кнопке станет обозначено как «Конфигур» — никто ни с чем не спутает.

Второй нюанс касается клавиш быстрого вызова пунктов меню. Здесь, увы, придётся отказаться от выделенных букв в названиях. Однако для таких случаев можно в кнопках и меню размещать не только названия, но и клавиши вызова. Например, «F1_Справка», «G_Графика»…

Будет совсем хорошо, если такая мультиязычная поддержка станет выполняться на уровне операционных систем (ОС), что окажется сподручней и для самих создателей ОС, так как упростит им написание локализованных версий. Тогда новым программам, хочешь или нет, придётся пользоваться готовой мультиязычностью, а старые постепенно уйдут.

С чего можно начать реализацию предлагаемого проекта? Понятно, что с написания словарных файлов. Но, во избежание ошибок, в их создании должен участвовать коллектив авторов — одна голова хорошо, а сто лучше. Само же наличие таких файлов позволит программистам не ломать голову над поддержкой мультиязычности разрабатываемых приложений— ведь уже будет готовое решение. После появления словарей количество сторонников этого метода станет увеличиваться, и его применение, в конце концов, сделается правилом хорошего тона для программистов…

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


Шенин Игорь Александрович
25 марта 2007
(последняя редакция 8 октября 2026)

PS:
Разрешается свободное распространение.


Рецензии
Идея не очень понятная, но интересная. Только вот переводчиков жалко. Учились, учились, а тут бац - и без работы.

Сергей Курфюрстов   04.09.2016 21:48   •   Заявить о нарушении
Ну, переводчикам всегда найдётся работа. Не надо будет переводить интерфейс программ, но справочники по программам никто не отменял. Плюс переводы в иной, некомпьютерной, сфере.

Игорь Шенин   05.09.2016 08:48   Заявить о нарушении