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