6.3 Полезные советы.
Если Вы сами пишете программы, то пожалуйста прислушайтесь к нескольким практическим рекомендациям, связанным с русификацией компьютера. Они проверены многолетним опытом и могут Вам пригодиться.
1. Никогда не рассчитывайте на то, что у будущего пользователя Вашей программы компьютер русифицирован так же, как у Вас. Если Вы используете русский знакогенератор, даже если он у Вас "зашит" в ПЗУ, все равно дистрибутивную программу поставляйте со своим знакогенератором. Прогружайте его в компьютер перед загрузкой программы и переключайте CHARS перед выводом всех сообщений на печать.
2. Никогда не устраивайте в программе двусторонних диалогов на русском языке. Сами пишите пользователю все, что хотите, но не требуйте от него никаких вводов на русском языке, особенно если есть шанс, что с программой будет работать ребенок. Не доводите дело до того, чтобы он размазывал слезы по клавиатуре в поисках клавиши, на которую Вы "подвесили" букву "Щ", особенно если она "висит" на символе "}", который не так-то просто на жат ь .
3. Даже в тех случаях, когда надо дать простой ответ типа "Д/Н" (Да/Нет) не надо требовать нажатия клавиш "Д" или "Н".
Можете сделать запрос типа "Y/N, как это принято во всем мире. Если не хотите, то сделайте так:
1 - "Да"
2 - "Нет"
- и проверьте, что он нажал - клавишу "1" или "2".
4. Если очень нужно, чтобы пользователь ввел что-то по-русски, "подсуньте" ему готовые альтернативы:
1. Идти налево.
2. Идти направо.
3. Идти вверх.
4. Копать.
5. Кричать "Караул!"
Организуйте ему выбор из такого меню то ли нажатием соответствующей цифры, то ли перемещением визуального указателя, то ли изменением цвета выбираемой опции - как хотите.
5. Даже если Вам хочется, чтобы пользователь ввел свое имя, не надо это делать. Для установления дружеского диалога дайте ему несколько псевдонимов, пусть выберет себе тот, который понравится.
1. Джонни 3. Бекки
2. Робби 4. Терри
Если перед Вами целый класс учеников, то ведь у каждого есть номер по классному журналу и Вам надо подумать, как в игровом духе обыграть этот номер. Номер ученик вполне может ввести сам, например:
Агент 007 Пилот Б-13 Капитан космического фрегата "Грозный", бортовой номер 22.
6. Устраивая игры типа "Поле Чудес", Вы рассчитываете, на то, что пользователь будет вводить некую букву. Не рассчитывайте - это нетактично. Подумайте, как покрасивее дать ему возможность эту букву выбрать без ввода с клавиатуры. Может быть, ему надо сбить самолет с пролетающей нужной буквой, может быть ему надо покрутить какой-то барабан, пока в нем не высветится нужная буква - используйте все, что хотите, но не просите ничего вводить с клавиатуры русскими буквами.
7. Если же Ваша программа именно для того и предназначена, чтобы вводить что-то русскими буквами (например, если это база данных), то во-первых, перед началом программы дайте табличку, где какая буква находится, а во-вторых, обеспечьте, чтобы пользователь мог эту табличку вызвать для справки в любое время. Например, назначьте какой-то "горячей клавише", скажем "SYMBOL SHIFT" + "2" вызов на экран этой таблички и во всех состояниях ожидания действий пользователя организуйте проверку нажатия этой клавиши. Ту часть экрана, которая "портится" при выдаче этой таблички, надо где-то сохранить переброской командой LDIR, а после выхода из таблички - точно так же и восстановить .