You are on page 1of 11

Universal Serial Bus (USB)

Language Identifiers
(LANGIDs)
3/29/00
Version 1.0
Please send comments via electronic mail to:
hidcomments@usb.org

2000 USB Implementers ForumAll rights reserved.

3/26/00

PREFACE ..................................................................................................................................................... 3
INTELLECTUAL PROPERTY DISCLAIMER ...................................................................................................... 3
USB LANGIDS ............................................................................................................................................. 4
LANGUAGE IDENTIFIERS .............................................................................................................................. 4
PRIMARY LANGUAGE IDENTIFIERS .............................................................................................................. 8
SUBLANGUAGE IDENTIFIERS ..................................................................................................................... 10

Preface

Intellectual Property Disclaimer


THIS SPECIFICATION IS PROVIDED AS IS WITH NO WARRANTIES WHATSOEVER
INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR
PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL,
SPECIFICATION, OR SAMPLE.
A LICENSE IS HEREBY GRANTED TO REPRODUCE AND DISTRIBUTE THIS SPECIFICATION
FOR INTERNAL USE ONLY. NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
OTHERWISE, TO ANY OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED OR
INTENDED HEREBY.
AUTHORS OF THIS SPECIFICATION DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR
INFRINGEMENT OF PROPRIETARY RIGHTS, RELATING TO IMPLEMENTATION OF
INFORMATION IN THIS SPECIFICATION. AUTHORS OF THIS SPECIFICATION ALSO DO NOT
WARRANT OR REPRESENT THAT SUCH IMPLEMENTATION(S) WILL NOT INFRINGE SUCH
RIGHTS.
All product names are trademarks, registered trademarks, or service marks of their respective owners.

USB LANGIDs
March 22, 2000
A USB device can store stings in multiple languages. i.e. the string index defines which word or phrase
should be communicated to the user (like "Format" or "Insert Disk") and the LANGID code identifies to a
device, which language (German, Chinese, etc.) to retrieve that word or phase for. This document defines
the LANGIDs currently defined for USB devices.
Note: to support forward compatibility, system software must allow the enumeration and selection of
LANGIDs that are not currently on this list. And system software should never request a LANGID not
defined in the LANGID code array (string index = 0) presented by a device.
The strings defined in the "Predefined Symbol" columns can be used to generate header files for the
Primary Language and Sublanguage Identifiers.

Language Identifiers
The following are 16-bit language identifiers. They are composed of a 10-bit (9-0) Primary Language
Identifier and a 6-bit (15-10) Sublanguage Identifier. The Primary Language and Sublanguage Identifiers
are defined in following sections.
Identifier
0x0436
0x041c
0x0401
0x0801
0x0c01
0x1001
0x1401
0x1801
0x1c01
0x2001
0x2401
0x2801
0x2c01
0x3001
0x3401
0x3801
0x3c01
0x4001
0x042b
0x044d
0x042c
0x082c
0x042d
0x0423
0x0445
0x0402
0x0455
0x0403
0x0404
0x0804
0x0c04
0x1004

Language
Afrikaans
Albanian
Arabic (Saudi Arabia)
Arabic (Iraq)
Arabic (Egypt)
Arabic (Libya)
Arabic (Algeria)
Arabic (Morocco)
Arabic (Tunisia)
Arabic (Oman)
Arabic (Yemen)
Arabic (Syria)
Arabic (Jordan)
Arabic (Lebanon)
Arabic (Kuwait)
Arabic (U.A.E.)
Arabic (Bahrain)
Arabic (Qatar)
Armenian.
Assamese.
Azeri (Latin)
Azeri (Cyrillic)
Basque
Belarussian
Bengali.
Bulgarian
Burmese
Catalan
Chinese (Taiwan)
Chinese (PRC)
Chinese (Hong Kong SAR, PRC)
Chinese (Singapore)

Identifier
0x1404
0x041a
0x0405
0x0406
0x0413
0x0813
0x0409
0x0809
0x0c09
0x1009
0x1409
0x1809
0x1c09
0x2009
0x2409
0x2809
0x2c09
0x3009
0x3409
0x0425
0x0438
0x0429
0x040b
0x040c
0x080c
0x0c0c
0x100c
0x140c
0x180c
0x0437
0x0407
0x0807
0x0c07
0x1007
0x1407
0x0408
0x0447
0x040d
0x0439
0x040e
0x040f
0x0421
0x0410
0x0810
0x0411
0x044b
0x0860
0x043f
0x0457
0x0412
0x0812
0x0426
0x0427
0x0827
0x042f

Language
Chinese (Macau SAR)
Croatian
Czech
Danish
Dutch (Netherlands)
Dutch (Belgium)
English (United States)
English (United Kingdom)
English (Australian)
English (Canadian)
English (New Zealand)
English (Ireland)
English (South Africa)
English (Jamaica)
English (Caribbean)
English (Belize)
English (Trinidad)
English (Zimbabwe)
English (Philippines)
Estonian
Faeroese
Farsi
Finnish
French (Standard)
French (Belgian)
French (Canadian)
French (Switzerland)
French (Luxembourg)
French (Monaco)
Georgian.
German (Standard)
German (Switzerland)
German (Austria)
German (Luxembourg)
German (Liechtenstein)
Greek
Gujarati.
Hebrew
Hindi.
Hungarian
Icelandic
Indonesian
Italian (Standard)
Italian (Switzerland)
Japanese
Kannada.
Kashmiri (India)
Kazakh
Konkani.
Korean
Korean (Johab)
Latvian
Lithuanian
Lithuanian (Classic)
Macedonian

Identifier
0x043e
0x083e
0x044c
0x0458
0x044e
0x0861
0x0414
0x0814
0x0448
0x0415
0x0416
0x0816
0x0446
0x0418
0x0419
0x044f
0x0c1a
0x081a
0x0459
0x041b
0x0424
0x040a
0x080a
0x0c0a
0x100a
0x140a
0x180a
0x1c0a
0x200a
0x240a
0x280a
0x2c0a
0x300a
0x340a
0x380a
0x3c0a
0x400a
0x440a
0x480a
0x4c0a
0x500a
0x0430
0x0441
0x041d
0x081d
0x0449
0x0444
0x044a
0x041e
0x041f
0x0422
0x0420
0x0820
0x0443
0x0843

Language
Malay (Malaysian)
Malay (Brunei Darussalam)
Malayalam.
Manipuri
Marathi.
Nepali (India).
Norwegian (Bokmal)
Norwegian (Nynorsk)
Oriya.
Polish
Portuguese (Brazil)
Portuguese (Standard)
Punjabi.
Romanian
Russian
Sanskrit.
Serbian (Cyrillic)
Serbian (Latin)
Sindhi
Slovak
Slovenian
Spanish (Traditional Sort)
Spanish (Mexican)
Spanish (Modern Sort)
Spanish (Guatemala)
Spanish (Costa Rica)
Spanish (Panama)
Spanish (Dominican Republic)
Spanish (Venezuela)
Spanish (Colombia)
Spanish (Peru)
Spanish (Argentina)
Spanish (Ecuador)
Spanish (Chile)
Spanish (Uruguay)
Spanish (Paraguay)
Spanish (Bolivia)
Spanish (El Salvador)
Spanish (Honduras)
Spanish (Nicaragua)
Spanish (Puerto Rico)
Sutu
Swahili (Kenya)
Swedish
Swedish (Finland)
Tamil.
Tatar (Tatarstan)
Telugu.
Thai
Turkish
Ukrainian
Urdu (Pakistan)
Urdu (India)
Uzbek (Latin)
Uzbek (Cyrillic)

Identifier
0x042a
0x04ff
0xf0ff
0xf4ff
0xf8ff
0xfcff

Language
Vietnamese
HID (Usage Data Descriptor)
HID (Vendor Defined 1)
HID (Vendor Defined 2)
HID (Vendor Defined 3)
HID (Vendor Defined 4)

Primary Language Identifiers


The following are the 10-bit primary language identifiers. They can be combined with Sublanguage
Identifier to form Language Identifiers.
Identifier
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0a
0x0b
0x0c
0x0d
0x0e
0x0f
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x18
0x19
0x1a
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x29
0x2a
0x2b
0x2c
0x2d
0x2f
0x36
0x37
0x38

Predefined symbol

Language
Reserved
Arabic
Bulgarian
Catalan
Chinese
Czech
Danish
German
Greek
English
Spanish
Finnish
French
Hebrew
Hungarian
Icelandic
Italian
Japanese
Korean
Dutch
Norwegian
Polish
Portuguese
Romanian
Russian
Croatian
Serbian
Slovak
Albanian
Swedish
Thai
Turkish
Urdu
Indonesian
Ukrainian
Belarusian
Slovenian
Estonian
Latvian
Lithuanian
Farsi
Vietnamese
Armenian
Azeri
Basque
Macedonian
Afrikaans
Georgian
Faeroese

LANG_ARABIC
LANG_BULGARIAN
LANG_CATALAN
LANG_CHINESE
LANG_CZECH
LANG_DANISH
LANG_GERMAN
LANG_GREEK
LANG_ENGLISH
LANG_SPANISH
LANG_FINNISH
LANG_FRENCH
LANG_HEBREW
LANG_HUNGARIAN
LANG_ICELANDIC
LANG_ITALIAN
LANG_JAPANESE
LANG_KOREAN
LANG_DUTCH
LANG_NORWEGIAN
LANG_POLISH
LANG_PORTUGUESE
LANG_ROMANIAN
LANG_RUSSIAN
LANG_CROATIAN
LANG_SERBIAN
LANG_SLOVAK
LANG_ALBANIAN
LANG_SWEDISH
LANG_THAI
LANG_TURKISH
LANG_URDU
LANG_INDONESIAN
LANG_UKRANIAN
LANG_BELARUSIAN
LANG_SLOVENIAN
LANG_ESTONIAN
LANG_LATVIAN
LANG_LITHUANIAN
LANG_FARSI
LANG_VIETNAMESE
LANG_ARMENIAN
LANG_AZERI
LANG_BASQUE
LANG_MACEDONIAN
LANG_AFRIKAANS
LANG_GEORGIAN
LANG_FAEROESE

Identifier
0x39
0x3e
0x3f
0x41
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4a
0x4b
0x4c
0x4d
0x4e
0x4f
0x57
0x58
0x59
0x60
0x61
0x62-0xfe
0xff
0x100-0x3ff

Predefined symbol
LANG_HINDI
LANG_MALAY
LANG_KAZAK
LANG_SWAHILI
LANG_UZBEK
LANG_TATAR
LANG_BENGALI
LANG_PUNJABI
LANG_GUJARATI
LANG_ORIYA
LANG_TAMIL
LANG_TELUGU
LANG_KANNADA
LANG_MALAYALAM
LANG_ASSAMESE
LANG_MARATHI
LANG_SANSKRIT
LANG_KONKANI
LANG_MANIPURI
LANG_SINDHI
LANG_KASHMIRI
LANG_NEPALI

Language
Hindi
Malay
Kazak
Swahili
Uzbek
Tatar
Bengali
Punjabi
Gujarati
Oriya
Tamil
Telugu
Kannada
Malayalam
Assamese
Marathi
Sanskrit
Konkani
Manipuri
Sindhi
Kashmiri
Nepali
Reserved
Reserved for USB HID Class use
Reserved

LANG_HID

SubLanguage Identifiers
The following are sublanguage identifiers. They can be combined with Primary Language Identifier to form
Language Identifier.
Identifier
0x00-0x02
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x01
0x02
0x01
0x02
0x03
0x04
0x05
0x01
0x02
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0a
0x0b
0x0c
0x0d
0x01
0x02
0x03
0x04
0x05
0x06
0x01
0x02
0x03
0x04

Predefined symbol
SUBLANG_ARABIC_SAUDI_ARABIA
SUBLANG_ARABIC_IRAQ
SUBLANG_ARABIC_EGYPT
SUBLANG_ARABIC_LIBYA
SUBLANG_ARABIC_ALGERIA
SUBLANG_ARABIC_MOROCCO
SUBLANG_ARABIC_TUNISIA
SUBLANG_ARABIC_OMAN
SUBLANG_ARABIC_YEMEN
SUBLANG_ARABIC_SYRIA
SUBLANG_ARABIC_JORDAN
SUBLANG_ARABIC_LEBANON
SUBLANG_ARABIC_KUWAIT
SUBLANG_ARABIC_UAE
SUBLANG_ARABIC_BAHRAIN
SUBLANG_ARABIC_QATAR
SUBLANG_AZERI_CYRILLIC
SUBLANG_AZERI_LATIN
SUBLANG_CHINESE_TRADITIONAL
SUBLANG_CHINESE_SIMPLIFIED
SUBLANG_CHINESE_HONGKONG
SUBLANG_CHINESE_SINGAPORE
SUBLANG_CHINESE_MACAU
SUBLANG_DUTCH
SUBLANG_DUTCH_BELGIAN
SUBLANG_ENGLISH_US
SUBLANG_ENGLISH_UK
SUBLANG_ENGLISH_AUS
SUBLANG_ENGLISH_CAN
SUBLANG_ENGLISH_NZ
SUBLANG_ENGLISH_EIRE
SUBLANG_ENGLISH_SOUTH_AFRICA
SUBLANG_ENGLISH_JAMAICA
SUBLANG_ENGLISH_CARIBBEAN
SUBLANG_ENGLISH_BELIZE
SUBLANG_ENGLISH_TRINIDAD
SUBLANG_ENGLISH_PHILIPPINES
SUBLANG_ENGLISH_ZIMBABWE
SUBLANG_FRENCH
SUBLANG_FRENCH_BELGIAN
SUBLANG_FRENCH_CANADIAN
SUBLANG_FRENCH_SWISS
SUBLANG_FRENCH_LUXEMBOURG
SUBLANG_FRENCH_MONACO
SUBLANG_GERMAN
SUBLANG_GERMAN_SWISS
SUBLANG_GERMAN_AUSTRIAN
SUBLANG_GERMAN_LUXEMBOURG

10

Language
Reserved
Arabic (Saudi Arabia)
Arabic (Iraq)
Arabic (Egypt)
Arabic (Libya)
Arabic (Algeria)
Arabic (Morocco)
Arabic (Tunisia)
Arabic (Oman)
Arabic (Yemen)
Arabic (Syria)
Arabic (Jordan)
Arabic (Lebanon)
Arabic (Kuwait)
Arabic (U.A.E.)
Arabic (Bahrain)
Arabic (Qatar)
Azeri (Cyrillic)
Azeri (Latin)
Chinese (Traditional)
Chinese (Simplified)
Chinese (Hong Kong SAR, PRC)
Chinese (Singapore)
Chinese (Macau SAR)
Dutch
Dutch (Belgian)
English (US)
English (UK)
English (Australian)
English (Canadian)
English (New Zealand)
English (Ireland)
English (South Africa)
English (Jamaica)
English (Caribbean)
English (Belize)
English (Trinidad)
English (Zimbabwe)
English (Philippines)
French
French (Belgian)
French (Canadian)
French (Swiss)
French (Luxembourg)
French (Monaco)
German
German (Swiss)
German (Austrian)
German (Luxembourg)

Identifier
0x05
0x01
0x02
0x02
0x01
0x01
0x01
0x02
0x02
0x01
0x02
0x01
0x02
0x02
0x03
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0a
0x0b
0x0c
0x0d
0x0e
0x0f
0x10
0x11
0x12
0x13
0x14
0x01
0x02
0x01
0x02
0x01
0x02
0x01
0x3c
0x3d
0x3e
0x3f

Predefined symbol
SUBLANG_GERMAN_LIECHTENSTEIN
SUBLANG_ITALIAN
SUBLANG_ITALIAN_SWISS
SUBLANG_KASHMIRI_INDIA
SUBLANG_KOREAN
SUBLANG_LITHUANIAN
SUBLANG_MALAY_MALAYSIA
SUBLANG_MALAY_BRUNEI_DARUSSALAM
SUBLANG_NEPALI_INDIA
SUBLANG_NORWEGIAN_BOKMAL
SUBLANG_NORWEGIAN_NYNORSK
SUBLANG_PORTUGUESE
SUBLANG_PORTUGUESE_BRAZILIAN
SUBLANG_SERBIAN_LATIN
SUBLANG_SERBIAN_CYRILLIC
SUBLANG_SPANISH
SUBLANG_SPANISH_MEXICAN
SUBLANG_SPANISH_MODERN
SUBLANG_SPANISH_GUATEMALA
SUBLANG_SPANISH_COSTA_RICA
SUBLANG_SPANISH_PANAMA
SUBLANG_SPANISH_DOMINICAN_REPUBLIC
SUBLANG_SPANISH_VENEZUELA
SUBLANG_SPANISH_COLOMBIA
SUBLANG_SPANISH_PERU
SUBLANG_SPANISH_ARGENTINA
SUBLANG_SPANISH_ECUADOR
SUBLANG_SPANISH_CHILE
SUBLANG_SPANISH_URUGUAY
SUBLANG_SPANISH_PARAGUAY
SUBLANG_SPANISH_BOLIVIA
SUBLANG_SPANISH_EL_SALVADOR
SUBLANG_SPANISH_HONDURAS
SUBLANG_SPANISH_NICARAGUA
SUBLANG_SPANISH_PUERTO_RICO
SUBLANG_SWEDISH
SUBLANG_SWEDISH_FINLAND
SUBLANG_URDU_PAKISTAN
SUBLANG_URDU_INDIA
SUBLANG_UZBEK_LATIN
SUBLANG_UZBEK_CYRILLIC
SUBLANG_HID_USAGE_DATA_DESCRIPTOR
SUBLANG_HID_VENDOR_DEFINED_1
SUBLANG_HID_VENDOR_DEFINED_2
SUBLANG_HID_VENDOR_DEFINED_3
SUBLANG_HID_VENDOR_DEFINED_4

Language
German (Liechtenstein)
Italian
Italian (Swiss)
Kashmiri (India)
Korean
Lithuanian
Malay (Malaysia)
Malay (Brunei Darassalam)
Nepali (India)
Norwegian (Bokmal)
Norwegian (Nynorsk)
Portuguese (Brazilian)
Portuguese
Serbian (Latin)
Serbian (Cyrillic)
Spanish (Castilian)
Spanish (Mexican)
Spanish (Modern)
Spanish (Guatemala)
Spanish (Costa Rica)
Spanish (Panama)
Spanish (Dominican Republic)
Spanish (Venezuela)
Spanish (Colombia)
Spanish (Peru)
Spanish (Argentina)
Spanish (Ecuador)
Spanish (Chile)
Spanish (Uruguay)
Spanish (Paraguay)
Spanish (Bolivia)
Spanish (El Salvador)
Spanish (Honduras)
Spanish (Nicaragua)
Spanish (Puerto Rico)
Swedish
Swedish (Finland)
Urdu (Pakistan)
Urdu (India)
Uzbek (Latin)
Uzbek (Cyrillic)
HID (Usage Data Descriptor)
HID (Vendor Defined 1)
HID (Vendor Defined 2)
HID (Vendor Defined 3)
HID (Vendor Defined 4)

Note: Refer to the Universal Serial Bus HID Usage Tables document for more detailed information on the
HID Primary Language and Sublanguage Identifiers.

11

You might also like