Контрольный список по интернационализации
В этом разделе приведены действия, которые необходимо предпринять для создания кода, поддерживающего несколько рынков. Эти инструкции следует рассматривать как руководство во время разработки кода и как метрики при оценке сборок.
- Создайте спецификации программы с учетом международных соображений с самого начала.
- Разрабатывайте значки и растровые изображения, чтобы они были значимыми и не оскорбительными на целевых рынках и не содержали текста.
- Создайте меню и диалоговые окна, чтобы оставить место для расширения текста. Например, английские строки часто расширяются на 40 % при переводе на немецкий или голландский язык.
- Не используйте в элементах пользовательского интерфейса или сообщениях ссылки на сленг или региональные значения.
- Создавайте сочетания клавиш, доступные на международных клавиатурах. Например, не используйте знаки препинания в качестве сочетаний клавиш, так как они не всегда находятся на международных клавиатурах или легко создаются пользователем. Примеры раскладок клавиатуры см. в разделе Раскладки клавиатуры Windows.
- Рассмотрите местные законы, влияющие на макеты функций, например требования к приобретению государственными организациями программного обеспечения, поддерживающего несколько официальных языков.
- Разработайте сторонние соглашения, которые поддерживают международные стандарты пользовательского интерфейса вашей организации и проектные решения.
- Используйте согласованную терминологию в строках пользовательского интерфейса, которые необходимо перевести.
- Создайте код, не зависящий от языкового стандарта.
- Не сцепляйте строки для формирования предложений.
- Не используйте заданную строковую переменную в нескольких контекстах, например повторное использование фрагмента предложения в разных сообщениях и запросах, так как такие строки могут оказаться непростой для перевода.
- Строки документа, использующие комментарии для предоставления контекста для переводчиков, и четко помечают строки или символы, которые не следует локализовать.
- Не используйте жестко заданные символьные константы, числовые константы, позиции экрана, имена файлов или имена путей, предполагающие определенный язык.
- Сделайте буферы достаточно большими, чтобы вместить переведенные строки.
- Разрешить ввод данных в форматах, которые зависят от языкового стандарта, таких как даты, время и валюты.
- Используйте размер бумаги, размер конверта и другие значения по умолчанию, соответствующие заданному языковому стандарту.
- Убедитесь, что каждый языковой выпуск может читать документы, созданные другими выпусками.
- При необходимости предоставьте поддержку оборудования для конкретного языкового стандарта.
- Настройте функции, которые не применяются к международным рынкам, в качестве вариантов реализации, которые можно легко отключить.
- Создайте код, который использует преимущества международных функциональных возможностей, предоставляемых Microsoft Windows.
- Использовать международную информацию, перевозимую системой (национальная языковая поддержка).
- Используйте системные функции для сортировки, преобразования регистра и сопоставления строк.
- Используйте универсальные функции макета текста.
- Реагирование на изменения международных параметров в панель управления.
- Обработка сообщения WM_INPUTLANGCHANGEREQUEST.
- Поддержка редакторов методов ввода, вертикального текста и правил разбиения строк в восточноазиатских выпусках.
- Скомпилируйте все международные выпуски программы из одного набора исходных файлов.
- Сведите к минимуму или исключите механизмы, требующие повторной компиляции кода для разных языковых выпусков.
- Храните локализуемые элементы, такие как строки и значки, в файлах ресурсов Windows.
- Храните документы во всех языковых выпусках, используя один и тот же формат файлов.
- Поддержка различных наборов символов, а не только кодовой страницы Latin 1 с номером 1252.
- Программа поддерживает сетевые среды, в которых компьютеры работают под управлением операционных систем с разными кодовыми страницами по умолчанию.
- Используйте GetCPInfoEx для получения диапазонов потенциальных байтов для кодовых страниц в Восточной Азии.
- Анализ двухбайтовых символов в приложениях на языке восточноазиатских языков, если код не основан на Юникоде.
- Поддержка Юникода или преобразования между Юникодом и локальной кодовой страницей.
- Не предполагайте, что все символы являются 8- или 16-разрядными.
- Используйте универсальные типы данных и прототипы универсальных функций.
- Используйте свойство шрифта charset, которое вызывает EnumFontFamiliesEx и общую функцию диалогового окна ChooseFont.
- Отображение и печать текста с помощью шрифтов, соответствующих языковому стандарту.
- Протестируйте международные возможности программы.
- Переведенный текст должен соответствовать стандартам носителей языка.
- При отображении разных языков диалоговые окна должны правильно изменяться, а текст должен быть соответствующим образом дефисирован.
- Диалоговые окна, строки состояния, панели инструментов и меню должны помещаться на экране и читать отчетливо, если дисплей установлен в разных разрешениях для всех переведенных языков.
- Ускорители меню и диалоговых окон должны быть уникальными.
- Пользователи должны иметь возможность вводить символы из неевропейских скриптов в документы, диалоговые окна и имена файлов.
- Пользователи должны иметь возможность вырезать, вставлять, сохранять и печатать символы из неевропейских сценариев.
- Сортировка и преобразование регистра должны быть точными для разных языковых стандартов.
- Приложение должно правильно работать в локализованных выпусках Windows.