Unicode and Keyboards on Windows - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Unicode and Keyboards on Windows

Description:

Diaeresis on the Finnish keyboard. Input keys. Type ' (deadkey) Type ' a. Type ' A ... (spacing diaeresis) 25 March 2003. Prague, Czech Republic (IUC23) 12 ... – PowerPoint PPT presentation

Number of Views:133
Avg rating:3.0/5.0
Slides: 25
Provided by: downloadM
Category:

less

Transcript and Presenter's Notes

Title: Unicode and Keyboards on Windows


1
Unicode and Keyboards on Windows
  • Michael KaplanCathy Wissink

Globalization Infrastructure and Font
Technology Windows International Microsoft
2
Who is this talk geared towards?
  • This is a high-level introduction to keyboards on
    Windows, assuming no prior knowledge.
  • Audience
  • Developers new to concept
  • People who need to understand keyboards enough to
    understand how applications can work with them
  • Not completely intended to be a nuts and bolts
    talk

3
Keyboards are simple, right?
  • Fonts
  • Rendering engines
  • 135 different locales on Windows
  • Custom keyboard layouts
  • Turns out they are not so simple!

4
Keyboard Layout, defined
  • A collection of data for each keystroke and shift
    state combination with a particular keyboard
    driver (DLL)
  • In other words, it is not the keyboard hardware
    but the software that connects the hardware to
    the system

5
Anatomy of a keystroke
  • User presses a key
  • Key contains a scan code
  • Keyboard layout DLL maps the scan code to a
    virtual key (VK)
  • OS sends the VK to the application
  • If asked, the DLL maps the VK/shift state to
    characters (if they are assigned)

6
(No Transcript)
7
Language features
  • single character keystrokes
  • ligatures
  • dead keys
  • shift states
  • SGCap
  • Caps lock key

8
Ligatures
  • For keyboard layouts, not the same as the
    typographic/linguistic term
  • A combination of 2 to 4 UTF-16 code points
    inserted by a single keystroke

9
Examples of ligatures on keyboard
Tamil keyboard in the shifted state, showing
linguistic characters Sri, Ksa, and others as
ligatures
10
Dead keys
  • A combination of two keystrokes to insert a
    single character
  • Used often in European languages for diacritics
  • Called dead since the first keystroke does not
    appear to do anything
  • Not intuitive to people who are not used to them

11
Dead key exampleDiaeresis on the Finnish
keyboard
  • Input keys
  • Type (deadkey)
  • Type a
  • Type A
  • Type o
  • Type O
  • ...
  • Type ltspacegt
  • Result
  • Nothing
  • ä
  • Ä
  • ö
  • Ö
  • ...
  • (spacing diaeresis)

12
Shift states
  • Only 47-48 physical keys to work with on the
    keyboard
  • Shift states expand that number by many times
  • For languages with casing, usually they are cased
    variants of each other
  • More shift states available (AltGr, Ctrl)

13
The Greek Keyboard, shifted and unshifted
14
Caps lock
  • Usually intended to be a persistent Shift
    keypress (in other words, it acts like a
    typewriter caps lock)
  • Generally used to get at shift state without
    having to press two keys concurrently
  • Often used with cased languages
  • May do nothing in languages without case, or be
    used for other purposes

15
SGCap
  • Advanced usage of the Caps Lock key
  • Used by Swiss German, Czech, and Hebrew keyboards
  • Adds two additional shift states
  • Only intuitive to people who understand the
    mechanism

16
APIs
  • keybd_event
  • MapVirtualKeyEx
  • OemKeyScan
  • SendInput
  • ToAsciiEx
  • ToUnicodeEx
  • VkKeyScanEx
  • The APIs allow developers to do the same mappings
    the OS does when moving between scan codes, VKs,
    and characters.

17
Factors in keyboard layout creation
  • National/regional standard?
  • What languages need to be supported?
  • Is the set of characters needed for the language
    complete?
  • Focus on code points and not glyphs?
  • Do all required characters exist in Unicode?
  • Consistent use of features such as dead keys,
    ligatures, etc.?

18
Where do IMEs fit in?
  • For most languages, they dont!
  • For CJK languages, even 47 keys X 8 shift states
    is not enough
  • Different mechanisms and APIs are used for IME
    interaction
  • More information can be found in the Platform SDK
    (http//msdn.microsoft.com/platformsdk)

19
FAQs about keyboards
  • Does Microsoft make these layouts up?
  • How do I add every glyph for my language?
  • Dont I need an IME?
  • How do I replace the layout for my language if I
    do not like the one provided?
  • How do I add my own keyboard layout?

20
MSKLCMicrosoft Keyboard Layout Creator
  • Create new keyboard layouts
  • Brand new layouts
  • Modified from existing keyboards
  • Deploy the created keyboard layout to NT4,
    Win2000, WinXP, or Win Server 2003 machines
  • Save the definition of the keyboard for later
    development

21
MSKLC demos
22
Other References
  • This tutorial's corresponding paper
  • Windows Keyboard Layoutshttp//www.microsoft.com/
    globaldev/reference/keyboards.aspx
  • Nadine Kano, Developing International Software
    (out of print, but still available on the
    web)http//microsoft.com/globaldev/dis_v1/disv1.a
    sp
  • New! Developing International Software , 2nd
    editionhttp//microsoft.com/globaldev/dis_v2/disv
    2.asp
  • Internationalization with Visual
    Basichttp//i18nWithVB.com/
  • Get on the MSKLC Beta!

23
Questions?
24
Don't forget to fill out your evaluations!
  • Unicode and Keyboards on Windows
Write a Comment
User Comments (0)
About PowerShow.com