Поделиться через


Контрольный список интернационализации

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

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