Языки, языки и раскладки клавиатуры

Язык является естественным языком, такие, как английский, французский и японский. Sublanguange — вариант естественного языка, на котором говорят в конкретного географического региона, таких как английский подъязыка, говорят в Великобритании и Соединенных Штатах Америки. Win32-приложения используют значения, под названием - идентификаторы языка, чтобы уникально идентифицировать языки и подъязыка.

Приложения обычно используют языки для установки языка в котором ввода и вывода. Установка языка для клавиатуры, например, влияет на значения знаков, генерируемых клавиатурой. Установка языка на экран или принтер влияет глифы отображаются или напечатаны. Приложения задать языковой стандарт для клавиатуры, загрузке и использовании раскладок клавиатуры. Они устанавливают языковой стандарт на экран или принтер, выбирая шрифт, поддерживающий данный язык.

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

Каждая раскладка клавиатуры имеет соответствующий дескриптор, указывающий расположение и язык. Младшее слово ручки является идентификатором языка. Старшее слово является дескриптор устройства, указав Физический макет, или равно нулю, указывающий физический макет по умолчанию. Пользователя можно связать любой язык ввода с данного физического макета. Например для англо говорящих пользователей, которые иногда работает на французском языке можно присвоить язык ввода клавиатуры французский без изменения физической разметки клавиатуры. Это значит, что пользователь может ввести текст на французском языке с использованием знакомых английский макета.

Приложения как правило не должны напрямую управлять языками ввода. Вместо этого пользователь настраивает комбинации языка и макет, а затем переключается между ними. Когда пользователь нажимает в текст, отмеченные на другом языке, приложение вызывает функцию ActivateKeyboardLayout для активации пользователя макет по умолчанию для этого языка. Если пользователь редактирует текст на языке, который не находится в списке активных, приложение может вызвать функцию LoadKeyboardLayout с языком для того чтобы получить макет, основанный на этом языке.

Функция ActivateKeyboardLayout задает язык ввода для текущей задачи. Параметр hkl может быть либо ручки для раскладки клавиатуры или идентификатор языка, ноль расширена. Ручки макет клавиатуры можно получить из функции LoadKeyboardLayout или GetKeyboardLayoutList . Значения HKL_NEXT и HKL_PREV может также использоваться для выбора следующего или предыдущего клавиатуры. Для некоторых операционных систем значение KLF_UNLOADPREVIOUS не имеет значения и игнорируется.

GetKeyboardLayoutName функция извлекает имя активного раскладки клавиатуры для вызывающего потока. Если приложение создает активную макет, используя функцию LoadKeyboardLayout , GetKeyboardLayoutName извлекает ту же строку, используется для создания макета. В противном случае строка является идентификатор основного языка, соответствующий язык активных макета. Это означает, что функция может не проводится различия обязательно среди различных макетов с тем же основным языком, поэтому не может возвращать конкретную информацию о языка ввода. GetKeyboardLayout функция, однако, может использоваться для определения языка ввода.

LoadKeyboardLayout функция загружает раскладка клавиатуры и делает макет для пользователя. Приложения можно активировать макета сразу для текущего потока, используя значение KLF_ACTIVATE. Приложение может использовать значение KLF_REORDER для изменения порядка макетов без указания значения KLF_ACTIVATE. Приложения следует всегда использовать значение KLF_SUBSTITUTE_OK при загрузке раскладки клавиатуры для обеспечения что предпочтений пользователя, если таковые имеются, выбраны. Для некоторых операционных систем KLF_UNLOADPREVIOUS значение игнорируется.

Для поддержки нескольких языков функция LoadKeyboardLayout предоставляет флаги KLF_REPLACELANG и KLF_NOTELLSHELL. KLF_REPLACELANG предписывает функция заменить существующую раскладку клавиатуры без изменения языка. Попытка заменить существующий макет, используя один и тот же идентификатор языка, но без ошибкой является использование значения KLF_REPLACELANG. Флаг KLF_NOTELLSHELL, предотвращает выполнение функции уведомления оболочки при добавлении или заменить раскладка клавиатуры. Это полезно для приложений, которые добавить несколько макетов в серию последовательных вызовов. Этот флаг следует использовать во всех, кроме последнего звонка.

Функция UnloadKeyboardLayout является ограниченным в том, что он не удается выгрузить язык ввода по умолчанию системы. Это гарантирует, что пользователь всегда имеет один макет для ввода текста с использованием же кодировку, используемую оболочку и файловой системой.

Index