На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Languages, Locales, and Keyboard Layouts



A language is a natural language, such as English, French, and Japanese. A sublanguange is a variant of a natural language that is spoken in a specific geographical region, such as the English sublanguages spoken in Great Britain and the United States. Win32-based applications use values, called locales, to uniquely identify languages and sublanguages. Applications typically use locales to set the language in which input and output is processed. Setting the locale for the keyboard, for example, affects the character values generated by the keyboard. Setting the locale for the display or printer affects the glyphs displayed or printed. Applications set the locale for a keyboard by loading and using keyboard layouts. They set the locale for a display or printer by selecting a font that supports the given locale.

A keyboard layout not only specifies the physical position of the keys on the keyboard but also determines the character values generated by pressing those keys. Each layout has an associated locale which identifies the current input language and determines which character values are generated by which keys and key combinations.
Every keyboard layout has a corresponding handle that identifies the layout and language. The low word of the handle is a language identifier. The high word is a device handle, specifying the physical layout, or is zero, indicating a default physical layout. The user can associate any input language with a given physical layout. For example, an English-speaking user who very occasionally works in French can set the input language of the keyboard to French without changing the physical layout of the keyboard. This means the user can enter text in French using the familiar English layout.

Applications are generally not expected to manipulate input languages directly. Instead, the user sets up language and layout combinations, then switches among them. When the user clicks into text marked with a different language, the application calls the ActivateKeyboardLayout function to activate the user's default layout for that language. If the user edits text in a language which is not in the active list, the application can call the LoadKeyboardLayout function with the language to get a layout based on that language.

The ActivateKeyboardLayout function sets the input language for the current task. The hkl parameter can be either the handle of the keyboard layout or a zero-extended language identifier. Keyboard layout handles can be obtained from the LoadKeyboardLayout or GetKeyboardLayoutList function. The HKL_NEXT and HKL_PREV values can also be used to select the next or previous keyboard. For some operating systems, the KLF_UNLOADPREVIOUS value has no meaning and is ignored.

The GetKeyboardLayoutName function retrieves the name of the active keyboard layout for the calling thread. If an application creates the active layout using the LoadKeyboardLayout function, GetKeyboardLayoutName retrieves the same string used to create the layout. Otherwise, the string is the primary language identifier corresponding to the locale of the active layout. This means the function may not necessarily differentiate among different layouts with the same primary language, so cannot return specific information about the input language. The GetKeyboardLayout function, however, can be used to determine the input language.

The LoadKeyboardLayout function loads a keyboard layout and makes the layout available to the user. Applications can make the layout immediately active for the current thread by using the KLF_ACTIVATE value. An application can use the KLF_REORDER value to reorder the layouts without also specifying the KLF_ACTIVATE value. Applications should always use the KLF_SUBSTITUTE_OK value when loading keyboard layouts to ensure that the user's preference, if any, is selected. For some operating systems, the KLF_UNLOADPREVIOUS value is ignored.

For multilingual support, the LoadKeyboardLayout function provides the KLF_REPLACELANG and KLF_NOTELLSHELL flags. The KLF_REPLACELANG flag directs the function to replace an existing keyboard layout without changing the language. Attempting to replace an existing layout using the same language identifier but without specifying KLF_REPLACELANG is an error. The KLF_NOTELLSHELL flag prevents the function from notifying the shell when a keyboard layout is added or replaced. This is useful for applications that add multiple layouts in a consecutive series of calls. This flag should be used in all but the last call.

The UnloadKeyboardLayout function is restricted in that it cannot unload the system default input language. This ensures that the user always has one layout available for enter text using the same character set as used by the shell and file system.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Языки, Локальные, и Клавишные Форматы



Язык является естественным языком, как например, Английский, Французский, и Японец. sublanguange - вариант естественного языка, который поговорен в специфическом географическом регионе, как например, Английские подъязыки поговоренные в Большой Великобритании и Соединенные Штаты. величины использования базирующихся приложений Win32, названный локальный, чтобы однозначно идентифицировать языки и подъязыки. Приложения обычно используют локальные, чтобы устанавливать язык в котором вклад и выход обработан. Устанавливая место действия для клавиатуры, например, влияет на символьные величины сгенерированные клавиатурой. Устанавливая место действия для показа или принтер влияет на glyphs отображаемый или отпечатанный. Приложения устанавливают место действия для клавиатуры загружая и используя клавишные форматы. Они установили место действия для показа или принтер выбираясь шрифт, который поддерживает данное место действия.

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

Приложения обычно не ожидается манипулируют входными языками непосредственно. Взамен, потребитель устанавливают языковые и комбинации формата затем переключаются среди них. Когда потребитель щелкает в текст выделенный другим языком, приложение называет функцию 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 ограничена в том, что это не мочь снять системный по умолчанию входной язык. Это проверяет, что пользователь всегда имеет один формат доступный для текста ввода, использовавшего тот же набор символов как использовано оболочкой и файловой системой.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz