Общие советы по программированию многобайтовой кодировки
Рекомендации:
Для гибкости системы по возможности следует использовать такие макросы в среды выполнения, как _tcschr и _tcscpy. Дополнительные сведения см. в разделе Универсальные текстовые соответствия в файле Tchar.h.
Используйте функцию среды выполнения C _getmbcp для получения дополнительных сведений о текущей странице кода.
Не используйте повторно строковые ресурсы. Та или иная строка, в зависимости от целевого языка, может иметь разные значения при переводе. Например, перевод строки "Файл" в главном меню приложения может отличаться от перевода строки "Файл" в диалоговом окне. Если необходимо одновременно использовать несколько строк с одинаковыми именами, укажите для них разные идентификаторы.
Можно проверить, работает ли приложение в операционной системе с активированной многобайтовой кодировкой. Чтобы выполнить эту операцию, поместите флаг при запуске программе. Не полагайтесь на API.
Во время создания диалоговых окон, оставляйте около 30% дополнительного места в конце статического текстового элемента управления для перевода с использованием многобайтовой кодировки.
Тщательно подбирайте шрифты для приложения, поскольку некоторые шрифты доступны не во всех системах. Например, японская версия Windows 2000 не поддерживает шрифт Helvetica.
При выборе шрифта для диалоговых окон используйте MS Shell Dlg вместо шрифта MS Sans Serif или Helvetica. Перед созданием диалогового окна система заменяет MS Shell Dlg на верный шрифт. Использование MS Shell Dlg гарантирует, что операционная система автоматически выполнит любые изменения для работы с данным шрифтом (библиотека MFC заменяет MS Shell Dlg на DEFAULT_GUI_FONT или на шрифт системы в операционных системах Windows 95, Windows 98 и Windows NT 4, поскольку данные системы с ошибкой обрабатывают MS Shell Dlg).
Во время создания приложения определите, какие строки могут быть локализованы. Если возникают сомнения, предположите, что все строки будут локализованы. В этом случае не следует смешивать строки, которые можно локализовать, и те, которые нельзя.