From 7ec8c454bd61d4749abb64d0cccb061a3c4b01e7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 11:21:57 +0100 Subject: [PATCH 01/15] [keyboard] Ukranian needs a switcher, too --- CHANGES | 2 +- src/modules/keyboard/non-ascii-layouts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 73c99cf9b..37dd0612f 100644 --- a/CHANGES +++ b/CHANGES @@ -25,7 +25,7 @@ This release contains contributions from (alphabetically by first name): ## Modules ## - The *keyboard* and *keyboardq* modules now share backend code and handle non-ASCII layouts better (for setting passwords - and usernames). + and usernames). (thanks Artem) # 3.2.32.1 (2020-10-17) # diff --git a/src/modules/keyboard/non-ascii-layouts b/src/modules/keyboard/non-ascii-layouts index 83935c190..9bdfa34be 100644 --- a/src/modules/keyboard/non-ascii-layouts +++ b/src/modules/keyboard/non-ascii-layouts @@ -2,3 +2,4 @@ #layout additional-layout additional-variant vconsole-keymap ru us - ruwin_alt_sh-UTF-8 +ua us - ua-utf From 5a378090c20aac3140f1e23ed81241ca7a8ebe9d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 12:16:14 +0100 Subject: [PATCH 02/15] [keyboard] Do not munge keyboard model name The translation happens whenever this code is run, which may not match the language the user subsequently selects. It also causes general problems with the translation, since we end up with a possibly-partly-translated name. --- src/modules/keyboard/keyboardwidget/keyboardglobal.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp b/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp index 8099cb231..d01c8b591 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardglobal.cpp @@ -84,12 +84,6 @@ parseKeyboardModels( const char* filepath ) { QString modelDesc = rx.cap( 2 ); QString model = rx.cap( 1 ); - - if ( model == "pc105" ) - { - modelDesc += " - " + QObject::tr( "Default Keyboard Model" ); - } - models.insert( modelDesc, model ); } } From 2e9a44269c89b3d8c10d8481b0c9d4f7f10c4852 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 12:35:21 +0100 Subject: [PATCH 03/15] [keyboard] Extracted strings from keyboard list --- src/modules/keyboard/KeyboardData_p.cxxtr | 812 ++++++++++++++++++++++ src/modules/keyboard/layout-extractor.py | 94 +++ 2 files changed, 906 insertions(+) create mode 100644 src/modules/keyboard/KeyboardData_p.cxxtr create mode 100644 src/modules/keyboard/layout-extractor.py diff --git a/src/modules/keyboard/KeyboardData_p.cxxtr b/src/modules/keyboard/KeyboardData_p.cxxtr new file mode 100644 index 000000000..678bb9807 --- /dev/null +++ b/src/modules/keyboard/KeyboardData_p.cxxtr @@ -0,0 +1,812 @@ +/* GENERATED FILE DO NOT EDIT +* +* === This file is part of Calamares - === +* +* SPDX-FileCopyrightText: no +* SPDX-License-Identifier: CC0-1.0 +* +* This file is derived from base.lst in the Xorg distribution +* +*/ + +/** THIS FILE EXISTS ONLY FOR TRANSLATIONS PURPOSES **/ + +// *INDENT-OFF* +// clang-format off +/* This returns a reference to local, which is a terrible idea. + * Good thing it's not meant to be compiled. + */ +static const QStringList& kb_models_table() +{ + return QStringList { + QObject::tr("A4Tech KB-21", "kb_models"), + QObject::tr("A4Tech KBS-8", "kb_models"), + QObject::tr("A4Tech Wireless Desktop RFKB-23", "kb_models"), + QObject::tr("Acer AirKey V", "kb_models"), + QObject::tr("Acer C300", "kb_models"), + QObject::tr("Acer Ferrari 4000", "kb_models"), + QObject::tr("Acer laptop", "kb_models"), + QObject::tr("Advance Scorpius KI", "kb_models"), + QObject::tr("Apple", "kb_models"), + QObject::tr("Apple Aluminium (ANSI)", "kb_models"), + QObject::tr("Apple Aluminium (ISO)", "kb_models"), + QObject::tr("Apple Aluminium (JIS)", "kb_models"), + QObject::tr("Apple laptop", "kb_models"), + QObject::tr("Asus laptop", "kb_models"), + QObject::tr("Azona RF2300 wireless Internet", "kb_models"), + QObject::tr("BTC 5090", "kb_models"), + QObject::tr("BTC 5113RF Multimedia", "kb_models"), + QObject::tr("BTC 5126T", "kb_models"), + QObject::tr("BTC 6301URF", "kb_models"), + QObject::tr("BTC 9000", "kb_models"), + QObject::tr("BTC 9000A", "kb_models"), + QObject::tr("BTC 9001AH", "kb_models"), + QObject::tr("BTC 9019U", "kb_models"), + QObject::tr("BTC 9116U Mini Wireless Internet and Gaming", "kb_models"), + QObject::tr("BenQ X-Touch", "kb_models"), + QObject::tr("BenQ X-Touch 730", "kb_models"), + QObject::tr("BenQ X-Touch 800", "kb_models"), + QObject::tr("Brother Internet", "kb_models"), + QObject::tr("Cherry B.UNLIMITED", "kb_models"), + QObject::tr("Cherry Blue Line CyBo@rd", "kb_models"), + QObject::tr("Cherry Blue Line CyBo@rd (alt.)", "kb_models"), + QObject::tr("Cherry CyBo@rd USB-Hub", "kb_models"), + QObject::tr("Cherry CyMotion Expert", "kb_models"), + QObject::tr("Cherry CyMotion Master Linux", "kb_models"), + QObject::tr("Cherry CyMotion Master XPress", "kb_models"), + QObject::tr("Chicony Internet", "kb_models"), + QObject::tr("Chicony KB-9885", "kb_models"), + QObject::tr("Chicony KU-0108", "kb_models"), + QObject::tr("Chicony KU-0420", "kb_models"), + QObject::tr("Chromebook", "kb_models"), + QObject::tr("Classmate PC", "kb_models"), + QObject::tr("Compaq Armada laptop", "kb_models"), + QObject::tr("Compaq Easy Access", "kb_models"), + QObject::tr("Compaq Internet (13 keys)", "kb_models"), + QObject::tr("Compaq Internet (18 keys)", "kb_models"), + QObject::tr("Compaq Internet (7 keys)", "kb_models"), + QObject::tr("Compaq Presario laptop", "kb_models"), + QObject::tr("Compaq iPaq", "kb_models"), + QObject::tr("Creative Desktop Wireless 7000", "kb_models"), + QObject::tr("DTK2000", "kb_models"), + QObject::tr("Dell", "kb_models"), + QObject::tr("Dell 101-key PC", "kb_models"), + QObject::tr("Dell Inspiron 6000/8000 laptop", "kb_models"), + QObject::tr("Dell Latitude laptop", "kb_models"), + QObject::tr("Dell Precision M laptop", "kb_models"), + QObject::tr("Dell Precision M65 laptop", "kb_models"), + QObject::tr("Dell SK-8125", "kb_models"), + QObject::tr("Dell SK-8135", "kb_models"), + QObject::tr("Dell USB Multimedia", "kb_models"), + QObject::tr("Dexxa Wireless Desktop", "kb_models"), + QObject::tr("Diamond 9801/9802", "kb_models"), + QObject::tr("Ennyah DKB-1008", "kb_models"), + QObject::tr("Everex STEPnote", "kb_models"), + QObject::tr("FL90", "kb_models"), + QObject::tr("Fujitsu-Siemens Amilo laptop", "kb_models"), + QObject::tr("Generic 101-key PC", "kb_models"), + QObject::tr("Generic 102-key PC", "kb_models"), + QObject::tr("Generic 104-key PC", "kb_models"), + QObject::tr("Generic 104-key PC with L-shaped Enter key", "kb_models"), + QObject::tr("Generic 105-key PC", "kb_models"), + QObject::tr("Generic 86-key PC", "kb_models"), + QObject::tr("Genius Comfy KB-12e", "kb_models"), + QObject::tr("Genius Comfy KB-16M/Multimedia KWD-910", "kb_models"), + QObject::tr("Genius Comfy KB-21e-Scroll", "kb_models"), + QObject::tr("Genius KB-19e NB", "kb_models"), + QObject::tr("Genius KKB-2050HS", "kb_models"), + QObject::tr("Gyration", "kb_models"), + QObject::tr("Happy Hacking", "kb_models"), + QObject::tr("Happy Hacking for Mac", "kb_models"), + QObject::tr("Hewlett-Packard Internet", "kb_models"), + QObject::tr("Hewlett-Packard Mini 110 laptop", "kb_models"), + QObject::tr("Hewlett-Packard NEC SK-2500 Multimedia", "kb_models"), + QObject::tr("Hewlett-Packard Omnibook 500", "kb_models"), + QObject::tr("Hewlett-Packard Omnibook 500 FA", "kb_models"), + QObject::tr("Hewlett-Packard Omnibook 6000/6100", "kb_models"), + QObject::tr("Hewlett-Packard Omnibook XE3 GC", "kb_models"), + QObject::tr("Hewlett-Packard Omnibook XE3 GF", "kb_models"), + QObject::tr("Hewlett-Packard Omnibook XT1000", "kb_models"), + QObject::tr("Hewlett-Packard Pavilion ZT1100", "kb_models"), + QObject::tr("Hewlett-Packard Pavilion dv5", "kb_models"), + QObject::tr("Hewlett-Packard nx9020", "kb_models"), + QObject::tr("Honeywell Euroboard", "kb_models"), + QObject::tr("IBM Rapid Access", "kb_models"), + QObject::tr("IBM Rapid Access II", "kb_models"), + QObject::tr("IBM Space Saver", "kb_models"), + QObject::tr("IBM ThinkPad 560Z/600/600E/A22E", "kb_models"), + QObject::tr("IBM ThinkPad R60/T60/R61/T61", "kb_models"), + QObject::tr("IBM ThinkPad Z60m/Z60t/Z61m/Z61t", "kb_models"), + QObject::tr("Keytronic FlexPro", "kb_models"), + QObject::tr("Kinesis", "kb_models"), + QObject::tr("Logitech", "kb_models"), + QObject::tr("Logitech Access", "kb_models"), + QObject::tr("Logitech Cordless Desktop", "kb_models"), + QObject::tr("Logitech Cordless Desktop (alt.)", "kb_models"), + QObject::tr("Logitech Cordless Desktop EX110", "kb_models"), + QObject::tr("Logitech Cordless Desktop LX-300", "kb_models"), + QObject::tr("Logitech Cordless Desktop Navigator", "kb_models"), + QObject::tr("Logitech Cordless Desktop Optical", "kb_models"), + QObject::tr("Logitech Cordless Desktop Pro (2nd alt.)", "kb_models"), + QObject::tr("Logitech Cordless Desktop iTouch", "kb_models"), + QObject::tr("Logitech Cordless Freedom/Desktop Navigator", "kb_models"), + QObject::tr("Logitech G15 extra keys via G15daemon", "kb_models"), + QObject::tr("Logitech Internet", "kb_models"), + QObject::tr("Logitech Internet 350", "kb_models"), + QObject::tr("Logitech Internet Navigator", "kb_models"), + QObject::tr("Logitech Ultra-X", "kb_models"), + QObject::tr("Logitech Ultra-X Cordless Media Desktop", "kb_models"), + QObject::tr("Logitech diNovo", "kb_models"), + QObject::tr("Logitech diNovo Edge", "kb_models"), + QObject::tr("Logitech iTouch", "kb_models"), + QObject::tr("Logitech iTouch Cordless Y-RB6", "kb_models"), + QObject::tr("Logitech iTouch Internet Navigator SE", "kb_models"), + QObject::tr("Logitech iTouch Internet Navigator SE USB", "kb_models"), + QObject::tr("MacBook/MacBook Pro", "kb_models"), + QObject::tr("MacBook/MacBook Pro (intl.)", "kb_models"), + QObject::tr("Macintosh", "kb_models"), + QObject::tr("Macintosh Old", "kb_models"), + QObject::tr("Memorex MX1998", "kb_models"), + QObject::tr("Memorex MX2500 EZ-Access", "kb_models"), + QObject::tr("Memorex MX2750", "kb_models"), + QObject::tr("Microsoft Comfort Curve 2000", "kb_models"), + QObject::tr("Microsoft Internet", "kb_models"), + QObject::tr("Microsoft Internet Pro (Swedish)", "kb_models"), + QObject::tr("Microsoft Natural", "kb_models"), + QObject::tr("Microsoft Natural Elite", "kb_models"), + QObject::tr("Microsoft Natural Ergonomic 4000", "kb_models"), + QObject::tr("Microsoft Natural Pro OEM", "kb_models"), + QObject::tr("Microsoft Natural Pro USB/Internet Pro", "kb_models"), + QObject::tr("Microsoft Natural Pro/Internet Pro", "kb_models"), + QObject::tr("Microsoft Natural Wireless Ergonomic 7000", "kb_models"), + QObject::tr("Microsoft Office Keyboard", "kb_models"), + QObject::tr("Microsoft Surface", "kb_models"), + QObject::tr("Microsoft Wireless Multimedia 1.0A", "kb_models"), + QObject::tr("NEC SK-1300", "kb_models"), + QObject::tr("NEC SK-2500", "kb_models"), + QObject::tr("NEC SK-6200", "kb_models"), + QObject::tr("NEC SK-7100", "kb_models"), + QObject::tr("Northgate OmniKey 101", "kb_models"), + QObject::tr("OLPC", "kb_models"), + QObject::tr("Ortek Multimedia/Internet MCK-800", "kb_models"), + QObject::tr("PC-98", "kb_models"), + QObject::tr("Propeller Voyager KTEZ-1000", "kb_models"), + QObject::tr("QTronix Scorpius 98N+", "kb_models"), + QObject::tr("SVEN Ergonomic 2500", "kb_models"), + QObject::tr("SVEN Slim 303", "kb_models"), + QObject::tr("Samsung SDM 4500P", "kb_models"), + QObject::tr("Samsung SDM 4510P", "kb_models"), + QObject::tr("Sanwa Supply SKB-KG3", "kb_models"), + QObject::tr("Silvercrest Multimedia Wireless", "kb_models"), + QObject::tr("SteelSeries Apex 300 (Apex RAW)", "kb_models"), + QObject::tr("Sun Type 6 (Japanese)", "kb_models"), + QObject::tr("Sun Type 6 USB (Japanese)", "kb_models"), + QObject::tr("Sun Type 6 USB (Unix)", "kb_models"), + QObject::tr("Sun Type 6/7 USB", "kb_models"), + QObject::tr("Sun Type 6/7 USB (European)", "kb_models"), + QObject::tr("Sun Type 7 USB", "kb_models"), + QObject::tr("Sun Type 7 USB (European)", "kb_models"), + QObject::tr("Sun Type 7 USB (Japanese)/Japanese 106-key", "kb_models"), + QObject::tr("Sun Type 7 USB (Unix)", "kb_models"), + QObject::tr("Super Power Multimedia", "kb_models"), + QObject::tr("Symplon PaceBook tablet", "kb_models"), + QObject::tr("Targa Visionary 811", "kb_models"), + QObject::tr("Toshiba Satellite S3000", "kb_models"), + QObject::tr("Truly Ergonomic 227", "kb_models"), + QObject::tr("Truly Ergonomic 229", "kb_models"), + QObject::tr("Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)", "kb_models"), + QObject::tr("Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)", "kb_models"), + QObject::tr("Trust Direct Access", "kb_models"), + QObject::tr("Trust Slimline", "kb_models"), + QObject::tr("Trust Wireless Classic", "kb_models"), + QObject::tr("TypeMatrix EZ-Reach 2020", "kb_models"), + QObject::tr("TypeMatrix EZ-Reach 2030 PS2", "kb_models"), + QObject::tr("TypeMatrix EZ-Reach 2030 USB", "kb_models"), + QObject::tr("TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)", "kb_models"), + QObject::tr("TypeMatrix EZ-Reach 2030 USB (106:JP mode)", "kb_models"), + QObject::tr("Unitek KB-1925", "kb_models"), + QObject::tr("ViewSonic KU-306 Internet", "kb_models"), + QObject::tr("Winbook Model XP5", "kb_models"), + QObject::tr("Yahoo! Internet", "kb_models"), + QObject::tr("eMachines m6800 laptop", "kb_models"), + QString() + }; +} + +/* This returns a reference to local, which is a terrible idea. + * Good thing it's not meant to be compiled. + */ +static const QStringList& kb_layouts_table() +{ + return QStringList { + QObject::tr("Afghani", "kb_layouts"), + QObject::tr("Albanian", "kb_layouts"), + QObject::tr("Amharic", "kb_layouts"), + QObject::tr("Arabic", "kb_layouts"), + QObject::tr("Arabic (Morocco)", "kb_layouts"), + QObject::tr("Arabic (Syria)", "kb_layouts"), + QObject::tr("Armenian", "kb_layouts"), + QObject::tr("Azerbaijani", "kb_layouts"), + QObject::tr("Bambara", "kb_layouts"), + QObject::tr("Bangla", "kb_layouts"), + QObject::tr("Belarusian", "kb_layouts"), + QObject::tr("Belgian", "kb_layouts"), + QObject::tr("Bosnian", "kb_layouts"), + QObject::tr("Braille", "kb_layouts"), + QObject::tr("Bulgarian", "kb_layouts"), + QObject::tr("Burmese", "kb_layouts"), + QObject::tr("Chinese", "kb_layouts"), + QObject::tr("Croatian", "kb_layouts"), + QObject::tr("Czech", "kb_layouts"), + QObject::tr("Danish", "kb_layouts"), + QObject::tr("Dhivehi", "kb_layouts"), + QObject::tr("Dutch", "kb_layouts"), + QObject::tr("Dzongkha", "kb_layouts"), + QObject::tr("English (Australian)", "kb_layouts"), + QObject::tr("English (Cameroon)", "kb_layouts"), + QObject::tr("English (Ghana)", "kb_layouts"), + QObject::tr("English (Nigeria)", "kb_layouts"), + QObject::tr("English (South Africa)", "kb_layouts"), + QObject::tr("English (UK)", "kb_layouts"), + QObject::tr("English (US)", "kb_layouts"), + QObject::tr("Esperanto", "kb_layouts"), + QObject::tr("Estonian", "kb_layouts"), + QObject::tr("Faroese", "kb_layouts"), + QObject::tr("Filipino", "kb_layouts"), + QObject::tr("Finnish", "kb_layouts"), + QObject::tr("French", "kb_layouts"), + QObject::tr("French (Canada)", "kb_layouts"), + QObject::tr("French (Democratic Republic of the Congo)", "kb_layouts"), + QObject::tr("French (Guinea)", "kb_layouts"), + QObject::tr("French (Togo)", "kb_layouts"), + QObject::tr("Georgian", "kb_layouts"), + QObject::tr("German", "kb_layouts"), + QObject::tr("German (Austria)", "kb_layouts"), + QObject::tr("German (Switzerland)", "kb_layouts"), + QObject::tr("Greek", "kb_layouts"), + QObject::tr("Hebrew", "kb_layouts"), + QObject::tr("Hungarian", "kb_layouts"), + QObject::tr("Icelandic", "kb_layouts"), + QObject::tr("Indian", "kb_layouts"), + QObject::tr("Indonesian (Arab Melayu, phonetic)", "kb_layouts"), + QObject::tr("Indonesian (Javanese)", "kb_layouts"), + QObject::tr("Iraqi", "kb_layouts"), + QObject::tr("Irish", "kb_layouts"), + QObject::tr("Italian", "kb_layouts"), + QObject::tr("Japanese", "kb_layouts"), + QObject::tr("Japanese (PC-98)", "kb_layouts"), + QObject::tr("Kabylian (azerty layout, no dead keys)", "kb_layouts"), + QObject::tr("Kazakh", "kb_layouts"), + QObject::tr("Khmer (Cambodia)", "kb_layouts"), + QObject::tr("Korean", "kb_layouts"), + QObject::tr("Kyrgyz", "kb_layouts"), + QObject::tr("Lao", "kb_layouts"), + QObject::tr("Latvian", "kb_layouts"), + QObject::tr("Lithuanian", "kb_layouts"), + QObject::tr("Macedonian", "kb_layouts"), + QObject::tr("Malay (Jawi, Arabic Keyboard)", "kb_layouts"), + QObject::tr("Maltese", "kb_layouts"), + QObject::tr("Maori", "kb_layouts"), + QObject::tr("Moldavian", "kb_layouts"), + QObject::tr("Mongolian", "kb_layouts"), + QObject::tr("Montenegrin", "kb_layouts"), + QObject::tr("Nepali", "kb_layouts"), + QObject::tr("Norwegian", "kb_layouts"), + QObject::tr("Persian", "kb_layouts"), + QObject::tr("Polish", "kb_layouts"), + QObject::tr("Portuguese", "kb_layouts"), + QObject::tr("Portuguese (Brazil)", "kb_layouts"), + QObject::tr("Romanian", "kb_layouts"), + QObject::tr("Russian", "kb_layouts"), + QObject::tr("Serbian", "kb_layouts"), + QObject::tr("Sinhala (phonetic)", "kb_layouts"), + QObject::tr("Slovak", "kb_layouts"), + QObject::tr("Slovenian", "kb_layouts"), + QObject::tr("Spanish", "kb_layouts"), + QObject::tr("Spanish (Latin American)", "kb_layouts"), + QObject::tr("Swahili (Kenya)", "kb_layouts"), + QObject::tr("Swahili (Tanzania)", "kb_layouts"), + QObject::tr("Swedish", "kb_layouts"), + QObject::tr("Taiwanese", "kb_layouts"), + QObject::tr("Tajik", "kb_layouts"), + QObject::tr("Thai", "kb_layouts"), + QObject::tr("Tswana", "kb_layouts"), + QObject::tr("Turkish", "kb_layouts"), + QObject::tr("Turkmen", "kb_layouts"), + QObject::tr("Ukrainian", "kb_layouts"), + QObject::tr("Urdu (Pakistan)", "kb_layouts"), + QObject::tr("Uzbek", "kb_layouts"), + QObject::tr("Vietnamese", "kb_layouts"), + QObject::tr("Wolof", "kb_layouts"), + QString() + }; +} + +/* This returns a reference to local, which is a terrible idea. + * Good thing it's not meant to be compiled. + */ +static const QStringList& kb_variants_table() +{ + return QStringList { + QObject::tr("Akan", "kb_variants"), + QObject::tr("Albanian (Plisi)", "kb_variants"), + QObject::tr("Albanian (Veqilharxhi)", "kb_variants"), + QObject::tr("Arabic (AZERTY)", "kb_variants"), + QObject::tr("Arabic (AZERTY, Eastern Arabic numerals)", "kb_variants"), + QObject::tr("Arabic (Algeria)", "kb_variants"), + QObject::tr("Arabic (Buckwalter)", "kb_variants"), + QObject::tr("Arabic (Eastern Arabic numerals)", "kb_variants"), + QObject::tr("Arabic (Macintosh)", "kb_variants"), + QObject::tr("Arabic (OLPC)", "kb_variants"), + QObject::tr("Arabic (Pakistan)", "kb_variants"), + QObject::tr("Arabic (QWERTY)", "kb_variants"), + QObject::tr("Arabic (QWERTY, Eastern Arabic numerals)", "kb_variants"), + QObject::tr("Armenian (alt. eastern)", "kb_variants"), + QObject::tr("Armenian (alt. phonetic)", "kb_variants"), + QObject::tr("Armenian (eastern)", "kb_variants"), + QObject::tr("Armenian (phonetic)", "kb_variants"), + QObject::tr("Armenian (western)", "kb_variants"), + QObject::tr("Asturian (Spain, with bottom-dot H and L)", "kb_variants"), + QObject::tr("Avatime", "kb_variants"), + QObject::tr("Azerbaijani (Cyrillic)", "kb_variants"), + QObject::tr("Bangla (India)", "kb_variants"), + QObject::tr("Bangla (India, Baishakhi Inscript)", "kb_variants"), + QObject::tr("Bangla (India, Baishakhi)", "kb_variants"), + QObject::tr("Bangla (India, Bornona)", "kb_variants"), + QObject::tr("Bangla (India, Gitanjali)", "kb_variants"), + QObject::tr("Bangla (India, Probhat)", "kb_variants"), + QObject::tr("Bangla (Probhat)", "kb_variants"), + QObject::tr("Bashkirian", "kb_variants"), + QObject::tr("Belarusian (Latin)", "kb_variants"), + QObject::tr("Belarusian (intl.)", "kb_variants"), + QObject::tr("Belarusian (legacy)", "kb_variants"), + QObject::tr("Belgian (ISO, alt.)", "kb_variants"), + QObject::tr("Belgian (Latin-9 only, alt.)", "kb_variants"), + QObject::tr("Belgian (Sun dead keys)", "kb_variants"), + QObject::tr("Belgian (Sun dead keys, alt.)", "kb_variants"), + QObject::tr("Belgian (Wang 724 AZERTY)", "kb_variants"), + QObject::tr("Belgian (alt.)", "kb_variants"), + QObject::tr("Belgian (no dead keys)", "kb_variants"), + QObject::tr("Berber (Morocco, Tifinagh alt.)", "kb_variants"), + QObject::tr("Berber (Morocco, Tifinagh extended phonetic)", "kb_variants"), + QObject::tr("Berber (Morocco, Tifinagh extended)", "kb_variants"), + QObject::tr("Berber (Morocco, Tifinagh phonetic)", "kb_variants"), + QObject::tr("Berber (Morocco, Tifinagh phonetic, alt.)", "kb_variants"), + QObject::tr("Berber (Morocco, Tifinagh)", "kb_variants"), + QObject::tr("Bosnian (US)", "kb_variants"), + QObject::tr("Bosnian (US, with Bosnian digraphs)", "kb_variants"), + QObject::tr("Bosnian (with Bosnian digraphs)", "kb_variants"), + QObject::tr("Bosnian (with guillemets)", "kb_variants"), + QObject::tr("Braille (left-handed inverted thumb)", "kb_variants"), + QObject::tr("Braille (left-handed)", "kb_variants"), + QObject::tr("Braille (right-handed inverted thumb)", "kb_variants"), + QObject::tr("Braille (right-handed)", "kb_variants"), + QObject::tr("Bulgarian (enhanced)", "kb_variants"), + QObject::tr("Bulgarian (new phonetic)", "kb_variants"), + QObject::tr("Bulgarian (traditional phonetic)", "kb_variants"), + QObject::tr("Burmese Zawgyi", "kb_variants"), + QObject::tr("Cameroon (AZERTY, intl.)", "kb_variants"), + QObject::tr("Cameroon (Dvorak, intl.)", "kb_variants"), + QObject::tr("Cameroon Multilingual (QWERTY, intl.)", "kb_variants"), + QObject::tr("Canadian (intl.)", "kb_variants"), + QObject::tr("Canadian (intl., 1st part)", "kb_variants"), + QObject::tr("Canadian (intl., 2nd part)", "kb_variants"), + QObject::tr("Catalan (Spain, with middle-dot L)", "kb_variants"), + QObject::tr("Cherokee", "kb_variants"), + QObject::tr("Chuvash", "kb_variants"), + QObject::tr("Chuvash (Latin)", "kb_variants"), + QObject::tr("CloGaelach", "kb_variants"), + QObject::tr("Crimean Tatar (Turkish Alt-Q)", "kb_variants"), + QObject::tr("Crimean Tatar (Turkish F)", "kb_variants"), + QObject::tr("Crimean Tatar (Turkish Q)", "kb_variants"), + QObject::tr("Croatian (US)", "kb_variants"), + QObject::tr("Croatian (US, with Croatian digraphs)", "kb_variants"), + QObject::tr("Croatian (with Croatian digraphs)", "kb_variants"), + QObject::tr("Croatian (with guillemets)", "kb_variants"), + QObject::tr("Czech (QWERTY)", "kb_variants"), + QObject::tr("Czech (QWERTY, Macintosh)", "kb_variants"), + QObject::tr("Czech (QWERTY, extended backslash)", "kb_variants"), + QObject::tr("Czech (UCW, only accented letters)", "kb_variants"), + QObject::tr("Czech (US, Dvorak, UCW support)", "kb_variants"), + QObject::tr("Czech (with <\|> key)", "kb_variants"), + QObject::tr("Danish (Dvorak)", "kb_variants"), + QObject::tr("Danish (Macintosh)", "kb_variants"), + QObject::tr("Danish (Macintosh, no dead keys)", "kb_variants"), + QObject::tr("Danish (Windows)", "kb_variants"), + QObject::tr("Danish (no dead keys)", "kb_variants"), + QObject::tr("Dutch (Macintosh)", "kb_variants"), + QObject::tr("Dutch (Sun dead keys)", "kb_variants"), + QObject::tr("Dutch (standard)", "kb_variants"), + QObject::tr("English (Canada)", "kb_variants"), + QObject::tr("English (Colemak)", "kb_variants"), + QObject::tr("English (Dvorak)", "kb_variants"), + QObject::tr("English (Dvorak, alt. intl.)", "kb_variants"), + QObject::tr("English (Dvorak, intl., with dead keys)", "kb_variants"), + QObject::tr("English (Dvorak, left-handed)", "kb_variants"), + QObject::tr("English (Dvorak, right-handed)", "kb_variants"), + QObject::tr("English (Ghana, GILLBT)", "kb_variants"), + QObject::tr("English (Ghana, multilingual)", "kb_variants"), + QObject::tr("English (India, with rupee)", "kb_variants"), + QObject::tr("English (Macintosh)", "kb_variants"), + QObject::tr("English (Mali, US, Macintosh)", "kb_variants"), + QObject::tr("English (Mali, US, intl.)", "kb_variants"), + QObject::tr("English (Norman)", "kb_variants"), + QObject::tr("English (UK, Colemak)", "kb_variants"), + QObject::tr("English (UK, Dvorak)", "kb_variants"), + QObject::tr("English (UK, Dvorak, with UK punctuation)", "kb_variants"), + QObject::tr("English (UK, Macintosh)", "kb_variants"), + QObject::tr("English (UK, Macintosh, intl.)", "kb_variants"), + QObject::tr("English (UK, extended, Windows)", "kb_variants"), + QObject::tr("English (UK, intl., with dead keys)", "kb_variants"), + QObject::tr("English (US, Symbolic)", "kb_variants"), + QObject::tr("English (US, alt. intl.)", "kb_variants"), + QObject::tr("English (US, euro on 5)", "kb_variants"), + QObject::tr("English (US, intl., with dead keys)", "kb_variants"), + QObject::tr("English (Workman)", "kb_variants"), + QObject::tr("English (Workman, intl., with dead keys)", "kb_variants"), + QObject::tr("English (classic Dvorak)", "kb_variants"), + QObject::tr("English (intl., with AltGr dead keys)", "kb_variants"), + QObject::tr("English (programmer Dvorak)", "kb_variants"), + QObject::tr("English (the divide/multiply toggle the layout)", "kb_variants"), + QObject::tr("Esperanto (Brazil, Nativo)", "kb_variants"), + QObject::tr("Esperanto (Portugal, Nativo)", "kb_variants"), + QObject::tr("Esperanto (legacy)", "kb_variants"), + QObject::tr("Estonian (Dvorak)", "kb_variants"), + QObject::tr("Estonian (US)", "kb_variants"), + QObject::tr("Estonian (no dead keys)", "kb_variants"), + QObject::tr("Ewe", "kb_variants"), + QObject::tr("Faroese (no dead keys)", "kb_variants"), + QObject::tr("Filipino (Capewell-Dvorak, Baybayin)", "kb_variants"), + QObject::tr("Filipino (Capewell-Dvorak, Latin)", "kb_variants"), + QObject::tr("Filipino (Capewell-QWERF 2006, Baybayin)", "kb_variants"), + QObject::tr("Filipino (Capewell-QWERF 2006, Latin)", "kb_variants"), + QObject::tr("Filipino (Colemak, Baybayin)", "kb_variants"), + QObject::tr("Filipino (Colemak, Latin)", "kb_variants"), + QObject::tr("Filipino (Dvorak, Baybayin)", "kb_variants"), + QObject::tr("Filipino (Dvorak, Latin)", "kb_variants"), + QObject::tr("Filipino (QWERTY, Baybayin)", "kb_variants"), + QObject::tr("Finnish (Macintosh)", "kb_variants"), + QObject::tr("Finnish (Windows)", "kb_variants"), + QObject::tr("Finnish (classic)", "kb_variants"), + QObject::tr("Finnish (classic, no dead keys)", "kb_variants"), + QObject::tr("French (AZERTY)", "kb_variants"), + QObject::tr("French (AZERTY, AFNOR)", "kb_variants"), + QObject::tr("French (BEPO)", "kb_variants"), + QObject::tr("French (BEPO, AFNOR)", "kb_variants"), + QObject::tr("French (BEPO, Latin-9 only)", "kb_variants"), + QObject::tr("French (Breton)", "kb_variants"), + QObject::tr("French (Cameroon)", "kb_variants"), + QObject::tr("French (Canada, Dvorak)", "kb_variants"), + QObject::tr("French (Canada, legacy)", "kb_variants"), + QObject::tr("French (Dvorak)", "kb_variants"), + QObject::tr("French (Macintosh)", "kb_variants"), + QObject::tr("French (Mali, alt.)", "kb_variants"), + QObject::tr("French (Morocco)", "kb_variants"), + QObject::tr("French (Sun dead keys)", "kb_variants"), + QObject::tr("French (Switzerland)", "kb_variants"), + QObject::tr("French (Switzerland, Macintosh)", "kb_variants"), + QObject::tr("French (Switzerland, Sun dead keys)", "kb_variants"), + QObject::tr("French (Switzerland, no dead keys)", "kb_variants"), + QObject::tr("French (US)", "kb_variants"), + QObject::tr("French (alt.)", "kb_variants"), + QObject::tr("French (alt., Latin-9 only)", "kb_variants"), + QObject::tr("French (alt., Sun dead keys)", "kb_variants"), + QObject::tr("French (alt., no dead keys)", "kb_variants"), + QObject::tr("French (legacy, alt.)", "kb_variants"), + QObject::tr("French (legacy, alt., Sun dead keys)", "kb_variants"), + QObject::tr("French (legacy, alt., no dead keys)", "kb_variants"), + QObject::tr("French (no dead keys)", "kb_variants"), + QObject::tr("Friulian (Italy)", "kb_variants"), + QObject::tr("Fula", "kb_variants"), + QObject::tr("Ga", "kb_variants"), + QObject::tr("Georgian (France, AZERTY Tskapo)", "kb_variants"), + QObject::tr("Georgian (Italy)", "kb_variants"), + QObject::tr("Georgian (MESS)", "kb_variants"), + QObject::tr("Georgian (ergonomic)", "kb_variants"), + QObject::tr("German (Austria, Macintosh)", "kb_variants"), + QObject::tr("German (Austria, Sun dead keys)", "kb_variants"), + QObject::tr("German (Austria, no dead keys)", "kb_variants"), + QObject::tr("German (Dvorak)", "kb_variants"), + QObject::tr("German (E1)", "kb_variants"), + QObject::tr("German (E2)", "kb_variants"), + QObject::tr("German (Macintosh)", "kb_variants"), + QObject::tr("German (Macintosh, no dead keys)", "kb_variants"), + QObject::tr("German (Neo 2)", "kb_variants"), + QObject::tr("German (QWERTY)", "kb_variants"), + QObject::tr("German (Sun dead keys)", "kb_variants"), + QObject::tr("German (Switzerland, Macintosh)", "kb_variants"), + QObject::tr("German (Switzerland, Sun dead keys)", "kb_variants"), + QObject::tr("German (Switzerland, legacy)", "kb_variants"), + QObject::tr("German (Switzerland, no dead keys)", "kb_variants"), + QObject::tr("German (T3)", "kb_variants"), + QObject::tr("German (US)", "kb_variants"), + QObject::tr("German (dead acute)", "kb_variants"), + QObject::tr("German (dead grave acute)", "kb_variants"), + QObject::tr("German (dead tilde)", "kb_variants"), + QObject::tr("German (no dead keys)", "kb_variants"), + QObject::tr("Greek (extended)", "kb_variants"), + QObject::tr("Greek (no dead keys)", "kb_variants"), + QObject::tr("Greek (polytonic)", "kb_variants"), + QObject::tr("Greek (simple)", "kb_variants"), + QObject::tr("Gujarati", "kb_variants"), + QObject::tr("Hanyu Pinyin (with AltGr dead keys)", "kb_variants"), + QObject::tr("Hausa (Ghana)", "kb_variants"), + QObject::tr("Hausa (Nigeria)", "kb_variants"), + QObject::tr("Hawaiian", "kb_variants"), + QObject::tr("Hebrew (Biblical, Tiro)", "kb_variants"), + QObject::tr("Hebrew (lyx)", "kb_variants"), + QObject::tr("Hebrew (phonetic)", "kb_variants"), + QObject::tr("Hindi (Bolnagri)", "kb_variants"), + QObject::tr("Hindi (KaGaPa, phonetic)", "kb_variants"), + QObject::tr("Hindi (Wx)", "kb_variants"), + QObject::tr("Hungarian (QWERTY)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 101-key, comma, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 101-key, comma, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 101-key, dot, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 101-key, dot, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 102-key, comma, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 102-key, comma, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 102-key, dot, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTY, 102-key, dot, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 101-key, comma, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 101-key, comma, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 101-key, dot, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 101-key, dot, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 102-key, comma, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 102-key, comma, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 102-key, dot, dead keys)", "kb_variants"), + QObject::tr("Hungarian (QWERTZ, 102-key, dot, no dead keys)", "kb_variants"), + QObject::tr("Hungarian (no dead keys)", "kb_variants"), + QObject::tr("Hungarian (standard)", "kb_variants"), + QObject::tr("Icelandic (Dvorak)", "kb_variants"), + QObject::tr("Icelandic (Macintosh)", "kb_variants"), + QObject::tr("Icelandic (Macintosh, legacy)", "kb_variants"), + QObject::tr("Icelandic (Sun dead keys)", "kb_variants"), + QObject::tr("Icelandic (no dead keys)", "kb_variants"), + QObject::tr("Igbo", "kb_variants"), + QObject::tr("Indic (phonetic, IPA)", "kb_variants"), + QObject::tr("Indonesian (Arab Melayu, extended phonetic)", "kb_variants"), + QObject::tr("Inuktitut", "kb_variants"), + QObject::tr("Irish (UnicodeExpert)", "kb_variants"), + QObject::tr("Italian (IBM 142)", "kb_variants"), + QObject::tr("Italian (Macintosh)", "kb_variants"), + QObject::tr("Italian (US)", "kb_variants"), + QObject::tr("Italian (Windows)", "kb_variants"), + QObject::tr("Italian (intl., with dead keys)", "kb_variants"), + QObject::tr("Italian (no dead keys)", "kb_variants"), + QObject::tr("Japanese (Dvorak)", "kb_variants"), + QObject::tr("Japanese (Kana 86)", "kb_variants"), + QObject::tr("Japanese (Kana)", "kb_variants"), + QObject::tr("Japanese (Macintosh)", "kb_variants"), + QObject::tr("Japanese (OADG 109A)", "kb_variants"), + QObject::tr("Kabylian (Algeria, Tifinagh)", "kb_variants"), + QObject::tr("Kabylian (azerty layout, with dead keys)", "kb_variants"), + QObject::tr("Kabylian (qwerty-gb layout, with dead keys)", "kb_variants"), + QObject::tr("Kabylian (qwerty-us layout, with dead keys)", "kb_variants"), + QObject::tr("Kalmyk", "kb_variants"), + QObject::tr("Kannada", "kb_variants"), + QObject::tr("Kannada (KaGaPa, phonetic)", "kb_variants"), + QObject::tr("Kashubian", "kb_variants"), + QObject::tr("Kazakh (Latin)", "kb_variants"), + QObject::tr("Kazakh (extended)", "kb_variants"), + QObject::tr("Kazakh (with Russian)", "kb_variants"), + QObject::tr("Kikuyu", "kb_variants"), + QObject::tr("Komi", "kb_variants"), + QObject::tr("Korean (101/104-key compatible)", "kb_variants"), + QObject::tr("Kurdish (Iran, Arabic-Latin)", "kb_variants"), + QObject::tr("Kurdish (Iran, F)", "kb_variants"), + QObject::tr("Kurdish (Iran, Latin Alt-Q)", "kb_variants"), + QObject::tr("Kurdish (Iran, Latin Q)", "kb_variants"), + QObject::tr("Kurdish (Iraq, Arabic-Latin)", "kb_variants"), + QObject::tr("Kurdish (Iraq, F)", "kb_variants"), + QObject::tr("Kurdish (Iraq, Latin Alt-Q)", "kb_variants"), + QObject::tr("Kurdish (Iraq, Latin Q)", "kb_variants"), + QObject::tr("Kurdish (Syria, F)", "kb_variants"), + QObject::tr("Kurdish (Syria, Latin Alt-Q)", "kb_variants"), + QObject::tr("Kurdish (Syria, Latin Q)", "kb_variants"), + QObject::tr("Kurdish (Turkey, F)", "kb_variants"), + QObject::tr("Kurdish (Turkey, Latin Alt-Q)", "kb_variants"), + QObject::tr("Kurdish (Turkey, Latin Q)", "kb_variants"), + QObject::tr("Kyrgyz (phonetic)", "kb_variants"), + QObject::tr("Lao (STEA)", "kb_variants"), + QObject::tr("Latvian (F)", "kb_variants"), + QObject::tr("Latvian (adapted)", "kb_variants"), + QObject::tr("Latvian (apostrophe)", "kb_variants"), + QObject::tr("Latvian (ergonomic, ŪGJRMV)", "kb_variants"), + QObject::tr("Latvian (modern)", "kb_variants"), + QObject::tr("Latvian (tilde)", "kb_variants"), + QObject::tr("Lithuanian (IBM LST 1205-92)", "kb_variants"), + QObject::tr("Lithuanian (LEKP)", "kb_variants"), + QObject::tr("Lithuanian (LEKPa)", "kb_variants"), + QObject::tr("Lithuanian (US)", "kb_variants"), + QObject::tr("Lithuanian (standard)", "kb_variants"), + QObject::tr("Lower Sorbian", "kb_variants"), + QObject::tr("Lower Sorbian (QWERTZ)", "kb_variants"), + QObject::tr("Macedonian (no dead keys)", "kb_variants"), + QObject::tr("Malay (Jawi, phonetic)", "kb_variants"), + QObject::tr("Malayalam", "kb_variants"), + QObject::tr("Malayalam (Lalitha)", "kb_variants"), + QObject::tr("Malayalam (enhanced Inscript, with rupee)", "kb_variants"), + QObject::tr("Maltese (UK, with AltGr overrides)", "kb_variants"), + QObject::tr("Maltese (US layout with AltGr overrides)", "kb_variants"), + QObject::tr("Maltese (US)", "kb_variants"), + QObject::tr("Manipuri (Eeyek)", "kb_variants"), + QObject::tr("Marathi (KaGaPa, phonetic)", "kb_variants"), + QObject::tr("Marathi (enhanced Inscript)", "kb_variants"), + QObject::tr("Mari", "kb_variants"), + QObject::tr("Mmuock", "kb_variants"), + QObject::tr("Moldavian (Gagauz)", "kb_variants"), + QObject::tr("Mongolian (Bichig)", "kb_variants"), + QObject::tr("Mongolian (Galik)", "kb_variants"), + QObject::tr("Mongolian (Manchu Galik)", "kb_variants"), + QObject::tr("Mongolian (Manchu)", "kb_variants"), + QObject::tr("Mongolian (Todo Galik)", "kb_variants"), + QObject::tr("Mongolian (Todo)", "kb_variants"), + QObject::tr("Mongolian (Xibe)", "kb_variants"), + QObject::tr("Montenegrin (Cyrillic)", "kb_variants"), + QObject::tr("Montenegrin (Cyrillic, ZE and ZHE swapped)", "kb_variants"), + QObject::tr("Montenegrin (Cyrillic, with guillemets)", "kb_variants"), + QObject::tr("Montenegrin (Latin, QWERTY)", "kb_variants"), + QObject::tr("Montenegrin (Latin, Unicode)", "kb_variants"), + QObject::tr("Montenegrin (Latin, Unicode, QWERTY)", "kb_variants"), + QObject::tr("Montenegrin (Latin, with guillemets)", "kb_variants"), + QObject::tr("Northern Saami (Finland)", "kb_variants"), + QObject::tr("Northern Saami (Norway)", "kb_variants"), + QObject::tr("Northern Saami (Norway, no dead keys)", "kb_variants"), + QObject::tr("Northern Saami (Sweden)", "kb_variants"), + QObject::tr("Norwegian (Colemak)", "kb_variants"), + QObject::tr("Norwegian (Dvorak)", "kb_variants"), + QObject::tr("Norwegian (Macintosh)", "kb_variants"), + QObject::tr("Norwegian (Macintosh, no dead keys)", "kb_variants"), + QObject::tr("Norwegian (Windows)", "kb_variants"), + QObject::tr("Norwegian (no dead keys)", "kb_variants"), + QObject::tr("Occitan", "kb_variants"), + QObject::tr("Ogham", "kb_variants"), + QObject::tr("Ogham (IS434)", "kb_variants"), + QObject::tr("Ol Chiki", "kb_variants"), + QObject::tr("Oriya", "kb_variants"), + QObject::tr("Ossetian (Georgia)", "kb_variants"), + QObject::tr("Ossetian (Windows)", "kb_variants"), + QObject::tr("Ossetian (legacy)", "kb_variants"), + QObject::tr("Pannonian Rusyn", "kb_variants"), + QObject::tr("Pashto", "kb_variants"), + QObject::tr("Pashto (Afghanistan, OLPC)", "kb_variants"), + QObject::tr("Persian (Afghanistan, Dari OLPC)", "kb_variants"), + QObject::tr("Persian (with Persian keypad)", "kb_variants"), + QObject::tr("Polish (British keyboard)", "kb_variants"), + QObject::tr("Polish (Dvorak)", "kb_variants"), + QObject::tr("Polish (Dvorak, with Polish quotes on key 1)", "kb_variants"), + QObject::tr("Polish (Dvorak, with Polish quotes on quotemark key)", "kb_variants"), + QObject::tr("Polish (QWERTZ)", "kb_variants"), + QObject::tr("Polish (legacy)", "kb_variants"), + QObject::tr("Polish (programmer Dvorak)", "kb_variants"), + QObject::tr("Portuguese (Brazil, Dvorak)", "kb_variants"), + QObject::tr("Portuguese (Brazil, IBM/Lenovo ThinkPad)", "kb_variants"), + QObject::tr("Portuguese (Brazil, Nativo for US keyboards)", "kb_variants"), + QObject::tr("Portuguese (Brazil, Nativo)", "kb_variants"), + QObject::tr("Portuguese (Brazil, no dead keys)", "kb_variants"), + QObject::tr("Portuguese (Macintosh)", "kb_variants"), + QObject::tr("Portuguese (Macintosh, Sun dead keys)", "kb_variants"), + QObject::tr("Portuguese (Macintosh, no dead keys)", "kb_variants"), + QObject::tr("Portuguese (Nativo for US keyboards)", "kb_variants"), + QObject::tr("Portuguese (Nativo)", "kb_variants"), + QObject::tr("Portuguese (Sun dead keys)", "kb_variants"), + QObject::tr("Portuguese (no dead keys)", "kb_variants"), + QObject::tr("Punjabi (Gurmukhi Jhelum)", "kb_variants"), + QObject::tr("Punjabi (Gurmukhi)", "kb_variants"), + QObject::tr("Romanian (Germany)", "kb_variants"), + QObject::tr("Romanian (Germany, no dead keys)", "kb_variants"), + QObject::tr("Romanian (Windows)", "kb_variants"), + QObject::tr("Romanian (cedilla)", "kb_variants"), + QObject::tr("Romanian (standard cedilla)", "kb_variants"), + QObject::tr("Romanian (standard)", "kb_variants"), + QObject::tr("Russian (Belarus)", "kb_variants"), + QObject::tr("Russian (Czech, phonetic)", "kb_variants"), + QObject::tr("Russian (DOS)", "kb_variants"), + QObject::tr("Russian (Georgia)", "kb_variants"), + QObject::tr("Russian (Germany, phonetic)", "kb_variants"), + QObject::tr("Russian (Kazakhstan, with Kazakh)", "kb_variants"), + QObject::tr("Russian (Macintosh)", "kb_variants"), + QObject::tr("Russian (Poland, phonetic Dvorak)", "kb_variants"), + QObject::tr("Russian (Sweden, phonetic)", "kb_variants"), + QObject::tr("Russian (Sweden, phonetic, no dead keys)", "kb_variants"), + QObject::tr("Russian (US, phonetic)", "kb_variants"), + QObject::tr("Russian (Ukraine, standard RSTU)", "kb_variants"), + QObject::tr("Russian (legacy)", "kb_variants"), + QObject::tr("Russian (phonetic)", "kb_variants"), + QObject::tr("Russian (phonetic, AZERTY)", "kb_variants"), + QObject::tr("Russian (phonetic, Dvorak)", "kb_variants"), + QObject::tr("Russian (phonetic, French)", "kb_variants"), + QObject::tr("Russian (phonetic, Windows)", "kb_variants"), + QObject::tr("Russian (phonetic, YAZHERTY)", "kb_variants"), + QObject::tr("Russian (typewriter)", "kb_variants"), + QObject::tr("Russian (typewriter, legacy)", "kb_variants"), + QObject::tr("Saisiyat (Taiwan)", "kb_variants"), + QObject::tr("Samogitian", "kb_variants"), + QObject::tr("Sanskrit (KaGaPa, phonetic)", "kb_variants"), + QObject::tr("Serbian (Cyrillic, ZE and ZHE swapped)", "kb_variants"), + QObject::tr("Serbian (Cyrillic, with guillemets)", "kb_variants"), + QObject::tr("Serbian (Latin)", "kb_variants"), + QObject::tr("Serbian (Latin, QWERTY)", "kb_variants"), + QObject::tr("Serbian (Latin, Unicode)", "kb_variants"), + QObject::tr("Serbian (Latin, Unicode, QWERTY)", "kb_variants"), + QObject::tr("Serbian (Latin, with guillemets)", "kb_variants"), + QObject::tr("Serbian (Russia)", "kb_variants"), + QObject::tr("Serbo-Croatian (US)", "kb_variants"), + QObject::tr("Sicilian", "kb_variants"), + QObject::tr("Silesian", "kb_variants"), + QObject::tr("Sindhi", "kb_variants"), + QObject::tr("Sinhala (US)", "kb_variants"), + QObject::tr("Slovak (QWERTY)", "kb_variants"), + QObject::tr("Slovak (QWERTY, extended backslash)", "kb_variants"), + QObject::tr("Slovak (extended backslash)", "kb_variants"), + QObject::tr("Slovenian (US)", "kb_variants"), + QObject::tr("Slovenian (with guillemets)", "kb_variants"), + QObject::tr("Spanish (Dvorak)", "kb_variants"), + QObject::tr("Spanish (Latin American, Colemak for gaming)", "kb_variants"), + QObject::tr("Spanish (Latin American, Colemak)", "kb_variants"), + QObject::tr("Spanish (Latin American, Dvorak)", "kb_variants"), + QObject::tr("Spanish (Latin American, Sun dead keys)", "kb_variants"), + QObject::tr("Spanish (Latin American, dead tilde)", "kb_variants"), + QObject::tr("Spanish (Latin American, no dead keys)", "kb_variants"), + QObject::tr("Spanish (Macintosh)", "kb_variants"), + QObject::tr("Spanish (Sun dead keys)", "kb_variants"), + QObject::tr("Spanish (Windows)", "kb_variants"), + QObject::tr("Spanish (dead tilde)", "kb_variants"), + QObject::tr("Spanish (no dead keys)", "kb_variants"), + QObject::tr("Swedish (Dvorak)", "kb_variants"), + QObject::tr("Swedish (Dvorak, intl.)", "kb_variants"), + QObject::tr("Swedish (Macintosh)", "kb_variants"), + QObject::tr("Swedish (Svdvorak)", "kb_variants"), + QObject::tr("Swedish (US)", "kb_variants"), + QObject::tr("Swedish (no dead keys)", "kb_variants"), + QObject::tr("Swedish Sign Language", "kb_variants"), + QObject::tr("Syriac", "kb_variants"), + QObject::tr("Syriac (phonetic)", "kb_variants"), + QObject::tr("Taiwanese (indigenous)", "kb_variants"), + QObject::tr("Tajik (legacy)", "kb_variants"), + QObject::tr("Tamil (Inscript)", "kb_variants"), + QObject::tr("Tamil (Sri Lanka, TamilNet '99)", "kb_variants"), + QObject::tr("Tamil (Sri Lanka, TamilNet '99, TAB encoding)", "kb_variants"), + QObject::tr("Tamil (TamilNet '99 with Tamil numerals)", "kb_variants"), + QObject::tr("Tamil (TamilNet '99)", "kb_variants"), + QObject::tr("Tamil (TamilNet '99, TAB encoding)", "kb_variants"), + QObject::tr("Tamil (TamilNet '99, TSCII encoding)", "kb_variants"), + QObject::tr("Tatar", "kb_variants"), + QObject::tr("Telugu", "kb_variants"), + QObject::tr("Telugu (KaGaPa, phonetic)", "kb_variants"), + QObject::tr("Telugu (Sarala)", "kb_variants"), + QObject::tr("Thai (Pattachote)", "kb_variants"), + QObject::tr("Thai (TIS-820.2538)", "kb_variants"), + QObject::tr("Tibetan", "kb_variants"), + QObject::tr("Tibetan (with ASCII numerals)", "kb_variants"), + QObject::tr("Turkish (Alt-Q)", "kb_variants"), + QObject::tr("Turkish (F)", "kb_variants"), + QObject::tr("Turkish (Germany)", "kb_variants"), + QObject::tr("Turkish (Sun dead keys)", "kb_variants"), + QObject::tr("Turkish (intl., with dead keys)", "kb_variants"), + QObject::tr("Turkmen (Alt-Q)", "kb_variants"), + QObject::tr("Udmurt", "kb_variants"), + QObject::tr("Ukrainian (Windows)", "kb_variants"), + QObject::tr("Ukrainian (homophonic)", "kb_variants"), + QObject::tr("Ukrainian (legacy)", "kb_variants"), + QObject::tr("Ukrainian (phonetic)", "kb_variants"), + QObject::tr("Ukrainian (standard RSTU)", "kb_variants"), + QObject::tr("Ukrainian (typewriter)", "kb_variants"), + QObject::tr("Urdu (Pakistan, CRULP)", "kb_variants"), + QObject::tr("Urdu (Pakistan, NLA)", "kb_variants"), + QObject::tr("Urdu (Windows)", "kb_variants"), + QObject::tr("Urdu (alt. phonetic)", "kb_variants"), + QObject::tr("Urdu (phonetic)", "kb_variants"), + QObject::tr("Uyghur", "kb_variants"), + QObject::tr("Uzbek (Afghanistan)", "kb_variants"), + QObject::tr("Uzbek (Afghanistan, OLPC)", "kb_variants"), + QObject::tr("Uzbek (Latin)", "kb_variants"), + QObject::tr("Vietnamese (French)", "kb_variants"), + QObject::tr("Vietnamese (US)", "kb_variants"), + QObject::tr("Yakut", "kb_variants"), + QObject::tr("Yoruba", "kb_variants"), + QString() + }; +} + diff --git a/src/modules/keyboard/layout-extractor.py b/src/modules/keyboard/layout-extractor.py new file mode 100644 index 000000000..74b42ea07 --- /dev/null +++ b/src/modules/keyboard/layout-extractor.py @@ -0,0 +1,94 @@ +#! /usr/bin/env python3 +# +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2020 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# +""" +Python3 script to scrape x keyboard layout file and produce translations. + +To use this script, you must have a base.lst in a standard location, +/usr/local/share/X11/xkb/rules/base.lst (this is usual on FreeBSD). + +Prints out a few tables of keyboard model, layout, variant names for +use in translations. +""" + +def scrape_file(file, modelsset, layoutsset, variantsset): + import re + # These RE's match what is in keyboardglobal.cpp + model_re = re.compile("^\\s+(\\S+)\\s+(\\w.*)\n$") + layout_re = re.compile("^\\s+(\\S+)\\s+(\\w.*)\n$") + variant_re = re.compile("^\\s+(\\S+)\\s+(\\S+): (\\w.*)\n$") + + MODEL, LAYOUT, VARIANT = range(3) + state = None + for line in file.readlines(): + # Handle changes in section + if line.startswith("! model"): + state = MODEL + continue + elif line.startswith("! layout"): + state = LAYOUT + continue + elif line.startswith("! variant"): + state = VARIANT + continue + elif not line.strip(): + state = None + # Unchanged from last blank + if state is None: + continue + + if state == MODEL: + m = model_re.match(line) + name = m.groups()[1] + modelsset.add(name) + if state == LAYOUT: + l = layout_re.match(line) + name = l.groups()[1] + layoutsset.add(name) + if state == VARIANT: + v = variant_re.match(line) + name = v.groups()[2] + variantsset.add(name) + + +def write_set(file, label, set): + file.write("/* This returns a reference to local, which is a terrible idea.\n * Good thing it's not meant to be compiled.\n */\n") + # Note {{ is an escaped { for Python string formatting + file.write("static const QStringList& {!s}_table()\n{{\n\treturn QStringList {{\n".format(label)) + for x in sorted(set): + file.write("""\t\tQObject::tr("{!s}", "{!s}"),\n""".format(x, label)) + file.write("\t\tQString()\n\t};\n}\n\n") + +cpp_header_comment = """/* GENERATED FILE DO NOT EDIT +* +* === This file is part of Calamares - === +* +* SPDX-FileCopyrightText: no +* SPDX-License-Identifier: CC0-1.0 +* +* This file is derived from base.lst in the Xorg distribution +* +*/ + +/** THIS FILE EXISTS ONLY FOR TRANSLATIONS PURPOSES **/ + +// *INDENT-OFF* +// clang-format off +""" + +if __name__ == "__main__": + models=set() + layouts=set() + variants=set() + with open("/usr/local/share/X11/xkb/rules/base.lst", "r") as f: + scrape_file(f, models, layouts, variants) + with open("KeyboardData_p.cxxtr", "w") as f: + f.write(cpp_header_comment) + write_set(f, "kb_models", models) + write_set(f, "kb_layouts", layouts) + write_set(f, "kb_variants", variants) + From 063fb24f3a0333886b96644da1c4ce8cfd72ae88 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 12:43:03 +0100 Subject: [PATCH 04/15] i18n: add translations source for keyboards --- ci/txpush.sh | 11 +- lang/kb_en.ts | 4609 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 4618 insertions(+), 2 deletions(-) create mode 100644 lang/kb_en.ts diff --git a/ci/txpush.sh b/ci/txpush.sh index 363a234e8..ac806a2fa 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -92,9 +92,16 @@ done # those are done separately. _srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml" $LUPDATE -no-obsolete $_srcdirs -ts lang/calamares_en.ts -# Updating the TZ only needs to happen when the TZ themselves are updated, -# very-very-rarely. +# Non-Transifex special-cases +# +# - timezone names can be translated, but that's 700+ strings I don't want +# to inflict on translators normally +# - keyboard layouts can be translated, but that's 767 strings +# +# For both of these, the language / translation only needs to be updated +# when the source data is updated, which is very very rarely. # $LUPDATE -no-obsolete -extensions cxxtr src/libcalamares/locale -ts lang/tz_en.ts +# $LUPDATE -no-obsolete -extensions cxxtr src/modules/keyboard -ts lang/kb_en.ts if test -n "$XMLLINT" ; then TS_FILE="lang/calamares_en.ts" diff --git a/lang/kb_en.ts b/lang/kb_en.ts new file mode 100644 index 000000000..11e29c61a --- /dev/null +++ b/lang/kb_en.ts @@ -0,0 +1,4609 @@ + + + + + QObject + + + A4Tech KB-21 + kb_models + + + + + A4Tech KBS-8 + kb_models + + + + + A4Tech Wireless Desktop RFKB-23 + kb_models + + + + + Acer AirKey V + kb_models + + + + + Acer C300 + kb_models + + + + + Acer Ferrari 4000 + kb_models + + + + + Acer laptop + kb_models + + + + + Advance Scorpius KI + kb_models + + + + + Apple + kb_models + + + + + Apple Aluminium (ANSI) + kb_models + + + + + Apple Aluminium (ISO) + kb_models + + + + + Apple Aluminium (JIS) + kb_models + + + + + Apple laptop + kb_models + + + + + Asus laptop + kb_models + + + + + Azona RF2300 wireless Internet + kb_models + + + + + BTC 5090 + kb_models + + + + + BTC 5113RF Multimedia + kb_models + + + + + BTC 5126T + kb_models + + + + + BTC 6301URF + kb_models + + + + + BTC 9000 + kb_models + + + + + BTC 9000A + kb_models + + + + + BTC 9001AH + kb_models + + + + + BTC 9019U + kb_models + + + + + BTC 9116U Mini Wireless Internet and Gaming + kb_models + + + + + BenQ X-Touch + kb_models + + + + + BenQ X-Touch 730 + kb_models + + + + + BenQ X-Touch 800 + kb_models + + + + + Brother Internet + kb_models + + + + + Cherry B.UNLIMITED + kb_models + + + + + Cherry Blue Line CyBo@rd + kb_models + + + + + Cherry Blue Line CyBo@rd (alt.) + kb_models + + + + + Cherry CyBo@rd USB-Hub + kb_models + + + + + Cherry CyMotion Expert + kb_models + + + + + Cherry CyMotion Master Linux + kb_models + + + + + Cherry CyMotion Master XPress + kb_models + + + + + Chicony Internet + kb_models + + + + + Chicony KB-9885 + kb_models + + + + + Chicony KU-0108 + kb_models + + + + + Chicony KU-0420 + kb_models + + + + + Chromebook + kb_models + + + + + Classmate PC + kb_models + + + + + Compaq Armada laptop + kb_models + + + + + Compaq Easy Access + kb_models + + + + + Compaq Internet (13 keys) + kb_models + + + + + Compaq Internet (18 keys) + kb_models + + + + + Compaq Internet (7 keys) + kb_models + + + + + Compaq Presario laptop + kb_models + + + + + Compaq iPaq + kb_models + + + + + Creative Desktop Wireless 7000 + kb_models + + + + + DTK2000 + kb_models + + + + + Dell + kb_models + + + + + Dell 101-key PC + kb_models + + + + + Dell Inspiron 6000/8000 laptop + kb_models + + + + + Dell Latitude laptop + kb_models + + + + + Dell Precision M laptop + kb_models + + + + + Dell Precision M65 laptop + kb_models + + + + + Dell SK-8125 + kb_models + + + + + Dell SK-8135 + kb_models + + + + + Dell USB Multimedia + kb_models + + + + + Dexxa Wireless Desktop + kb_models + + + + + Diamond 9801/9802 + kb_models + + + + + Ennyah DKB-1008 + kb_models + + + + + Everex STEPnote + kb_models + + + + + FL90 + kb_models + + + + + Fujitsu-Siemens Amilo laptop + kb_models + + + + + Generic 101-key PC + kb_models + + + + + Generic 102-key PC + kb_models + + + + + Generic 104-key PC + kb_models + + + + + Generic 104-key PC with L-shaped Enter key + kb_models + + + + + Generic 105-key PC + kb_models + + + + + Generic 86-key PC + kb_models + + + + + Genius Comfy KB-12e + kb_models + + + + + Genius Comfy KB-16M/Multimedia KWD-910 + kb_models + + + + + Genius Comfy KB-21e-Scroll + kb_models + + + + + Genius KB-19e NB + kb_models + + + + + Genius KKB-2050HS + kb_models + + + + + Gyration + kb_models + + + + + Happy Hacking + kb_models + + + + + Happy Hacking for Mac + kb_models + + + + + Hewlett-Packard Internet + kb_models + + + + + Hewlett-Packard Mini 110 laptop + kb_models + + + + + Hewlett-Packard NEC SK-2500 Multimedia + kb_models + + + + + Hewlett-Packard Omnibook 500 + kb_models + + + + + Hewlett-Packard Omnibook 500 FA + kb_models + + + + + Hewlett-Packard Omnibook 6000/6100 + kb_models + + + + + Hewlett-Packard Omnibook XE3 GC + kb_models + + + + + Hewlett-Packard Omnibook XE3 GF + kb_models + + + + + Hewlett-Packard Omnibook XT1000 + kb_models + + + + + Hewlett-Packard Pavilion ZT1100 + kb_models + + + + + Hewlett-Packard Pavilion dv5 + kb_models + + + + + Hewlett-Packard nx9020 + kb_models + + + + + Honeywell Euroboard + kb_models + + + + + IBM Rapid Access + kb_models + + + + + IBM Rapid Access II + kb_models + + + + + IBM Space Saver + kb_models + + + + + IBM ThinkPad 560Z/600/600E/A22E + kb_models + + + + + IBM ThinkPad R60/T60/R61/T61 + kb_models + + + + + IBM ThinkPad Z60m/Z60t/Z61m/Z61t + kb_models + + + + + Keytronic FlexPro + kb_models + + + + + Kinesis + kb_models + + + + + Logitech + kb_models + + + + + Logitech Access + kb_models + + + + + Logitech Cordless Desktop + kb_models + + + + + Logitech Cordless Desktop (alt.) + kb_models + + + + + Logitech Cordless Desktop EX110 + kb_models + + + + + Logitech Cordless Desktop LX-300 + kb_models + + + + + Logitech Cordless Desktop Navigator + kb_models + + + + + Logitech Cordless Desktop Optical + kb_models + + + + + Logitech Cordless Desktop Pro (2nd alt.) + kb_models + + + + + Logitech Cordless Desktop iTouch + kb_models + + + + + Logitech Cordless Freedom/Desktop Navigator + kb_models + + + + + Logitech G15 extra keys via G15daemon + kb_models + + + + + Logitech Internet + kb_models + + + + + Logitech Internet 350 + kb_models + + + + + Logitech Internet Navigator + kb_models + + + + + Logitech Ultra-X + kb_models + + + + + Logitech Ultra-X Cordless Media Desktop + kb_models + + + + + Logitech diNovo + kb_models + + + + + Logitech diNovo Edge + kb_models + + + + + Logitech iTouch + kb_models + + + + + Logitech iTouch Cordless Y-RB6 + kb_models + + + + + Logitech iTouch Internet Navigator SE + kb_models + + + + + Logitech iTouch Internet Navigator SE USB + kb_models + + + + + MacBook/MacBook Pro + kb_models + + + + + MacBook/MacBook Pro (intl.) + kb_models + + + + + Macintosh + kb_models + + + + + Macintosh Old + kb_models + + + + + Memorex MX1998 + kb_models + + + + + Memorex MX2500 EZ-Access + kb_models + + + + + Memorex MX2750 + kb_models + + + + + Microsoft Comfort Curve 2000 + kb_models + + + + + Microsoft Internet + kb_models + + + + + Microsoft Internet Pro (Swedish) + kb_models + + + + + Microsoft Natural + kb_models + + + + + Microsoft Natural Elite + kb_models + + + + + Microsoft Natural Ergonomic 4000 + kb_models + + + + + Microsoft Natural Pro OEM + kb_models + + + + + Microsoft Natural Pro USB/Internet Pro + kb_models + + + + + Microsoft Natural Pro/Internet Pro + kb_models + + + + + Microsoft Natural Wireless Ergonomic 7000 + kb_models + + + + + Microsoft Office Keyboard + kb_models + + + + + Microsoft Surface + kb_models + + + + + Microsoft Wireless Multimedia 1.0A + kb_models + + + + + NEC SK-1300 + kb_models + + + + + NEC SK-2500 + kb_models + + + + + NEC SK-6200 + kb_models + + + + + NEC SK-7100 + kb_models + + + + + Northgate OmniKey 101 + kb_models + + + + + OLPC + kb_models + + + + + Ortek Multimedia/Internet MCK-800 + kb_models + + + + + PC-98 + kb_models + + + + + Propeller Voyager KTEZ-1000 + kb_models + + + + + QTronix Scorpius 98N+ + kb_models + + + + + SVEN Ergonomic 2500 + kb_models + + + + + SVEN Slim 303 + kb_models + + + + + Samsung SDM 4500P + kb_models + + + + + Samsung SDM 4510P + kb_models + + + + + Sanwa Supply SKB-KG3 + kb_models + + + + + Silvercrest Multimedia Wireless + kb_models + + + + + SteelSeries Apex 300 (Apex RAW) + kb_models + + + + + Sun Type 6 (Japanese) + kb_models + + + + + Sun Type 6 USB (Japanese) + kb_models + + + + + Sun Type 6 USB (Unix) + kb_models + + + + + Sun Type 6/7 USB + kb_models + + + + + Sun Type 6/7 USB (European) + kb_models + + + + + Sun Type 7 USB + kb_models + + + + + Sun Type 7 USB (European) + kb_models + + + + + Sun Type 7 USB (Japanese)/Japanese 106-key + kb_models + + + + + Sun Type 7 USB (Unix) + kb_models + + + + + Super Power Multimedia + kb_models + + + + + Symplon PaceBook tablet + kb_models + + + + + Targa Visionary 811 + kb_models + + + + + Toshiba Satellite S3000 + kb_models + + + + + Truly Ergonomic 227 + kb_models + + + + + Truly Ergonomic 229 + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) + kb_models + + + + + Trust Direct Access + kb_models + + + + + Trust Slimline + kb_models + + + + + Trust Wireless Classic + kb_models + + + + + TypeMatrix EZ-Reach 2020 + kb_models + + + + + TypeMatrix EZ-Reach 2030 PS2 + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (106:JP mode) + kb_models + + + + + Unitek KB-1925 + kb_models + + + + + ViewSonic KU-306 Internet + kb_models + + + + + Winbook Model XP5 + kb_models + + + + + Yahoo! Internet + kb_models + + + + + eMachines m6800 laptop + kb_models + + + + + Afghani + kb_layouts + + + + + Albanian + kb_layouts + + + + + Amharic + kb_layouts + + + + + Arabic + kb_layouts + + + + + Arabic (Morocco) + kb_layouts + + + + + Arabic (Syria) + kb_layouts + + + + + Armenian + kb_layouts + + + + + Azerbaijani + kb_layouts + + + + + Bambara + kb_layouts + + + + + Bangla + kb_layouts + + + + + Belarusian + kb_layouts + + + + + Belgian + kb_layouts + + + + + Bosnian + kb_layouts + + + + + Braille + kb_layouts + + + + + Bulgarian + kb_layouts + + + + + Burmese + kb_layouts + + + + + Chinese + kb_layouts + + + + + Croatian + kb_layouts + + + + + Czech + kb_layouts + + + + + Danish + kb_layouts + + + + + Dhivehi + kb_layouts + + + + + Dutch + kb_layouts + + + + + Dzongkha + kb_layouts + + + + + English (Australian) + kb_layouts + + + + + English (Cameroon) + kb_layouts + + + + + English (Ghana) + kb_layouts + + + + + English (Nigeria) + kb_layouts + + + + + English (South Africa) + kb_layouts + + + + + English (UK) + kb_layouts + + + + + English (US) + kb_layouts + + + + + Esperanto + kb_layouts + + + + + Estonian + kb_layouts + + + + + Faroese + kb_layouts + + + + + Filipino + kb_layouts + + + + + Finnish + kb_layouts + + + + + French + kb_layouts + + + + + French (Canada) + kb_layouts + + + + + French (Democratic Republic of the Congo) + kb_layouts + + + + + French (Guinea) + kb_layouts + + + + + French (Togo) + kb_layouts + + + + + Georgian + kb_layouts + + + + + German + kb_layouts + + + + + German (Austria) + kb_layouts + + + + + German (Switzerland) + kb_layouts + + + + + Greek + kb_layouts + + + + + Hebrew + kb_layouts + + + + + Hungarian + kb_layouts + + + + + Icelandic + kb_layouts + + + + + Indian + kb_layouts + + + + + Indonesian (Arab Melayu, phonetic) + kb_layouts + + + + + Indonesian (Javanese) + kb_layouts + + + + + Iraqi + kb_layouts + + + + + Irish + kb_layouts + + + + + Italian + kb_layouts + + + + + Japanese + kb_layouts + + + + + Japanese (PC-98) + kb_layouts + + + + + Kabylian (azerty layout, no dead keys) + kb_layouts + + + + + Kazakh + kb_layouts + + + + + Khmer (Cambodia) + kb_layouts + + + + + Korean + kb_layouts + + + + + Kyrgyz + kb_layouts + + + + + Lao + kb_layouts + + + + + Latvian + kb_layouts + + + + + Lithuanian + kb_layouts + + + + + Macedonian + kb_layouts + + + + + Malay (Jawi, Arabic Keyboard) + kb_layouts + + + + + Maltese + kb_layouts + + + + + Maori + kb_layouts + + + + + Moldavian + kb_layouts + + + + + Mongolian + kb_layouts + + + + + Montenegrin + kb_layouts + + + + + Nepali + kb_layouts + + + + + Norwegian + kb_layouts + + + + + Persian + kb_layouts + + + + + Polish + kb_layouts + + + + + Portuguese + kb_layouts + + + + + Portuguese (Brazil) + kb_layouts + + + + + Romanian + kb_layouts + + + + + Russian + kb_layouts + + + + + Serbian + kb_layouts + + + + + Sinhala (phonetic) + kb_layouts + + + + + Slovak + kb_layouts + + + + + Slovenian + kb_layouts + + + + + Spanish + kb_layouts + + + + + Spanish (Latin American) + kb_layouts + + + + + Swahili (Kenya) + kb_layouts + + + + + Swahili (Tanzania) + kb_layouts + + + + + Swedish + kb_layouts + + + + + Taiwanese + kb_layouts + + + + + Tajik + kb_layouts + + + + + Thai + kb_layouts + + + + + Tswana + kb_layouts + + + + + Turkish + kb_layouts + + + + + Turkmen + kb_layouts + + + + + Ukrainian + kb_layouts + + + + + Urdu (Pakistan) + kb_layouts + + + + + Uzbek + kb_layouts + + + + + Vietnamese + kb_layouts + + + + + Wolof + kb_layouts + + + + + Akan + kb_variants + + + + + Albanian (Plisi) + kb_variants + + + + + Albanian (Veqilharxhi) + kb_variants + + + + + Arabic (AZERTY) + kb_variants + + + + + Arabic (AZERTY, Eastern Arabic numerals) + kb_variants + + + + + Arabic (Algeria) + kb_variants + + + + + Arabic (Buckwalter) + kb_variants + + + + + Arabic (Eastern Arabic numerals) + kb_variants + + + + + Arabic (Macintosh) + kb_variants + + + + + Arabic (OLPC) + kb_variants + + + + + Arabic (Pakistan) + kb_variants + + + + + Arabic (QWERTY) + kb_variants + + + + + Arabic (QWERTY, Eastern Arabic numerals) + kb_variants + + + + + Armenian (alt. eastern) + kb_variants + + + + + Armenian (alt. phonetic) + kb_variants + + + + + Armenian (eastern) + kb_variants + + + + + Armenian (phonetic) + kb_variants + + + + + Armenian (western) + kb_variants + + + + + Asturian (Spain, with bottom-dot H and L) + kb_variants + + + + + Avatime + kb_variants + + + + + Azerbaijani (Cyrillic) + kb_variants + + + + + Bangla (India) + kb_variants + + + + + Bangla (India, Baishakhi Inscript) + kb_variants + + + + + Bangla (India, Baishakhi) + kb_variants + + + + + Bangla (India, Bornona) + kb_variants + + + + + Bangla (India, Gitanjali) + kb_variants + + + + + Bangla (India, Probhat) + kb_variants + + + + + Bangla (Probhat) + kb_variants + + + + + Bashkirian + kb_variants + + + + + Belarusian (Latin) + kb_variants + + + + + Belarusian (intl.) + kb_variants + + + + + Belarusian (legacy) + kb_variants + + + + + Belgian (ISO, alt.) + kb_variants + + + + + Belgian (Latin-9 only, alt.) + kb_variants + + + + + Belgian (Sun dead keys) + kb_variants + + + + + Belgian (Sun dead keys, alt.) + kb_variants + + + + + Belgian (Wang 724 AZERTY) + kb_variants + + + + + Belgian (alt.) + kb_variants + + + + + Belgian (no dead keys) + kb_variants + + + + + Berber (Morocco, Tifinagh alt.) + kb_variants + + + + + Berber (Morocco, Tifinagh extended phonetic) + kb_variants + + + + + Berber (Morocco, Tifinagh extended) + kb_variants + + + + + Berber (Morocco, Tifinagh phonetic) + kb_variants + + + + + Berber (Morocco, Tifinagh phonetic, alt.) + kb_variants + + + + + Berber (Morocco, Tifinagh) + kb_variants + + + + + Bosnian (US) + kb_variants + + + + + Bosnian (US, with Bosnian digraphs) + kb_variants + + + + + Bosnian (with Bosnian digraphs) + kb_variants + + + + + Bosnian (with guillemets) + kb_variants + + + + + Braille (left-handed inverted thumb) + kb_variants + + + + + Braille (left-handed) + kb_variants + + + + + Braille (right-handed inverted thumb) + kb_variants + + + + + Braille (right-handed) + kb_variants + + + + + Bulgarian (enhanced) + kb_variants + + + + + Bulgarian (new phonetic) + kb_variants + + + + + Bulgarian (traditional phonetic) + kb_variants + + + + + Burmese Zawgyi + kb_variants + + + + + Cameroon (AZERTY, intl.) + kb_variants + + + + + Cameroon (Dvorak, intl.) + kb_variants + + + + + Cameroon Multilingual (QWERTY, intl.) + kb_variants + + + + + Canadian (intl.) + kb_variants + + + + + Canadian (intl., 1st part) + kb_variants + + + + + Canadian (intl., 2nd part) + kb_variants + + + + + Catalan (Spain, with middle-dot L) + kb_variants + + + + + Cherokee + kb_variants + + + + + Chuvash + kb_variants + + + + + Chuvash (Latin) + kb_variants + + + + + CloGaelach + kb_variants + + + + + Crimean Tatar (Turkish Alt-Q) + kb_variants + + + + + Crimean Tatar (Turkish F) + kb_variants + + + + + Crimean Tatar (Turkish Q) + kb_variants + + + + + Croatian (US) + kb_variants + + + + + Croatian (US, with Croatian digraphs) + kb_variants + + + + + Croatian (with Croatian digraphs) + kb_variants + + + + + Croatian (with guillemets) + kb_variants + + + + + Czech (QWERTY) + kb_variants + + + + + Czech (QWERTY, Macintosh) + kb_variants + + + + + Czech (QWERTY, extended backslash) + kb_variants + + + + + Czech (UCW, only accented letters) + kb_variants + + + + + Czech (US, Dvorak, UCW support) + kb_variants + + + + + Czech (with &lt;|&gt; key) + kb_variants + + + + + Danish (Dvorak) + kb_variants + + + + + Danish (Macintosh) + kb_variants + + + + + Danish (Macintosh, no dead keys) + kb_variants + + + + + Danish (Windows) + kb_variants + + + + + Danish (no dead keys) + kb_variants + + + + + Dutch (Macintosh) + kb_variants + + + + + Dutch (Sun dead keys) + kb_variants + + + + + Dutch (standard) + kb_variants + + + + + English (Canada) + kb_variants + + + + + English (Colemak) + kb_variants + + + + + English (Dvorak) + kb_variants + + + + + English (Dvorak, alt. intl.) + kb_variants + + + + + English (Dvorak, intl., with dead keys) + kb_variants + + + + + English (Dvorak, left-handed) + kb_variants + + + + + English (Dvorak, right-handed) + kb_variants + + + + + English (Ghana, GILLBT) + kb_variants + + + + + English (Ghana, multilingual) + kb_variants + + + + + English (India, with rupee) + kb_variants + + + + + English (Macintosh) + kb_variants + + + + + English (Mali, US, Macintosh) + kb_variants + + + + + English (Mali, US, intl.) + kb_variants + + + + + English (Norman) + kb_variants + + + + + English (UK, Colemak) + kb_variants + + + + + English (UK, Dvorak) + kb_variants + + + + + English (UK, Dvorak, with UK punctuation) + kb_variants + + + + + English (UK, Macintosh) + kb_variants + + + + + English (UK, Macintosh, intl.) + kb_variants + + + + + English (UK, extended, Windows) + kb_variants + + + + + English (UK, intl., with dead keys) + kb_variants + + + + + English (US, Symbolic) + kb_variants + + + + + English (US, alt. intl.) + kb_variants + + + + + English (US, euro on 5) + kb_variants + + + + + English (US, intl., with dead keys) + kb_variants + + + + + English (Workman) + kb_variants + + + + + English (Workman, intl., with dead keys) + kb_variants + + + + + English (classic Dvorak) + kb_variants + + + + + English (intl., with AltGr dead keys) + kb_variants + + + + + English (programmer Dvorak) + kb_variants + + + + + English (the divide/multiply toggle the layout) + kb_variants + + + + + Esperanto (Brazil, Nativo) + kb_variants + + + + + Esperanto (Portugal, Nativo) + kb_variants + + + + + Esperanto (legacy) + kb_variants + + + + + Estonian (Dvorak) + kb_variants + + + + + Estonian (US) + kb_variants + + + + + Estonian (no dead keys) + kb_variants + + + + + Ewe + kb_variants + + + + + Faroese (no dead keys) + kb_variants + + + + + Filipino (Capewell-Dvorak, Baybayin) + kb_variants + + + + + Filipino (Capewell-Dvorak, Latin) + kb_variants + + + + + Filipino (Capewell-QWERF 2006, Baybayin) + kb_variants + + + + + Filipino (Capewell-QWERF 2006, Latin) + kb_variants + + + + + Filipino (Colemak, Baybayin) + kb_variants + + + + + Filipino (Colemak, Latin) + kb_variants + + + + + Filipino (Dvorak, Baybayin) + kb_variants + + + + + Filipino (Dvorak, Latin) + kb_variants + + + + + Filipino (QWERTY, Baybayin) + kb_variants + + + + + Finnish (Macintosh) + kb_variants + + + + + Finnish (Windows) + kb_variants + + + + + Finnish (classic) + kb_variants + + + + + Finnish (classic, no dead keys) + kb_variants + + + + + French (AZERTY) + kb_variants + + + + + French (AZERTY, AFNOR) + kb_variants + + + + + French (BEPO) + kb_variants + + + + + French (BEPO, AFNOR) + kb_variants + + + + + French (BEPO, Latin-9 only) + kb_variants + + + + + French (Breton) + kb_variants + + + + + French (Cameroon) + kb_variants + + + + + French (Canada, Dvorak) + kb_variants + + + + + French (Canada, legacy) + kb_variants + + + + + French (Dvorak) + kb_variants + + + + + French (Macintosh) + kb_variants + + + + + French (Mali, alt.) + kb_variants + + + + + French (Morocco) + kb_variants + + + + + French (Sun dead keys) + kb_variants + + + + + French (Switzerland) + kb_variants + + + + + French (Switzerland, Macintosh) + kb_variants + + + + + French (Switzerland, Sun dead keys) + kb_variants + + + + + French (Switzerland, no dead keys) + kb_variants + + + + + French (US) + kb_variants + + + + + French (alt.) + kb_variants + + + + + French (alt., Latin-9 only) + kb_variants + + + + + French (alt., Sun dead keys) + kb_variants + + + + + French (alt., no dead keys) + kb_variants + + + + + French (legacy, alt.) + kb_variants + + + + + French (legacy, alt., Sun dead keys) + kb_variants + + + + + French (legacy, alt., no dead keys) + kb_variants + + + + + French (no dead keys) + kb_variants + + + + + Friulian (Italy) + kb_variants + + + + + Fula + kb_variants + + + + + Ga + kb_variants + + + + + Georgian (France, AZERTY Tskapo) + kb_variants + + + + + Georgian (Italy) + kb_variants + + + + + Georgian (MESS) + kb_variants + + + + + Georgian (ergonomic) + kb_variants + + + + + German (Austria, Macintosh) + kb_variants + + + + + German (Austria, Sun dead keys) + kb_variants + + + + + German (Austria, no dead keys) + kb_variants + + + + + German (Dvorak) + kb_variants + + + + + German (E1) + kb_variants + + + + + German (E2) + kb_variants + + + + + German (Macintosh) + kb_variants + + + + + German (Macintosh, no dead keys) + kb_variants + + + + + German (Neo 2) + kb_variants + + + + + German (QWERTY) + kb_variants + + + + + German (Sun dead keys) + kb_variants + + + + + German (Switzerland, Macintosh) + kb_variants + + + + + German (Switzerland, Sun dead keys) + kb_variants + + + + + German (Switzerland, legacy) + kb_variants + + + + + German (Switzerland, no dead keys) + kb_variants + + + + + German (T3) + kb_variants + + + + + German (US) + kb_variants + + + + + German (dead acute) + kb_variants + + + + + German (dead grave acute) + kb_variants + + + + + German (dead tilde) + kb_variants + + + + + German (no dead keys) + kb_variants + + + + + Greek (extended) + kb_variants + + + + + Greek (no dead keys) + kb_variants + + + + + Greek (polytonic) + kb_variants + + + + + Greek (simple) + kb_variants + + + + + Gujarati + kb_variants + + + + + Hanyu Pinyin (with AltGr dead keys) + kb_variants + + + + + Hausa (Ghana) + kb_variants + + + + + Hausa (Nigeria) + kb_variants + + + + + Hawaiian + kb_variants + + + + + Hebrew (Biblical, Tiro) + kb_variants + + + + + Hebrew (lyx) + kb_variants + + + + + Hebrew (phonetic) + kb_variants + + + + + Hindi (Bolnagri) + kb_variants + + + + + Hindi (KaGaPa, phonetic) + kb_variants + + + + + Hindi (Wx) + kb_variants + + + + + Hungarian (QWERTY) + kb_variants + + + + + Hungarian (QWERTY, 101-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 101-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTY, 101-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 101-key, dot, no dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, dot, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, dot, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, dot, no dead keys) + kb_variants + + + + + Hungarian (no dead keys) + kb_variants + + + + + Hungarian (standard) + kb_variants + + + + + Icelandic (Dvorak) + kb_variants + + + + + Icelandic (Macintosh) + kb_variants + + + + + Icelandic (Macintosh, legacy) + kb_variants + + + + + Icelandic (Sun dead keys) + kb_variants + + + + + Icelandic (no dead keys) + kb_variants + + + + + Igbo + kb_variants + + + + + Indic (phonetic, IPA) + kb_variants + + + + + Indonesian (Arab Melayu, extended phonetic) + kb_variants + + + + + Inuktitut + kb_variants + + + + + Irish (UnicodeExpert) + kb_variants + + + + + Italian (IBM 142) + kb_variants + + + + + Italian (Macintosh) + kb_variants + + + + + Italian (US) + kb_variants + + + + + Italian (Windows) + kb_variants + + + + + Italian (intl., with dead keys) + kb_variants + + + + + Italian (no dead keys) + kb_variants + + + + + Japanese (Dvorak) + kb_variants + + + + + Japanese (Kana 86) + kb_variants + + + + + Japanese (Kana) + kb_variants + + + + + Japanese (Macintosh) + kb_variants + + + + + Japanese (OADG 109A) + kb_variants + + + + + Kabylian (Algeria, Tifinagh) + kb_variants + + + + + Kabylian (azerty layout, with dead keys) + kb_variants + + + + + Kabylian (qwerty-gb layout, with dead keys) + kb_variants + + + + + Kabylian (qwerty-us layout, with dead keys) + kb_variants + + + + + Kalmyk + kb_variants + + + + + Kannada + kb_variants + + + + + Kannada (KaGaPa, phonetic) + kb_variants + + + + + Kashubian + kb_variants + + + + + Kazakh (Latin) + kb_variants + + + + + Kazakh (extended) + kb_variants + + + + + Kazakh (with Russian) + kb_variants + + + + + Kikuyu + kb_variants + + + + + Komi + kb_variants + + + + + Korean (101/104-key compatible) + kb_variants + + + + + Kurdish (Iran, Arabic-Latin) + kb_variants + + + + + Kurdish (Iran, F) + kb_variants + + + + + Kurdish (Iran, Latin Alt-Q) + kb_variants + + + + + Kurdish (Iran, Latin Q) + kb_variants + + + + + Kurdish (Iraq, Arabic-Latin) + kb_variants + + + + + Kurdish (Iraq, F) + kb_variants + + + + + Kurdish (Iraq, Latin Alt-Q) + kb_variants + + + + + Kurdish (Iraq, Latin Q) + kb_variants + + + + + Kurdish (Syria, F) + kb_variants + + + + + Kurdish (Syria, Latin Alt-Q) + kb_variants + + + + + Kurdish (Syria, Latin Q) + kb_variants + + + + + Kurdish (Turkey, F) + kb_variants + + + + + Kurdish (Turkey, Latin Alt-Q) + kb_variants + + + + + Kurdish (Turkey, Latin Q) + kb_variants + + + + + Kyrgyz (phonetic) + kb_variants + + + + + Lao (STEA) + kb_variants + + + + + Latvian (F) + kb_variants + + + + + Latvian (adapted) + kb_variants + + + + + Latvian (apostrophe) + kb_variants + + + + + Latvian (ergonomic, ŪGJRMV) + kb_variants + + + + + Latvian (modern) + kb_variants + + + + + Latvian (tilde) + kb_variants + + + + + Lithuanian (IBM LST 1205-92) + kb_variants + + + + + Lithuanian (LEKP) + kb_variants + + + + + Lithuanian (LEKPa) + kb_variants + + + + + Lithuanian (US) + kb_variants + + + + + Lithuanian (standard) + kb_variants + + + + + Lower Sorbian + kb_variants + + + + + Lower Sorbian (QWERTZ) + kb_variants + + + + + Macedonian (no dead keys) + kb_variants + + + + + Malay (Jawi, phonetic) + kb_variants + + + + + Malayalam + kb_variants + + + + + Malayalam (Lalitha) + kb_variants + + + + + Malayalam (enhanced Inscript, with rupee) + kb_variants + + + + + Maltese (UK, with AltGr overrides) + kb_variants + + + + + Maltese (US layout with AltGr overrides) + kb_variants + + + + + Maltese (US) + kb_variants + + + + + Manipuri (Eeyek) + kb_variants + + + + + Marathi (KaGaPa, phonetic) + kb_variants + + + + + Marathi (enhanced Inscript) + kb_variants + + + + + Mari + kb_variants + + + + + Mmuock + kb_variants + + + + + Moldavian (Gagauz) + kb_variants + + + + + Mongolian (Bichig) + kb_variants + + + + + Mongolian (Galik) + kb_variants + + + + + Mongolian (Manchu Galik) + kb_variants + + + + + Mongolian (Manchu) + kb_variants + + + + + Mongolian (Todo Galik) + kb_variants + + + + + Mongolian (Todo) + kb_variants + + + + + Mongolian (Xibe) + kb_variants + + + + + Montenegrin (Cyrillic) + kb_variants + + + + + Montenegrin (Cyrillic, ZE and ZHE swapped) + kb_variants + + + + + Montenegrin (Cyrillic, with guillemets) + kb_variants + + + + + Montenegrin (Latin, QWERTY) + kb_variants + + + + + Montenegrin (Latin, Unicode) + kb_variants + + + + + Montenegrin (Latin, Unicode, QWERTY) + kb_variants + + + + + Montenegrin (Latin, with guillemets) + kb_variants + + + + + Northern Saami (Finland) + kb_variants + + + + + Northern Saami (Norway) + kb_variants + + + + + Northern Saami (Norway, no dead keys) + kb_variants + + + + + Northern Saami (Sweden) + kb_variants + + + + + Norwegian (Colemak) + kb_variants + + + + + Norwegian (Dvorak) + kb_variants + + + + + Norwegian (Macintosh) + kb_variants + + + + + Norwegian (Macintosh, no dead keys) + kb_variants + + + + + Norwegian (Windows) + kb_variants + + + + + Norwegian (no dead keys) + kb_variants + + + + + Occitan + kb_variants + + + + + Ogham + kb_variants + + + + + Ogham (IS434) + kb_variants + + + + + Ol Chiki + kb_variants + + + + + Oriya + kb_variants + + + + + Ossetian (Georgia) + kb_variants + + + + + Ossetian (Windows) + kb_variants + + + + + Ossetian (legacy) + kb_variants + + + + + Pannonian Rusyn + kb_variants + + + + + Pashto + kb_variants + + + + + Pashto (Afghanistan, OLPC) + kb_variants + + + + + Persian (Afghanistan, Dari OLPC) + kb_variants + + + + + Persian (with Persian keypad) + kb_variants + + + + + Polish (British keyboard) + kb_variants + + + + + Polish (Dvorak) + kb_variants + + + + + Polish (Dvorak, with Polish quotes on key 1) + kb_variants + + + + + Polish (Dvorak, with Polish quotes on quotemark key) + kb_variants + + + + + Polish (QWERTZ) + kb_variants + + + + + Polish (legacy) + kb_variants + + + + + Polish (programmer Dvorak) + kb_variants + + + + + Portuguese (Brazil, Dvorak) + kb_variants + + + + + Portuguese (Brazil, IBM/Lenovo ThinkPad) + kb_variants + + + + + Portuguese (Brazil, Nativo for US keyboards) + kb_variants + + + + + Portuguese (Brazil, Nativo) + kb_variants + + + + + Portuguese (Brazil, no dead keys) + kb_variants + + + + + Portuguese (Macintosh) + kb_variants + + + + + Portuguese (Macintosh, Sun dead keys) + kb_variants + + + + + Portuguese (Macintosh, no dead keys) + kb_variants + + + + + Portuguese (Nativo for US keyboards) + kb_variants + + + + + Portuguese (Nativo) + kb_variants + + + + + Portuguese (Sun dead keys) + kb_variants + + + + + Portuguese (no dead keys) + kb_variants + + + + + Punjabi (Gurmukhi Jhelum) + kb_variants + + + + + Punjabi (Gurmukhi) + kb_variants + + + + + Romanian (Germany) + kb_variants + + + + + Romanian (Germany, no dead keys) + kb_variants + + + + + Romanian (Windows) + kb_variants + + + + + Romanian (cedilla) + kb_variants + + + + + Romanian (standard cedilla) + kb_variants + + + + + Romanian (standard) + kb_variants + + + + + Russian (Belarus) + kb_variants + + + + + Russian (Czech, phonetic) + kb_variants + + + + + Russian (DOS) + kb_variants + + + + + Russian (Georgia) + kb_variants + + + + + Russian (Germany, phonetic) + kb_variants + + + + + Russian (Kazakhstan, with Kazakh) + kb_variants + + + + + Russian (Macintosh) + kb_variants + + + + + Russian (Poland, phonetic Dvorak) + kb_variants + + + + + Russian (Sweden, phonetic) + kb_variants + + + + + Russian (Sweden, phonetic, no dead keys) + kb_variants + + + + + Russian (US, phonetic) + kb_variants + + + + + Russian (Ukraine, standard RSTU) + kb_variants + + + + + Russian (legacy) + kb_variants + + + + + Russian (phonetic) + kb_variants + + + + + Russian (phonetic, AZERTY) + kb_variants + + + + + Russian (phonetic, Dvorak) + kb_variants + + + + + Russian (phonetic, French) + kb_variants + + + + + Russian (phonetic, Windows) + kb_variants + + + + + Russian (phonetic, YAZHERTY) + kb_variants + + + + + Russian (typewriter) + kb_variants + + + + + Russian (typewriter, legacy) + kb_variants + + + + + Saisiyat (Taiwan) + kb_variants + + + + + Samogitian + kb_variants + + + + + Sanskrit (KaGaPa, phonetic) + kb_variants + + + + + Serbian (Cyrillic, ZE and ZHE swapped) + kb_variants + + + + + Serbian (Cyrillic, with guillemets) + kb_variants + + + + + Serbian (Latin) + kb_variants + + + + + Serbian (Latin, QWERTY) + kb_variants + + + + + Serbian (Latin, Unicode) + kb_variants + + + + + Serbian (Latin, Unicode, QWERTY) + kb_variants + + + + + Serbian (Latin, with guillemets) + kb_variants + + + + + Serbian (Russia) + kb_variants + + + + + Serbo-Croatian (US) + kb_variants + + + + + Sicilian + kb_variants + + + + + Silesian + kb_variants + + + + + Sindhi + kb_variants + + + + + Sinhala (US) + kb_variants + + + + + Slovak (QWERTY) + kb_variants + + + + + Slovak (QWERTY, extended backslash) + kb_variants + + + + + Slovak (extended backslash) + kb_variants + + + + + Slovenian (US) + kb_variants + + + + + Slovenian (with guillemets) + kb_variants + + + + + Spanish (Dvorak) + kb_variants + + + + + Spanish (Latin American, Colemak for gaming) + kb_variants + + + + + Spanish (Latin American, Colemak) + kb_variants + + + + + Spanish (Latin American, Dvorak) + kb_variants + + + + + Spanish (Latin American, Sun dead keys) + kb_variants + + + + + Spanish (Latin American, dead tilde) + kb_variants + + + + + Spanish (Latin American, no dead keys) + kb_variants + + + + + Spanish (Macintosh) + kb_variants + + + + + Spanish (Sun dead keys) + kb_variants + + + + + Spanish (Windows) + kb_variants + + + + + Spanish (dead tilde) + kb_variants + + + + + Spanish (no dead keys) + kb_variants + + + + + Swedish (Dvorak) + kb_variants + + + + + Swedish (Dvorak, intl.) + kb_variants + + + + + Swedish (Macintosh) + kb_variants + + + + + Swedish (Svdvorak) + kb_variants + + + + + Swedish (US) + kb_variants + + + + + Swedish (no dead keys) + kb_variants + + + + + Swedish Sign Language + kb_variants + + + + + Syriac + kb_variants + + + + + Syriac (phonetic) + kb_variants + + + + + Taiwanese (indigenous) + kb_variants + + + + + Tajik (legacy) + kb_variants + + + + + Tamil (Inscript) + kb_variants + + + + + Tamil (Sri Lanka, TamilNet '99) + kb_variants + + + + + Tamil (Sri Lanka, TamilNet '99, TAB encoding) + kb_variants + + + + + Tamil (TamilNet '99 with Tamil numerals) + kb_variants + + + + + Tamil (TamilNet '99) + kb_variants + + + + + Tamil (TamilNet '99, TAB encoding) + kb_variants + + + + + Tamil (TamilNet '99, TSCII encoding) + kb_variants + + + + + Tatar + kb_variants + + + + + Telugu + kb_variants + + + + + Telugu (KaGaPa, phonetic) + kb_variants + + + + + Telugu (Sarala) + kb_variants + + + + + Thai (Pattachote) + kb_variants + + + + + Thai (TIS-820.2538) + kb_variants + + + + + Tibetan + kb_variants + + + + + Tibetan (with ASCII numerals) + kb_variants + + + + + Turkish (Alt-Q) + kb_variants + + + + + Turkish (F) + kb_variants + + + + + Turkish (Germany) + kb_variants + + + + + Turkish (Sun dead keys) + kb_variants + + + + + Turkish (intl., with dead keys) + kb_variants + + + + + Turkmen (Alt-Q) + kb_variants + + + + + Udmurt + kb_variants + + + + + Ukrainian (Windows) + kb_variants + + + + + Ukrainian (homophonic) + kb_variants + + + + + Ukrainian (legacy) + kb_variants + + + + + Ukrainian (phonetic) + kb_variants + + + + + Ukrainian (standard RSTU) + kb_variants + + + + + Ukrainian (typewriter) + kb_variants + + + + + Urdu (Pakistan, CRULP) + kb_variants + + + + + Urdu (Pakistan, NLA) + kb_variants + + + + + Urdu (Windows) + kb_variants + + + + + Urdu (alt. phonetic) + kb_variants + + + + + Urdu (phonetic) + kb_variants + + + + + Uyghur + kb_variants + + + + + Uzbek (Afghanistan) + kb_variants + + + + + Uzbek (Afghanistan, OLPC) + kb_variants + + + + + Uzbek (Latin) + kb_variants + + + + + Vietnamese (French) + kb_variants + + + + + Vietnamese (US) + kb_variants + + + + + Yakut + kb_variants + + + + + Yoruba + kb_variants + + + + From ac6c9fae4aab843d43aa9882610b4542fd0b387a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 13:51:53 +0100 Subject: [PATCH 05/15] [libcalamares] Do not use moved-from object --- src/libcalamares/utils/Retranslator.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index a03ae9a3b..668da81dd 100644 --- a/src/libcalamares/utils/Retranslator.cpp +++ b/src/libcalamares/utils/Retranslator.cpp @@ -193,10 +193,9 @@ installTranslator( const QLocale& locale, const QString& brandingTranslationsPre { loadSingletonTranslator( BrandingLoader( locale, brandingTranslationsPrefix ), s_brandingTranslator ); loadSingletonTranslator( TZLoader( locale ), s_tztranslator ); + loadSingletonTranslator( CalamaresLoader( locale ), s_translator ); - CalamaresLoader l( locale ); // because we want the extracted localeName - loadSingletonTranslator( std::move( l ), s_translator ); - s_translatorLocaleName = l.m_localeName; + s_translatorLocaleName = CalamaresLoader::mungeLocaleName( locale ); } From 7659dfdb9d9efa7687cd1604d34fbf44a2fb69d2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 13:58:17 +0100 Subject: [PATCH 06/15] [libcalamares] Expose a translations-loading function --- src/libcalamares/utils/Retranslator.cpp | 8 +++++++- src/libcalamares/utils/Retranslator.h | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index 668da81dd..7781ecf51 100644 --- a/src/libcalamares/utils/Retranslator.cpp +++ b/src/libcalamares/utils/Retranslator.cpp @@ -195,7 +195,7 @@ installTranslator( const QLocale& locale, const QString& brandingTranslationsPre loadSingletonTranslator( TZLoader( locale ), s_tztranslator ); loadSingletonTranslator( CalamaresLoader( locale ), s_translator ); - s_translatorLocaleName = CalamaresLoader::mungeLocaleName( locale ); + s_translatorLocaleName = CalamaresLoader::mungeLocaleName(locale); } @@ -205,6 +205,12 @@ translatorLocaleName() return s_translatorLocaleName; } +bool +loadTranslator( const QLocale& locale, const QString& prefix, QTranslator *translator ) +{ + return ::tryLoad( translator, prefix, locale.name() ); +} + Retranslator* Retranslator::retranslatorFor( QObject* parent ) { diff --git a/src/libcalamares/utils/Retranslator.h b/src/libcalamares/utils/Retranslator.h index 476c0b184..df38fa4d8 100644 --- a/src/libcalamares/utils/Retranslator.h +++ b/src/libcalamares/utils/Retranslator.h @@ -21,6 +21,7 @@ class QEvent; class QLocale; +class QTranslator; namespace CalamaresUtils { @@ -31,8 +32,29 @@ namespace CalamaresUtils */ DLLEXPORT void installTranslator( const QLocale& locale, const QString& brandingTranslationsPrefix ); +/** @brief The name of the (locale of the) most recently installed translator + * + * May return something different from the locale.name() of the + * QLocale passed in, because Calamares will munge some names and + * may remap translations. + */ DLLEXPORT QString translatorLocaleName(); +/** @brief Loads translations into the given @p translator + * + * This function is not intended for general use: it is for those special + * cases where modules need their own translator / translations for data + * that is locale to the module. Tries to load a .qm from "sensible" + * locations, which are the same ones that installTranslator() would use. + * Takes local-translations into account. + * + * Note that @p prefix should end with an underscore '_' -- this function + * does not introduce one by itself. + * + * @returns @c true on success + */ +DLLEXPORT bool loadTranslator( const QLocale& locale, const QString& prefix, QTranslator* translator ); + /** @brief Set @p allow to true to load translations from current dir. * * If false, (or never called) the translations are loaded only from From b72eba81576c925a676971e7246a0a6c99617d6e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 14:47:30 +0100 Subject: [PATCH 07/15] [libcalamares] Extend the Deleter-helper with "preserve" Sometimes you want to keep the thing around after all. --- src/libcalamares/utils/RAII.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/libcalamares/utils/RAII.h b/src/libcalamares/utils/RAII.h index d6f8fe94d..1cbead4a2 100644 --- a/src/libcalamares/utils/RAII.h +++ b/src/libcalamares/utils/RAII.h @@ -16,20 +16,28 @@ #include -/// @brief Convenience to zero out and deleteLater of any QObject-derived-class +/** @brief Convenience to zero out and deleteLater of any QObject-derived-class + * + * If, before destruction, preserve is set to @c true, then + * the object is "preserved", and not deleted at all. + */ template < typename T > struct cqDeleter { T*& p; + bool preserve = false; ~cqDeleter() { static_assert( std::is_base_of< QObject, T >::value, "Not a QObject-class" ); - if ( p ) + if ( !preserve ) { - p->deleteLater(); + if ( p ) + { + p->deleteLater(); + } + p = nullptr; } - p = nullptr; } }; From 89a180ee5850733f25d18529bf3d65ce00eac91f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 30 Oct 2020 14:38:11 +0100 Subject: [PATCH 08/15] [keyboard] Initial support for translated keyboard names --- src/modules/keyboard/KeyboardLayoutModel.cpp | 18 ++++++++++++++++++ src/modules/keyboard/KeyboardLayoutModel.h | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/modules/keyboard/KeyboardLayoutModel.cpp b/src/modules/keyboard/KeyboardLayoutModel.cpp index b8cb892f4..9be9c8ef9 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -11,9 +11,15 @@ #include "KeyboardLayoutModel.h" #include "utils/Logger.h" +#include "utils/RAII.h" +#include "utils/Retranslator.h" + +#include #include +static QTranslator* s_kbtranslator = nullptr; + XKBListModel::XKBListModel( QObject* parent ) : QAbstractListModel( parent ) { @@ -41,6 +47,11 @@ XKBListModel::data( const QModelIndex& index, int role ) const switch ( role ) { case LabelRole: + if ( s_kbtranslator && m_contextname ) + { + auto s = s_kbtranslator->translate( m_contextname, item.label.toUtf8().data() ); + cDebug() << "Translated" << item.label << "to" << s; + } return item.label; case KeyRole: return item.key; @@ -93,6 +104,8 @@ XKBListModel::setCurrentIndex( int index ) KeyboardModelsModel::KeyboardModelsModel( QObject* parent ) : XKBListModel( parent ) { + m_contextname = "kb_models"; + // The models map is from human-readable names (!) to xkb identifier const auto models = KeyboardGlobal::getKeyboardModels(); m_list.reserve( models.count() ); @@ -110,6 +123,10 @@ KeyboardModelsModel::KeyboardModelsModel( QObject* parent ) } cDebug() << "Loaded" << m_list.count() << "keyboard models"; + + CALAMARES_RETRANSLATE( if ( !s_kbtranslator ) { s_kbtranslator = new QTranslator; } cqDeleter d { s_kbtranslator }; + d.preserve + = CalamaresUtils::loadTranslator( QLocale(), QStringLiteral( "kb_" ), s_kbtranslator ); ) } @@ -207,6 +224,7 @@ KeyboardLayoutModel::currentIndex() const KeyboardVariantsModel::KeyboardVariantsModel( QObject* parent ) : XKBListModel( parent ) { + m_contextname = "kb_variants"; } void diff --git a/src/modules/keyboard/KeyboardLayoutModel.h b/src/modules/keyboard/KeyboardLayoutModel.h index 60747da55..9c83e41d8 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.h +++ b/src/modules/keyboard/KeyboardLayoutModel.h @@ -21,7 +21,6 @@ * * This model acts like it has a single selection, as well. */ - class XKBListModel : public QAbstractListModel { Q_OBJECT @@ -70,6 +69,7 @@ protected: }; QVector< ModelInfo > m_list; int m_currentIndex = -1; + const char* m_contextname = nullptr; }; From 4387b8061e88a635e9d9a885d4ce261d7be6976a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 31 Oct 2020 20:02:21 +0100 Subject: [PATCH 09/15] [keyboard] Move responsibility for retranslation to Config - only widgets get language change events, so we need to hook that up to the ViewSteps and inform the Config object so that it can (re)load translations for the keyboard data. --- src/modules/keyboard/Config.cpp | 5 +++++ src/modules/keyboard/Config.h | 11 +++++++++++ src/modules/keyboard/KeyboardLayoutModel.cpp | 4 ---- src/modules/keyboard/KeyboardPage.cpp | 9 ++++++++- src/modules/keyboard/KeyboardPage.h | 2 ++ 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 5d5e80d5f..85bb2e9d6 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -560,3 +560,8 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) m_writeEtcDefaultKeyboard = true; } } + +void +Config::retranslate() +{ +} diff --git a/src/modules/keyboard/Config.h b/src/modules/keyboard/Config.h index e35193484..90eeb0e7b 100644 --- a/src/modules/keyboard/Config.h +++ b/src/modules/keyboard/Config.h @@ -58,6 +58,17 @@ public: */ KeyboardVariantsModel* keyboardVariants() const; + /** @brief Call this to change application language + * + * The models (for keyboard model, layouts and variants) provide + * translations of strings in the xkb table, so need to be + * notified of language changes as well. + * + * Only widgets get LanguageChange events, so one of them will + * need to call this. + */ + void retranslate(); + signals: void prettyStatusChanged(); diff --git a/src/modules/keyboard/KeyboardLayoutModel.cpp b/src/modules/keyboard/KeyboardLayoutModel.cpp index 9be9c8ef9..f1e6a66c6 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -123,10 +123,6 @@ KeyboardModelsModel::KeyboardModelsModel( QObject* parent ) } cDebug() << "Loaded" << m_list.count() << "keyboard models"; - - CALAMARES_RETRANSLATE( if ( !s_kbtranslator ) { s_kbtranslator = new QTranslator; } cqDeleter d { s_kbtranslator }; - d.preserve - = CalamaresUtils::loadTranslator( QLocale(), QStringLiteral( "kb_" ), s_kbtranslator ); ) } diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index 2be897e58..7522056a3 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -95,10 +95,17 @@ KeyboardPage::KeyboardPage( Config* config, QWidget* parent ) connect( config->keyboardVariants(), &KeyboardVariantsModel::currentIndexChanged, [this]( int index ) { ui->variantSelector->setCurrentIndex( m_config->keyboardVariants()->index( index ) ); } ); - CALAMARES_RETRANSLATE( ui->retranslateUi( this ); ) + CALAMARES_RETRANSLATE_SLOT( &KeyboardPage::retranslate ) } KeyboardPage::~KeyboardPage() { delete ui; } + +void +KeyboardPage::retranslate() +{ + ui->retranslateUi( this ); + m_config->retranslate(); +} diff --git a/src/modules/keyboard/KeyboardPage.h b/src/modules/keyboard/KeyboardPage.h index 98925fcad..1c644cc08 100644 --- a/src/modules/keyboard/KeyboardPage.h +++ b/src/modules/keyboard/KeyboardPage.h @@ -37,6 +37,8 @@ public: explicit KeyboardPage( Config* config, QWidget* parent = nullptr ); ~KeyboardPage() override; + void retranslate(); + private: Ui::Page_Keyboard* ui; KeyBoardPreview* m_keyboardPreview; From b15a76804c53da0d2d1fe39c025c421e60c354a0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 1 Nov 2020 12:41:21 +0100 Subject: [PATCH 10/15] i18n: bogus Tajik keyboard translations --- lang/kb_tg.ts | 4609 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4609 insertions(+) create mode 100644 lang/kb_tg.ts diff --git a/lang/kb_tg.ts b/lang/kb_tg.ts new file mode 100644 index 000000000..10b48e701 --- /dev/null +++ b/lang/kb_tg.ts @@ -0,0 +1,4609 @@ + + + + + QObject + + + A4Tech KB-21 + kb_models + + + + + A4Tech KBS-8 + kb_models + + + + + A4Tech Wireless Desktop RFKB-23 + kb_models + + + + + Acer AirKey V + kb_models + + + + + Acer C300 + kb_models + + + + + Acer Ferrari 4000 + kb_models + + + + + Acer laptop + kb_models + + + + + Advance Scorpius KI + kb_models + + + + + Apple + kb_models + + + + + Apple Aluminium (ANSI) + kb_models + + + + + Apple Aluminium (ISO) + kb_models + + + + + Apple Aluminium (JIS) + kb_models + + + + + Apple laptop + kb_models + + + + + Asus laptop + kb_models + + + + + Azona RF2300 wireless Internet + kb_models + + + + + BTC 5090 + kb_models + + + + + BTC 5113RF Multimedia + kb_models + + + + + BTC 5126T + kb_models + + + + + BTC 6301URF + kb_models + + + + + BTC 9000 + kb_models + + + + + BTC 9000A + kb_models + + + + + BTC 9001AH + kb_models + + + + + BTC 9019U + kb_models + + + + + BTC 9116U Mini Wireless Internet and Gaming + kb_models + + + + + BenQ X-Touch + kb_models + + + + + BenQ X-Touch 730 + kb_models + + + + + BenQ X-Touch 800 + kb_models + + + + + Brother Internet + kb_models + + + + + Cherry B.UNLIMITED + kb_models + + + + + Cherry Blue Line CyBo@rd + kb_models + + + + + Cherry Blue Line CyBo@rd (alt.) + kb_models + + + + + Cherry CyBo@rd USB-Hub + kb_models + + + + + Cherry CyMotion Expert + kb_models + + + + + Cherry CyMotion Master Linux + kb_models + + + + + Cherry CyMotion Master XPress + kb_models + + + + + Chicony Internet + kb_models + + + + + Chicony KB-9885 + kb_models + + + + + Chicony KU-0108 + kb_models + + + + + Chicony KU-0420 + kb_models + + + + + Chromebook + kb_models + + + + + Classmate PC + kb_models + + + + + Compaq Armada laptop + kb_models + + + + + Compaq Easy Access + kb_models + + + + + Compaq Internet (13 keys) + kb_models + + + + + Compaq Internet (18 keys) + kb_models + + + + + Compaq Internet (7 keys) + kb_models + + + + + Compaq Presario laptop + kb_models + + + + + Compaq iPaq + kb_models + + + + + Creative Desktop Wireless 7000 + kb_models + + + + + DTK2000 + kb_models + + + + + Dell + kb_models + + + + + Dell 101-key PC + kb_models + + + + + Dell Inspiron 6000/8000 laptop + kb_models + + + + + Dell Latitude laptop + kb_models + + + + + Dell Precision M laptop + kb_models + + + + + Dell Precision M65 laptop + kb_models + + + + + Dell SK-8125 + kb_models + + + + + Dell SK-8135 + kb_models + + + + + Dell USB Multimedia + kb_models + + + + + Dexxa Wireless Desktop + kb_models + + + + + Diamond 9801/9802 + kb_models + + + + + Ennyah DKB-1008 + kb_models + + + + + Everex STEPnote + kb_models + + + + + FL90 + kb_models + + + + + Fujitsu-Siemens Amilo laptop + kb_models + + + + + Generic 101-key PC + kb_models + Общий 101-ключ + + + + Generic 102-key PC + kb_models + Общий 102-ключ + + + + Generic 104-key PC + kb_models + Общий 104-ключ + + + + Generic 104-key PC with L-shaped Enter key + kb_models + + + + + Generic 105-key PC + kb_models + Общий 105-ключ + + + + Generic 86-key PC + kb_models + Общий 86-ключ + + + + Genius Comfy KB-12e + kb_models + + + + + Genius Comfy KB-16M/Multimedia KWD-910 + kb_models + + + + + Genius Comfy KB-21e-Scroll + kb_models + + + + + Genius KB-19e NB + kb_models + + + + + Genius KKB-2050HS + kb_models + + + + + Gyration + kb_models + + + + + Happy Hacking + kb_models + + + + + Happy Hacking for Mac + kb_models + + + + + Hewlett-Packard Internet + kb_models + + + + + Hewlett-Packard Mini 110 laptop + kb_models + + + + + Hewlett-Packard NEC SK-2500 Multimedia + kb_models + + + + + Hewlett-Packard Omnibook 500 + kb_models + + + + + Hewlett-Packard Omnibook 500 FA + kb_models + + + + + Hewlett-Packard Omnibook 6000/6100 + kb_models + + + + + Hewlett-Packard Omnibook XE3 GC + kb_models + + + + + Hewlett-Packard Omnibook XE3 GF + kb_models + + + + + Hewlett-Packard Omnibook XT1000 + kb_models + + + + + Hewlett-Packard Pavilion ZT1100 + kb_models + + + + + Hewlett-Packard Pavilion dv5 + kb_models + + + + + Hewlett-Packard nx9020 + kb_models + + + + + Honeywell Euroboard + kb_models + + + + + IBM Rapid Access + kb_models + + + + + IBM Rapid Access II + kb_models + + + + + IBM Space Saver + kb_models + + + + + IBM ThinkPad 560Z/600/600E/A22E + kb_models + + + + + IBM ThinkPad R60/T60/R61/T61 + kb_models + + + + + IBM ThinkPad Z60m/Z60t/Z61m/Z61t + kb_models + + + + + Keytronic FlexPro + kb_models + + + + + Kinesis + kb_models + + + + + Logitech + kb_models + + + + + Logitech Access + kb_models + + + + + Logitech Cordless Desktop + kb_models + + + + + Logitech Cordless Desktop (alt.) + kb_models + + + + + Logitech Cordless Desktop EX110 + kb_models + + + + + Logitech Cordless Desktop LX-300 + kb_models + + + + + Logitech Cordless Desktop Navigator + kb_models + + + + + Logitech Cordless Desktop Optical + kb_models + + + + + Logitech Cordless Desktop Pro (2nd alt.) + kb_models + + + + + Logitech Cordless Desktop iTouch + kb_models + + + + + Logitech Cordless Freedom/Desktop Navigator + kb_models + + + + + Logitech G15 extra keys via G15daemon + kb_models + + + + + Logitech Internet + kb_models + + + + + Logitech Internet 350 + kb_models + + + + + Logitech Internet Navigator + kb_models + + + + + Logitech Ultra-X + kb_models + + + + + Logitech Ultra-X Cordless Media Desktop + kb_models + + + + + Logitech diNovo + kb_models + + + + + Logitech diNovo Edge + kb_models + + + + + Logitech iTouch + kb_models + + + + + Logitech iTouch Cordless Y-RB6 + kb_models + + + + + Logitech iTouch Internet Navigator SE + kb_models + + + + + Logitech iTouch Internet Navigator SE USB + kb_models + + + + + MacBook/MacBook Pro + kb_models + + + + + MacBook/MacBook Pro (intl.) + kb_models + + + + + Macintosh + kb_models + + + + + Macintosh Old + kb_models + + + + + Memorex MX1998 + kb_models + + + + + Memorex MX2500 EZ-Access + kb_models + + + + + Memorex MX2750 + kb_models + + + + + Microsoft Comfort Curve 2000 + kb_models + + + + + Microsoft Internet + kb_models + + + + + Microsoft Internet Pro (Swedish) + kb_models + + + + + Microsoft Natural + kb_models + + + + + Microsoft Natural Elite + kb_models + + + + + Microsoft Natural Ergonomic 4000 + kb_models + + + + + Microsoft Natural Pro OEM + kb_models + + + + + Microsoft Natural Pro USB/Internet Pro + kb_models + + + + + Microsoft Natural Pro/Internet Pro + kb_models + + + + + Microsoft Natural Wireless Ergonomic 7000 + kb_models + + + + + Microsoft Office Keyboard + kb_models + + + + + Microsoft Surface + kb_models + + + + + Microsoft Wireless Multimedia 1.0A + kb_models + + + + + NEC SK-1300 + kb_models + + + + + NEC SK-2500 + kb_models + + + + + NEC SK-6200 + kb_models + + + + + NEC SK-7100 + kb_models + + + + + Northgate OmniKey 101 + kb_models + + + + + OLPC + kb_models + + + + + Ortek Multimedia/Internet MCK-800 + kb_models + + + + + PC-98 + kb_models + + + + + Propeller Voyager KTEZ-1000 + kb_models + + + + + QTronix Scorpius 98N+ + kb_models + + + + + SVEN Ergonomic 2500 + kb_models + + + + + SVEN Slim 303 + kb_models + + + + + Samsung SDM 4500P + kb_models + + + + + Samsung SDM 4510P + kb_models + + + + + Sanwa Supply SKB-KG3 + kb_models + + + + + Silvercrest Multimedia Wireless + kb_models + + + + + SteelSeries Apex 300 (Apex RAW) + kb_models + + + + + Sun Type 6 (Japanese) + kb_models + + + + + Sun Type 6 USB (Japanese) + kb_models + + + + + Sun Type 6 USB (Unix) + kb_models + + + + + Sun Type 6/7 USB + kb_models + + + + + Sun Type 6/7 USB (European) + kb_models + + + + + Sun Type 7 USB + kb_models + + + + + Sun Type 7 USB (European) + kb_models + + + + + Sun Type 7 USB (Japanese)/Japanese 106-key + kb_models + + + + + Sun Type 7 USB (Unix) + kb_models + + + + + Super Power Multimedia + kb_models + + + + + Symplon PaceBook tablet + kb_models + + + + + Targa Visionary 811 + kb_models + + + + + Toshiba Satellite S3000 + kb_models + + + + + Truly Ergonomic 227 + kb_models + + + + + Truly Ergonomic 229 + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) + kb_models + + + + + Trust Direct Access + kb_models + + + + + Trust Slimline + kb_models + + + + + Trust Wireless Classic + kb_models + + + + + TypeMatrix EZ-Reach 2020 + kb_models + + + + + TypeMatrix EZ-Reach 2030 PS2 + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (106:JP mode) + kb_models + + + + + Unitek KB-1925 + kb_models + + + + + ViewSonic KU-306 Internet + kb_models + + + + + Winbook Model XP5 + kb_models + + + + + Yahoo! Internet + kb_models + + + + + eMachines m6800 laptop + kb_models + + + + + Afghani + kb_layouts + + + + + Albanian + kb_layouts + + + + + Amharic + kb_layouts + + + + + Arabic + kb_layouts + + + + + Arabic (Morocco) + kb_layouts + + + + + Arabic (Syria) + kb_layouts + + + + + Armenian + kb_layouts + + + + + Azerbaijani + kb_layouts + + + + + Bambara + kb_layouts + + + + + Bangla + kb_layouts + + + + + Belarusian + kb_layouts + + + + + Belgian + kb_layouts + + + + + Bosnian + kb_layouts + + + + + Braille + kb_layouts + + + + + Bulgarian + kb_layouts + + + + + Burmese + kb_layouts + + + + + Chinese + kb_layouts + + + + + Croatian + kb_layouts + + + + + Czech + kb_layouts + + + + + Danish + kb_layouts + + + + + Dhivehi + kb_layouts + + + + + Dutch + kb_layouts + + + + + Dzongkha + kb_layouts + + + + + English (Australian) + kb_layouts + + + + + English (Cameroon) + kb_layouts + + + + + English (Ghana) + kb_layouts + + + + + English (Nigeria) + kb_layouts + + + + + English (South Africa) + kb_layouts + + + + + English (UK) + kb_layouts + + + + + English (US) + kb_layouts + + + + + Esperanto + kb_layouts + + + + + Estonian + kb_layouts + + + + + Faroese + kb_layouts + + + + + Filipino + kb_layouts + + + + + Finnish + kb_layouts + + + + + French + kb_layouts + + + + + French (Canada) + kb_layouts + + + + + French (Democratic Republic of the Congo) + kb_layouts + + + + + French (Guinea) + kb_layouts + + + + + French (Togo) + kb_layouts + + + + + Georgian + kb_layouts + + + + + German + kb_layouts + + + + + German (Austria) + kb_layouts + + + + + German (Switzerland) + kb_layouts + + + + + Greek + kb_layouts + + + + + Hebrew + kb_layouts + + + + + Hungarian + kb_layouts + + + + + Icelandic + kb_layouts + + + + + Indian + kb_layouts + + + + + Indonesian (Arab Melayu, phonetic) + kb_layouts + + + + + Indonesian (Javanese) + kb_layouts + + + + + Iraqi + kb_layouts + + + + + Irish + kb_layouts + + + + + Italian + kb_layouts + + + + + Japanese + kb_layouts + + + + + Japanese (PC-98) + kb_layouts + + + + + Kabylian (azerty layout, no dead keys) + kb_layouts + + + + + Kazakh + kb_layouts + + + + + Khmer (Cambodia) + kb_layouts + + + + + Korean + kb_layouts + + + + + Kyrgyz + kb_layouts + + + + + Lao + kb_layouts + + + + + Latvian + kb_layouts + + + + + Lithuanian + kb_layouts + + + + + Macedonian + kb_layouts + + + + + Malay (Jawi, Arabic Keyboard) + kb_layouts + + + + + Maltese + kb_layouts + + + + + Maori + kb_layouts + + + + + Moldavian + kb_layouts + + + + + Mongolian + kb_layouts + + + + + Montenegrin + kb_layouts + + + + + Nepali + kb_layouts + + + + + Norwegian + kb_layouts + + + + + Persian + kb_layouts + + + + + Polish + kb_layouts + + + + + Portuguese + kb_layouts + + + + + Portuguese (Brazil) + kb_layouts + + + + + Romanian + kb_layouts + + + + + Russian + kb_layouts + + + + + Serbian + kb_layouts + + + + + Sinhala (phonetic) + kb_layouts + + + + + Slovak + kb_layouts + + + + + Slovenian + kb_layouts + + + + + Spanish + kb_layouts + + + + + Spanish (Latin American) + kb_layouts + + + + + Swahili (Kenya) + kb_layouts + + + + + Swahili (Tanzania) + kb_layouts + + + + + Swedish + kb_layouts + + + + + Taiwanese + kb_layouts + + + + + Tajik + kb_layouts + + + + + Thai + kb_layouts + + + + + Tswana + kb_layouts + + + + + Turkish + kb_layouts + + + + + Turkmen + kb_layouts + + + + + Ukrainian + kb_layouts + + + + + Urdu (Pakistan) + kb_layouts + + + + + Uzbek + kb_layouts + + + + + Vietnamese + kb_layouts + + + + + Wolof + kb_layouts + + + + + Akan + kb_variants + + + + + Albanian (Plisi) + kb_variants + + + + + Albanian (Veqilharxhi) + kb_variants + + + + + Arabic (AZERTY) + kb_variants + + + + + Arabic (AZERTY, Eastern Arabic numerals) + kb_variants + + + + + Arabic (Algeria) + kb_variants + + + + + Arabic (Buckwalter) + kb_variants + + + + + Arabic (Eastern Arabic numerals) + kb_variants + + + + + Arabic (Macintosh) + kb_variants + + + + + Arabic (OLPC) + kb_variants + + + + + Arabic (Pakistan) + kb_variants + + + + + Arabic (QWERTY) + kb_variants + + + + + Arabic (QWERTY, Eastern Arabic numerals) + kb_variants + + + + + Armenian (alt. eastern) + kb_variants + + + + + Armenian (alt. phonetic) + kb_variants + + + + + Armenian (eastern) + kb_variants + + + + + Armenian (phonetic) + kb_variants + + + + + Armenian (western) + kb_variants + + + + + Asturian (Spain, with bottom-dot H and L) + kb_variants + + + + + Avatime + kb_variants + + + + + Azerbaijani (Cyrillic) + kb_variants + + + + + Bangla (India) + kb_variants + + + + + Bangla (India, Baishakhi Inscript) + kb_variants + + + + + Bangla (India, Baishakhi) + kb_variants + + + + + Bangla (India, Bornona) + kb_variants + + + + + Bangla (India, Gitanjali) + kb_variants + + + + + Bangla (India, Probhat) + kb_variants + + + + + Bangla (Probhat) + kb_variants + + + + + Bashkirian + kb_variants + + + + + Belarusian (Latin) + kb_variants + + + + + Belarusian (intl.) + kb_variants + + + + + Belarusian (legacy) + kb_variants + + + + + Belgian (ISO, alt.) + kb_variants + + + + + Belgian (Latin-9 only, alt.) + kb_variants + + + + + Belgian (Sun dead keys) + kb_variants + + + + + Belgian (Sun dead keys, alt.) + kb_variants + + + + + Belgian (Wang 724 AZERTY) + kb_variants + + + + + Belgian (alt.) + kb_variants + + + + + Belgian (no dead keys) + kb_variants + + + + + Berber (Morocco, Tifinagh alt.) + kb_variants + + + + + Berber (Morocco, Tifinagh extended phonetic) + kb_variants + + + + + Berber (Morocco, Tifinagh extended) + kb_variants + + + + + Berber (Morocco, Tifinagh phonetic) + kb_variants + + + + + Berber (Morocco, Tifinagh phonetic, alt.) + kb_variants + + + + + Berber (Morocco, Tifinagh) + kb_variants + + + + + Bosnian (US) + kb_variants + + + + + Bosnian (US, with Bosnian digraphs) + kb_variants + + + + + Bosnian (with Bosnian digraphs) + kb_variants + + + + + Bosnian (with guillemets) + kb_variants + + + + + Braille (left-handed inverted thumb) + kb_variants + + + + + Braille (left-handed) + kb_variants + + + + + Braille (right-handed inverted thumb) + kb_variants + + + + + Braille (right-handed) + kb_variants + + + + + Bulgarian (enhanced) + kb_variants + + + + + Bulgarian (new phonetic) + kb_variants + + + + + Bulgarian (traditional phonetic) + kb_variants + + + + + Burmese Zawgyi + kb_variants + + + + + Cameroon (AZERTY, intl.) + kb_variants + + + + + Cameroon (Dvorak, intl.) + kb_variants + + + + + Cameroon Multilingual (QWERTY, intl.) + kb_variants + + + + + Canadian (intl.) + kb_variants + + + + + Canadian (intl., 1st part) + kb_variants + + + + + Canadian (intl., 2nd part) + kb_variants + + + + + Catalan (Spain, with middle-dot L) + kb_variants + + + + + Cherokee + kb_variants + + + + + Chuvash + kb_variants + + + + + Chuvash (Latin) + kb_variants + + + + + CloGaelach + kb_variants + + + + + Crimean Tatar (Turkish Alt-Q) + kb_variants + + + + + Crimean Tatar (Turkish F) + kb_variants + + + + + Crimean Tatar (Turkish Q) + kb_variants + + + + + Croatian (US) + kb_variants + + + + + Croatian (US, with Croatian digraphs) + kb_variants + + + + + Croatian (with Croatian digraphs) + kb_variants + + + + + Croatian (with guillemets) + kb_variants + + + + + Czech (QWERTY) + kb_variants + + + + + Czech (QWERTY, Macintosh) + kb_variants + + + + + Czech (QWERTY, extended backslash) + kb_variants + + + + + Czech (UCW, only accented letters) + kb_variants + + + + + Czech (US, Dvorak, UCW support) + kb_variants + + + + + Czech (with &lt;|&gt; key) + kb_variants + + + + + Danish (Dvorak) + kb_variants + + + + + Danish (Macintosh) + kb_variants + + + + + Danish (Macintosh, no dead keys) + kb_variants + + + + + Danish (Windows) + kb_variants + + + + + Danish (no dead keys) + kb_variants + + + + + Dutch (Macintosh) + kb_variants + + + + + Dutch (Sun dead keys) + kb_variants + + + + + Dutch (standard) + kb_variants + + + + + English (Canada) + kb_variants + + + + + English (Colemak) + kb_variants + + + + + English (Dvorak) + kb_variants + + + + + English (Dvorak, alt. intl.) + kb_variants + + + + + English (Dvorak, intl., with dead keys) + kb_variants + + + + + English (Dvorak, left-handed) + kb_variants + + + + + English (Dvorak, right-handed) + kb_variants + + + + + English (Ghana, GILLBT) + kb_variants + + + + + English (Ghana, multilingual) + kb_variants + + + + + English (India, with rupee) + kb_variants + + + + + English (Macintosh) + kb_variants + + + + + English (Mali, US, Macintosh) + kb_variants + + + + + English (Mali, US, intl.) + kb_variants + + + + + English (Norman) + kb_variants + + + + + English (UK, Colemak) + kb_variants + + + + + English (UK, Dvorak) + kb_variants + + + + + English (UK, Dvorak, with UK punctuation) + kb_variants + + + + + English (UK, Macintosh) + kb_variants + + + + + English (UK, Macintosh, intl.) + kb_variants + + + + + English (UK, extended, Windows) + kb_variants + + + + + English (UK, intl., with dead keys) + kb_variants + + + + + English (US, Symbolic) + kb_variants + + + + + English (US, alt. intl.) + kb_variants + + + + + English (US, euro on 5) + kb_variants + + + + + English (US, intl., with dead keys) + kb_variants + + + + + English (Workman) + kb_variants + + + + + English (Workman, intl., with dead keys) + kb_variants + + + + + English (classic Dvorak) + kb_variants + + + + + English (intl., with AltGr dead keys) + kb_variants + + + + + English (programmer Dvorak) + kb_variants + + + + + English (the divide/multiply toggle the layout) + kb_variants + + + + + Esperanto (Brazil, Nativo) + kb_variants + + + + + Esperanto (Portugal, Nativo) + kb_variants + + + + + Esperanto (legacy) + kb_variants + + + + + Estonian (Dvorak) + kb_variants + + + + + Estonian (US) + kb_variants + + + + + Estonian (no dead keys) + kb_variants + + + + + Ewe + kb_variants + + + + + Faroese (no dead keys) + kb_variants + + + + + Filipino (Capewell-Dvorak, Baybayin) + kb_variants + + + + + Filipino (Capewell-Dvorak, Latin) + kb_variants + + + + + Filipino (Capewell-QWERF 2006, Baybayin) + kb_variants + + + + + Filipino (Capewell-QWERF 2006, Latin) + kb_variants + + + + + Filipino (Colemak, Baybayin) + kb_variants + + + + + Filipino (Colemak, Latin) + kb_variants + + + + + Filipino (Dvorak, Baybayin) + kb_variants + + + + + Filipino (Dvorak, Latin) + kb_variants + + + + + Filipino (QWERTY, Baybayin) + kb_variants + + + + + Finnish (Macintosh) + kb_variants + + + + + Finnish (Windows) + kb_variants + + + + + Finnish (classic) + kb_variants + + + + + Finnish (classic, no dead keys) + kb_variants + + + + + French (AZERTY) + kb_variants + + + + + French (AZERTY, AFNOR) + kb_variants + + + + + French (BEPO) + kb_variants + + + + + French (BEPO, AFNOR) + kb_variants + + + + + French (BEPO, Latin-9 only) + kb_variants + + + + + French (Breton) + kb_variants + + + + + French (Cameroon) + kb_variants + + + + + French (Canada, Dvorak) + kb_variants + + + + + French (Canada, legacy) + kb_variants + + + + + French (Dvorak) + kb_variants + + + + + French (Macintosh) + kb_variants + + + + + French (Mali, alt.) + kb_variants + + + + + French (Morocco) + kb_variants + + + + + French (Sun dead keys) + kb_variants + + + + + French (Switzerland) + kb_variants + + + + + French (Switzerland, Macintosh) + kb_variants + + + + + French (Switzerland, Sun dead keys) + kb_variants + + + + + French (Switzerland, no dead keys) + kb_variants + + + + + French (US) + kb_variants + + + + + French (alt.) + kb_variants + + + + + French (alt., Latin-9 only) + kb_variants + + + + + French (alt., Sun dead keys) + kb_variants + + + + + French (alt., no dead keys) + kb_variants + + + + + French (legacy, alt.) + kb_variants + + + + + French (legacy, alt., Sun dead keys) + kb_variants + + + + + French (legacy, alt., no dead keys) + kb_variants + + + + + French (no dead keys) + kb_variants + + + + + Friulian (Italy) + kb_variants + + + + + Fula + kb_variants + + + + + Ga + kb_variants + + + + + Georgian (France, AZERTY Tskapo) + kb_variants + + + + + Georgian (Italy) + kb_variants + + + + + Georgian (MESS) + kb_variants + + + + + Georgian (ergonomic) + kb_variants + + + + + German (Austria, Macintosh) + kb_variants + + + + + German (Austria, Sun dead keys) + kb_variants + + + + + German (Austria, no dead keys) + kb_variants + + + + + German (Dvorak) + kb_variants + + + + + German (E1) + kb_variants + + + + + German (E2) + kb_variants + + + + + German (Macintosh) + kb_variants + + + + + German (Macintosh, no dead keys) + kb_variants + + + + + German (Neo 2) + kb_variants + + + + + German (QWERTY) + kb_variants + + + + + German (Sun dead keys) + kb_variants + + + + + German (Switzerland, Macintosh) + kb_variants + + + + + German (Switzerland, Sun dead keys) + kb_variants + + + + + German (Switzerland, legacy) + kb_variants + + + + + German (Switzerland, no dead keys) + kb_variants + + + + + German (T3) + kb_variants + + + + + German (US) + kb_variants + + + + + German (dead acute) + kb_variants + + + + + German (dead grave acute) + kb_variants + + + + + German (dead tilde) + kb_variants + + + + + German (no dead keys) + kb_variants + + + + + Greek (extended) + kb_variants + + + + + Greek (no dead keys) + kb_variants + + + + + Greek (polytonic) + kb_variants + + + + + Greek (simple) + kb_variants + + + + + Gujarati + kb_variants + + + + + Hanyu Pinyin (with AltGr dead keys) + kb_variants + + + + + Hausa (Ghana) + kb_variants + + + + + Hausa (Nigeria) + kb_variants + + + + + Hawaiian + kb_variants + + + + + Hebrew (Biblical, Tiro) + kb_variants + + + + + Hebrew (lyx) + kb_variants + + + + + Hebrew (phonetic) + kb_variants + + + + + Hindi (Bolnagri) + kb_variants + + + + + Hindi (KaGaPa, phonetic) + kb_variants + + + + + Hindi (Wx) + kb_variants + + + + + Hungarian (QWERTY) + kb_variants + + + + + Hungarian (QWERTY, 101-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 101-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTY, 101-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 101-key, dot, no dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTY, 102-key, dot, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 101-key, dot, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, comma, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, comma, no dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, dot, dead keys) + kb_variants + + + + + Hungarian (QWERTZ, 102-key, dot, no dead keys) + kb_variants + + + + + Hungarian (no dead keys) + kb_variants + + + + + Hungarian (standard) + kb_variants + + + + + Icelandic (Dvorak) + kb_variants + + + + + Icelandic (Macintosh) + kb_variants + + + + + Icelandic (Macintosh, legacy) + kb_variants + + + + + Icelandic (Sun dead keys) + kb_variants + + + + + Icelandic (no dead keys) + kb_variants + + + + + Igbo + kb_variants + + + + + Indic (phonetic, IPA) + kb_variants + + + + + Indonesian (Arab Melayu, extended phonetic) + kb_variants + + + + + Inuktitut + kb_variants + + + + + Irish (UnicodeExpert) + kb_variants + + + + + Italian (IBM 142) + kb_variants + + + + + Italian (Macintosh) + kb_variants + + + + + Italian (US) + kb_variants + + + + + Italian (Windows) + kb_variants + + + + + Italian (intl., with dead keys) + kb_variants + + + + + Italian (no dead keys) + kb_variants + + + + + Japanese (Dvorak) + kb_variants + + + + + Japanese (Kana 86) + kb_variants + + + + + Japanese (Kana) + kb_variants + + + + + Japanese (Macintosh) + kb_variants + + + + + Japanese (OADG 109A) + kb_variants + + + + + Kabylian (Algeria, Tifinagh) + kb_variants + + + + + Kabylian (azerty layout, with dead keys) + kb_variants + + + + + Kabylian (qwerty-gb layout, with dead keys) + kb_variants + + + + + Kabylian (qwerty-us layout, with dead keys) + kb_variants + + + + + Kalmyk + kb_variants + + + + + Kannada + kb_variants + + + + + Kannada (KaGaPa, phonetic) + kb_variants + + + + + Kashubian + kb_variants + + + + + Kazakh (Latin) + kb_variants + + + + + Kazakh (extended) + kb_variants + + + + + Kazakh (with Russian) + kb_variants + + + + + Kikuyu + kb_variants + + + + + Komi + kb_variants + + + + + Korean (101/104-key compatible) + kb_variants + + + + + Kurdish (Iran, Arabic-Latin) + kb_variants + + + + + Kurdish (Iran, F) + kb_variants + + + + + Kurdish (Iran, Latin Alt-Q) + kb_variants + + + + + Kurdish (Iran, Latin Q) + kb_variants + + + + + Kurdish (Iraq, Arabic-Latin) + kb_variants + + + + + Kurdish (Iraq, F) + kb_variants + + + + + Kurdish (Iraq, Latin Alt-Q) + kb_variants + + + + + Kurdish (Iraq, Latin Q) + kb_variants + + + + + Kurdish (Syria, F) + kb_variants + + + + + Kurdish (Syria, Latin Alt-Q) + kb_variants + + + + + Kurdish (Syria, Latin Q) + kb_variants + + + + + Kurdish (Turkey, F) + kb_variants + + + + + Kurdish (Turkey, Latin Alt-Q) + kb_variants + + + + + Kurdish (Turkey, Latin Q) + kb_variants + + + + + Kyrgyz (phonetic) + kb_variants + + + + + Lao (STEA) + kb_variants + + + + + Latvian (F) + kb_variants + + + + + Latvian (adapted) + kb_variants + + + + + Latvian (apostrophe) + kb_variants + + + + + Latvian (ergonomic, ŪGJRMV) + kb_variants + + + + + Latvian (modern) + kb_variants + + + + + Latvian (tilde) + kb_variants + + + + + Lithuanian (IBM LST 1205-92) + kb_variants + + + + + Lithuanian (LEKP) + kb_variants + + + + + Lithuanian (LEKPa) + kb_variants + + + + + Lithuanian (US) + kb_variants + + + + + Lithuanian (standard) + kb_variants + + + + + Lower Sorbian + kb_variants + + + + + Lower Sorbian (QWERTZ) + kb_variants + + + + + Macedonian (no dead keys) + kb_variants + + + + + Malay (Jawi, phonetic) + kb_variants + + + + + Malayalam + kb_variants + + + + + Malayalam (Lalitha) + kb_variants + + + + + Malayalam (enhanced Inscript, with rupee) + kb_variants + + + + + Maltese (UK, with AltGr overrides) + kb_variants + + + + + Maltese (US layout with AltGr overrides) + kb_variants + + + + + Maltese (US) + kb_variants + + + + + Manipuri (Eeyek) + kb_variants + + + + + Marathi (KaGaPa, phonetic) + kb_variants + + + + + Marathi (enhanced Inscript) + kb_variants + + + + + Mari + kb_variants + + + + + Mmuock + kb_variants + + + + + Moldavian (Gagauz) + kb_variants + + + + + Mongolian (Bichig) + kb_variants + + + + + Mongolian (Galik) + kb_variants + + + + + Mongolian (Manchu Galik) + kb_variants + + + + + Mongolian (Manchu) + kb_variants + + + + + Mongolian (Todo Galik) + kb_variants + + + + + Mongolian (Todo) + kb_variants + + + + + Mongolian (Xibe) + kb_variants + + + + + Montenegrin (Cyrillic) + kb_variants + + + + + Montenegrin (Cyrillic, ZE and ZHE swapped) + kb_variants + + + + + Montenegrin (Cyrillic, with guillemets) + kb_variants + + + + + Montenegrin (Latin, QWERTY) + kb_variants + + + + + Montenegrin (Latin, Unicode) + kb_variants + + + + + Montenegrin (Latin, Unicode, QWERTY) + kb_variants + + + + + Montenegrin (Latin, with guillemets) + kb_variants + + + + + Northern Saami (Finland) + kb_variants + + + + + Northern Saami (Norway) + kb_variants + + + + + Northern Saami (Norway, no dead keys) + kb_variants + + + + + Northern Saami (Sweden) + kb_variants + + + + + Norwegian (Colemak) + kb_variants + + + + + Norwegian (Dvorak) + kb_variants + + + + + Norwegian (Macintosh) + kb_variants + + + + + Norwegian (Macintosh, no dead keys) + kb_variants + + + + + Norwegian (Windows) + kb_variants + + + + + Norwegian (no dead keys) + kb_variants + + + + + Occitan + kb_variants + + + + + Ogham + kb_variants + + + + + Ogham (IS434) + kb_variants + + + + + Ol Chiki + kb_variants + + + + + Oriya + kb_variants + + + + + Ossetian (Georgia) + kb_variants + + + + + Ossetian (Windows) + kb_variants + + + + + Ossetian (legacy) + kb_variants + + + + + Pannonian Rusyn + kb_variants + + + + + Pashto + kb_variants + + + + + Pashto (Afghanistan, OLPC) + kb_variants + + + + + Persian (Afghanistan, Dari OLPC) + kb_variants + + + + + Persian (with Persian keypad) + kb_variants + + + + + Polish (British keyboard) + kb_variants + + + + + Polish (Dvorak) + kb_variants + + + + + Polish (Dvorak, with Polish quotes on key 1) + kb_variants + + + + + Polish (Dvorak, with Polish quotes on quotemark key) + kb_variants + + + + + Polish (QWERTZ) + kb_variants + + + + + Polish (legacy) + kb_variants + + + + + Polish (programmer Dvorak) + kb_variants + + + + + Portuguese (Brazil, Dvorak) + kb_variants + + + + + Portuguese (Brazil, IBM/Lenovo ThinkPad) + kb_variants + + + + + Portuguese (Brazil, Nativo for US keyboards) + kb_variants + + + + + Portuguese (Brazil, Nativo) + kb_variants + + + + + Portuguese (Brazil, no dead keys) + kb_variants + + + + + Portuguese (Macintosh) + kb_variants + + + + + Portuguese (Macintosh, Sun dead keys) + kb_variants + + + + + Portuguese (Macintosh, no dead keys) + kb_variants + + + + + Portuguese (Nativo for US keyboards) + kb_variants + + + + + Portuguese (Nativo) + kb_variants + + + + + Portuguese (Sun dead keys) + kb_variants + + + + + Portuguese (no dead keys) + kb_variants + + + + + Punjabi (Gurmukhi Jhelum) + kb_variants + + + + + Punjabi (Gurmukhi) + kb_variants + + + + + Romanian (Germany) + kb_variants + + + + + Romanian (Germany, no dead keys) + kb_variants + + + + + Romanian (Windows) + kb_variants + + + + + Romanian (cedilla) + kb_variants + + + + + Romanian (standard cedilla) + kb_variants + + + + + Romanian (standard) + kb_variants + + + + + Russian (Belarus) + kb_variants + + + + + Russian (Czech, phonetic) + kb_variants + + + + + Russian (DOS) + kb_variants + + + + + Russian (Georgia) + kb_variants + + + + + Russian (Germany, phonetic) + kb_variants + + + + + Russian (Kazakhstan, with Kazakh) + kb_variants + + + + + Russian (Macintosh) + kb_variants + + + + + Russian (Poland, phonetic Dvorak) + kb_variants + + + + + Russian (Sweden, phonetic) + kb_variants + + + + + Russian (Sweden, phonetic, no dead keys) + kb_variants + + + + + Russian (US, phonetic) + kb_variants + + + + + Russian (Ukraine, standard RSTU) + kb_variants + + + + + Russian (legacy) + kb_variants + + + + + Russian (phonetic) + kb_variants + + + + + Russian (phonetic, AZERTY) + kb_variants + + + + + Russian (phonetic, Dvorak) + kb_variants + + + + + Russian (phonetic, French) + kb_variants + + + + + Russian (phonetic, Windows) + kb_variants + + + + + Russian (phonetic, YAZHERTY) + kb_variants + + + + + Russian (typewriter) + kb_variants + + + + + Russian (typewriter, legacy) + kb_variants + + + + + Saisiyat (Taiwan) + kb_variants + + + + + Samogitian + kb_variants + + + + + Sanskrit (KaGaPa, phonetic) + kb_variants + + + + + Serbian (Cyrillic, ZE and ZHE swapped) + kb_variants + + + + + Serbian (Cyrillic, with guillemets) + kb_variants + + + + + Serbian (Latin) + kb_variants + + + + + Serbian (Latin, QWERTY) + kb_variants + + + + + Serbian (Latin, Unicode) + kb_variants + + + + + Serbian (Latin, Unicode, QWERTY) + kb_variants + + + + + Serbian (Latin, with guillemets) + kb_variants + + + + + Serbian (Russia) + kb_variants + + + + + Serbo-Croatian (US) + kb_variants + + + + + Sicilian + kb_variants + + + + + Silesian + kb_variants + + + + + Sindhi + kb_variants + + + + + Sinhala (US) + kb_variants + + + + + Slovak (QWERTY) + kb_variants + + + + + Slovak (QWERTY, extended backslash) + kb_variants + + + + + Slovak (extended backslash) + kb_variants + + + + + Slovenian (US) + kb_variants + + + + + Slovenian (with guillemets) + kb_variants + + + + + Spanish (Dvorak) + kb_variants + + + + + Spanish (Latin American, Colemak for gaming) + kb_variants + + + + + Spanish (Latin American, Colemak) + kb_variants + + + + + Spanish (Latin American, Dvorak) + kb_variants + + + + + Spanish (Latin American, Sun dead keys) + kb_variants + + + + + Spanish (Latin American, dead tilde) + kb_variants + + + + + Spanish (Latin American, no dead keys) + kb_variants + + + + + Spanish (Macintosh) + kb_variants + + + + + Spanish (Sun dead keys) + kb_variants + + + + + Spanish (Windows) + kb_variants + + + + + Spanish (dead tilde) + kb_variants + + + + + Spanish (no dead keys) + kb_variants + + + + + Swedish (Dvorak) + kb_variants + + + + + Swedish (Dvorak, intl.) + kb_variants + + + + + Swedish (Macintosh) + kb_variants + + + + + Swedish (Svdvorak) + kb_variants + + + + + Swedish (US) + kb_variants + + + + + Swedish (no dead keys) + kb_variants + + + + + Swedish Sign Language + kb_variants + + + + + Syriac + kb_variants + + + + + Syriac (phonetic) + kb_variants + + + + + Taiwanese (indigenous) + kb_variants + + + + + Tajik (legacy) + kb_variants + Тоҷикӣ (красіво) + + + + Tamil (Inscript) + kb_variants + + + + + Tamil (Sri Lanka, TamilNet '99) + kb_variants + + + + + Tamil (Sri Lanka, TamilNet '99, TAB encoding) + kb_variants + + + + + Tamil (TamilNet '99 with Tamil numerals) + kb_variants + + + + + Tamil (TamilNet '99) + kb_variants + + + + + Tamil (TamilNet '99, TAB encoding) + kb_variants + + + + + Tamil (TamilNet '99, TSCII encoding) + kb_variants + + + + + Tatar + kb_variants + + + + + Telugu + kb_variants + + + + + Telugu (KaGaPa, phonetic) + kb_variants + + + + + Telugu (Sarala) + kb_variants + + + + + Thai (Pattachote) + kb_variants + + + + + Thai (TIS-820.2538) + kb_variants + + + + + Tibetan + kb_variants + + + + + Tibetan (with ASCII numerals) + kb_variants + + + + + Turkish (Alt-Q) + kb_variants + + + + + Turkish (F) + kb_variants + + + + + Turkish (Germany) + kb_variants + + + + + Turkish (Sun dead keys) + kb_variants + + + + + Turkish (intl., with dead keys) + kb_variants + + + + + Turkmen (Alt-Q) + kb_variants + + + + + Udmurt + kb_variants + + + + + Ukrainian (Windows) + kb_variants + + + + + Ukrainian (homophonic) + kb_variants + + + + + Ukrainian (legacy) + kb_variants + + + + + Ukrainian (phonetic) + kb_variants + + + + + Ukrainian (standard RSTU) + kb_variants + + + + + Ukrainian (typewriter) + kb_variants + + + + + Urdu (Pakistan, CRULP) + kb_variants + + + + + Urdu (Pakistan, NLA) + kb_variants + + + + + Urdu (Windows) + kb_variants + + + + + Urdu (alt. phonetic) + kb_variants + + + + + Urdu (phonetic) + kb_variants + + + + + Uyghur + kb_variants + + + + + Uzbek (Afghanistan) + kb_variants + + + + + Uzbek (Afghanistan, OLPC) + kb_variants + + + + + Uzbek (Latin) + kb_variants + + + + + Vietnamese (French) + kb_variants + + + + + Vietnamese (US) + kb_variants + + + + + Yakut + kb_variants + + + + + Yoruba + kb_variants + + + + From 1a5fa36fb68441ecc797410937c60c4cdbdd1e9b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 1 Nov 2020 12:42:58 +0100 Subject: [PATCH 11/15] i18n: build keyboard translations This is the Wrong Thing To Do, but we'll do it for now: build the keyboard translations into the executable. In the medium term they should move to the modules that use them, with the re-vamp of how translation changes are signalled. --- src/calamares/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index 94abb9f54..abea69a26 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -42,7 +42,7 @@ set( calamares_i18n_qrc_content "" ) # calamares and qt language files foreach( lang ${CALAMARES_TRANSLATION_LANGUAGES} ) - foreach( tlsource "calamares_${lang}" "tz_${lang}" ) + foreach( tlsource "calamares_${lang}" "tz_${lang}" "kb_${lang}" ) if( EXISTS "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) set( calamares_i18n_qrc_content "${calamares_i18n_qrc_content}${tlsource}.qm\n" ) list( APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/${tlsource}.ts" ) From f088efdf848fd986a1f803e9554c804721ecf777 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 1 Nov 2020 13:46:32 +0100 Subject: [PATCH 12/15] [keyboard] Re-jig translation extraction - Use classes to prompt lupdate to extract with a better context (e.g. the class name, rather than plain "QObject") so that the translation-lookup can use the named context. - Add hard-coded "default" variant - Add totally bogus Tajik translations, for testing purposes --- lang/kb_en.ts | 3556 ++++++++--------- lang/kb_tg.ts | 3562 +++++++++--------- src/modules/keyboard/Config.cpp | 1 + src/modules/keyboard/KeyboardData_p.cxxtr | 1559 ++++---- src/modules/keyboard/KeyboardLayoutModel.cpp | 12 + src/modules/keyboard/KeyboardLayoutModel.h | 4 + src/modules/keyboard/layout-extractor.py | 8 +- 7 files changed, 4379 insertions(+), 4323 deletions(-) diff --git a/lang/kb_en.ts b/lang/kb_en.ts index 11e29c61a..08dc54905 100644 --- a/lang/kb_en.ts +++ b/lang/kb_en.ts @@ -2,4605 +2,4617 @@ - QObject + kb_layouts - - A4Tech KB-21 - kb_models - - - - - A4Tech KBS-8 - kb_models - - - - - A4Tech Wireless Desktop RFKB-23 - kb_models - - - - - Acer AirKey V - kb_models - - - - - Acer C300 - kb_models - - - - - Acer Ferrari 4000 - kb_models - - - - - Acer laptop - kb_models - - - - - Advance Scorpius KI - kb_models - - - - - Apple - kb_models - - - - - Apple Aluminium (ANSI) - kb_models - - - - - Apple Aluminium (ISO) - kb_models - - - - - Apple Aluminium (JIS) - kb_models - - - - - Apple laptop - kb_models - - - - - Asus laptop - kb_models - - - - - Azona RF2300 wireless Internet - kb_models - - - - - BTC 5090 - kb_models - - - - - BTC 5113RF Multimedia - kb_models - - - - - BTC 5126T - kb_models - - - - - BTC 6301URF - kb_models - - - - - BTC 9000 - kb_models - - - - - BTC 9000A - kb_models - - - - - BTC 9001AH - kb_models - - - - - BTC 9019U - kb_models - - - - - BTC 9116U Mini Wireless Internet and Gaming - kb_models - - - - - BenQ X-Touch - kb_models - - - - - BenQ X-Touch 730 - kb_models - - - - - BenQ X-Touch 800 - kb_models - - - - - Brother Internet - kb_models - - - - - Cherry B.UNLIMITED - kb_models - - - - - Cherry Blue Line CyBo@rd - kb_models - - - - - Cherry Blue Line CyBo@rd (alt.) - kb_models - - - - - Cherry CyBo@rd USB-Hub - kb_models - - - - - Cherry CyMotion Expert - kb_models - - - - - Cherry CyMotion Master Linux - kb_models - - - - - Cherry CyMotion Master XPress - kb_models - - - - - Chicony Internet - kb_models - - - - - Chicony KB-9885 - kb_models - - - - - Chicony KU-0108 - kb_models - - - - - Chicony KU-0420 - kb_models - - - - - Chromebook - kb_models - - - - - Classmate PC - kb_models - - - - - Compaq Armada laptop - kb_models - - - - - Compaq Easy Access - kb_models - - - - - Compaq Internet (13 keys) - kb_models - - - - - Compaq Internet (18 keys) - kb_models - - - - - Compaq Internet (7 keys) - kb_models - - - - - Compaq Presario laptop - kb_models - - - - - Compaq iPaq - kb_models - - - - - Creative Desktop Wireless 7000 - kb_models - - - - - DTK2000 - kb_models - - - - - Dell - kb_models - - - - - Dell 101-key PC - kb_models - - - - - Dell Inspiron 6000/8000 laptop - kb_models - - - - - Dell Latitude laptop - kb_models - - - - - Dell Precision M laptop - kb_models - - - - - Dell Precision M65 laptop - kb_models - - - - - Dell SK-8125 - kb_models - - - - - Dell SK-8135 - kb_models - - - - - Dell USB Multimedia - kb_models - - - - - Dexxa Wireless Desktop - kb_models - - - - - Diamond 9801/9802 - kb_models - - - - - Ennyah DKB-1008 - kb_models - - - - - Everex STEPnote - kb_models - - - - - FL90 - kb_models - - - - - Fujitsu-Siemens Amilo laptop - kb_models - - - - - Generic 101-key PC - kb_models - - - - - Generic 102-key PC - kb_models - - - - - Generic 104-key PC - kb_models - - - - - Generic 104-key PC with L-shaped Enter key - kb_models - - - - - Generic 105-key PC - kb_models - - - - - Generic 86-key PC - kb_models - - - - - Genius Comfy KB-12e - kb_models - - - - - Genius Comfy KB-16M/Multimedia KWD-910 - kb_models - - - - - Genius Comfy KB-21e-Scroll - kb_models - - - - - Genius KB-19e NB - kb_models - - - - - Genius KKB-2050HS - kb_models - - - - - Gyration - kb_models - - - - - Happy Hacking - kb_models - - - - - Happy Hacking for Mac - kb_models - - - - - Hewlett-Packard Internet - kb_models - - - - - Hewlett-Packard Mini 110 laptop - kb_models - - - - - Hewlett-Packard NEC SK-2500 Multimedia - kb_models - - - - - Hewlett-Packard Omnibook 500 - kb_models - - - - - Hewlett-Packard Omnibook 500 FA - kb_models - - - - - Hewlett-Packard Omnibook 6000/6100 - kb_models - - - - - Hewlett-Packard Omnibook XE3 GC - kb_models - - - - - Hewlett-Packard Omnibook XE3 GF - kb_models - - - - - Hewlett-Packard Omnibook XT1000 - kb_models - - - - - Hewlett-Packard Pavilion ZT1100 - kb_models - - - - - Hewlett-Packard Pavilion dv5 - kb_models - - - - - Hewlett-Packard nx9020 - kb_models - - - - - Honeywell Euroboard - kb_models - - - - - IBM Rapid Access - kb_models - - - - - IBM Rapid Access II - kb_models - - - - - IBM Space Saver - kb_models - - - - - IBM ThinkPad 560Z/600/600E/A22E - kb_models - - - - - IBM ThinkPad R60/T60/R61/T61 - kb_models - - - - - IBM ThinkPad Z60m/Z60t/Z61m/Z61t - kb_models - - - - - Keytronic FlexPro - kb_models - - - - - Kinesis - kb_models - - - - - Logitech - kb_models - - - - - Logitech Access - kb_models - - - - - Logitech Cordless Desktop - kb_models - - - - - Logitech Cordless Desktop (alt.) - kb_models - - - - - Logitech Cordless Desktop EX110 - kb_models - - - - - Logitech Cordless Desktop LX-300 - kb_models - - - - - Logitech Cordless Desktop Navigator - kb_models - - - - - Logitech Cordless Desktop Optical - kb_models - - - - - Logitech Cordless Desktop Pro (2nd alt.) - kb_models - - - - - Logitech Cordless Desktop iTouch - kb_models - - - - - Logitech Cordless Freedom/Desktop Navigator - kb_models - - - - - Logitech G15 extra keys via G15daemon - kb_models - - - - - Logitech Internet - kb_models - - - - - Logitech Internet 350 - kb_models - - - - - Logitech Internet Navigator - kb_models - - - - - Logitech Ultra-X - kb_models - - - - - Logitech Ultra-X Cordless Media Desktop - kb_models - - - - - Logitech diNovo - kb_models - - - - - Logitech diNovo Edge - kb_models - - - - - Logitech iTouch - kb_models - - - - - Logitech iTouch Cordless Y-RB6 - kb_models - - - - - Logitech iTouch Internet Navigator SE - kb_models - - - - - Logitech iTouch Internet Navigator SE USB - kb_models - - - - - MacBook/MacBook Pro - kb_models - - - - - MacBook/MacBook Pro (intl.) - kb_models - - - - - Macintosh - kb_models - - - - - Macintosh Old - kb_models - - - - - Memorex MX1998 - kb_models - - - - - Memorex MX2500 EZ-Access - kb_models - - - - - Memorex MX2750 - kb_models - - - - - Microsoft Comfort Curve 2000 - kb_models - - - - - Microsoft Internet - kb_models - - - - - Microsoft Internet Pro (Swedish) - kb_models - - - - - Microsoft Natural - kb_models - - - - - Microsoft Natural Elite - kb_models - - - - - Microsoft Natural Ergonomic 4000 - kb_models - - - - - Microsoft Natural Pro OEM - kb_models - - - - - Microsoft Natural Pro USB/Internet Pro - kb_models - - - - - Microsoft Natural Pro/Internet Pro - kb_models - - - - - Microsoft Natural Wireless Ergonomic 7000 - kb_models - - - - - Microsoft Office Keyboard - kb_models - - - - - Microsoft Surface - kb_models - - - - - Microsoft Wireless Multimedia 1.0A - kb_models - - - - - NEC SK-1300 - kb_models - - - - - NEC SK-2500 - kb_models - - - - - NEC SK-6200 - kb_models - - - - - NEC SK-7100 - kb_models - - - - - Northgate OmniKey 101 - kb_models - - - - - OLPC - kb_models - - - - - Ortek Multimedia/Internet MCK-800 - kb_models - - - - - PC-98 - kb_models - - - - - Propeller Voyager KTEZ-1000 - kb_models - - - - - QTronix Scorpius 98N+ - kb_models - - - - - SVEN Ergonomic 2500 - kb_models - - - - - SVEN Slim 303 - kb_models - - - - - Samsung SDM 4500P - kb_models - - - - - Samsung SDM 4510P - kb_models - - - - - Sanwa Supply SKB-KG3 - kb_models - - - - - Silvercrest Multimedia Wireless - kb_models - - - - - SteelSeries Apex 300 (Apex RAW) - kb_models - - - - - Sun Type 6 (Japanese) - kb_models - - - - - Sun Type 6 USB (Japanese) - kb_models - - - - - Sun Type 6 USB (Unix) - kb_models - - - - - Sun Type 6/7 USB - kb_models - - - - - Sun Type 6/7 USB (European) - kb_models - - - - - Sun Type 7 USB - kb_models - - - - - Sun Type 7 USB (European) - kb_models - - - - - Sun Type 7 USB (Japanese)/Japanese 106-key - kb_models - - - - - Sun Type 7 USB (Unix) - kb_models - - - - - Super Power Multimedia - kb_models - - - - - Symplon PaceBook tablet - kb_models - - - - - Targa Visionary 811 - kb_models - - - - - Toshiba Satellite S3000 - kb_models - - - - - Truly Ergonomic 227 - kb_models - - - - - Truly Ergonomic 229 - kb_models - - - - - Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) - kb_models - - - - - Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) - kb_models - - - - - Trust Direct Access - kb_models - - - - - Trust Slimline - kb_models - - - - - Trust Wireless Classic - kb_models - - - - - TypeMatrix EZ-Reach 2020 - kb_models - - - - - TypeMatrix EZ-Reach 2030 PS2 - kb_models - - - - - TypeMatrix EZ-Reach 2030 USB - kb_models - - - - - TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) - kb_models - - - - - TypeMatrix EZ-Reach 2030 USB (106:JP mode) - kb_models - - - - - Unitek KB-1925 - kb_models - - - - - ViewSonic KU-306 Internet - kb_models - - - - - Winbook Model XP5 - kb_models - - - - - Yahoo! Internet - kb_models - - - - - eMachines m6800 laptop - kb_models - - - - + Afghani kb_layouts - + Albanian kb_layouts - + Amharic kb_layouts - + Arabic kb_layouts - + Arabic (Morocco) kb_layouts - + Arabic (Syria) kb_layouts - + Armenian kb_layouts - + Azerbaijani kb_layouts - + Bambara kb_layouts - + Bangla kb_layouts - + Belarusian kb_layouts - + Belgian kb_layouts - + Bosnian kb_layouts - + Braille kb_layouts - + Bulgarian kb_layouts - + Burmese kb_layouts - + Chinese kb_layouts - + Croatian kb_layouts - + Czech kb_layouts - + Danish kb_layouts - + Dhivehi kb_layouts - + Dutch kb_layouts - + Dzongkha kb_layouts - + English (Australian) kb_layouts - + English (Cameroon) kb_layouts - + English (Ghana) kb_layouts - + English (Nigeria) kb_layouts - + English (South Africa) kb_layouts - + English (UK) kb_layouts - + English (US) kb_layouts - + Esperanto kb_layouts - + Estonian kb_layouts - + Faroese kb_layouts - + Filipino kb_layouts - + Finnish kb_layouts - + French kb_layouts - + French (Canada) kb_layouts - + French (Democratic Republic of the Congo) kb_layouts - + French (Guinea) kb_layouts - + French (Togo) kb_layouts - + Georgian kb_layouts - + German kb_layouts - + German (Austria) kb_layouts - + German (Switzerland) kb_layouts - + Greek kb_layouts - + Hebrew kb_layouts - + Hungarian kb_layouts - + Icelandic kb_layouts - + Indian kb_layouts - + Indonesian (Arab Melayu, phonetic) kb_layouts - + Indonesian (Javanese) kb_layouts - + Iraqi kb_layouts - + Irish kb_layouts - + Italian kb_layouts - + Japanese kb_layouts - + Japanese (PC-98) kb_layouts - + Kabylian (azerty layout, no dead keys) kb_layouts - + Kazakh kb_layouts - + Khmer (Cambodia) kb_layouts - + Korean kb_layouts - + Kyrgyz kb_layouts - + Lao kb_layouts - + Latvian kb_layouts - + Lithuanian kb_layouts - + Macedonian kb_layouts - + Malay (Jawi, Arabic Keyboard) kb_layouts - + Maltese kb_layouts - + Maori kb_layouts - + Moldavian kb_layouts - + Mongolian kb_layouts - + Montenegrin kb_layouts - + Nepali kb_layouts - + Norwegian kb_layouts - + Persian kb_layouts - + Polish kb_layouts - + Portuguese kb_layouts - + Portuguese (Brazil) kb_layouts - + Romanian kb_layouts - + Russian kb_layouts - + Serbian kb_layouts - + Sinhala (phonetic) kb_layouts - + Slovak kb_layouts - + Slovenian kb_layouts - + Spanish kb_layouts - + Spanish (Latin American) kb_layouts - + Swahili (Kenya) kb_layouts - + Swahili (Tanzania) kb_layouts - + Swedish kb_layouts - + Taiwanese kb_layouts - + Tajik kb_layouts - + Thai kb_layouts - + Tswana kb_layouts - + Turkish kb_layouts - + Turkmen kb_layouts - + Ukrainian kb_layouts - + Urdu (Pakistan) kb_layouts - + Uzbek kb_layouts - + Vietnamese kb_layouts - + Wolof kb_layouts + + + kb_models - + + A4Tech KB-21 + kb_models + + + + + A4Tech KBS-8 + kb_models + + + + + A4Tech Wireless Desktop RFKB-23 + kb_models + + + + + Acer AirKey V + kb_models + + + + + Acer C300 + kb_models + + + + + Acer Ferrari 4000 + kb_models + + + + + Acer laptop + kb_models + + + + + Advance Scorpius KI + kb_models + + + + + Apple + kb_models + + + + + Apple Aluminium (ANSI) + kb_models + + + + + Apple Aluminium (ISO) + kb_models + + + + + Apple Aluminium (JIS) + kb_models + + + + + Apple laptop + kb_models + + + + + Asus laptop + kb_models + + + + + Azona RF2300 wireless Internet + kb_models + + + + + BTC 5090 + kb_models + + + + + BTC 5113RF Multimedia + kb_models + + + + + BTC 5126T + kb_models + + + + + BTC 6301URF + kb_models + + + + + BTC 9000 + kb_models + + + + + BTC 9000A + kb_models + + + + + BTC 9001AH + kb_models + + + + + BTC 9019U + kb_models + + + + + BTC 9116U Mini Wireless Internet and Gaming + kb_models + + + + + BenQ X-Touch + kb_models + + + + + BenQ X-Touch 730 + kb_models + + + + + BenQ X-Touch 800 + kb_models + + + + + Brother Internet + kb_models + + + + + Cherry B.UNLIMITED + kb_models + + + + + Cherry Blue Line CyBo@rd + kb_models + + + + + Cherry Blue Line CyBo@rd (alt.) + kb_models + + + + + Cherry CyBo@rd USB-Hub + kb_models + + + + + Cherry CyMotion Expert + kb_models + + + + + Cherry CyMotion Master Linux + kb_models + + + + + Cherry CyMotion Master XPress + kb_models + + + + + Chicony Internet + kb_models + + + + + Chicony KB-9885 + kb_models + + + + + Chicony KU-0108 + kb_models + + + + + Chicony KU-0420 + kb_models + + + + + Chromebook + kb_models + + + + + Classmate PC + kb_models + + + + + Compaq Armada laptop + kb_models + + + + + Compaq Easy Access + kb_models + + + + + Compaq Internet (13 keys) + kb_models + + + + + Compaq Internet (18 keys) + kb_models + + + + + Compaq Internet (7 keys) + kb_models + + + + + Compaq Presario laptop + kb_models + + + + + Compaq iPaq + kb_models + + + + + Creative Desktop Wireless 7000 + kb_models + + + + + DTK2000 + kb_models + + + + + Dell + kb_models + + + + + Dell 101-key PC + kb_models + + + + + Dell Inspiron 6000/8000 laptop + kb_models + + + + + Dell Latitude laptop + kb_models + + + + + Dell Precision M laptop + kb_models + + + + + Dell Precision M65 laptop + kb_models + + + + + Dell SK-8125 + kb_models + + + + + Dell SK-8135 + kb_models + + + + + Dell USB Multimedia + kb_models + + + + + Dexxa Wireless Desktop + kb_models + + + + + Diamond 9801/9802 + kb_models + + + + + Ennyah DKB-1008 + kb_models + + + + + Everex STEPnote + kb_models + + + + + FL90 + kb_models + + + + + Fujitsu-Siemens Amilo laptop + kb_models + + + + + Generic 101-key PC + kb_models + + + + + Generic 102-key PC + kb_models + + + + + Generic 104-key PC + kb_models + + + + + Generic 104-key PC with L-shaped Enter key + kb_models + + + + + Generic 105-key PC + kb_models + + + + + Generic 86-key PC + kb_models + + + + + Genius Comfy KB-12e + kb_models + + + + + Genius Comfy KB-16M/Multimedia KWD-910 + kb_models + + + + + Genius Comfy KB-21e-Scroll + kb_models + + + + + Genius KB-19e NB + kb_models + + + + + Genius KKB-2050HS + kb_models + + + + + Gyration + kb_models + + + + + Happy Hacking + kb_models + + + + + Happy Hacking for Mac + kb_models + + + + + Hewlett-Packard Internet + kb_models + + + + + Hewlett-Packard Mini 110 laptop + kb_models + + + + + Hewlett-Packard NEC SK-2500 Multimedia + kb_models + + + + + Hewlett-Packard Omnibook 500 + kb_models + + + + + Hewlett-Packard Omnibook 500 FA + kb_models + + + + + Hewlett-Packard Omnibook 6000/6100 + kb_models + + + + + Hewlett-Packard Omnibook XE3 GC + kb_models + + + + + Hewlett-Packard Omnibook XE3 GF + kb_models + + + + + Hewlett-Packard Omnibook XT1000 + kb_models + + + + + Hewlett-Packard Pavilion ZT1100 + kb_models + + + + + Hewlett-Packard Pavilion dv5 + kb_models + + + + + Hewlett-Packard nx9020 + kb_models + + + + + Honeywell Euroboard + kb_models + + + + + IBM Rapid Access + kb_models + + + + + IBM Rapid Access II + kb_models + + + + + IBM Space Saver + kb_models + + + + + IBM ThinkPad 560Z/600/600E/A22E + kb_models + + + + + IBM ThinkPad R60/T60/R61/T61 + kb_models + + + + + IBM ThinkPad Z60m/Z60t/Z61m/Z61t + kb_models + + + + + Keytronic FlexPro + kb_models + + + + + Kinesis + kb_models + + + + + Logitech + kb_models + + + + + Logitech Access + kb_models + + + + + Logitech Cordless Desktop + kb_models + + + + + Logitech Cordless Desktop (alt.) + kb_models + + + + + Logitech Cordless Desktop EX110 + kb_models + + + + + Logitech Cordless Desktop LX-300 + kb_models + + + + + Logitech Cordless Desktop Navigator + kb_models + + + + + Logitech Cordless Desktop Optical + kb_models + + + + + Logitech Cordless Desktop Pro (2nd alt.) + kb_models + + + + + Logitech Cordless Desktop iTouch + kb_models + + + + + Logitech Cordless Freedom/Desktop Navigator + kb_models + + + + + Logitech G15 extra keys via G15daemon + kb_models + + + + + Logitech Internet + kb_models + + + + + Logitech Internet 350 + kb_models + + + + + Logitech Internet Navigator + kb_models + + + + + Logitech Ultra-X + kb_models + + + + + Logitech Ultra-X Cordless Media Desktop + kb_models + + + + + Logitech diNovo + kb_models + + + + + Logitech diNovo Edge + kb_models + + + + + Logitech iTouch + kb_models + + + + + Logitech iTouch Cordless Y-RB6 + kb_models + + + + + Logitech iTouch Internet Navigator SE + kb_models + + + + + Logitech iTouch Internet Navigator SE USB + kb_models + + + + + MacBook/MacBook Pro + kb_models + + + + + MacBook/MacBook Pro (intl.) + kb_models + + + + + Macintosh + kb_models + + + + + Macintosh Old + kb_models + + + + + Memorex MX1998 + kb_models + + + + + Memorex MX2500 EZ-Access + kb_models + + + + + Memorex MX2750 + kb_models + + + + + Microsoft Comfort Curve 2000 + kb_models + + + + + Microsoft Internet + kb_models + + + + + Microsoft Internet Pro (Swedish) + kb_models + + + + + Microsoft Natural + kb_models + + + + + Microsoft Natural Elite + kb_models + + + + + Microsoft Natural Ergonomic 4000 + kb_models + + + + + Microsoft Natural Pro OEM + kb_models + + + + + Microsoft Natural Pro USB/Internet Pro + kb_models + + + + + Microsoft Natural Pro/Internet Pro + kb_models + + + + + Microsoft Natural Wireless Ergonomic 7000 + kb_models + + + + + Microsoft Office Keyboard + kb_models + + + + + Microsoft Surface + kb_models + + + + + Microsoft Wireless Multimedia 1.0A + kb_models + + + + + NEC SK-1300 + kb_models + + + + + NEC SK-2500 + kb_models + + + + + NEC SK-6200 + kb_models + + + + + NEC SK-7100 + kb_models + + + + + Northgate OmniKey 101 + kb_models + + + + + OLPC + kb_models + + + + + Ortek Multimedia/Internet MCK-800 + kb_models + + + + + PC-98 + kb_models + + + + + Propeller Voyager KTEZ-1000 + kb_models + + + + + QTronix Scorpius 98N+ + kb_models + + + + + SVEN Ergonomic 2500 + kb_models + + + + + SVEN Slim 303 + kb_models + + + + + Samsung SDM 4500P + kb_models + + + + + Samsung SDM 4510P + kb_models + + + + + Sanwa Supply SKB-KG3 + kb_models + + + + + Silvercrest Multimedia Wireless + kb_models + + + + + SteelSeries Apex 300 (Apex RAW) + kb_models + + + + + Sun Type 6 (Japanese) + kb_models + + + + + Sun Type 6 USB (Japanese) + kb_models + + + + + Sun Type 6 USB (Unix) + kb_models + + + + + Sun Type 6/7 USB + kb_models + + + + + Sun Type 6/7 USB (European) + kb_models + + + + + Sun Type 7 USB + kb_models + + + + + Sun Type 7 USB (European) + kb_models + + + + + Sun Type 7 USB (Japanese)/Japanese 106-key + kb_models + + + + + Sun Type 7 USB (Unix) + kb_models + + + + + Super Power Multimedia + kb_models + + + + + Symplon PaceBook tablet + kb_models + + + + + Targa Visionary 811 + kb_models + + + + + Toshiba Satellite S3000 + kb_models + + + + + Truly Ergonomic 227 + kb_models + + + + + Truly Ergonomic 229 + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) + kb_models + + + + + Trust Direct Access + kb_models + + + + + Trust Slimline + kb_models + + + + + Trust Wireless Classic + kb_models + + + + + TypeMatrix EZ-Reach 2020 + kb_models + + + + + TypeMatrix EZ-Reach 2030 PS2 + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (106:JP mode) + kb_models + + + + + Unitek KB-1925 + kb_models + + + + + ViewSonic KU-306 Internet + kb_models + + + + + Winbook Model XP5 + kb_models + + + + + Yahoo! Internet + kb_models + + + + + eMachines m6800 laptop + kb_models + + + + + kb_variants + + Akan kb_variants - + Albanian (Plisi) kb_variants - + Albanian (Veqilharxhi) kb_variants - + Arabic (AZERTY) kb_variants - + Arabic (AZERTY, Eastern Arabic numerals) kb_variants - + Arabic (Algeria) kb_variants - + Arabic (Buckwalter) kb_variants - + Arabic (Eastern Arabic numerals) kb_variants - + Arabic (Macintosh) kb_variants - + Arabic (OLPC) kb_variants - + Arabic (Pakistan) kb_variants - + Arabic (QWERTY) kb_variants - + Arabic (QWERTY, Eastern Arabic numerals) kb_variants - + Armenian (alt. eastern) kb_variants - + Armenian (alt. phonetic) kb_variants - + Armenian (eastern) kb_variants - + Armenian (phonetic) kb_variants - + Armenian (western) kb_variants - + Asturian (Spain, with bottom-dot H and L) kb_variants - + Avatime kb_variants - + Azerbaijani (Cyrillic) kb_variants - + Bangla (India) kb_variants - + Bangla (India, Baishakhi Inscript) kb_variants - + Bangla (India, Baishakhi) kb_variants - + Bangla (India, Bornona) kb_variants - + Bangla (India, Gitanjali) kb_variants - + Bangla (India, Probhat) kb_variants - + Bangla (Probhat) kb_variants - + Bashkirian kb_variants - + Belarusian (Latin) kb_variants - + Belarusian (intl.) kb_variants - + Belarusian (legacy) kb_variants - + Belgian (ISO, alt.) kb_variants - + Belgian (Latin-9 only, alt.) kb_variants - + Belgian (Sun dead keys) kb_variants - + Belgian (Sun dead keys, alt.) kb_variants - + Belgian (Wang 724 AZERTY) kb_variants - + Belgian (alt.) kb_variants - + Belgian (no dead keys) kb_variants - + Berber (Morocco, Tifinagh alt.) kb_variants - + Berber (Morocco, Tifinagh extended phonetic) kb_variants - + Berber (Morocco, Tifinagh extended) kb_variants - + Berber (Morocco, Tifinagh phonetic) kb_variants - + Berber (Morocco, Tifinagh phonetic, alt.) kb_variants - + Berber (Morocco, Tifinagh) kb_variants - + Bosnian (US) kb_variants - + Bosnian (US, with Bosnian digraphs) kb_variants - + Bosnian (with Bosnian digraphs) kb_variants - + Bosnian (with guillemets) kb_variants - + Braille (left-handed inverted thumb) kb_variants - + Braille (left-handed) kb_variants - + Braille (right-handed inverted thumb) kb_variants - + Braille (right-handed) kb_variants - + Bulgarian (enhanced) kb_variants - + Bulgarian (new phonetic) kb_variants - + Bulgarian (traditional phonetic) kb_variants - + Burmese Zawgyi kb_variants - + Cameroon (AZERTY, intl.) kb_variants - + Cameroon (Dvorak, intl.) kb_variants - + Cameroon Multilingual (QWERTY, intl.) kb_variants - + Canadian (intl.) kb_variants - + Canadian (intl., 1st part) kb_variants - + Canadian (intl., 2nd part) kb_variants - + Catalan (Spain, with middle-dot L) kb_variants - + Cherokee kb_variants - + Chuvash kb_variants - + Chuvash (Latin) kb_variants - + CloGaelach kb_variants - + Crimean Tatar (Turkish Alt-Q) kb_variants - + Crimean Tatar (Turkish F) kb_variants - + Crimean Tatar (Turkish Q) kb_variants - + Croatian (US) kb_variants - + Croatian (US, with Croatian digraphs) kb_variants - + Croatian (with Croatian digraphs) kb_variants - + Croatian (with guillemets) kb_variants - + Czech (QWERTY) kb_variants - + Czech (QWERTY, Macintosh) kb_variants - + Czech (QWERTY, extended backslash) kb_variants - + Czech (UCW, only accented letters) kb_variants - + Czech (US, Dvorak, UCW support) kb_variants - + Czech (with &lt;|&gt; key) kb_variants - + Danish (Dvorak) kb_variants - + Danish (Macintosh) kb_variants - + Danish (Macintosh, no dead keys) kb_variants - + Danish (Windows) kb_variants - + Danish (no dead keys) kb_variants - - - Dutch (Macintosh) - kb_variants - - - - - Dutch (Sun dead keys) - kb_variants - - - - - Dutch (standard) - kb_variants - - - - - English (Canada) - kb_variants - - - - - English (Colemak) - kb_variants - - - - - English (Dvorak) - kb_variants - - - - - English (Dvorak, alt. intl.) - kb_variants - - - - - English (Dvorak, intl., with dead keys) - kb_variants - - - - - English (Dvorak, left-handed) - kb_variants - - - - - English (Dvorak, right-handed) - kb_variants - - - - - English (Ghana, GILLBT) - kb_variants - - - English (Ghana, multilingual) + Default kb_variants - English (India, with rupee) + Dutch (Macintosh) kb_variants - English (Macintosh) + Dutch (Sun dead keys) kb_variants - English (Mali, US, Macintosh) + Dutch (standard) kb_variants - English (Mali, US, intl.) + English (Canada) kb_variants - English (Norman) + English (Colemak) kb_variants - English (UK, Colemak) + English (Dvorak) kb_variants - English (UK, Dvorak) + English (Dvorak, alt. intl.) kb_variants - English (UK, Dvorak, with UK punctuation) + English (Dvorak, intl., with dead keys) kb_variants - English (UK, Macintosh) + English (Dvorak, left-handed) kb_variants - English (UK, Macintosh, intl.) + English (Dvorak, right-handed) kb_variants - English (UK, extended, Windows) + English (Ghana, GILLBT) kb_variants - English (UK, intl., with dead keys) + English (Ghana, multilingual) kb_variants - English (US, Symbolic) + English (India, with rupee) kb_variants - English (US, alt. intl.) + English (Macintosh) kb_variants - English (US, euro on 5) + English (Mali, US, Macintosh) kb_variants - English (US, intl., with dead keys) + English (Mali, US, intl.) kb_variants - English (Workman) + English (Norman) kb_variants - English (Workman, intl., with dead keys) + English (UK, Colemak) kb_variants - English (classic Dvorak) + English (UK, Dvorak) kb_variants - English (intl., with AltGr dead keys) + English (UK, Dvorak, with UK punctuation) kb_variants - English (programmer Dvorak) + English (UK, Macintosh) kb_variants - English (the divide/multiply toggle the layout) + English (UK, Macintosh, intl.) kb_variants - Esperanto (Brazil, Nativo) + English (UK, extended, Windows) kb_variants - Esperanto (Portugal, Nativo) + English (UK, intl., with dead keys) kb_variants - Esperanto (legacy) + English (US, Symbolic) kb_variants - Estonian (Dvorak) + English (US, alt. intl.) kb_variants - Estonian (US) + English (US, euro on 5) kb_variants - Estonian (no dead keys) + English (US, intl., with dead keys) kb_variants - Ewe + English (Workman) kb_variants - Faroese (no dead keys) + English (Workman, intl., with dead keys) kb_variants - Filipino (Capewell-Dvorak, Baybayin) + English (classic Dvorak) kb_variants - Filipino (Capewell-Dvorak, Latin) + English (intl., with AltGr dead keys) kb_variants - Filipino (Capewell-QWERF 2006, Baybayin) + English (programmer Dvorak) kb_variants - Filipino (Capewell-QWERF 2006, Latin) + English (the divide/multiply toggle the layout) kb_variants - Filipino (Colemak, Baybayin) + Esperanto (Brazil, Nativo) kb_variants - Filipino (Colemak, Latin) + Esperanto (Portugal, Nativo) kb_variants - Filipino (Dvorak, Baybayin) + Esperanto (legacy) kb_variants - Filipino (Dvorak, Latin) + Estonian (Dvorak) kb_variants - Filipino (QWERTY, Baybayin) + Estonian (US) kb_variants - Finnish (Macintosh) + Estonian (no dead keys) kb_variants - Finnish (Windows) + Ewe kb_variants - Finnish (classic) + Faroese (no dead keys) kb_variants - Finnish (classic, no dead keys) + Filipino (Capewell-Dvorak, Baybayin) kb_variants - French (AZERTY) + Filipino (Capewell-Dvorak, Latin) kb_variants - French (AZERTY, AFNOR) + Filipino (Capewell-QWERF 2006, Baybayin) kb_variants - French (BEPO) + Filipino (Capewell-QWERF 2006, Latin) kb_variants - French (BEPO, AFNOR) + Filipino (Colemak, Baybayin) kb_variants - French (BEPO, Latin-9 only) + Filipino (Colemak, Latin) kb_variants - French (Breton) + Filipino (Dvorak, Baybayin) kb_variants - French (Cameroon) + Filipino (Dvorak, Latin) kb_variants - French (Canada, Dvorak) + Filipino (QWERTY, Baybayin) kb_variants - French (Canada, legacy) + Finnish (Macintosh) kb_variants - French (Dvorak) + Finnish (Windows) kb_variants - French (Macintosh) + Finnish (classic) kb_variants - French (Mali, alt.) + Finnish (classic, no dead keys) kb_variants - French (Morocco) + French (AZERTY) kb_variants - French (Sun dead keys) + French (AZERTY, AFNOR) kb_variants - French (Switzerland) + French (BEPO) kb_variants - French (Switzerland, Macintosh) + French (BEPO, AFNOR) kb_variants - French (Switzerland, Sun dead keys) + French (BEPO, Latin-9 only) kb_variants - French (Switzerland, no dead keys) + French (Breton) kb_variants - French (US) + French (Cameroon) kb_variants - French (alt.) + French (Canada, Dvorak) kb_variants - French (alt., Latin-9 only) + French (Canada, legacy) kb_variants - French (alt., Sun dead keys) + French (Dvorak) kb_variants - French (alt., no dead keys) + French (Macintosh) kb_variants - French (legacy, alt.) + French (Mali, alt.) kb_variants - French (legacy, alt., Sun dead keys) + French (Morocco) kb_variants - French (legacy, alt., no dead keys) + French (Sun dead keys) kb_variants - French (no dead keys) + French (Switzerland) kb_variants - Friulian (Italy) + French (Switzerland, Macintosh) kb_variants - Fula + French (Switzerland, Sun dead keys) kb_variants - Ga + French (Switzerland, no dead keys) kb_variants - Georgian (France, AZERTY Tskapo) + French (US) kb_variants - Georgian (Italy) + French (alt.) kb_variants - Georgian (MESS) + French (alt., Latin-9 only) kb_variants - Georgian (ergonomic) + French (alt., Sun dead keys) kb_variants - German (Austria, Macintosh) + French (alt., no dead keys) kb_variants - German (Austria, Sun dead keys) + French (legacy, alt.) kb_variants - German (Austria, no dead keys) + French (legacy, alt., Sun dead keys) kb_variants - German (Dvorak) + French (legacy, alt., no dead keys) kb_variants - German (E1) + French (no dead keys) kb_variants - German (E2) + Friulian (Italy) kb_variants - German (Macintosh) + Fula kb_variants - German (Macintosh, no dead keys) + Ga kb_variants - German (Neo 2) + Georgian (France, AZERTY Tskapo) kb_variants - German (QWERTY) + Georgian (Italy) kb_variants - German (Sun dead keys) + Georgian (MESS) kb_variants - German (Switzerland, Macintosh) + Georgian (ergonomic) kb_variants - German (Switzerland, Sun dead keys) + German (Austria, Macintosh) kb_variants - German (Switzerland, legacy) + German (Austria, Sun dead keys) kb_variants - German (Switzerland, no dead keys) + German (Austria, no dead keys) kb_variants - German (T3) + German (Dvorak) kb_variants - German (US) + German (E1) kb_variants - German (dead acute) + German (E2) kb_variants - German (dead grave acute) + German (Macintosh) kb_variants - German (dead tilde) + German (Macintosh, no dead keys) kb_variants - German (no dead keys) + German (Neo 2) kb_variants - Greek (extended) + German (QWERTY) kb_variants - Greek (no dead keys) + German (Sun dead keys) kb_variants - Greek (polytonic) + German (Switzerland, Macintosh) kb_variants - Greek (simple) + German (Switzerland, Sun dead keys) kb_variants - Gujarati + German (Switzerland, legacy) kb_variants - Hanyu Pinyin (with AltGr dead keys) + German (Switzerland, no dead keys) kb_variants - Hausa (Ghana) + German (T3) kb_variants - Hausa (Nigeria) + German (US) kb_variants - Hawaiian + German (dead acute) kb_variants - Hebrew (Biblical, Tiro) + German (dead grave acute) kb_variants - Hebrew (lyx) + German (dead tilde) kb_variants - Hebrew (phonetic) + German (no dead keys) kb_variants - Hindi (Bolnagri) + Greek (extended) kb_variants - Hindi (KaGaPa, phonetic) + Greek (no dead keys) kb_variants - Hindi (Wx) + Greek (polytonic) kb_variants - Hungarian (QWERTY) + Greek (simple) kb_variants - Hungarian (QWERTY, 101-key, comma, dead keys) + Gujarati kb_variants - Hungarian (QWERTY, 101-key, comma, no dead keys) + Hanyu Pinyin (with AltGr dead keys) kb_variants - Hungarian (QWERTY, 101-key, dot, dead keys) + Hausa (Ghana) kb_variants - Hungarian (QWERTY, 101-key, dot, no dead keys) + Hausa (Nigeria) kb_variants - Hungarian (QWERTY, 102-key, comma, dead keys) + Hawaiian kb_variants - Hungarian (QWERTY, 102-key, comma, no dead keys) + Hebrew (Biblical, Tiro) kb_variants - Hungarian (QWERTY, 102-key, dot, dead keys) + Hebrew (lyx) kb_variants - Hungarian (QWERTY, 102-key, dot, no dead keys) + Hebrew (phonetic) kb_variants - Hungarian (QWERTZ, 101-key, comma, dead keys) + Hindi (Bolnagri) kb_variants - Hungarian (QWERTZ, 101-key, comma, no dead keys) + Hindi (KaGaPa, phonetic) kb_variants - Hungarian (QWERTZ, 101-key, dot, dead keys) + Hindi (Wx) kb_variants - Hungarian (QWERTZ, 101-key, dot, no dead keys) + Hungarian (QWERTY) kb_variants - Hungarian (QWERTZ, 102-key, comma, dead keys) + Hungarian (QWERTY, 101-key, comma, dead keys) kb_variants - Hungarian (QWERTZ, 102-key, comma, no dead keys) + Hungarian (QWERTY, 101-key, comma, no dead keys) kb_variants - Hungarian (QWERTZ, 102-key, dot, dead keys) + Hungarian (QWERTY, 101-key, dot, dead keys) kb_variants - Hungarian (QWERTZ, 102-key, dot, no dead keys) + Hungarian (QWERTY, 101-key, dot, no dead keys) kb_variants - Hungarian (no dead keys) + Hungarian (QWERTY, 102-key, comma, dead keys) kb_variants - Hungarian (standard) + Hungarian (QWERTY, 102-key, comma, no dead keys) kb_variants - Icelandic (Dvorak) + Hungarian (QWERTY, 102-key, dot, dead keys) kb_variants - Icelandic (Macintosh) + Hungarian (QWERTY, 102-key, dot, no dead keys) kb_variants - Icelandic (Macintosh, legacy) + Hungarian (QWERTZ, 101-key, comma, dead keys) kb_variants - Icelandic (Sun dead keys) + Hungarian (QWERTZ, 101-key, comma, no dead keys) kb_variants - Icelandic (no dead keys) + Hungarian (QWERTZ, 101-key, dot, dead keys) kb_variants - Igbo + Hungarian (QWERTZ, 101-key, dot, no dead keys) kb_variants - Indic (phonetic, IPA) + Hungarian (QWERTZ, 102-key, comma, dead keys) kb_variants - Indonesian (Arab Melayu, extended phonetic) + Hungarian (QWERTZ, 102-key, comma, no dead keys) kb_variants - Inuktitut + Hungarian (QWERTZ, 102-key, dot, dead keys) kb_variants - Irish (UnicodeExpert) + Hungarian (QWERTZ, 102-key, dot, no dead keys) kb_variants - Italian (IBM 142) + Hungarian (no dead keys) kb_variants - Italian (Macintosh) + Hungarian (standard) kb_variants - Italian (US) + Icelandic (Dvorak) kb_variants - Italian (Windows) + Icelandic (Macintosh) kb_variants - Italian (intl., with dead keys) + Icelandic (Macintosh, legacy) kb_variants - Italian (no dead keys) + Icelandic (Sun dead keys) kb_variants - Japanese (Dvorak) + Icelandic (no dead keys) kb_variants - Japanese (Kana 86) + Igbo kb_variants - Japanese (Kana) + Indic (phonetic, IPA) kb_variants - Japanese (Macintosh) + Indonesian (Arab Melayu, extended phonetic) kb_variants - Japanese (OADG 109A) + Inuktitut kb_variants - Kabylian (Algeria, Tifinagh) + Irish (UnicodeExpert) kb_variants - Kabylian (azerty layout, with dead keys) + Italian (IBM 142) kb_variants - Kabylian (qwerty-gb layout, with dead keys) + Italian (Macintosh) kb_variants - Kabylian (qwerty-us layout, with dead keys) + Italian (US) kb_variants - Kalmyk + Italian (Windows) kb_variants - Kannada + Italian (intl., with dead keys) kb_variants - Kannada (KaGaPa, phonetic) + Italian (no dead keys) kb_variants - Kashubian + Japanese (Dvorak) kb_variants - Kazakh (Latin) + Japanese (Kana 86) kb_variants - Kazakh (extended) + Japanese (Kana) kb_variants - Kazakh (with Russian) + Japanese (Macintosh) kb_variants - Kikuyu + Japanese (OADG 109A) kb_variants - Komi + Kabylian (Algeria, Tifinagh) kb_variants - Korean (101/104-key compatible) + Kabylian (azerty layout, with dead keys) kb_variants - Kurdish (Iran, Arabic-Latin) + Kabylian (qwerty-gb layout, with dead keys) kb_variants - Kurdish (Iran, F) + Kabylian (qwerty-us layout, with dead keys) kb_variants - Kurdish (Iran, Latin Alt-Q) + Kalmyk kb_variants - Kurdish (Iran, Latin Q) + Kannada kb_variants - Kurdish (Iraq, Arabic-Latin) + Kannada (KaGaPa, phonetic) kb_variants - Kurdish (Iraq, F) + Kashubian kb_variants - Kurdish (Iraq, Latin Alt-Q) + Kazakh (Latin) kb_variants - Kurdish (Iraq, Latin Q) + Kazakh (extended) kb_variants - Kurdish (Syria, F) + Kazakh (with Russian) kb_variants - Kurdish (Syria, Latin Alt-Q) + Kikuyu kb_variants - Kurdish (Syria, Latin Q) + Komi kb_variants - Kurdish (Turkey, F) + Korean (101/104-key compatible) kb_variants - Kurdish (Turkey, Latin Alt-Q) + Kurdish (Iran, Arabic-Latin) kb_variants - Kurdish (Turkey, Latin Q) + Kurdish (Iran, F) kb_variants - Kyrgyz (phonetic) + Kurdish (Iran, Latin Alt-Q) kb_variants - Lao (STEA) + Kurdish (Iran, Latin Q) kb_variants - Latvian (F) + Kurdish (Iraq, Arabic-Latin) kb_variants - Latvian (adapted) + Kurdish (Iraq, F) kb_variants - Latvian (apostrophe) + Kurdish (Iraq, Latin Alt-Q) kb_variants - Latvian (ergonomic, ŪGJRMV) + Kurdish (Iraq, Latin Q) kb_variants - Latvian (modern) + Kurdish (Syria, F) kb_variants - Latvian (tilde) + Kurdish (Syria, Latin Alt-Q) kb_variants - Lithuanian (IBM LST 1205-92) + Kurdish (Syria, Latin Q) kb_variants - Lithuanian (LEKP) + Kurdish (Turkey, F) kb_variants - Lithuanian (LEKPa) + Kurdish (Turkey, Latin Alt-Q) kb_variants - Lithuanian (US) + Kurdish (Turkey, Latin Q) kb_variants - Lithuanian (standard) + Kyrgyz (phonetic) kb_variants - Lower Sorbian + Lao (STEA) kb_variants - Lower Sorbian (QWERTZ) + Latvian (F) kb_variants - Macedonian (no dead keys) + Latvian (adapted) kb_variants - Malay (Jawi, phonetic) + Latvian (apostrophe) kb_variants - Malayalam + Latvian (ergonomic, ŪGJRMV) kb_variants - Malayalam (Lalitha) + Latvian (modern) kb_variants - Malayalam (enhanced Inscript, with rupee) + Latvian (tilde) kb_variants - Maltese (UK, with AltGr overrides) + Lithuanian (IBM LST 1205-92) kb_variants - Maltese (US layout with AltGr overrides) + Lithuanian (LEKP) kb_variants - Maltese (US) + Lithuanian (LEKPa) kb_variants - Manipuri (Eeyek) + Lithuanian (US) kb_variants - Marathi (KaGaPa, phonetic) + Lithuanian (standard) kb_variants - Marathi (enhanced Inscript) + Lower Sorbian kb_variants - Mari + Lower Sorbian (QWERTZ) kb_variants - Mmuock + Macedonian (no dead keys) kb_variants - Moldavian (Gagauz) + Malay (Jawi, phonetic) kb_variants - Mongolian (Bichig) + Malayalam kb_variants - Mongolian (Galik) + Malayalam (Lalitha) kb_variants - Mongolian (Manchu Galik) + Malayalam (enhanced Inscript, with rupee) kb_variants - Mongolian (Manchu) + Maltese (UK, with AltGr overrides) kb_variants - Mongolian (Todo Galik) + Maltese (US layout with AltGr overrides) kb_variants - Mongolian (Todo) + Maltese (US) kb_variants - Mongolian (Xibe) + Manipuri (Eeyek) kb_variants - Montenegrin (Cyrillic) + Marathi (KaGaPa, phonetic) kb_variants - Montenegrin (Cyrillic, ZE and ZHE swapped) + Marathi (enhanced Inscript) kb_variants - Montenegrin (Cyrillic, with guillemets) + Mari kb_variants - Montenegrin (Latin, QWERTY) + Mmuock kb_variants - Montenegrin (Latin, Unicode) + Moldavian (Gagauz) kb_variants - Montenegrin (Latin, Unicode, QWERTY) + Mongolian (Bichig) kb_variants - Montenegrin (Latin, with guillemets) + Mongolian (Galik) kb_variants - Northern Saami (Finland) + Mongolian (Manchu Galik) kb_variants - Northern Saami (Norway) + Mongolian (Manchu) kb_variants - Northern Saami (Norway, no dead keys) + Mongolian (Todo Galik) kb_variants - Northern Saami (Sweden) + Mongolian (Todo) kb_variants - Norwegian (Colemak) + Mongolian (Xibe) kb_variants - Norwegian (Dvorak) + Montenegrin (Cyrillic) kb_variants - Norwegian (Macintosh) + Montenegrin (Cyrillic, ZE and ZHE swapped) kb_variants - Norwegian (Macintosh, no dead keys) + Montenegrin (Cyrillic, with guillemets) kb_variants - Norwegian (Windows) + Montenegrin (Latin, QWERTY) kb_variants - Norwegian (no dead keys) + Montenegrin (Latin, Unicode) kb_variants - Occitan + Montenegrin (Latin, Unicode, QWERTY) kb_variants - Ogham + Montenegrin (Latin, with guillemets) kb_variants - Ogham (IS434) + Northern Saami (Finland) kb_variants - Ol Chiki + Northern Saami (Norway) kb_variants - Oriya + Northern Saami (Norway, no dead keys) kb_variants - Ossetian (Georgia) + Northern Saami (Sweden) kb_variants - Ossetian (Windows) + Norwegian (Colemak) kb_variants - Ossetian (legacy) + Norwegian (Dvorak) kb_variants - Pannonian Rusyn + Norwegian (Macintosh) kb_variants - Pashto + Norwegian (Macintosh, no dead keys) kb_variants - Pashto (Afghanistan, OLPC) + Norwegian (Windows) kb_variants - Persian (Afghanistan, Dari OLPC) + Norwegian (no dead keys) kb_variants - Persian (with Persian keypad) + Occitan kb_variants - Polish (British keyboard) + Ogham kb_variants - Polish (Dvorak) + Ogham (IS434) kb_variants - Polish (Dvorak, with Polish quotes on key 1) + Ol Chiki kb_variants - Polish (Dvorak, with Polish quotes on quotemark key) + Oriya kb_variants - Polish (QWERTZ) + Ossetian (Georgia) kb_variants - Polish (legacy) + Ossetian (Windows) kb_variants - Polish (programmer Dvorak) + Ossetian (legacy) kb_variants - Portuguese (Brazil, Dvorak) + Pannonian Rusyn kb_variants - Portuguese (Brazil, IBM/Lenovo ThinkPad) + Pashto kb_variants - Portuguese (Brazil, Nativo for US keyboards) + Pashto (Afghanistan, OLPC) kb_variants - Portuguese (Brazil, Nativo) + Persian (Afghanistan, Dari OLPC) kb_variants - Portuguese (Brazil, no dead keys) + Persian (with Persian keypad) kb_variants - Portuguese (Macintosh) + Polish (British keyboard) kb_variants - Portuguese (Macintosh, Sun dead keys) + Polish (Dvorak) kb_variants - Portuguese (Macintosh, no dead keys) + Polish (Dvorak, with Polish quotes on key 1) kb_variants - Portuguese (Nativo for US keyboards) + Polish (Dvorak, with Polish quotes on quotemark key) kb_variants - Portuguese (Nativo) + Polish (QWERTZ) kb_variants - Portuguese (Sun dead keys) + Polish (legacy) kb_variants - Portuguese (no dead keys) + Polish (programmer Dvorak) kb_variants - Punjabi (Gurmukhi Jhelum) + Portuguese (Brazil, Dvorak) kb_variants - Punjabi (Gurmukhi) + Portuguese (Brazil, IBM/Lenovo ThinkPad) kb_variants - Romanian (Germany) + Portuguese (Brazil, Nativo for US keyboards) kb_variants - Romanian (Germany, no dead keys) + Portuguese (Brazil, Nativo) kb_variants - Romanian (Windows) + Portuguese (Brazil, no dead keys) kb_variants - Romanian (cedilla) + Portuguese (Macintosh) kb_variants - Romanian (standard cedilla) + Portuguese (Macintosh, Sun dead keys) kb_variants - Romanian (standard) + Portuguese (Macintosh, no dead keys) kb_variants - Russian (Belarus) + Portuguese (Nativo for US keyboards) kb_variants - Russian (Czech, phonetic) + Portuguese (Nativo) kb_variants - Russian (DOS) + Portuguese (Sun dead keys) kb_variants - Russian (Georgia) + Portuguese (no dead keys) kb_variants - Russian (Germany, phonetic) + Punjabi (Gurmukhi Jhelum) kb_variants - Russian (Kazakhstan, with Kazakh) + Punjabi (Gurmukhi) kb_variants - Russian (Macintosh) + Romanian (Germany) kb_variants - Russian (Poland, phonetic Dvorak) + Romanian (Germany, no dead keys) kb_variants - Russian (Sweden, phonetic) + Romanian (Windows) kb_variants - Russian (Sweden, phonetic, no dead keys) + Romanian (cedilla) kb_variants - Russian (US, phonetic) + Romanian (standard cedilla) kb_variants - Russian (Ukraine, standard RSTU) + Romanian (standard) kb_variants - Russian (legacy) + Russian (Belarus) kb_variants - Russian (phonetic) + Russian (Czech, phonetic) kb_variants - Russian (phonetic, AZERTY) + Russian (DOS) kb_variants - Russian (phonetic, Dvorak) + Russian (Georgia) kb_variants - Russian (phonetic, French) + Russian (Germany, phonetic) kb_variants - Russian (phonetic, Windows) + Russian (Kazakhstan, with Kazakh) kb_variants - Russian (phonetic, YAZHERTY) + Russian (Macintosh) kb_variants - Russian (typewriter) + Russian (Poland, phonetic Dvorak) kb_variants - Russian (typewriter, legacy) + Russian (Sweden, phonetic) kb_variants - Saisiyat (Taiwan) + Russian (Sweden, phonetic, no dead keys) kb_variants - Samogitian + Russian (US, phonetic) kb_variants - Sanskrit (KaGaPa, phonetic) + Russian (Ukraine, standard RSTU) kb_variants - Serbian (Cyrillic, ZE and ZHE swapped) + Russian (legacy) kb_variants - Serbian (Cyrillic, with guillemets) + Russian (phonetic) kb_variants - Serbian (Latin) + Russian (phonetic, AZERTY) kb_variants - Serbian (Latin, QWERTY) + Russian (phonetic, Dvorak) kb_variants - Serbian (Latin, Unicode) + Russian (phonetic, French) kb_variants - Serbian (Latin, Unicode, QWERTY) + Russian (phonetic, Windows) kb_variants - Serbian (Latin, with guillemets) + Russian (phonetic, YAZHERTY) kb_variants - Serbian (Russia) + Russian (typewriter) kb_variants - Serbo-Croatian (US) + Russian (typewriter, legacy) kb_variants - Sicilian + Saisiyat (Taiwan) kb_variants - Silesian + Samogitian kb_variants - Sindhi + Sanskrit (KaGaPa, phonetic) kb_variants - Sinhala (US) + Serbian (Cyrillic, ZE and ZHE swapped) kb_variants - Slovak (QWERTY) + Serbian (Cyrillic, with guillemets) kb_variants - Slovak (QWERTY, extended backslash) + Serbian (Latin) kb_variants - Slovak (extended backslash) + Serbian (Latin, QWERTY) kb_variants - Slovenian (US) + Serbian (Latin, Unicode) kb_variants - Slovenian (with guillemets) + Serbian (Latin, Unicode, QWERTY) kb_variants - Spanish (Dvorak) + Serbian (Latin, with guillemets) kb_variants - Spanish (Latin American, Colemak for gaming) + Serbian (Russia) kb_variants - Spanish (Latin American, Colemak) + Serbo-Croatian (US) kb_variants - Spanish (Latin American, Dvorak) + Sicilian kb_variants - Spanish (Latin American, Sun dead keys) + Silesian kb_variants - Spanish (Latin American, dead tilde) + Sindhi kb_variants - Spanish (Latin American, no dead keys) + Sinhala (US) kb_variants - Spanish (Macintosh) + Slovak (QWERTY) kb_variants - Spanish (Sun dead keys) + Slovak (QWERTY, extended backslash) kb_variants - Spanish (Windows) + Slovak (extended backslash) kb_variants - Spanish (dead tilde) + Slovenian (US) kb_variants - Spanish (no dead keys) + Slovenian (with guillemets) kb_variants - Swedish (Dvorak) + Spanish (Dvorak) kb_variants - Swedish (Dvorak, intl.) + Spanish (Latin American, Colemak for gaming) kb_variants - Swedish (Macintosh) + Spanish (Latin American, Colemak) kb_variants - Swedish (Svdvorak) + Spanish (Latin American, Dvorak) kb_variants - Swedish (US) + Spanish (Latin American, Sun dead keys) kb_variants - Swedish (no dead keys) + Spanish (Latin American, dead tilde) kb_variants - Swedish Sign Language + Spanish (Latin American, no dead keys) kb_variants - Syriac + Spanish (Macintosh) kb_variants - Syriac (phonetic) + Spanish (Sun dead keys) kb_variants - Taiwanese (indigenous) + Spanish (Windows) kb_variants - Tajik (legacy) + Spanish (dead tilde) kb_variants - Tamil (Inscript) + Spanish (no dead keys) kb_variants - Tamil (Sri Lanka, TamilNet '99) + Swedish (Dvorak) kb_variants - Tamil (Sri Lanka, TamilNet '99, TAB encoding) + Swedish (Dvorak, intl.) kb_variants - Tamil (TamilNet '99 with Tamil numerals) + Swedish (Macintosh) kb_variants - Tamil (TamilNet '99) + Swedish (Svdvorak) kb_variants - Tamil (TamilNet '99, TAB encoding) + Swedish (US) kb_variants - Tamil (TamilNet '99, TSCII encoding) + Swedish (no dead keys) kb_variants - Tatar + Swedish Sign Language kb_variants - Telugu + Syriac kb_variants - Telugu (KaGaPa, phonetic) + Syriac (phonetic) kb_variants - Telugu (Sarala) + Taiwanese (indigenous) kb_variants - Thai (Pattachote) + Tajik (legacy) kb_variants - Thai (TIS-820.2538) + Tamil (Inscript) kb_variants - Tibetan + Tamil (Sri Lanka, TamilNet '99) kb_variants - Tibetan (with ASCII numerals) + Tamil (Sri Lanka, TamilNet '99, TAB encoding) kb_variants - Turkish (Alt-Q) + Tamil (TamilNet '99 with Tamil numerals) kb_variants - Turkish (F) + Tamil (TamilNet '99) kb_variants - Turkish (Germany) + Tamil (TamilNet '99, TAB encoding) kb_variants - Turkish (Sun dead keys) + Tamil (TamilNet '99, TSCII encoding) kb_variants - Turkish (intl., with dead keys) + Tatar kb_variants - Turkmen (Alt-Q) + Telugu kb_variants - Udmurt + Telugu (KaGaPa, phonetic) kb_variants - Ukrainian (Windows) + Telugu (Sarala) kb_variants - Ukrainian (homophonic) + Thai (Pattachote) kb_variants - Ukrainian (legacy) + Thai (TIS-820.2538) kb_variants - Ukrainian (phonetic) + Tibetan kb_variants - Ukrainian (standard RSTU) + Tibetan (with ASCII numerals) kb_variants - Ukrainian (typewriter) + Turkish (Alt-Q) kb_variants - Urdu (Pakistan, CRULP) + Turkish (F) kb_variants - Urdu (Pakistan, NLA) + Turkish (Germany) kb_variants - Urdu (Windows) + Turkish (Sun dead keys) kb_variants - Urdu (alt. phonetic) + Turkish (intl., with dead keys) kb_variants - Urdu (phonetic) + Turkmen (Alt-Q) kb_variants - Uyghur + Udmurt kb_variants - Uzbek (Afghanistan) + Ukrainian (Windows) kb_variants - Uzbek (Afghanistan, OLPC) + Ukrainian (homophonic) kb_variants - Uzbek (Latin) + Ukrainian (legacy) kb_variants - Vietnamese (French) + Ukrainian (phonetic) kb_variants - Vietnamese (US) + Ukrainian (standard RSTU) kb_variants - Yakut + Ukrainian (typewriter) kb_variants + Urdu (Pakistan, CRULP) + kb_variants + + + + + Urdu (Pakistan, NLA) + kb_variants + + + + + Urdu (Windows) + kb_variants + + + + + Urdu (alt. phonetic) + kb_variants + + + + + Urdu (phonetic) + kb_variants + + + + + Uyghur + kb_variants + + + + + Uzbek (Afghanistan) + kb_variants + + + + + Uzbek (Afghanistan, OLPC) + kb_variants + + + + + Uzbek (Latin) + kb_variants + + + + + Vietnamese (French) + kb_variants + + + + + Vietnamese (US) + kb_variants + + + + + Yakut + kb_variants + + + + Yoruba kb_variants diff --git a/lang/kb_tg.ts b/lang/kb_tg.ts index 10b48e701..fb18f9995 100644 --- a/lang/kb_tg.ts +++ b/lang/kb_tg.ts @@ -2,4605 +2,4617 @@ - QObject + kb_layouts - - A4Tech KB-21 - kb_models - - - - - A4Tech KBS-8 - kb_models - - - - - A4Tech Wireless Desktop RFKB-23 - kb_models - - - - - Acer AirKey V - kb_models - - - - - Acer C300 - kb_models - - - - - Acer Ferrari 4000 - kb_models - - - - - Acer laptop - kb_models - - - - - Advance Scorpius KI - kb_models - - - - - Apple - kb_models - - - - - Apple Aluminium (ANSI) - kb_models - - - - - Apple Aluminium (ISO) - kb_models - - - - - Apple Aluminium (JIS) - kb_models - - - - - Apple laptop - kb_models - - - - - Asus laptop - kb_models - - - - - Azona RF2300 wireless Internet - kb_models - - - - - BTC 5090 - kb_models - - - - - BTC 5113RF Multimedia - kb_models - - - - - BTC 5126T - kb_models - - - - - BTC 6301URF - kb_models - - - - - BTC 9000 - kb_models - - - - - BTC 9000A - kb_models - - - - - BTC 9001AH - kb_models - - - - - BTC 9019U - kb_models - - - - - BTC 9116U Mini Wireless Internet and Gaming - kb_models - - - - - BenQ X-Touch - kb_models - - - - - BenQ X-Touch 730 - kb_models - - - - - BenQ X-Touch 800 - kb_models - - - - - Brother Internet - kb_models - - - - - Cherry B.UNLIMITED - kb_models - - - - - Cherry Blue Line CyBo@rd - kb_models - - - - - Cherry Blue Line CyBo@rd (alt.) - kb_models - - - - - Cherry CyBo@rd USB-Hub - kb_models - - - - - Cherry CyMotion Expert - kb_models - - - - - Cherry CyMotion Master Linux - kb_models - - - - - Cherry CyMotion Master XPress - kb_models - - - - - Chicony Internet - kb_models - - - - - Chicony KB-9885 - kb_models - - - - - Chicony KU-0108 - kb_models - - - - - Chicony KU-0420 - kb_models - - - - - Chromebook - kb_models - - - - - Classmate PC - kb_models - - - - - Compaq Armada laptop - kb_models - - - - - Compaq Easy Access - kb_models - - - - - Compaq Internet (13 keys) - kb_models - - - - - Compaq Internet (18 keys) - kb_models - - - - - Compaq Internet (7 keys) - kb_models - - - - - Compaq Presario laptop - kb_models - - - - - Compaq iPaq - kb_models - - - - - Creative Desktop Wireless 7000 - kb_models - - - - - DTK2000 - kb_models - - - - - Dell - kb_models - - - - - Dell 101-key PC - kb_models - - - - - Dell Inspiron 6000/8000 laptop - kb_models - - - - - Dell Latitude laptop - kb_models - - - - - Dell Precision M laptop - kb_models - - - - - Dell Precision M65 laptop - kb_models - - - - - Dell SK-8125 - kb_models - - - - - Dell SK-8135 - kb_models - - - - - Dell USB Multimedia - kb_models - - - - - Dexxa Wireless Desktop - kb_models - - - - - Diamond 9801/9802 - kb_models - - - - - Ennyah DKB-1008 - kb_models - - - - - Everex STEPnote - kb_models - - - - - FL90 - kb_models - - - - - Fujitsu-Siemens Amilo laptop - kb_models - - - - - Generic 101-key PC - kb_models - Общий 101-ключ - - - - Generic 102-key PC - kb_models - Общий 102-ключ - - - - Generic 104-key PC - kb_models - Общий 104-ключ - - - - Generic 104-key PC with L-shaped Enter key - kb_models - - - - - Generic 105-key PC - kb_models - Общий 105-ключ - - - - Generic 86-key PC - kb_models - Общий 86-ключ - - - - Genius Comfy KB-12e - kb_models - - - - - Genius Comfy KB-16M/Multimedia KWD-910 - kb_models - - - - - Genius Comfy KB-21e-Scroll - kb_models - - - - - Genius KB-19e NB - kb_models - - - - - Genius KKB-2050HS - kb_models - - - - - Gyration - kb_models - - - - - Happy Hacking - kb_models - - - - - Happy Hacking for Mac - kb_models - - - - - Hewlett-Packard Internet - kb_models - - - - - Hewlett-Packard Mini 110 laptop - kb_models - - - - - Hewlett-Packard NEC SK-2500 Multimedia - kb_models - - - - - Hewlett-Packard Omnibook 500 - kb_models - - - - - Hewlett-Packard Omnibook 500 FA - kb_models - - - - - Hewlett-Packard Omnibook 6000/6100 - kb_models - - - - - Hewlett-Packard Omnibook XE3 GC - kb_models - - - - - Hewlett-Packard Omnibook XE3 GF - kb_models - - - - - Hewlett-Packard Omnibook XT1000 - kb_models - - - - - Hewlett-Packard Pavilion ZT1100 - kb_models - - - - - Hewlett-Packard Pavilion dv5 - kb_models - - - - - Hewlett-Packard nx9020 - kb_models - - - - - Honeywell Euroboard - kb_models - - - - - IBM Rapid Access - kb_models - - - - - IBM Rapid Access II - kb_models - - - - - IBM Space Saver - kb_models - - - - - IBM ThinkPad 560Z/600/600E/A22E - kb_models - - - - - IBM ThinkPad R60/T60/R61/T61 - kb_models - - - - - IBM ThinkPad Z60m/Z60t/Z61m/Z61t - kb_models - - - - - Keytronic FlexPro - kb_models - - - - - Kinesis - kb_models - - - - - Logitech - kb_models - - - - - Logitech Access - kb_models - - - - - Logitech Cordless Desktop - kb_models - - - - - Logitech Cordless Desktop (alt.) - kb_models - - - - - Logitech Cordless Desktop EX110 - kb_models - - - - - Logitech Cordless Desktop LX-300 - kb_models - - - - - Logitech Cordless Desktop Navigator - kb_models - - - - - Logitech Cordless Desktop Optical - kb_models - - - - - Logitech Cordless Desktop Pro (2nd alt.) - kb_models - - - - - Logitech Cordless Desktop iTouch - kb_models - - - - - Logitech Cordless Freedom/Desktop Navigator - kb_models - - - - - Logitech G15 extra keys via G15daemon - kb_models - - - - - Logitech Internet - kb_models - - - - - Logitech Internet 350 - kb_models - - - - - Logitech Internet Navigator - kb_models - - - - - Logitech Ultra-X - kb_models - - - - - Logitech Ultra-X Cordless Media Desktop - kb_models - - - - - Logitech diNovo - kb_models - - - - - Logitech diNovo Edge - kb_models - - - - - Logitech iTouch - kb_models - - - - - Logitech iTouch Cordless Y-RB6 - kb_models - - - - - Logitech iTouch Internet Navigator SE - kb_models - - - - - Logitech iTouch Internet Navigator SE USB - kb_models - - - - - MacBook/MacBook Pro - kb_models - - - - - MacBook/MacBook Pro (intl.) - kb_models - - - - - Macintosh - kb_models - - - - - Macintosh Old - kb_models - - - - - Memorex MX1998 - kb_models - - - - - Memorex MX2500 EZ-Access - kb_models - - - - - Memorex MX2750 - kb_models - - - - - Microsoft Comfort Curve 2000 - kb_models - - - - - Microsoft Internet - kb_models - - - - - Microsoft Internet Pro (Swedish) - kb_models - - - - - Microsoft Natural - kb_models - - - - - Microsoft Natural Elite - kb_models - - - - - Microsoft Natural Ergonomic 4000 - kb_models - - - - - Microsoft Natural Pro OEM - kb_models - - - - - Microsoft Natural Pro USB/Internet Pro - kb_models - - - - - Microsoft Natural Pro/Internet Pro - kb_models - - - - - Microsoft Natural Wireless Ergonomic 7000 - kb_models - - - - - Microsoft Office Keyboard - kb_models - - - - - Microsoft Surface - kb_models - - - - - Microsoft Wireless Multimedia 1.0A - kb_models - - - - - NEC SK-1300 - kb_models - - - - - NEC SK-2500 - kb_models - - - - - NEC SK-6200 - kb_models - - - - - NEC SK-7100 - kb_models - - - - - Northgate OmniKey 101 - kb_models - - - - - OLPC - kb_models - - - - - Ortek Multimedia/Internet MCK-800 - kb_models - - - - - PC-98 - kb_models - - - - - Propeller Voyager KTEZ-1000 - kb_models - - - - - QTronix Scorpius 98N+ - kb_models - - - - - SVEN Ergonomic 2500 - kb_models - - - - - SVEN Slim 303 - kb_models - - - - - Samsung SDM 4500P - kb_models - - - - - Samsung SDM 4510P - kb_models - - - - - Sanwa Supply SKB-KG3 - kb_models - - - - - Silvercrest Multimedia Wireless - kb_models - - - - - SteelSeries Apex 300 (Apex RAW) - kb_models - - - - - Sun Type 6 (Japanese) - kb_models - - - - - Sun Type 6 USB (Japanese) - kb_models - - - - - Sun Type 6 USB (Unix) - kb_models - - - - - Sun Type 6/7 USB - kb_models - - - - - Sun Type 6/7 USB (European) - kb_models - - - - - Sun Type 7 USB - kb_models - - - - - Sun Type 7 USB (European) - kb_models - - - - - Sun Type 7 USB (Japanese)/Japanese 106-key - kb_models - - - - - Sun Type 7 USB (Unix) - kb_models - - - - - Super Power Multimedia - kb_models - - - - - Symplon PaceBook tablet - kb_models - - - - - Targa Visionary 811 - kb_models - - - - - Toshiba Satellite S3000 - kb_models - - - - - Truly Ergonomic 227 - kb_models - - - - - Truly Ergonomic 229 - kb_models - - - - - Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) - kb_models - - - - - Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) - kb_models - - - - - Trust Direct Access - kb_models - - - - - Trust Slimline - kb_models - - - - - Trust Wireless Classic - kb_models - - - - - TypeMatrix EZ-Reach 2020 - kb_models - - - - - TypeMatrix EZ-Reach 2030 PS2 - kb_models - - - - - TypeMatrix EZ-Reach 2030 USB - kb_models - - - - - TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) - kb_models - - - - - TypeMatrix EZ-Reach 2030 USB (106:JP mode) - kb_models - - - - - Unitek KB-1925 - kb_models - - - - - ViewSonic KU-306 Internet - kb_models - - - - - Winbook Model XP5 - kb_models - - - - - Yahoo! Internet - kb_models - - - - - eMachines m6800 laptop - kb_models - - - - + Afghani kb_layouts - + Albanian kb_layouts - + Amharic kb_layouts - + Arabic kb_layouts - + Arabic (Morocco) kb_layouts - + Arabic (Syria) kb_layouts - + Armenian kb_layouts - + Azerbaijani kb_layouts - + Bambara kb_layouts - + Bangla kb_layouts - + Belarusian kb_layouts - + Belgian kb_layouts - + Bosnian kb_layouts - + Braille kb_layouts - + Bulgarian kb_layouts - + Burmese kb_layouts - + Chinese kb_layouts - + Croatian kb_layouts - + Czech kb_layouts - + Danish kb_layouts - + Dhivehi kb_layouts - + Dutch kb_layouts - + Dzongkha kb_layouts - + English (Australian) kb_layouts - + English (Cameroon) kb_layouts - + English (Ghana) kb_layouts - + English (Nigeria) kb_layouts - + English (South Africa) kb_layouts - + English (UK) kb_layouts - + English (US) kb_layouts - + Esperanto kb_layouts - + Estonian kb_layouts - + Faroese kb_layouts - + Filipino kb_layouts - + Finnish kb_layouts - + French kb_layouts - + French (Canada) kb_layouts - + French (Democratic Republic of the Congo) kb_layouts - + French (Guinea) kb_layouts - + French (Togo) kb_layouts - + Georgian kb_layouts - + German kb_layouts - + German (Austria) kb_layouts - + German (Switzerland) kb_layouts - + Greek kb_layouts - + Hebrew kb_layouts - + Hungarian kb_layouts - + Icelandic kb_layouts - + Indian kb_layouts - + Indonesian (Arab Melayu, phonetic) kb_layouts - + Indonesian (Javanese) kb_layouts - + Iraqi kb_layouts - + Irish kb_layouts - + Italian kb_layouts - + Japanese kb_layouts - + Japanese (PC-98) kb_layouts - + Kabylian (azerty layout, no dead keys) kb_layouts - + Kazakh kb_layouts - + Khmer (Cambodia) kb_layouts - + Korean kb_layouts - + Kyrgyz kb_layouts - + Lao kb_layouts - + Latvian kb_layouts - + Lithuanian kb_layouts - + Macedonian kb_layouts - + Malay (Jawi, Arabic Keyboard) kb_layouts - + Maltese kb_layouts - + Maori kb_layouts - + Moldavian kb_layouts - + Mongolian kb_layouts - + Montenegrin kb_layouts - + Nepali kb_layouts - + Norwegian kb_layouts - + Persian kb_layouts - + Polish kb_layouts - + Portuguese kb_layouts - + Portuguese (Brazil) kb_layouts - + Romanian kb_layouts - + Russian kb_layouts - + Serbian kb_layouts - + Sinhala (phonetic) kb_layouts - + Slovak kb_layouts - + Slovenian kb_layouts - + Spanish kb_layouts - + Spanish (Latin American) kb_layouts - + Swahili (Kenya) kb_layouts - + Swahili (Tanzania) kb_layouts - + Swedish kb_layouts - + Taiwanese kb_layouts - + Tajik kb_layouts - + Тоҷикӣ - + Thai kb_layouts - + Tswana kb_layouts - + Turkish kb_layouts - + Turkmen kb_layouts - + Ukrainian kb_layouts - + Urdu (Pakistan) kb_layouts - + Uzbek kb_layouts - + Vietnamese kb_layouts - + Wolof kb_layouts + + + kb_models - + + A4Tech KB-21 + kb_models + + + + + A4Tech KBS-8 + kb_models + + + + + A4Tech Wireless Desktop RFKB-23 + kb_models + + + + + Acer AirKey V + kb_models + + + + + Acer C300 + kb_models + + + + + Acer Ferrari 4000 + kb_models + + + + + Acer laptop + kb_models + + + + + Advance Scorpius KI + kb_models + + + + + Apple + kb_models + + + + + Apple Aluminium (ANSI) + kb_models + + + + + Apple Aluminium (ISO) + kb_models + + + + + Apple Aluminium (JIS) + kb_models + + + + + Apple laptop + kb_models + + + + + Asus laptop + kb_models + + + + + Azona RF2300 wireless Internet + kb_models + + + + + BTC 5090 + kb_models + + + + + BTC 5113RF Multimedia + kb_models + + + + + BTC 5126T + kb_models + + + + + BTC 6301URF + kb_models + + + + + BTC 9000 + kb_models + + + + + BTC 9000A + kb_models + + + + + BTC 9001AH + kb_models + + + + + BTC 9019U + kb_models + + + + + BTC 9116U Mini Wireless Internet and Gaming + kb_models + + + + + BenQ X-Touch + kb_models + + + + + BenQ X-Touch 730 + kb_models + + + + + BenQ X-Touch 800 + kb_models + + + + + Brother Internet + kb_models + + + + + Cherry B.UNLIMITED + kb_models + + + + + Cherry Blue Line CyBo@rd + kb_models + + + + + Cherry Blue Line CyBo@rd (alt.) + kb_models + + + + + Cherry CyBo@rd USB-Hub + kb_models + + + + + Cherry CyMotion Expert + kb_models + + + + + Cherry CyMotion Master Linux + kb_models + + + + + Cherry CyMotion Master XPress + kb_models + + + + + Chicony Internet + kb_models + + + + + Chicony KB-9885 + kb_models + + + + + Chicony KU-0108 + kb_models + + + + + Chicony KU-0420 + kb_models + + + + + Chromebook + kb_models + + + + + Classmate PC + kb_models + + + + + Compaq Armada laptop + kb_models + + + + + Compaq Easy Access + kb_models + + + + + Compaq Internet (13 keys) + kb_models + + + + + Compaq Internet (18 keys) + kb_models + + + + + Compaq Internet (7 keys) + kb_models + + + + + Compaq Presario laptop + kb_models + + + + + Compaq iPaq + kb_models + + + + + Creative Desktop Wireless 7000 + kb_models + + + + + DTK2000 + kb_models + + + + + Dell + kb_models + + + + + Dell 101-key PC + kb_models + + + + + Dell Inspiron 6000/8000 laptop + kb_models + + + + + Dell Latitude laptop + kb_models + + + + + Dell Precision M laptop + kb_models + + + + + Dell Precision M65 laptop + kb_models + + + + + Dell SK-8125 + kb_models + + + + + Dell SK-8135 + kb_models + + + + + Dell USB Multimedia + kb_models + + + + + Dexxa Wireless Desktop + kb_models + + + + + Diamond 9801/9802 + kb_models + + + + + Ennyah DKB-1008 + kb_models + + + + + Everex STEPnote + kb_models + + + + + FL90 + kb_models + + + + + Fujitsu-Siemens Amilo laptop + kb_models + + + + + Generic 101-key PC + kb_models + Общий 101-ключ + + + + Generic 102-key PC + kb_models + Общий 102-ключ + + + + Generic 104-key PC + kb_models + Общий 104-ключ + + + + Generic 104-key PC with L-shaped Enter key + kb_models + + + + + Generic 105-key PC + kb_models + Общий 105-ключ + + + + Generic 86-key PC + kb_models + Общий 86-ключ + + + + Genius Comfy KB-12e + kb_models + + + + + Genius Comfy KB-16M/Multimedia KWD-910 + kb_models + + + + + Genius Comfy KB-21e-Scroll + kb_models + + + + + Genius KB-19e NB + kb_models + + + + + Genius KKB-2050HS + kb_models + + + + + Gyration + kb_models + + + + + Happy Hacking + kb_models + + + + + Happy Hacking for Mac + kb_models + + + + + Hewlett-Packard Internet + kb_models + + + + + Hewlett-Packard Mini 110 laptop + kb_models + + + + + Hewlett-Packard NEC SK-2500 Multimedia + kb_models + + + + + Hewlett-Packard Omnibook 500 + kb_models + + + + + Hewlett-Packard Omnibook 500 FA + kb_models + + + + + Hewlett-Packard Omnibook 6000/6100 + kb_models + + + + + Hewlett-Packard Omnibook XE3 GC + kb_models + + + + + Hewlett-Packard Omnibook XE3 GF + kb_models + + + + + Hewlett-Packard Omnibook XT1000 + kb_models + + + + + Hewlett-Packard Pavilion ZT1100 + kb_models + + + + + Hewlett-Packard Pavilion dv5 + kb_models + + + + + Hewlett-Packard nx9020 + kb_models + + + + + Honeywell Euroboard + kb_models + + + + + IBM Rapid Access + kb_models + + + + + IBM Rapid Access II + kb_models + + + + + IBM Space Saver + kb_models + + + + + IBM ThinkPad 560Z/600/600E/A22E + kb_models + + + + + IBM ThinkPad R60/T60/R61/T61 + kb_models + + + + + IBM ThinkPad Z60m/Z60t/Z61m/Z61t + kb_models + + + + + Keytronic FlexPro + kb_models + + + + + Kinesis + kb_models + + + + + Logitech + kb_models + + + + + Logitech Access + kb_models + + + + + Logitech Cordless Desktop + kb_models + + + + + Logitech Cordless Desktop (alt.) + kb_models + + + + + Logitech Cordless Desktop EX110 + kb_models + + + + + Logitech Cordless Desktop LX-300 + kb_models + + + + + Logitech Cordless Desktop Navigator + kb_models + + + + + Logitech Cordless Desktop Optical + kb_models + + + + + Logitech Cordless Desktop Pro (2nd alt.) + kb_models + + + + + Logitech Cordless Desktop iTouch + kb_models + + + + + Logitech Cordless Freedom/Desktop Navigator + kb_models + + + + + Logitech G15 extra keys via G15daemon + kb_models + + + + + Logitech Internet + kb_models + + + + + Logitech Internet 350 + kb_models + + + + + Logitech Internet Navigator + kb_models + + + + + Logitech Ultra-X + kb_models + + + + + Logitech Ultra-X Cordless Media Desktop + kb_models + + + + + Logitech diNovo + kb_models + + + + + Logitech diNovo Edge + kb_models + + + + + Logitech iTouch + kb_models + + + + + Logitech iTouch Cordless Y-RB6 + kb_models + + + + + Logitech iTouch Internet Navigator SE + kb_models + + + + + Logitech iTouch Internet Navigator SE USB + kb_models + + + + + MacBook/MacBook Pro + kb_models + + + + + MacBook/MacBook Pro (intl.) + kb_models + + + + + Macintosh + kb_models + + + + + Macintosh Old + kb_models + + + + + Memorex MX1998 + kb_models + + + + + Memorex MX2500 EZ-Access + kb_models + + + + + Memorex MX2750 + kb_models + + + + + Microsoft Comfort Curve 2000 + kb_models + + + + + Microsoft Internet + kb_models + + + + + Microsoft Internet Pro (Swedish) + kb_models + + + + + Microsoft Natural + kb_models + + + + + Microsoft Natural Elite + kb_models + + + + + Microsoft Natural Ergonomic 4000 + kb_models + + + + + Microsoft Natural Pro OEM + kb_models + + + + + Microsoft Natural Pro USB/Internet Pro + kb_models + + + + + Microsoft Natural Pro/Internet Pro + kb_models + + + + + Microsoft Natural Wireless Ergonomic 7000 + kb_models + + + + + Microsoft Office Keyboard + kb_models + + + + + Microsoft Surface + kb_models + + + + + Microsoft Wireless Multimedia 1.0A + kb_models + + + + + NEC SK-1300 + kb_models + + + + + NEC SK-2500 + kb_models + + + + + NEC SK-6200 + kb_models + + + + + NEC SK-7100 + kb_models + + + + + Northgate OmniKey 101 + kb_models + + + + + OLPC + kb_models + + + + + Ortek Multimedia/Internet MCK-800 + kb_models + + + + + PC-98 + kb_models + + + + + Propeller Voyager KTEZ-1000 + kb_models + + + + + QTronix Scorpius 98N+ + kb_models + + + + + SVEN Ergonomic 2500 + kb_models + + + + + SVEN Slim 303 + kb_models + + + + + Samsung SDM 4500P + kb_models + + + + + Samsung SDM 4510P + kb_models + + + + + Sanwa Supply SKB-KG3 + kb_models + + + + + Silvercrest Multimedia Wireless + kb_models + + + + + SteelSeries Apex 300 (Apex RAW) + kb_models + + + + + Sun Type 6 (Japanese) + kb_models + + + + + Sun Type 6 USB (Japanese) + kb_models + + + + + Sun Type 6 USB (Unix) + kb_models + + + + + Sun Type 6/7 USB + kb_models + + + + + Sun Type 6/7 USB (European) + kb_models + + + + + Sun Type 7 USB + kb_models + + + + + Sun Type 7 USB (European) + kb_models + + + + + Sun Type 7 USB (Japanese)/Japanese 106-key + kb_models + + + + + Sun Type 7 USB (Unix) + kb_models + + + + + Super Power Multimedia + kb_models + + + + + Symplon PaceBook tablet + kb_models + + + + + Targa Visionary 811 + kb_models + + + + + Toshiba Satellite S3000 + kb_models + + + + + Truly Ergonomic 227 + kb_models + + + + + Truly Ergonomic 229 + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) + kb_models + + + + + Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) + kb_models + + + + + Trust Direct Access + kb_models + + + + + Trust Slimline + kb_models + + + + + Trust Wireless Classic + kb_models + + + + + TypeMatrix EZ-Reach 2020 + kb_models + + + + + TypeMatrix EZ-Reach 2030 PS2 + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) + kb_models + + + + + TypeMatrix EZ-Reach 2030 USB (106:JP mode) + kb_models + + + + + Unitek KB-1925 + kb_models + + + + + ViewSonic KU-306 Internet + kb_models + + + + + Winbook Model XP5 + kb_models + + + + + Yahoo! Internet + kb_models + + + + + eMachines m6800 laptop + kb_models + + + + + kb_variants + + Akan kb_variants - + Albanian (Plisi) kb_variants - + Albanian (Veqilharxhi) kb_variants - + Arabic (AZERTY) kb_variants - + Arabic (AZERTY, Eastern Arabic numerals) kb_variants - + Arabic (Algeria) kb_variants - + Arabic (Buckwalter) kb_variants - + Arabic (Eastern Arabic numerals) kb_variants - + Arabic (Macintosh) kb_variants - + Arabic (OLPC) kb_variants - + Arabic (Pakistan) kb_variants - + Arabic (QWERTY) kb_variants - + Arabic (QWERTY, Eastern Arabic numerals) kb_variants - + Armenian (alt. eastern) kb_variants - + Armenian (alt. phonetic) kb_variants - + Armenian (eastern) kb_variants - + Armenian (phonetic) kb_variants - + Armenian (western) kb_variants - + Asturian (Spain, with bottom-dot H and L) kb_variants - + Avatime kb_variants - + Azerbaijani (Cyrillic) kb_variants - + Bangla (India) kb_variants - + Bangla (India, Baishakhi Inscript) kb_variants - + Bangla (India, Baishakhi) kb_variants - + Bangla (India, Bornona) kb_variants - + Bangla (India, Gitanjali) kb_variants - + Bangla (India, Probhat) kb_variants - + Bangla (Probhat) kb_variants - + Bashkirian kb_variants - + Belarusian (Latin) kb_variants - + Belarusian (intl.) kb_variants - + Belarusian (legacy) kb_variants - + Belgian (ISO, alt.) kb_variants - + Belgian (Latin-9 only, alt.) kb_variants - + Belgian (Sun dead keys) kb_variants - + Belgian (Sun dead keys, alt.) kb_variants - + Belgian (Wang 724 AZERTY) kb_variants - + Belgian (alt.) kb_variants - + Belgian (no dead keys) kb_variants - + Berber (Morocco, Tifinagh alt.) kb_variants - + Berber (Morocco, Tifinagh extended phonetic) kb_variants - + Berber (Morocco, Tifinagh extended) kb_variants - + Berber (Morocco, Tifinagh phonetic) kb_variants - + Berber (Morocco, Tifinagh phonetic, alt.) kb_variants - + Berber (Morocco, Tifinagh) kb_variants - + Bosnian (US) kb_variants - + Bosnian (US, with Bosnian digraphs) kb_variants - + Bosnian (with Bosnian digraphs) kb_variants - + Bosnian (with guillemets) kb_variants - + Braille (left-handed inverted thumb) kb_variants - + Braille (left-handed) kb_variants - + Braille (right-handed inverted thumb) kb_variants - + Braille (right-handed) kb_variants - + Bulgarian (enhanced) kb_variants - + Bulgarian (new phonetic) kb_variants - + Bulgarian (traditional phonetic) kb_variants - + Burmese Zawgyi kb_variants - + Cameroon (AZERTY, intl.) kb_variants - + Cameroon (Dvorak, intl.) kb_variants - + Cameroon Multilingual (QWERTY, intl.) kb_variants - + Canadian (intl.) kb_variants - + Canadian (intl., 1st part) kb_variants - + Canadian (intl., 2nd part) kb_variants - + Catalan (Spain, with middle-dot L) kb_variants - + Cherokee kb_variants - + Chuvash kb_variants - + Chuvash (Latin) kb_variants - + CloGaelach kb_variants - + Crimean Tatar (Turkish Alt-Q) kb_variants - + Crimean Tatar (Turkish F) kb_variants - + Crimean Tatar (Turkish Q) kb_variants - + Croatian (US) kb_variants - + Croatian (US, with Croatian digraphs) kb_variants - + Croatian (with Croatian digraphs) kb_variants - + Croatian (with guillemets) kb_variants - + Czech (QWERTY) kb_variants - + Czech (QWERTY, Macintosh) kb_variants - + Czech (QWERTY, extended backslash) kb_variants - + Czech (UCW, only accented letters) kb_variants - + Czech (US, Dvorak, UCW support) kb_variants - + Czech (with &lt;|&gt; key) kb_variants - + Danish (Dvorak) kb_variants - + Danish (Macintosh) kb_variants - + Danish (Macintosh, no dead keys) kb_variants - + Danish (Windows) kb_variants - + Danish (no dead keys) kb_variants - - - Dutch (Macintosh) - kb_variants - - - - - Dutch (Sun dead keys) - kb_variants - - - - - Dutch (standard) - kb_variants - - - - - English (Canada) - kb_variants - - - - - English (Colemak) - kb_variants - - - - - English (Dvorak) - kb_variants - - - - - English (Dvorak, alt. intl.) - kb_variants - - - - - English (Dvorak, intl., with dead keys) - kb_variants - - - - - English (Dvorak, left-handed) - kb_variants - - - - - English (Dvorak, right-handed) - kb_variants - - - - - English (Ghana, GILLBT) - kb_variants - - - English (Ghana, multilingual) + Default kb_variants - English (India, with rupee) + Dutch (Macintosh) kb_variants - English (Macintosh) + Dutch (Sun dead keys) kb_variants - English (Mali, US, Macintosh) + Dutch (standard) kb_variants - English (Mali, US, intl.) + English (Canada) kb_variants - English (Norman) + English (Colemak) kb_variants - English (UK, Colemak) + English (Dvorak) kb_variants - English (UK, Dvorak) + English (Dvorak, alt. intl.) kb_variants - English (UK, Dvorak, with UK punctuation) + English (Dvorak, intl., with dead keys) kb_variants - English (UK, Macintosh) + English (Dvorak, left-handed) kb_variants - English (UK, Macintosh, intl.) + English (Dvorak, right-handed) kb_variants - English (UK, extended, Windows) + English (Ghana, GILLBT) kb_variants - English (UK, intl., with dead keys) + English (Ghana, multilingual) kb_variants - English (US, Symbolic) + English (India, with rupee) kb_variants - English (US, alt. intl.) + English (Macintosh) kb_variants - English (US, euro on 5) + English (Mali, US, Macintosh) kb_variants - English (US, intl., with dead keys) + English (Mali, US, intl.) kb_variants - English (Workman) + English (Norman) kb_variants - English (Workman, intl., with dead keys) + English (UK, Colemak) kb_variants - English (classic Dvorak) + English (UK, Dvorak) kb_variants - English (intl., with AltGr dead keys) + English (UK, Dvorak, with UK punctuation) kb_variants - English (programmer Dvorak) + English (UK, Macintosh) kb_variants - English (the divide/multiply toggle the layout) + English (UK, Macintosh, intl.) kb_variants - Esperanto (Brazil, Nativo) + English (UK, extended, Windows) kb_variants - Esperanto (Portugal, Nativo) + English (UK, intl., with dead keys) kb_variants - Esperanto (legacy) + English (US, Symbolic) kb_variants - Estonian (Dvorak) + English (US, alt. intl.) kb_variants - Estonian (US) + English (US, euro on 5) kb_variants - Estonian (no dead keys) + English (US, intl., with dead keys) kb_variants - Ewe + English (Workman) kb_variants - Faroese (no dead keys) + English (Workman, intl., with dead keys) kb_variants - Filipino (Capewell-Dvorak, Baybayin) + English (classic Dvorak) kb_variants - Filipino (Capewell-Dvorak, Latin) + English (intl., with AltGr dead keys) kb_variants - Filipino (Capewell-QWERF 2006, Baybayin) + English (programmer Dvorak) kb_variants - Filipino (Capewell-QWERF 2006, Latin) + English (the divide/multiply toggle the layout) kb_variants - Filipino (Colemak, Baybayin) + Esperanto (Brazil, Nativo) kb_variants - Filipino (Colemak, Latin) + Esperanto (Portugal, Nativo) kb_variants - Filipino (Dvorak, Baybayin) + Esperanto (legacy) kb_variants - Filipino (Dvorak, Latin) + Estonian (Dvorak) kb_variants - Filipino (QWERTY, Baybayin) + Estonian (US) kb_variants - Finnish (Macintosh) + Estonian (no dead keys) kb_variants - Finnish (Windows) + Ewe kb_variants - Finnish (classic) + Faroese (no dead keys) kb_variants - Finnish (classic, no dead keys) + Filipino (Capewell-Dvorak, Baybayin) kb_variants - French (AZERTY) + Filipino (Capewell-Dvorak, Latin) kb_variants - French (AZERTY, AFNOR) + Filipino (Capewell-QWERF 2006, Baybayin) kb_variants - French (BEPO) + Filipino (Capewell-QWERF 2006, Latin) kb_variants - French (BEPO, AFNOR) + Filipino (Colemak, Baybayin) kb_variants - French (BEPO, Latin-9 only) + Filipino (Colemak, Latin) kb_variants - French (Breton) + Filipino (Dvorak, Baybayin) kb_variants - French (Cameroon) + Filipino (Dvorak, Latin) kb_variants - French (Canada, Dvorak) + Filipino (QWERTY, Baybayin) kb_variants - French (Canada, legacy) + Finnish (Macintosh) kb_variants - French (Dvorak) + Finnish (Windows) kb_variants - French (Macintosh) + Finnish (classic) kb_variants - French (Mali, alt.) + Finnish (classic, no dead keys) kb_variants - French (Morocco) + French (AZERTY) kb_variants - French (Sun dead keys) + French (AZERTY, AFNOR) kb_variants - French (Switzerland) + French (BEPO) kb_variants - French (Switzerland, Macintosh) + French (BEPO, AFNOR) kb_variants - French (Switzerland, Sun dead keys) + French (BEPO, Latin-9 only) kb_variants - French (Switzerland, no dead keys) + French (Breton) kb_variants - French (US) + French (Cameroon) kb_variants - French (alt.) + French (Canada, Dvorak) kb_variants - French (alt., Latin-9 only) + French (Canada, legacy) kb_variants - French (alt., Sun dead keys) + French (Dvorak) kb_variants - French (alt., no dead keys) + French (Macintosh) kb_variants - French (legacy, alt.) + French (Mali, alt.) kb_variants - French (legacy, alt., Sun dead keys) + French (Morocco) kb_variants - French (legacy, alt., no dead keys) + French (Sun dead keys) kb_variants - French (no dead keys) + French (Switzerland) kb_variants - Friulian (Italy) + French (Switzerland, Macintosh) kb_variants - Fula + French (Switzerland, Sun dead keys) kb_variants - Ga + French (Switzerland, no dead keys) kb_variants - Georgian (France, AZERTY Tskapo) + French (US) kb_variants - Georgian (Italy) + French (alt.) kb_variants - Georgian (MESS) + French (alt., Latin-9 only) kb_variants - Georgian (ergonomic) + French (alt., Sun dead keys) kb_variants - German (Austria, Macintosh) + French (alt., no dead keys) kb_variants - German (Austria, Sun dead keys) + French (legacy, alt.) kb_variants - German (Austria, no dead keys) + French (legacy, alt., Sun dead keys) kb_variants - German (Dvorak) + French (legacy, alt., no dead keys) kb_variants - German (E1) + French (no dead keys) kb_variants - German (E2) + Friulian (Italy) kb_variants - German (Macintosh) + Fula kb_variants - German (Macintosh, no dead keys) + Ga kb_variants - German (Neo 2) + Georgian (France, AZERTY Tskapo) kb_variants - German (QWERTY) + Georgian (Italy) kb_variants - German (Sun dead keys) + Georgian (MESS) kb_variants - German (Switzerland, Macintosh) + Georgian (ergonomic) kb_variants - German (Switzerland, Sun dead keys) + German (Austria, Macintosh) kb_variants - German (Switzerland, legacy) + German (Austria, Sun dead keys) kb_variants - German (Switzerland, no dead keys) + German (Austria, no dead keys) kb_variants - German (T3) + German (Dvorak) kb_variants - German (US) + German (E1) kb_variants - German (dead acute) + German (E2) kb_variants - German (dead grave acute) + German (Macintosh) kb_variants - German (dead tilde) + German (Macintosh, no dead keys) kb_variants - German (no dead keys) + German (Neo 2) kb_variants - Greek (extended) + German (QWERTY) kb_variants - Greek (no dead keys) + German (Sun dead keys) kb_variants - Greek (polytonic) + German (Switzerland, Macintosh) kb_variants - Greek (simple) + German (Switzerland, Sun dead keys) kb_variants - Gujarati + German (Switzerland, legacy) kb_variants - Hanyu Pinyin (with AltGr dead keys) + German (Switzerland, no dead keys) kb_variants - Hausa (Ghana) + German (T3) kb_variants - Hausa (Nigeria) + German (US) kb_variants - Hawaiian + German (dead acute) kb_variants - Hebrew (Biblical, Tiro) + German (dead grave acute) kb_variants - Hebrew (lyx) + German (dead tilde) kb_variants - Hebrew (phonetic) + German (no dead keys) kb_variants - Hindi (Bolnagri) + Greek (extended) kb_variants - Hindi (KaGaPa, phonetic) + Greek (no dead keys) kb_variants - Hindi (Wx) + Greek (polytonic) kb_variants - Hungarian (QWERTY) + Greek (simple) kb_variants - Hungarian (QWERTY, 101-key, comma, dead keys) + Gujarati kb_variants - Hungarian (QWERTY, 101-key, comma, no dead keys) + Hanyu Pinyin (with AltGr dead keys) kb_variants - Hungarian (QWERTY, 101-key, dot, dead keys) + Hausa (Ghana) kb_variants - Hungarian (QWERTY, 101-key, dot, no dead keys) + Hausa (Nigeria) kb_variants - Hungarian (QWERTY, 102-key, comma, dead keys) + Hawaiian kb_variants - Hungarian (QWERTY, 102-key, comma, no dead keys) + Hebrew (Biblical, Tiro) kb_variants - Hungarian (QWERTY, 102-key, dot, dead keys) + Hebrew (lyx) kb_variants - Hungarian (QWERTY, 102-key, dot, no dead keys) + Hebrew (phonetic) kb_variants - Hungarian (QWERTZ, 101-key, comma, dead keys) + Hindi (Bolnagri) kb_variants - Hungarian (QWERTZ, 101-key, comma, no dead keys) + Hindi (KaGaPa, phonetic) kb_variants - Hungarian (QWERTZ, 101-key, dot, dead keys) + Hindi (Wx) kb_variants - Hungarian (QWERTZ, 101-key, dot, no dead keys) + Hungarian (QWERTY) kb_variants - Hungarian (QWERTZ, 102-key, comma, dead keys) + Hungarian (QWERTY, 101-key, comma, dead keys) kb_variants - Hungarian (QWERTZ, 102-key, comma, no dead keys) + Hungarian (QWERTY, 101-key, comma, no dead keys) kb_variants - Hungarian (QWERTZ, 102-key, dot, dead keys) + Hungarian (QWERTY, 101-key, dot, dead keys) kb_variants - Hungarian (QWERTZ, 102-key, dot, no dead keys) + Hungarian (QWERTY, 101-key, dot, no dead keys) kb_variants - Hungarian (no dead keys) + Hungarian (QWERTY, 102-key, comma, dead keys) kb_variants - Hungarian (standard) + Hungarian (QWERTY, 102-key, comma, no dead keys) kb_variants - Icelandic (Dvorak) + Hungarian (QWERTY, 102-key, dot, dead keys) kb_variants - Icelandic (Macintosh) + Hungarian (QWERTY, 102-key, dot, no dead keys) kb_variants - Icelandic (Macintosh, legacy) + Hungarian (QWERTZ, 101-key, comma, dead keys) kb_variants - Icelandic (Sun dead keys) + Hungarian (QWERTZ, 101-key, comma, no dead keys) kb_variants - Icelandic (no dead keys) + Hungarian (QWERTZ, 101-key, dot, dead keys) kb_variants - Igbo + Hungarian (QWERTZ, 101-key, dot, no dead keys) kb_variants - Indic (phonetic, IPA) + Hungarian (QWERTZ, 102-key, comma, dead keys) kb_variants - Indonesian (Arab Melayu, extended phonetic) + Hungarian (QWERTZ, 102-key, comma, no dead keys) kb_variants - Inuktitut + Hungarian (QWERTZ, 102-key, dot, dead keys) kb_variants - Irish (UnicodeExpert) + Hungarian (QWERTZ, 102-key, dot, no dead keys) kb_variants - Italian (IBM 142) + Hungarian (no dead keys) kb_variants - Italian (Macintosh) + Hungarian (standard) kb_variants - Italian (US) + Icelandic (Dvorak) kb_variants - Italian (Windows) + Icelandic (Macintosh) kb_variants - Italian (intl., with dead keys) + Icelandic (Macintosh, legacy) kb_variants - Italian (no dead keys) + Icelandic (Sun dead keys) kb_variants - Japanese (Dvorak) + Icelandic (no dead keys) kb_variants - Japanese (Kana 86) + Igbo kb_variants - Japanese (Kana) + Indic (phonetic, IPA) kb_variants - Japanese (Macintosh) + Indonesian (Arab Melayu, extended phonetic) kb_variants - Japanese (OADG 109A) + Inuktitut kb_variants - Kabylian (Algeria, Tifinagh) + Irish (UnicodeExpert) kb_variants - Kabylian (azerty layout, with dead keys) + Italian (IBM 142) kb_variants - Kabylian (qwerty-gb layout, with dead keys) + Italian (Macintosh) kb_variants - Kabylian (qwerty-us layout, with dead keys) + Italian (US) kb_variants - Kalmyk + Italian (Windows) kb_variants - Kannada + Italian (intl., with dead keys) kb_variants - Kannada (KaGaPa, phonetic) + Italian (no dead keys) kb_variants - Kashubian + Japanese (Dvorak) kb_variants - Kazakh (Latin) + Japanese (Kana 86) kb_variants - Kazakh (extended) + Japanese (Kana) kb_variants - Kazakh (with Russian) + Japanese (Macintosh) kb_variants - Kikuyu + Japanese (OADG 109A) kb_variants - Komi + Kabylian (Algeria, Tifinagh) kb_variants - Korean (101/104-key compatible) + Kabylian (azerty layout, with dead keys) kb_variants - Kurdish (Iran, Arabic-Latin) + Kabylian (qwerty-gb layout, with dead keys) kb_variants - Kurdish (Iran, F) + Kabylian (qwerty-us layout, with dead keys) kb_variants - Kurdish (Iran, Latin Alt-Q) + Kalmyk kb_variants - Kurdish (Iran, Latin Q) + Kannada kb_variants - Kurdish (Iraq, Arabic-Latin) + Kannada (KaGaPa, phonetic) kb_variants - Kurdish (Iraq, F) + Kashubian kb_variants - Kurdish (Iraq, Latin Alt-Q) + Kazakh (Latin) kb_variants - Kurdish (Iraq, Latin Q) + Kazakh (extended) kb_variants - Kurdish (Syria, F) + Kazakh (with Russian) kb_variants - Kurdish (Syria, Latin Alt-Q) + Kikuyu kb_variants - Kurdish (Syria, Latin Q) + Komi kb_variants - Kurdish (Turkey, F) + Korean (101/104-key compatible) kb_variants - Kurdish (Turkey, Latin Alt-Q) + Kurdish (Iran, Arabic-Latin) kb_variants - Kurdish (Turkey, Latin Q) + Kurdish (Iran, F) kb_variants - Kyrgyz (phonetic) + Kurdish (Iran, Latin Alt-Q) kb_variants - Lao (STEA) + Kurdish (Iran, Latin Q) kb_variants - Latvian (F) + Kurdish (Iraq, Arabic-Latin) kb_variants - Latvian (adapted) + Kurdish (Iraq, F) kb_variants - Latvian (apostrophe) + Kurdish (Iraq, Latin Alt-Q) kb_variants - Latvian (ergonomic, ŪGJRMV) + Kurdish (Iraq, Latin Q) kb_variants - Latvian (modern) + Kurdish (Syria, F) kb_variants - Latvian (tilde) + Kurdish (Syria, Latin Alt-Q) kb_variants - Lithuanian (IBM LST 1205-92) + Kurdish (Syria, Latin Q) kb_variants - Lithuanian (LEKP) + Kurdish (Turkey, F) kb_variants - Lithuanian (LEKPa) + Kurdish (Turkey, Latin Alt-Q) kb_variants - Lithuanian (US) + Kurdish (Turkey, Latin Q) kb_variants - Lithuanian (standard) + Kyrgyz (phonetic) kb_variants - Lower Sorbian + Lao (STEA) kb_variants - Lower Sorbian (QWERTZ) + Latvian (F) kb_variants - Macedonian (no dead keys) + Latvian (adapted) kb_variants - Malay (Jawi, phonetic) + Latvian (apostrophe) kb_variants - Malayalam + Latvian (ergonomic, ŪGJRMV) kb_variants - Malayalam (Lalitha) + Latvian (modern) kb_variants - Malayalam (enhanced Inscript, with rupee) + Latvian (tilde) kb_variants - Maltese (UK, with AltGr overrides) + Lithuanian (IBM LST 1205-92) kb_variants - Maltese (US layout with AltGr overrides) + Lithuanian (LEKP) kb_variants - Maltese (US) + Lithuanian (LEKPa) kb_variants - Manipuri (Eeyek) + Lithuanian (US) kb_variants - Marathi (KaGaPa, phonetic) + Lithuanian (standard) kb_variants - Marathi (enhanced Inscript) + Lower Sorbian kb_variants - Mari + Lower Sorbian (QWERTZ) kb_variants - Mmuock + Macedonian (no dead keys) kb_variants - Moldavian (Gagauz) + Malay (Jawi, phonetic) kb_variants - Mongolian (Bichig) + Malayalam kb_variants - Mongolian (Galik) + Malayalam (Lalitha) kb_variants - Mongolian (Manchu Galik) + Malayalam (enhanced Inscript, with rupee) kb_variants - Mongolian (Manchu) + Maltese (UK, with AltGr overrides) kb_variants - Mongolian (Todo Galik) + Maltese (US layout with AltGr overrides) kb_variants - Mongolian (Todo) + Maltese (US) kb_variants - Mongolian (Xibe) + Manipuri (Eeyek) kb_variants - Montenegrin (Cyrillic) + Marathi (KaGaPa, phonetic) kb_variants - Montenegrin (Cyrillic, ZE and ZHE swapped) + Marathi (enhanced Inscript) kb_variants - Montenegrin (Cyrillic, with guillemets) + Mari kb_variants - Montenegrin (Latin, QWERTY) + Mmuock kb_variants - Montenegrin (Latin, Unicode) + Moldavian (Gagauz) kb_variants - Montenegrin (Latin, Unicode, QWERTY) + Mongolian (Bichig) kb_variants - Montenegrin (Latin, with guillemets) + Mongolian (Galik) kb_variants - Northern Saami (Finland) + Mongolian (Manchu Galik) kb_variants - Northern Saami (Norway) + Mongolian (Manchu) kb_variants - Northern Saami (Norway, no dead keys) + Mongolian (Todo Galik) kb_variants - Northern Saami (Sweden) + Mongolian (Todo) kb_variants - Norwegian (Colemak) + Mongolian (Xibe) kb_variants - Norwegian (Dvorak) + Montenegrin (Cyrillic) kb_variants - Norwegian (Macintosh) + Montenegrin (Cyrillic, ZE and ZHE swapped) kb_variants - Norwegian (Macintosh, no dead keys) + Montenegrin (Cyrillic, with guillemets) kb_variants - Norwegian (Windows) + Montenegrin (Latin, QWERTY) kb_variants - Norwegian (no dead keys) + Montenegrin (Latin, Unicode) kb_variants - Occitan + Montenegrin (Latin, Unicode, QWERTY) kb_variants - Ogham + Montenegrin (Latin, with guillemets) kb_variants - Ogham (IS434) + Northern Saami (Finland) kb_variants - Ol Chiki + Northern Saami (Norway) kb_variants - Oriya + Northern Saami (Norway, no dead keys) kb_variants - Ossetian (Georgia) + Northern Saami (Sweden) kb_variants - Ossetian (Windows) + Norwegian (Colemak) kb_variants - Ossetian (legacy) + Norwegian (Dvorak) kb_variants - Pannonian Rusyn + Norwegian (Macintosh) kb_variants - Pashto + Norwegian (Macintosh, no dead keys) kb_variants - Pashto (Afghanistan, OLPC) + Norwegian (Windows) kb_variants - Persian (Afghanistan, Dari OLPC) + Norwegian (no dead keys) kb_variants - Persian (with Persian keypad) + Occitan kb_variants - Polish (British keyboard) + Ogham kb_variants - Polish (Dvorak) + Ogham (IS434) kb_variants - Polish (Dvorak, with Polish quotes on key 1) + Ol Chiki kb_variants - Polish (Dvorak, with Polish quotes on quotemark key) + Oriya kb_variants - Polish (QWERTZ) + Ossetian (Georgia) kb_variants - Polish (legacy) + Ossetian (Windows) kb_variants - Polish (programmer Dvorak) + Ossetian (legacy) kb_variants - Portuguese (Brazil, Dvorak) + Pannonian Rusyn kb_variants - Portuguese (Brazil, IBM/Lenovo ThinkPad) + Pashto kb_variants - Portuguese (Brazil, Nativo for US keyboards) + Pashto (Afghanistan, OLPC) kb_variants - Portuguese (Brazil, Nativo) + Persian (Afghanistan, Dari OLPC) kb_variants - Portuguese (Brazil, no dead keys) + Persian (with Persian keypad) kb_variants - Portuguese (Macintosh) + Polish (British keyboard) kb_variants - Portuguese (Macintosh, Sun dead keys) + Polish (Dvorak) kb_variants - Portuguese (Macintosh, no dead keys) + Polish (Dvorak, with Polish quotes on key 1) kb_variants - Portuguese (Nativo for US keyboards) + Polish (Dvorak, with Polish quotes on quotemark key) kb_variants - Portuguese (Nativo) + Polish (QWERTZ) kb_variants - Portuguese (Sun dead keys) + Polish (legacy) kb_variants - Portuguese (no dead keys) + Polish (programmer Dvorak) kb_variants - Punjabi (Gurmukhi Jhelum) + Portuguese (Brazil, Dvorak) kb_variants - Punjabi (Gurmukhi) + Portuguese (Brazil, IBM/Lenovo ThinkPad) kb_variants - Romanian (Germany) + Portuguese (Brazil, Nativo for US keyboards) kb_variants - Romanian (Germany, no dead keys) + Portuguese (Brazil, Nativo) kb_variants - Romanian (Windows) + Portuguese (Brazil, no dead keys) kb_variants - Romanian (cedilla) + Portuguese (Macintosh) kb_variants - Romanian (standard cedilla) + Portuguese (Macintosh, Sun dead keys) kb_variants - Romanian (standard) + Portuguese (Macintosh, no dead keys) kb_variants - Russian (Belarus) + Portuguese (Nativo for US keyboards) kb_variants - Russian (Czech, phonetic) + Portuguese (Nativo) kb_variants - Russian (DOS) + Portuguese (Sun dead keys) kb_variants - Russian (Georgia) + Portuguese (no dead keys) kb_variants - Russian (Germany, phonetic) + Punjabi (Gurmukhi Jhelum) kb_variants - Russian (Kazakhstan, with Kazakh) + Punjabi (Gurmukhi) kb_variants - Russian (Macintosh) + Romanian (Germany) kb_variants - Russian (Poland, phonetic Dvorak) + Romanian (Germany, no dead keys) kb_variants - Russian (Sweden, phonetic) + Romanian (Windows) kb_variants - Russian (Sweden, phonetic, no dead keys) + Romanian (cedilla) kb_variants - Russian (US, phonetic) + Romanian (standard cedilla) kb_variants - Russian (Ukraine, standard RSTU) + Romanian (standard) kb_variants - Russian (legacy) + Russian (Belarus) kb_variants - Russian (phonetic) + Russian (Czech, phonetic) kb_variants - Russian (phonetic, AZERTY) + Russian (DOS) kb_variants - Russian (phonetic, Dvorak) + Russian (Georgia) kb_variants - Russian (phonetic, French) + Russian (Germany, phonetic) kb_variants - Russian (phonetic, Windows) + Russian (Kazakhstan, with Kazakh) kb_variants - Russian (phonetic, YAZHERTY) + Russian (Macintosh) kb_variants - Russian (typewriter) + Russian (Poland, phonetic Dvorak) kb_variants - Russian (typewriter, legacy) + Russian (Sweden, phonetic) kb_variants - Saisiyat (Taiwan) + Russian (Sweden, phonetic, no dead keys) kb_variants - Samogitian + Russian (US, phonetic) kb_variants - Sanskrit (KaGaPa, phonetic) + Russian (Ukraine, standard RSTU) kb_variants - Serbian (Cyrillic, ZE and ZHE swapped) + Russian (legacy) kb_variants - Serbian (Cyrillic, with guillemets) + Russian (phonetic) kb_variants - Serbian (Latin) + Russian (phonetic, AZERTY) kb_variants - Serbian (Latin, QWERTY) + Russian (phonetic, Dvorak) kb_variants - Serbian (Latin, Unicode) + Russian (phonetic, French) kb_variants - Serbian (Latin, Unicode, QWERTY) + Russian (phonetic, Windows) kb_variants - Serbian (Latin, with guillemets) + Russian (phonetic, YAZHERTY) kb_variants - Serbian (Russia) + Russian (typewriter) kb_variants - Serbo-Croatian (US) + Russian (typewriter, legacy) kb_variants - Sicilian + Saisiyat (Taiwan) kb_variants - Silesian + Samogitian kb_variants - Sindhi + Sanskrit (KaGaPa, phonetic) kb_variants - Sinhala (US) + Serbian (Cyrillic, ZE and ZHE swapped) kb_variants - Slovak (QWERTY) + Serbian (Cyrillic, with guillemets) kb_variants - Slovak (QWERTY, extended backslash) + Serbian (Latin) kb_variants - Slovak (extended backslash) + Serbian (Latin, QWERTY) kb_variants - Slovenian (US) + Serbian (Latin, Unicode) kb_variants - Slovenian (with guillemets) + Serbian (Latin, Unicode, QWERTY) kb_variants - Spanish (Dvorak) + Serbian (Latin, with guillemets) kb_variants - Spanish (Latin American, Colemak for gaming) + Serbian (Russia) kb_variants - Spanish (Latin American, Colemak) + Serbo-Croatian (US) kb_variants - Spanish (Latin American, Dvorak) + Sicilian kb_variants - Spanish (Latin American, Sun dead keys) + Silesian kb_variants - Spanish (Latin American, dead tilde) + Sindhi kb_variants - Spanish (Latin American, no dead keys) + Sinhala (US) kb_variants - Spanish (Macintosh) + Slovak (QWERTY) kb_variants - Spanish (Sun dead keys) + Slovak (QWERTY, extended backslash) kb_variants - Spanish (Windows) + Slovak (extended backslash) kb_variants - Spanish (dead tilde) + Slovenian (US) kb_variants - Spanish (no dead keys) + Slovenian (with guillemets) kb_variants - Swedish (Dvorak) + Spanish (Dvorak) kb_variants - Swedish (Dvorak, intl.) + Spanish (Latin American, Colemak for gaming) kb_variants - Swedish (Macintosh) + Spanish (Latin American, Colemak) kb_variants - Swedish (Svdvorak) + Spanish (Latin American, Dvorak) kb_variants - Swedish (US) + Spanish (Latin American, Sun dead keys) kb_variants - Swedish (no dead keys) + Spanish (Latin American, dead tilde) kb_variants - Swedish Sign Language + Spanish (Latin American, no dead keys) kb_variants - Syriac + Spanish (Macintosh) kb_variants - Syriac (phonetic) + Spanish (Sun dead keys) kb_variants - Taiwanese (indigenous) + Spanish (Windows) kb_variants - Tajik (legacy) + Spanish (dead tilde) kb_variants - Тоҷикӣ (красіво) + - Tamil (Inscript) + Spanish (no dead keys) kb_variants - Tamil (Sri Lanka, TamilNet '99) + Swedish (Dvorak) kb_variants - Tamil (Sri Lanka, TamilNet '99, TAB encoding) + Swedish (Dvorak, intl.) kb_variants - Tamil (TamilNet '99 with Tamil numerals) + Swedish (Macintosh) kb_variants - Tamil (TamilNet '99) + Swedish (Svdvorak) kb_variants - Tamil (TamilNet '99, TAB encoding) + Swedish (US) kb_variants - Tamil (TamilNet '99, TSCII encoding) + Swedish (no dead keys) kb_variants - Tatar + Swedish Sign Language kb_variants - Telugu + Syriac kb_variants - Telugu (KaGaPa, phonetic) + Syriac (phonetic) kb_variants - Telugu (Sarala) + Taiwanese (indigenous) kb_variants - Thai (Pattachote) + Tajik (legacy) kb_variants - + Тоҷикӣ (красіво) - Thai (TIS-820.2538) + Tamil (Inscript) kb_variants - Tibetan + Tamil (Sri Lanka, TamilNet '99) kb_variants - Tibetan (with ASCII numerals) + Tamil (Sri Lanka, TamilNet '99, TAB encoding) kb_variants - Turkish (Alt-Q) + Tamil (TamilNet '99 with Tamil numerals) kb_variants - Turkish (F) + Tamil (TamilNet '99) kb_variants - Turkish (Germany) + Tamil (TamilNet '99, TAB encoding) kb_variants - Turkish (Sun dead keys) + Tamil (TamilNet '99, TSCII encoding) kb_variants - Turkish (intl., with dead keys) + Tatar kb_variants - Turkmen (Alt-Q) + Telugu kb_variants - Udmurt + Telugu (KaGaPa, phonetic) kb_variants - Ukrainian (Windows) + Telugu (Sarala) kb_variants - Ukrainian (homophonic) + Thai (Pattachote) kb_variants - Ukrainian (legacy) + Thai (TIS-820.2538) kb_variants - Ukrainian (phonetic) + Tibetan kb_variants - Ukrainian (standard RSTU) + Tibetan (with ASCII numerals) kb_variants - Ukrainian (typewriter) + Turkish (Alt-Q) kb_variants - Urdu (Pakistan, CRULP) + Turkish (F) kb_variants - Urdu (Pakistan, NLA) + Turkish (Germany) kb_variants - Urdu (Windows) + Turkish (Sun dead keys) kb_variants - Urdu (alt. phonetic) + Turkish (intl., with dead keys) kb_variants - Urdu (phonetic) + Turkmen (Alt-Q) kb_variants - Uyghur + Udmurt kb_variants - Uzbek (Afghanistan) + Ukrainian (Windows) kb_variants - Uzbek (Afghanistan, OLPC) + Ukrainian (homophonic) kb_variants - Uzbek (Latin) + Ukrainian (legacy) kb_variants - Vietnamese (French) + Ukrainian (phonetic) kb_variants - Vietnamese (US) + Ukrainian (standard RSTU) kb_variants - Yakut + Ukrainian (typewriter) kb_variants + Urdu (Pakistan, CRULP) + kb_variants + + + + + Urdu (Pakistan, NLA) + kb_variants + + + + + Urdu (Windows) + kb_variants + + + + + Urdu (alt. phonetic) + kb_variants + + + + + Urdu (phonetic) + kb_variants + + + + + Uyghur + kb_variants + + + + + Uzbek (Afghanistan) + kb_variants + + + + + Uzbek (Afghanistan, OLPC) + kb_variants + + + + + Uzbek (Latin) + kb_variants + + + + + Vietnamese (French) + kb_variants + + + + + Vietnamese (US) + kb_variants + + + + + Yakut + kb_variants + + + + Yoruba kb_variants diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 85bb2e9d6..a2f200a52 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -564,4 +564,5 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) void Config::retranslate() { + retranslateKeyboardModels(); } diff --git a/src/modules/keyboard/KeyboardData_p.cxxtr b/src/modules/keyboard/KeyboardData_p.cxxtr index 678bb9807..39783035a 100644 --- a/src/modules/keyboard/KeyboardData_p.cxxtr +++ b/src/modules/keyboard/KeyboardData_p.cxxtr @@ -16,797 +16,810 @@ /* This returns a reference to local, which is a terrible idea. * Good thing it's not meant to be compiled. */ -static const QStringList& kb_models_table() -{ +class kb_models : public QObject { +Q_OBJECT +public: + const QStringList& table() + { return QStringList { - QObject::tr("A4Tech KB-21", "kb_models"), - QObject::tr("A4Tech KBS-8", "kb_models"), - QObject::tr("A4Tech Wireless Desktop RFKB-23", "kb_models"), - QObject::tr("Acer AirKey V", "kb_models"), - QObject::tr("Acer C300", "kb_models"), - QObject::tr("Acer Ferrari 4000", "kb_models"), - QObject::tr("Acer laptop", "kb_models"), - QObject::tr("Advance Scorpius KI", "kb_models"), - QObject::tr("Apple", "kb_models"), - QObject::tr("Apple Aluminium (ANSI)", "kb_models"), - QObject::tr("Apple Aluminium (ISO)", "kb_models"), - QObject::tr("Apple Aluminium (JIS)", "kb_models"), - QObject::tr("Apple laptop", "kb_models"), - QObject::tr("Asus laptop", "kb_models"), - QObject::tr("Azona RF2300 wireless Internet", "kb_models"), - QObject::tr("BTC 5090", "kb_models"), - QObject::tr("BTC 5113RF Multimedia", "kb_models"), - QObject::tr("BTC 5126T", "kb_models"), - QObject::tr("BTC 6301URF", "kb_models"), - QObject::tr("BTC 9000", "kb_models"), - QObject::tr("BTC 9000A", "kb_models"), - QObject::tr("BTC 9001AH", "kb_models"), - QObject::tr("BTC 9019U", "kb_models"), - QObject::tr("BTC 9116U Mini Wireless Internet and Gaming", "kb_models"), - QObject::tr("BenQ X-Touch", "kb_models"), - QObject::tr("BenQ X-Touch 730", "kb_models"), - QObject::tr("BenQ X-Touch 800", "kb_models"), - QObject::tr("Brother Internet", "kb_models"), - QObject::tr("Cherry B.UNLIMITED", "kb_models"), - QObject::tr("Cherry Blue Line CyBo@rd", "kb_models"), - QObject::tr("Cherry Blue Line CyBo@rd (alt.)", "kb_models"), - QObject::tr("Cherry CyBo@rd USB-Hub", "kb_models"), - QObject::tr("Cherry CyMotion Expert", "kb_models"), - QObject::tr("Cherry CyMotion Master Linux", "kb_models"), - QObject::tr("Cherry CyMotion Master XPress", "kb_models"), - QObject::tr("Chicony Internet", "kb_models"), - QObject::tr("Chicony KB-9885", "kb_models"), - QObject::tr("Chicony KU-0108", "kb_models"), - QObject::tr("Chicony KU-0420", "kb_models"), - QObject::tr("Chromebook", "kb_models"), - QObject::tr("Classmate PC", "kb_models"), - QObject::tr("Compaq Armada laptop", "kb_models"), - QObject::tr("Compaq Easy Access", "kb_models"), - QObject::tr("Compaq Internet (13 keys)", "kb_models"), - QObject::tr("Compaq Internet (18 keys)", "kb_models"), - QObject::tr("Compaq Internet (7 keys)", "kb_models"), - QObject::tr("Compaq Presario laptop", "kb_models"), - QObject::tr("Compaq iPaq", "kb_models"), - QObject::tr("Creative Desktop Wireless 7000", "kb_models"), - QObject::tr("DTK2000", "kb_models"), - QObject::tr("Dell", "kb_models"), - QObject::tr("Dell 101-key PC", "kb_models"), - QObject::tr("Dell Inspiron 6000/8000 laptop", "kb_models"), - QObject::tr("Dell Latitude laptop", "kb_models"), - QObject::tr("Dell Precision M laptop", "kb_models"), - QObject::tr("Dell Precision M65 laptop", "kb_models"), - QObject::tr("Dell SK-8125", "kb_models"), - QObject::tr("Dell SK-8135", "kb_models"), - QObject::tr("Dell USB Multimedia", "kb_models"), - QObject::tr("Dexxa Wireless Desktop", "kb_models"), - QObject::tr("Diamond 9801/9802", "kb_models"), - QObject::tr("Ennyah DKB-1008", "kb_models"), - QObject::tr("Everex STEPnote", "kb_models"), - QObject::tr("FL90", "kb_models"), - QObject::tr("Fujitsu-Siemens Amilo laptop", "kb_models"), - QObject::tr("Generic 101-key PC", "kb_models"), - QObject::tr("Generic 102-key PC", "kb_models"), - QObject::tr("Generic 104-key PC", "kb_models"), - QObject::tr("Generic 104-key PC with L-shaped Enter key", "kb_models"), - QObject::tr("Generic 105-key PC", "kb_models"), - QObject::tr("Generic 86-key PC", "kb_models"), - QObject::tr("Genius Comfy KB-12e", "kb_models"), - QObject::tr("Genius Comfy KB-16M/Multimedia KWD-910", "kb_models"), - QObject::tr("Genius Comfy KB-21e-Scroll", "kb_models"), - QObject::tr("Genius KB-19e NB", "kb_models"), - QObject::tr("Genius KKB-2050HS", "kb_models"), - QObject::tr("Gyration", "kb_models"), - QObject::tr("Happy Hacking", "kb_models"), - QObject::tr("Happy Hacking for Mac", "kb_models"), - QObject::tr("Hewlett-Packard Internet", "kb_models"), - QObject::tr("Hewlett-Packard Mini 110 laptop", "kb_models"), - QObject::tr("Hewlett-Packard NEC SK-2500 Multimedia", "kb_models"), - QObject::tr("Hewlett-Packard Omnibook 500", "kb_models"), - QObject::tr("Hewlett-Packard Omnibook 500 FA", "kb_models"), - QObject::tr("Hewlett-Packard Omnibook 6000/6100", "kb_models"), - QObject::tr("Hewlett-Packard Omnibook XE3 GC", "kb_models"), - QObject::tr("Hewlett-Packard Omnibook XE3 GF", "kb_models"), - QObject::tr("Hewlett-Packard Omnibook XT1000", "kb_models"), - QObject::tr("Hewlett-Packard Pavilion ZT1100", "kb_models"), - QObject::tr("Hewlett-Packard Pavilion dv5", "kb_models"), - QObject::tr("Hewlett-Packard nx9020", "kb_models"), - QObject::tr("Honeywell Euroboard", "kb_models"), - QObject::tr("IBM Rapid Access", "kb_models"), - QObject::tr("IBM Rapid Access II", "kb_models"), - QObject::tr("IBM Space Saver", "kb_models"), - QObject::tr("IBM ThinkPad 560Z/600/600E/A22E", "kb_models"), - QObject::tr("IBM ThinkPad R60/T60/R61/T61", "kb_models"), - QObject::tr("IBM ThinkPad Z60m/Z60t/Z61m/Z61t", "kb_models"), - QObject::tr("Keytronic FlexPro", "kb_models"), - QObject::tr("Kinesis", "kb_models"), - QObject::tr("Logitech", "kb_models"), - QObject::tr("Logitech Access", "kb_models"), - QObject::tr("Logitech Cordless Desktop", "kb_models"), - QObject::tr("Logitech Cordless Desktop (alt.)", "kb_models"), - QObject::tr("Logitech Cordless Desktop EX110", "kb_models"), - QObject::tr("Logitech Cordless Desktop LX-300", "kb_models"), - QObject::tr("Logitech Cordless Desktop Navigator", "kb_models"), - QObject::tr("Logitech Cordless Desktop Optical", "kb_models"), - QObject::tr("Logitech Cordless Desktop Pro (2nd alt.)", "kb_models"), - QObject::tr("Logitech Cordless Desktop iTouch", "kb_models"), - QObject::tr("Logitech Cordless Freedom/Desktop Navigator", "kb_models"), - QObject::tr("Logitech G15 extra keys via G15daemon", "kb_models"), - QObject::tr("Logitech Internet", "kb_models"), - QObject::tr("Logitech Internet 350", "kb_models"), - QObject::tr("Logitech Internet Navigator", "kb_models"), - QObject::tr("Logitech Ultra-X", "kb_models"), - QObject::tr("Logitech Ultra-X Cordless Media Desktop", "kb_models"), - QObject::tr("Logitech diNovo", "kb_models"), - QObject::tr("Logitech diNovo Edge", "kb_models"), - QObject::tr("Logitech iTouch", "kb_models"), - QObject::tr("Logitech iTouch Cordless Y-RB6", "kb_models"), - QObject::tr("Logitech iTouch Internet Navigator SE", "kb_models"), - QObject::tr("Logitech iTouch Internet Navigator SE USB", "kb_models"), - QObject::tr("MacBook/MacBook Pro", "kb_models"), - QObject::tr("MacBook/MacBook Pro (intl.)", "kb_models"), - QObject::tr("Macintosh", "kb_models"), - QObject::tr("Macintosh Old", "kb_models"), - QObject::tr("Memorex MX1998", "kb_models"), - QObject::tr("Memorex MX2500 EZ-Access", "kb_models"), - QObject::tr("Memorex MX2750", "kb_models"), - QObject::tr("Microsoft Comfort Curve 2000", "kb_models"), - QObject::tr("Microsoft Internet", "kb_models"), - QObject::tr("Microsoft Internet Pro (Swedish)", "kb_models"), - QObject::tr("Microsoft Natural", "kb_models"), - QObject::tr("Microsoft Natural Elite", "kb_models"), - QObject::tr("Microsoft Natural Ergonomic 4000", "kb_models"), - QObject::tr("Microsoft Natural Pro OEM", "kb_models"), - QObject::tr("Microsoft Natural Pro USB/Internet Pro", "kb_models"), - QObject::tr("Microsoft Natural Pro/Internet Pro", "kb_models"), - QObject::tr("Microsoft Natural Wireless Ergonomic 7000", "kb_models"), - QObject::tr("Microsoft Office Keyboard", "kb_models"), - QObject::tr("Microsoft Surface", "kb_models"), - QObject::tr("Microsoft Wireless Multimedia 1.0A", "kb_models"), - QObject::tr("NEC SK-1300", "kb_models"), - QObject::tr("NEC SK-2500", "kb_models"), - QObject::tr("NEC SK-6200", "kb_models"), - QObject::tr("NEC SK-7100", "kb_models"), - QObject::tr("Northgate OmniKey 101", "kb_models"), - QObject::tr("OLPC", "kb_models"), - QObject::tr("Ortek Multimedia/Internet MCK-800", "kb_models"), - QObject::tr("PC-98", "kb_models"), - QObject::tr("Propeller Voyager KTEZ-1000", "kb_models"), - QObject::tr("QTronix Scorpius 98N+", "kb_models"), - QObject::tr("SVEN Ergonomic 2500", "kb_models"), - QObject::tr("SVEN Slim 303", "kb_models"), - QObject::tr("Samsung SDM 4500P", "kb_models"), - QObject::tr("Samsung SDM 4510P", "kb_models"), - QObject::tr("Sanwa Supply SKB-KG3", "kb_models"), - QObject::tr("Silvercrest Multimedia Wireless", "kb_models"), - QObject::tr("SteelSeries Apex 300 (Apex RAW)", "kb_models"), - QObject::tr("Sun Type 6 (Japanese)", "kb_models"), - QObject::tr("Sun Type 6 USB (Japanese)", "kb_models"), - QObject::tr("Sun Type 6 USB (Unix)", "kb_models"), - QObject::tr("Sun Type 6/7 USB", "kb_models"), - QObject::tr("Sun Type 6/7 USB (European)", "kb_models"), - QObject::tr("Sun Type 7 USB", "kb_models"), - QObject::tr("Sun Type 7 USB (European)", "kb_models"), - QObject::tr("Sun Type 7 USB (Japanese)/Japanese 106-key", "kb_models"), - QObject::tr("Sun Type 7 USB (Unix)", "kb_models"), - QObject::tr("Super Power Multimedia", "kb_models"), - QObject::tr("Symplon PaceBook tablet", "kb_models"), - QObject::tr("Targa Visionary 811", "kb_models"), - QObject::tr("Toshiba Satellite S3000", "kb_models"), - QObject::tr("Truly Ergonomic 227", "kb_models"), - QObject::tr("Truly Ergonomic 229", "kb_models"), - QObject::tr("Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)", "kb_models"), - QObject::tr("Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)", "kb_models"), - QObject::tr("Trust Direct Access", "kb_models"), - QObject::tr("Trust Slimline", "kb_models"), - QObject::tr("Trust Wireless Classic", "kb_models"), - QObject::tr("TypeMatrix EZ-Reach 2020", "kb_models"), - QObject::tr("TypeMatrix EZ-Reach 2030 PS2", "kb_models"), - QObject::tr("TypeMatrix EZ-Reach 2030 USB", "kb_models"), - QObject::tr("TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)", "kb_models"), - QObject::tr("TypeMatrix EZ-Reach 2030 USB (106:JP mode)", "kb_models"), - QObject::tr("Unitek KB-1925", "kb_models"), - QObject::tr("ViewSonic KU-306 Internet", "kb_models"), - QObject::tr("Winbook Model XP5", "kb_models"), - QObject::tr("Yahoo! Internet", "kb_models"), - QObject::tr("eMachines m6800 laptop", "kb_models"), + tr("A4Tech KB-21", "kb_models"), + tr("A4Tech KBS-8", "kb_models"), + tr("A4Tech Wireless Desktop RFKB-23", "kb_models"), + tr("Acer AirKey V", "kb_models"), + tr("Acer C300", "kb_models"), + tr("Acer Ferrari 4000", "kb_models"), + tr("Acer laptop", "kb_models"), + tr("Advance Scorpius KI", "kb_models"), + tr("Apple", "kb_models"), + tr("Apple Aluminium (ANSI)", "kb_models"), + tr("Apple Aluminium (ISO)", "kb_models"), + tr("Apple Aluminium (JIS)", "kb_models"), + tr("Apple laptop", "kb_models"), + tr("Asus laptop", "kb_models"), + tr("Azona RF2300 wireless Internet", "kb_models"), + tr("BTC 5090", "kb_models"), + tr("BTC 5113RF Multimedia", "kb_models"), + tr("BTC 5126T", "kb_models"), + tr("BTC 6301URF", "kb_models"), + tr("BTC 9000", "kb_models"), + tr("BTC 9000A", "kb_models"), + tr("BTC 9001AH", "kb_models"), + tr("BTC 9019U", "kb_models"), + tr("BTC 9116U Mini Wireless Internet and Gaming", "kb_models"), + tr("BenQ X-Touch", "kb_models"), + tr("BenQ X-Touch 730", "kb_models"), + tr("BenQ X-Touch 800", "kb_models"), + tr("Brother Internet", "kb_models"), + tr("Cherry B.UNLIMITED", "kb_models"), + tr("Cherry Blue Line CyBo@rd", "kb_models"), + tr("Cherry Blue Line CyBo@rd (alt.)", "kb_models"), + tr("Cherry CyBo@rd USB-Hub", "kb_models"), + tr("Cherry CyMotion Expert", "kb_models"), + tr("Cherry CyMotion Master Linux", "kb_models"), + tr("Cherry CyMotion Master XPress", "kb_models"), + tr("Chicony Internet", "kb_models"), + tr("Chicony KB-9885", "kb_models"), + tr("Chicony KU-0108", "kb_models"), + tr("Chicony KU-0420", "kb_models"), + tr("Chromebook", "kb_models"), + tr("Classmate PC", "kb_models"), + tr("Compaq Armada laptop", "kb_models"), + tr("Compaq Easy Access", "kb_models"), + tr("Compaq Internet (13 keys)", "kb_models"), + tr("Compaq Internet (18 keys)", "kb_models"), + tr("Compaq Internet (7 keys)", "kb_models"), + tr("Compaq Presario laptop", "kb_models"), + tr("Compaq iPaq", "kb_models"), + tr("Creative Desktop Wireless 7000", "kb_models"), + tr("DTK2000", "kb_models"), + tr("Dell", "kb_models"), + tr("Dell 101-key PC", "kb_models"), + tr("Dell Inspiron 6000/8000 laptop", "kb_models"), + tr("Dell Latitude laptop", "kb_models"), + tr("Dell Precision M laptop", "kb_models"), + tr("Dell Precision M65 laptop", "kb_models"), + tr("Dell SK-8125", "kb_models"), + tr("Dell SK-8135", "kb_models"), + tr("Dell USB Multimedia", "kb_models"), + tr("Dexxa Wireless Desktop", "kb_models"), + tr("Diamond 9801/9802", "kb_models"), + tr("Ennyah DKB-1008", "kb_models"), + tr("Everex STEPnote", "kb_models"), + tr("FL90", "kb_models"), + tr("Fujitsu-Siemens Amilo laptop", "kb_models"), + tr("Generic 101-key PC", "kb_models"), + tr("Generic 102-key PC", "kb_models"), + tr("Generic 104-key PC", "kb_models"), + tr("Generic 104-key PC with L-shaped Enter key", "kb_models"), + tr("Generic 105-key PC", "kb_models"), + tr("Generic 86-key PC", "kb_models"), + tr("Genius Comfy KB-12e", "kb_models"), + tr("Genius Comfy KB-16M/Multimedia KWD-910", "kb_models"), + tr("Genius Comfy KB-21e-Scroll", "kb_models"), + tr("Genius KB-19e NB", "kb_models"), + tr("Genius KKB-2050HS", "kb_models"), + tr("Gyration", "kb_models"), + tr("Happy Hacking", "kb_models"), + tr("Happy Hacking for Mac", "kb_models"), + tr("Hewlett-Packard Internet", "kb_models"), + tr("Hewlett-Packard Mini 110 laptop", "kb_models"), + tr("Hewlett-Packard NEC SK-2500 Multimedia", "kb_models"), + tr("Hewlett-Packard Omnibook 500", "kb_models"), + tr("Hewlett-Packard Omnibook 500 FA", "kb_models"), + tr("Hewlett-Packard Omnibook 6000/6100", "kb_models"), + tr("Hewlett-Packard Omnibook XE3 GC", "kb_models"), + tr("Hewlett-Packard Omnibook XE3 GF", "kb_models"), + tr("Hewlett-Packard Omnibook XT1000", "kb_models"), + tr("Hewlett-Packard Pavilion ZT1100", "kb_models"), + tr("Hewlett-Packard Pavilion dv5", "kb_models"), + tr("Hewlett-Packard nx9020", "kb_models"), + tr("Honeywell Euroboard", "kb_models"), + tr("IBM Rapid Access", "kb_models"), + tr("IBM Rapid Access II", "kb_models"), + tr("IBM Space Saver", "kb_models"), + tr("IBM ThinkPad 560Z/600/600E/A22E", "kb_models"), + tr("IBM ThinkPad R60/T60/R61/T61", "kb_models"), + tr("IBM ThinkPad Z60m/Z60t/Z61m/Z61t", "kb_models"), + tr("Keytronic FlexPro", "kb_models"), + tr("Kinesis", "kb_models"), + tr("Logitech", "kb_models"), + tr("Logitech Access", "kb_models"), + tr("Logitech Cordless Desktop", "kb_models"), + tr("Logitech Cordless Desktop (alt.)", "kb_models"), + tr("Logitech Cordless Desktop EX110", "kb_models"), + tr("Logitech Cordless Desktop LX-300", "kb_models"), + tr("Logitech Cordless Desktop Navigator", "kb_models"), + tr("Logitech Cordless Desktop Optical", "kb_models"), + tr("Logitech Cordless Desktop Pro (2nd alt.)", "kb_models"), + tr("Logitech Cordless Desktop iTouch", "kb_models"), + tr("Logitech Cordless Freedom/Desktop Navigator", "kb_models"), + tr("Logitech G15 extra keys via G15daemon", "kb_models"), + tr("Logitech Internet", "kb_models"), + tr("Logitech Internet 350", "kb_models"), + tr("Logitech Internet Navigator", "kb_models"), + tr("Logitech Ultra-X", "kb_models"), + tr("Logitech Ultra-X Cordless Media Desktop", "kb_models"), + tr("Logitech diNovo", "kb_models"), + tr("Logitech diNovo Edge", "kb_models"), + tr("Logitech iTouch", "kb_models"), + tr("Logitech iTouch Cordless Y-RB6", "kb_models"), + tr("Logitech iTouch Internet Navigator SE", "kb_models"), + tr("Logitech iTouch Internet Navigator SE USB", "kb_models"), + tr("MacBook/MacBook Pro", "kb_models"), + tr("MacBook/MacBook Pro (intl.)", "kb_models"), + tr("Macintosh", "kb_models"), + tr("Macintosh Old", "kb_models"), + tr("Memorex MX1998", "kb_models"), + tr("Memorex MX2500 EZ-Access", "kb_models"), + tr("Memorex MX2750", "kb_models"), + tr("Microsoft Comfort Curve 2000", "kb_models"), + tr("Microsoft Internet", "kb_models"), + tr("Microsoft Internet Pro (Swedish)", "kb_models"), + tr("Microsoft Natural", "kb_models"), + tr("Microsoft Natural Elite", "kb_models"), + tr("Microsoft Natural Ergonomic 4000", "kb_models"), + tr("Microsoft Natural Pro OEM", "kb_models"), + tr("Microsoft Natural Pro USB/Internet Pro", "kb_models"), + tr("Microsoft Natural Pro/Internet Pro", "kb_models"), + tr("Microsoft Natural Wireless Ergonomic 7000", "kb_models"), + tr("Microsoft Office Keyboard", "kb_models"), + tr("Microsoft Surface", "kb_models"), + tr("Microsoft Wireless Multimedia 1.0A", "kb_models"), + tr("NEC SK-1300", "kb_models"), + tr("NEC SK-2500", "kb_models"), + tr("NEC SK-6200", "kb_models"), + tr("NEC SK-7100", "kb_models"), + tr("Northgate OmniKey 101", "kb_models"), + tr("OLPC", "kb_models"), + tr("Ortek Multimedia/Internet MCK-800", "kb_models"), + tr("PC-98", "kb_models"), + tr("Propeller Voyager KTEZ-1000", "kb_models"), + tr("QTronix Scorpius 98N+", "kb_models"), + tr("SVEN Ergonomic 2500", "kb_models"), + tr("SVEN Slim 303", "kb_models"), + tr("Samsung SDM 4500P", "kb_models"), + tr("Samsung SDM 4510P", "kb_models"), + tr("Sanwa Supply SKB-KG3", "kb_models"), + tr("Silvercrest Multimedia Wireless", "kb_models"), + tr("SteelSeries Apex 300 (Apex RAW)", "kb_models"), + tr("Sun Type 6 (Japanese)", "kb_models"), + tr("Sun Type 6 USB (Japanese)", "kb_models"), + tr("Sun Type 6 USB (Unix)", "kb_models"), + tr("Sun Type 6/7 USB", "kb_models"), + tr("Sun Type 6/7 USB (European)", "kb_models"), + tr("Sun Type 7 USB", "kb_models"), + tr("Sun Type 7 USB (European)", "kb_models"), + tr("Sun Type 7 USB (Japanese)/Japanese 106-key", "kb_models"), + tr("Sun Type 7 USB (Unix)", "kb_models"), + tr("Super Power Multimedia", "kb_models"), + tr("Symplon PaceBook tablet", "kb_models"), + tr("Targa Visionary 811", "kb_models"), + tr("Toshiba Satellite S3000", "kb_models"), + tr("Truly Ergonomic 227", "kb_models"), + tr("Truly Ergonomic 229", "kb_models"), + tr("Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys)", "kb_models"), + tr("Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key)", "kb_models"), + tr("Trust Direct Access", "kb_models"), + tr("Trust Slimline", "kb_models"), + tr("Trust Wireless Classic", "kb_models"), + tr("TypeMatrix EZ-Reach 2020", "kb_models"), + tr("TypeMatrix EZ-Reach 2030 PS2", "kb_models"), + tr("TypeMatrix EZ-Reach 2030 USB", "kb_models"), + tr("TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)", "kb_models"), + tr("TypeMatrix EZ-Reach 2030 USB (106:JP mode)", "kb_models"), + tr("Unitek KB-1925", "kb_models"), + tr("ViewSonic KU-306 Internet", "kb_models"), + tr("Winbook Model XP5", "kb_models"), + tr("Yahoo! Internet", "kb_models"), + tr("eMachines m6800 laptop", "kb_models"), QString() }; } +} /* This returns a reference to local, which is a terrible idea. * Good thing it's not meant to be compiled. */ -static const QStringList& kb_layouts_table() -{ +class kb_layouts : public QObject { +Q_OBJECT +public: + const QStringList& table() + { return QStringList { - QObject::tr("Afghani", "kb_layouts"), - QObject::tr("Albanian", "kb_layouts"), - QObject::tr("Amharic", "kb_layouts"), - QObject::tr("Arabic", "kb_layouts"), - QObject::tr("Arabic (Morocco)", "kb_layouts"), - QObject::tr("Arabic (Syria)", "kb_layouts"), - QObject::tr("Armenian", "kb_layouts"), - QObject::tr("Azerbaijani", "kb_layouts"), - QObject::tr("Bambara", "kb_layouts"), - QObject::tr("Bangla", "kb_layouts"), - QObject::tr("Belarusian", "kb_layouts"), - QObject::tr("Belgian", "kb_layouts"), - QObject::tr("Bosnian", "kb_layouts"), - QObject::tr("Braille", "kb_layouts"), - QObject::tr("Bulgarian", "kb_layouts"), - QObject::tr("Burmese", "kb_layouts"), - QObject::tr("Chinese", "kb_layouts"), - QObject::tr("Croatian", "kb_layouts"), - QObject::tr("Czech", "kb_layouts"), - QObject::tr("Danish", "kb_layouts"), - QObject::tr("Dhivehi", "kb_layouts"), - QObject::tr("Dutch", "kb_layouts"), - QObject::tr("Dzongkha", "kb_layouts"), - QObject::tr("English (Australian)", "kb_layouts"), - QObject::tr("English (Cameroon)", "kb_layouts"), - QObject::tr("English (Ghana)", "kb_layouts"), - QObject::tr("English (Nigeria)", "kb_layouts"), - QObject::tr("English (South Africa)", "kb_layouts"), - QObject::tr("English (UK)", "kb_layouts"), - QObject::tr("English (US)", "kb_layouts"), - QObject::tr("Esperanto", "kb_layouts"), - QObject::tr("Estonian", "kb_layouts"), - QObject::tr("Faroese", "kb_layouts"), - QObject::tr("Filipino", "kb_layouts"), - QObject::tr("Finnish", "kb_layouts"), - QObject::tr("French", "kb_layouts"), - QObject::tr("French (Canada)", "kb_layouts"), - QObject::tr("French (Democratic Republic of the Congo)", "kb_layouts"), - QObject::tr("French (Guinea)", "kb_layouts"), - QObject::tr("French (Togo)", "kb_layouts"), - QObject::tr("Georgian", "kb_layouts"), - QObject::tr("German", "kb_layouts"), - QObject::tr("German (Austria)", "kb_layouts"), - QObject::tr("German (Switzerland)", "kb_layouts"), - QObject::tr("Greek", "kb_layouts"), - QObject::tr("Hebrew", "kb_layouts"), - QObject::tr("Hungarian", "kb_layouts"), - QObject::tr("Icelandic", "kb_layouts"), - QObject::tr("Indian", "kb_layouts"), - QObject::tr("Indonesian (Arab Melayu, phonetic)", "kb_layouts"), - QObject::tr("Indonesian (Javanese)", "kb_layouts"), - QObject::tr("Iraqi", "kb_layouts"), - QObject::tr("Irish", "kb_layouts"), - QObject::tr("Italian", "kb_layouts"), - QObject::tr("Japanese", "kb_layouts"), - QObject::tr("Japanese (PC-98)", "kb_layouts"), - QObject::tr("Kabylian (azerty layout, no dead keys)", "kb_layouts"), - QObject::tr("Kazakh", "kb_layouts"), - QObject::tr("Khmer (Cambodia)", "kb_layouts"), - QObject::tr("Korean", "kb_layouts"), - QObject::tr("Kyrgyz", "kb_layouts"), - QObject::tr("Lao", "kb_layouts"), - QObject::tr("Latvian", "kb_layouts"), - QObject::tr("Lithuanian", "kb_layouts"), - QObject::tr("Macedonian", "kb_layouts"), - QObject::tr("Malay (Jawi, Arabic Keyboard)", "kb_layouts"), - QObject::tr("Maltese", "kb_layouts"), - QObject::tr("Maori", "kb_layouts"), - QObject::tr("Moldavian", "kb_layouts"), - QObject::tr("Mongolian", "kb_layouts"), - QObject::tr("Montenegrin", "kb_layouts"), - QObject::tr("Nepali", "kb_layouts"), - QObject::tr("Norwegian", "kb_layouts"), - QObject::tr("Persian", "kb_layouts"), - QObject::tr("Polish", "kb_layouts"), - QObject::tr("Portuguese", "kb_layouts"), - QObject::tr("Portuguese (Brazil)", "kb_layouts"), - QObject::tr("Romanian", "kb_layouts"), - QObject::tr("Russian", "kb_layouts"), - QObject::tr("Serbian", "kb_layouts"), - QObject::tr("Sinhala (phonetic)", "kb_layouts"), - QObject::tr("Slovak", "kb_layouts"), - QObject::tr("Slovenian", "kb_layouts"), - QObject::tr("Spanish", "kb_layouts"), - QObject::tr("Spanish (Latin American)", "kb_layouts"), - QObject::tr("Swahili (Kenya)", "kb_layouts"), - QObject::tr("Swahili (Tanzania)", "kb_layouts"), - QObject::tr("Swedish", "kb_layouts"), - QObject::tr("Taiwanese", "kb_layouts"), - QObject::tr("Tajik", "kb_layouts"), - QObject::tr("Thai", "kb_layouts"), - QObject::tr("Tswana", "kb_layouts"), - QObject::tr("Turkish", "kb_layouts"), - QObject::tr("Turkmen", "kb_layouts"), - QObject::tr("Ukrainian", "kb_layouts"), - QObject::tr("Urdu (Pakistan)", "kb_layouts"), - QObject::tr("Uzbek", "kb_layouts"), - QObject::tr("Vietnamese", "kb_layouts"), - QObject::tr("Wolof", "kb_layouts"), + tr("Afghani", "kb_layouts"), + tr("Albanian", "kb_layouts"), + tr("Amharic", "kb_layouts"), + tr("Arabic", "kb_layouts"), + tr("Arabic (Morocco)", "kb_layouts"), + tr("Arabic (Syria)", "kb_layouts"), + tr("Armenian", "kb_layouts"), + tr("Azerbaijani", "kb_layouts"), + tr("Bambara", "kb_layouts"), + tr("Bangla", "kb_layouts"), + tr("Belarusian", "kb_layouts"), + tr("Belgian", "kb_layouts"), + tr("Bosnian", "kb_layouts"), + tr("Braille", "kb_layouts"), + tr("Bulgarian", "kb_layouts"), + tr("Burmese", "kb_layouts"), + tr("Chinese", "kb_layouts"), + tr("Croatian", "kb_layouts"), + tr("Czech", "kb_layouts"), + tr("Danish", "kb_layouts"), + tr("Dhivehi", "kb_layouts"), + tr("Dutch", "kb_layouts"), + tr("Dzongkha", "kb_layouts"), + tr("English (Australian)", "kb_layouts"), + tr("English (Cameroon)", "kb_layouts"), + tr("English (Ghana)", "kb_layouts"), + tr("English (Nigeria)", "kb_layouts"), + tr("English (South Africa)", "kb_layouts"), + tr("English (UK)", "kb_layouts"), + tr("English (US)", "kb_layouts"), + tr("Esperanto", "kb_layouts"), + tr("Estonian", "kb_layouts"), + tr("Faroese", "kb_layouts"), + tr("Filipino", "kb_layouts"), + tr("Finnish", "kb_layouts"), + tr("French", "kb_layouts"), + tr("French (Canada)", "kb_layouts"), + tr("French (Democratic Republic of the Congo)", "kb_layouts"), + tr("French (Guinea)", "kb_layouts"), + tr("French (Togo)", "kb_layouts"), + tr("Georgian", "kb_layouts"), + tr("German", "kb_layouts"), + tr("German (Austria)", "kb_layouts"), + tr("German (Switzerland)", "kb_layouts"), + tr("Greek", "kb_layouts"), + tr("Hebrew", "kb_layouts"), + tr("Hungarian", "kb_layouts"), + tr("Icelandic", "kb_layouts"), + tr("Indian", "kb_layouts"), + tr("Indonesian (Arab Melayu, phonetic)", "kb_layouts"), + tr("Indonesian (Javanese)", "kb_layouts"), + tr("Iraqi", "kb_layouts"), + tr("Irish", "kb_layouts"), + tr("Italian", "kb_layouts"), + tr("Japanese", "kb_layouts"), + tr("Japanese (PC-98)", "kb_layouts"), + tr("Kabylian (azerty layout, no dead keys)", "kb_layouts"), + tr("Kazakh", "kb_layouts"), + tr("Khmer (Cambodia)", "kb_layouts"), + tr("Korean", "kb_layouts"), + tr("Kyrgyz", "kb_layouts"), + tr("Lao", "kb_layouts"), + tr("Latvian", "kb_layouts"), + tr("Lithuanian", "kb_layouts"), + tr("Macedonian", "kb_layouts"), + tr("Malay (Jawi, Arabic Keyboard)", "kb_layouts"), + tr("Maltese", "kb_layouts"), + tr("Maori", "kb_layouts"), + tr("Moldavian", "kb_layouts"), + tr("Mongolian", "kb_layouts"), + tr("Montenegrin", "kb_layouts"), + tr("Nepali", "kb_layouts"), + tr("Norwegian", "kb_layouts"), + tr("Persian", "kb_layouts"), + tr("Polish", "kb_layouts"), + tr("Portuguese", "kb_layouts"), + tr("Portuguese (Brazil)", "kb_layouts"), + tr("Romanian", "kb_layouts"), + tr("Russian", "kb_layouts"), + tr("Serbian", "kb_layouts"), + tr("Sinhala (phonetic)", "kb_layouts"), + tr("Slovak", "kb_layouts"), + tr("Slovenian", "kb_layouts"), + tr("Spanish", "kb_layouts"), + tr("Spanish (Latin American)", "kb_layouts"), + tr("Swahili (Kenya)", "kb_layouts"), + tr("Swahili (Tanzania)", "kb_layouts"), + tr("Swedish", "kb_layouts"), + tr("Taiwanese", "kb_layouts"), + tr("Tajik", "kb_layouts"), + tr("Thai", "kb_layouts"), + tr("Tswana", "kb_layouts"), + tr("Turkish", "kb_layouts"), + tr("Turkmen", "kb_layouts"), + tr("Ukrainian", "kb_layouts"), + tr("Urdu (Pakistan)", "kb_layouts"), + tr("Uzbek", "kb_layouts"), + tr("Vietnamese", "kb_layouts"), + tr("Wolof", "kb_layouts"), QString() }; } +} /* This returns a reference to local, which is a terrible idea. * Good thing it's not meant to be compiled. */ -static const QStringList& kb_variants_table() -{ +class kb_variants : public QObject { +Q_OBJECT +public: + const QStringList& table() + { return QStringList { - QObject::tr("Akan", "kb_variants"), - QObject::tr("Albanian (Plisi)", "kb_variants"), - QObject::tr("Albanian (Veqilharxhi)", "kb_variants"), - QObject::tr("Arabic (AZERTY)", "kb_variants"), - QObject::tr("Arabic (AZERTY, Eastern Arabic numerals)", "kb_variants"), - QObject::tr("Arabic (Algeria)", "kb_variants"), - QObject::tr("Arabic (Buckwalter)", "kb_variants"), - QObject::tr("Arabic (Eastern Arabic numerals)", "kb_variants"), - QObject::tr("Arabic (Macintosh)", "kb_variants"), - QObject::tr("Arabic (OLPC)", "kb_variants"), - QObject::tr("Arabic (Pakistan)", "kb_variants"), - QObject::tr("Arabic (QWERTY)", "kb_variants"), - QObject::tr("Arabic (QWERTY, Eastern Arabic numerals)", "kb_variants"), - QObject::tr("Armenian (alt. eastern)", "kb_variants"), - QObject::tr("Armenian (alt. phonetic)", "kb_variants"), - QObject::tr("Armenian (eastern)", "kb_variants"), - QObject::tr("Armenian (phonetic)", "kb_variants"), - QObject::tr("Armenian (western)", "kb_variants"), - QObject::tr("Asturian (Spain, with bottom-dot H and L)", "kb_variants"), - QObject::tr("Avatime", "kb_variants"), - QObject::tr("Azerbaijani (Cyrillic)", "kb_variants"), - QObject::tr("Bangla (India)", "kb_variants"), - QObject::tr("Bangla (India, Baishakhi Inscript)", "kb_variants"), - QObject::tr("Bangla (India, Baishakhi)", "kb_variants"), - QObject::tr("Bangla (India, Bornona)", "kb_variants"), - QObject::tr("Bangla (India, Gitanjali)", "kb_variants"), - QObject::tr("Bangla (India, Probhat)", "kb_variants"), - QObject::tr("Bangla (Probhat)", "kb_variants"), - QObject::tr("Bashkirian", "kb_variants"), - QObject::tr("Belarusian (Latin)", "kb_variants"), - QObject::tr("Belarusian (intl.)", "kb_variants"), - QObject::tr("Belarusian (legacy)", "kb_variants"), - QObject::tr("Belgian (ISO, alt.)", "kb_variants"), - QObject::tr("Belgian (Latin-9 only, alt.)", "kb_variants"), - QObject::tr("Belgian (Sun dead keys)", "kb_variants"), - QObject::tr("Belgian (Sun dead keys, alt.)", "kb_variants"), - QObject::tr("Belgian (Wang 724 AZERTY)", "kb_variants"), - QObject::tr("Belgian (alt.)", "kb_variants"), - QObject::tr("Belgian (no dead keys)", "kb_variants"), - QObject::tr("Berber (Morocco, Tifinagh alt.)", "kb_variants"), - QObject::tr("Berber (Morocco, Tifinagh extended phonetic)", "kb_variants"), - QObject::tr("Berber (Morocco, Tifinagh extended)", "kb_variants"), - QObject::tr("Berber (Morocco, Tifinagh phonetic)", "kb_variants"), - QObject::tr("Berber (Morocco, Tifinagh phonetic, alt.)", "kb_variants"), - QObject::tr("Berber (Morocco, Tifinagh)", "kb_variants"), - QObject::tr("Bosnian (US)", "kb_variants"), - QObject::tr("Bosnian (US, with Bosnian digraphs)", "kb_variants"), - QObject::tr("Bosnian (with Bosnian digraphs)", "kb_variants"), - QObject::tr("Bosnian (with guillemets)", "kb_variants"), - QObject::tr("Braille (left-handed inverted thumb)", "kb_variants"), - QObject::tr("Braille (left-handed)", "kb_variants"), - QObject::tr("Braille (right-handed inverted thumb)", "kb_variants"), - QObject::tr("Braille (right-handed)", "kb_variants"), - QObject::tr("Bulgarian (enhanced)", "kb_variants"), - QObject::tr("Bulgarian (new phonetic)", "kb_variants"), - QObject::tr("Bulgarian (traditional phonetic)", "kb_variants"), - QObject::tr("Burmese Zawgyi", "kb_variants"), - QObject::tr("Cameroon (AZERTY, intl.)", "kb_variants"), - QObject::tr("Cameroon (Dvorak, intl.)", "kb_variants"), - QObject::tr("Cameroon Multilingual (QWERTY, intl.)", "kb_variants"), - QObject::tr("Canadian (intl.)", "kb_variants"), - QObject::tr("Canadian (intl., 1st part)", "kb_variants"), - QObject::tr("Canadian (intl., 2nd part)", "kb_variants"), - QObject::tr("Catalan (Spain, with middle-dot L)", "kb_variants"), - QObject::tr("Cherokee", "kb_variants"), - QObject::tr("Chuvash", "kb_variants"), - QObject::tr("Chuvash (Latin)", "kb_variants"), - QObject::tr("CloGaelach", "kb_variants"), - QObject::tr("Crimean Tatar (Turkish Alt-Q)", "kb_variants"), - QObject::tr("Crimean Tatar (Turkish F)", "kb_variants"), - QObject::tr("Crimean Tatar (Turkish Q)", "kb_variants"), - QObject::tr("Croatian (US)", "kb_variants"), - QObject::tr("Croatian (US, with Croatian digraphs)", "kb_variants"), - QObject::tr("Croatian (with Croatian digraphs)", "kb_variants"), - QObject::tr("Croatian (with guillemets)", "kb_variants"), - QObject::tr("Czech (QWERTY)", "kb_variants"), - QObject::tr("Czech (QWERTY, Macintosh)", "kb_variants"), - QObject::tr("Czech (QWERTY, extended backslash)", "kb_variants"), - QObject::tr("Czech (UCW, only accented letters)", "kb_variants"), - QObject::tr("Czech (US, Dvorak, UCW support)", "kb_variants"), - QObject::tr("Czech (with <\|> key)", "kb_variants"), - QObject::tr("Danish (Dvorak)", "kb_variants"), - QObject::tr("Danish (Macintosh)", "kb_variants"), - QObject::tr("Danish (Macintosh, no dead keys)", "kb_variants"), - QObject::tr("Danish (Windows)", "kb_variants"), - QObject::tr("Danish (no dead keys)", "kb_variants"), - QObject::tr("Dutch (Macintosh)", "kb_variants"), - QObject::tr("Dutch (Sun dead keys)", "kb_variants"), - QObject::tr("Dutch (standard)", "kb_variants"), - QObject::tr("English (Canada)", "kb_variants"), - QObject::tr("English (Colemak)", "kb_variants"), - QObject::tr("English (Dvorak)", "kb_variants"), - QObject::tr("English (Dvorak, alt. intl.)", "kb_variants"), - QObject::tr("English (Dvorak, intl., with dead keys)", "kb_variants"), - QObject::tr("English (Dvorak, left-handed)", "kb_variants"), - QObject::tr("English (Dvorak, right-handed)", "kb_variants"), - QObject::tr("English (Ghana, GILLBT)", "kb_variants"), - QObject::tr("English (Ghana, multilingual)", "kb_variants"), - QObject::tr("English (India, with rupee)", "kb_variants"), - QObject::tr("English (Macintosh)", "kb_variants"), - QObject::tr("English (Mali, US, Macintosh)", "kb_variants"), - QObject::tr("English (Mali, US, intl.)", "kb_variants"), - QObject::tr("English (Norman)", "kb_variants"), - QObject::tr("English (UK, Colemak)", "kb_variants"), - QObject::tr("English (UK, Dvorak)", "kb_variants"), - QObject::tr("English (UK, Dvorak, with UK punctuation)", "kb_variants"), - QObject::tr("English (UK, Macintosh)", "kb_variants"), - QObject::tr("English (UK, Macintosh, intl.)", "kb_variants"), - QObject::tr("English (UK, extended, Windows)", "kb_variants"), - QObject::tr("English (UK, intl., with dead keys)", "kb_variants"), - QObject::tr("English (US, Symbolic)", "kb_variants"), - QObject::tr("English (US, alt. intl.)", "kb_variants"), - QObject::tr("English (US, euro on 5)", "kb_variants"), - QObject::tr("English (US, intl., with dead keys)", "kb_variants"), - QObject::tr("English (Workman)", "kb_variants"), - QObject::tr("English (Workman, intl., with dead keys)", "kb_variants"), - QObject::tr("English (classic Dvorak)", "kb_variants"), - QObject::tr("English (intl., with AltGr dead keys)", "kb_variants"), - QObject::tr("English (programmer Dvorak)", "kb_variants"), - QObject::tr("English (the divide/multiply toggle the layout)", "kb_variants"), - QObject::tr("Esperanto (Brazil, Nativo)", "kb_variants"), - QObject::tr("Esperanto (Portugal, Nativo)", "kb_variants"), - QObject::tr("Esperanto (legacy)", "kb_variants"), - QObject::tr("Estonian (Dvorak)", "kb_variants"), - QObject::tr("Estonian (US)", "kb_variants"), - QObject::tr("Estonian (no dead keys)", "kb_variants"), - QObject::tr("Ewe", "kb_variants"), - QObject::tr("Faroese (no dead keys)", "kb_variants"), - QObject::tr("Filipino (Capewell-Dvorak, Baybayin)", "kb_variants"), - QObject::tr("Filipino (Capewell-Dvorak, Latin)", "kb_variants"), - QObject::tr("Filipino (Capewell-QWERF 2006, Baybayin)", "kb_variants"), - QObject::tr("Filipino (Capewell-QWERF 2006, Latin)", "kb_variants"), - QObject::tr("Filipino (Colemak, Baybayin)", "kb_variants"), - QObject::tr("Filipino (Colemak, Latin)", "kb_variants"), - QObject::tr("Filipino (Dvorak, Baybayin)", "kb_variants"), - QObject::tr("Filipino (Dvorak, Latin)", "kb_variants"), - QObject::tr("Filipino (QWERTY, Baybayin)", "kb_variants"), - QObject::tr("Finnish (Macintosh)", "kb_variants"), - QObject::tr("Finnish (Windows)", "kb_variants"), - QObject::tr("Finnish (classic)", "kb_variants"), - QObject::tr("Finnish (classic, no dead keys)", "kb_variants"), - QObject::tr("French (AZERTY)", "kb_variants"), - QObject::tr("French (AZERTY, AFNOR)", "kb_variants"), - QObject::tr("French (BEPO)", "kb_variants"), - QObject::tr("French (BEPO, AFNOR)", "kb_variants"), - QObject::tr("French (BEPO, Latin-9 only)", "kb_variants"), - QObject::tr("French (Breton)", "kb_variants"), - QObject::tr("French (Cameroon)", "kb_variants"), - QObject::tr("French (Canada, Dvorak)", "kb_variants"), - QObject::tr("French (Canada, legacy)", "kb_variants"), - QObject::tr("French (Dvorak)", "kb_variants"), - QObject::tr("French (Macintosh)", "kb_variants"), - QObject::tr("French (Mali, alt.)", "kb_variants"), - QObject::tr("French (Morocco)", "kb_variants"), - QObject::tr("French (Sun dead keys)", "kb_variants"), - QObject::tr("French (Switzerland)", "kb_variants"), - QObject::tr("French (Switzerland, Macintosh)", "kb_variants"), - QObject::tr("French (Switzerland, Sun dead keys)", "kb_variants"), - QObject::tr("French (Switzerland, no dead keys)", "kb_variants"), - QObject::tr("French (US)", "kb_variants"), - QObject::tr("French (alt.)", "kb_variants"), - QObject::tr("French (alt., Latin-9 only)", "kb_variants"), - QObject::tr("French (alt., Sun dead keys)", "kb_variants"), - QObject::tr("French (alt., no dead keys)", "kb_variants"), - QObject::tr("French (legacy, alt.)", "kb_variants"), - QObject::tr("French (legacy, alt., Sun dead keys)", "kb_variants"), - QObject::tr("French (legacy, alt., no dead keys)", "kb_variants"), - QObject::tr("French (no dead keys)", "kb_variants"), - QObject::tr("Friulian (Italy)", "kb_variants"), - QObject::tr("Fula", "kb_variants"), - QObject::tr("Ga", "kb_variants"), - QObject::tr("Georgian (France, AZERTY Tskapo)", "kb_variants"), - QObject::tr("Georgian (Italy)", "kb_variants"), - QObject::tr("Georgian (MESS)", "kb_variants"), - QObject::tr("Georgian (ergonomic)", "kb_variants"), - QObject::tr("German (Austria, Macintosh)", "kb_variants"), - QObject::tr("German (Austria, Sun dead keys)", "kb_variants"), - QObject::tr("German (Austria, no dead keys)", "kb_variants"), - QObject::tr("German (Dvorak)", "kb_variants"), - QObject::tr("German (E1)", "kb_variants"), - QObject::tr("German (E2)", "kb_variants"), - QObject::tr("German (Macintosh)", "kb_variants"), - QObject::tr("German (Macintosh, no dead keys)", "kb_variants"), - QObject::tr("German (Neo 2)", "kb_variants"), - QObject::tr("German (QWERTY)", "kb_variants"), - QObject::tr("German (Sun dead keys)", "kb_variants"), - QObject::tr("German (Switzerland, Macintosh)", "kb_variants"), - QObject::tr("German (Switzerland, Sun dead keys)", "kb_variants"), - QObject::tr("German (Switzerland, legacy)", "kb_variants"), - QObject::tr("German (Switzerland, no dead keys)", "kb_variants"), - QObject::tr("German (T3)", "kb_variants"), - QObject::tr("German (US)", "kb_variants"), - QObject::tr("German (dead acute)", "kb_variants"), - QObject::tr("German (dead grave acute)", "kb_variants"), - QObject::tr("German (dead tilde)", "kb_variants"), - QObject::tr("German (no dead keys)", "kb_variants"), - QObject::tr("Greek (extended)", "kb_variants"), - QObject::tr("Greek (no dead keys)", "kb_variants"), - QObject::tr("Greek (polytonic)", "kb_variants"), - QObject::tr("Greek (simple)", "kb_variants"), - QObject::tr("Gujarati", "kb_variants"), - QObject::tr("Hanyu Pinyin (with AltGr dead keys)", "kb_variants"), - QObject::tr("Hausa (Ghana)", "kb_variants"), - QObject::tr("Hausa (Nigeria)", "kb_variants"), - QObject::tr("Hawaiian", "kb_variants"), - QObject::tr("Hebrew (Biblical, Tiro)", "kb_variants"), - QObject::tr("Hebrew (lyx)", "kb_variants"), - QObject::tr("Hebrew (phonetic)", "kb_variants"), - QObject::tr("Hindi (Bolnagri)", "kb_variants"), - QObject::tr("Hindi (KaGaPa, phonetic)", "kb_variants"), - QObject::tr("Hindi (Wx)", "kb_variants"), - QObject::tr("Hungarian (QWERTY)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 101-key, comma, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 101-key, comma, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 101-key, dot, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 101-key, dot, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 102-key, comma, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 102-key, comma, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 102-key, dot, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTY, 102-key, dot, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 101-key, comma, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 101-key, comma, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 101-key, dot, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 101-key, dot, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 102-key, comma, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 102-key, comma, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 102-key, dot, dead keys)", "kb_variants"), - QObject::tr("Hungarian (QWERTZ, 102-key, dot, no dead keys)", "kb_variants"), - QObject::tr("Hungarian (no dead keys)", "kb_variants"), - QObject::tr("Hungarian (standard)", "kb_variants"), - QObject::tr("Icelandic (Dvorak)", "kb_variants"), - QObject::tr("Icelandic (Macintosh)", "kb_variants"), - QObject::tr("Icelandic (Macintosh, legacy)", "kb_variants"), - QObject::tr("Icelandic (Sun dead keys)", "kb_variants"), - QObject::tr("Icelandic (no dead keys)", "kb_variants"), - QObject::tr("Igbo", "kb_variants"), - QObject::tr("Indic (phonetic, IPA)", "kb_variants"), - QObject::tr("Indonesian (Arab Melayu, extended phonetic)", "kb_variants"), - QObject::tr("Inuktitut", "kb_variants"), - QObject::tr("Irish (UnicodeExpert)", "kb_variants"), - QObject::tr("Italian (IBM 142)", "kb_variants"), - QObject::tr("Italian (Macintosh)", "kb_variants"), - QObject::tr("Italian (US)", "kb_variants"), - QObject::tr("Italian (Windows)", "kb_variants"), - QObject::tr("Italian (intl., with dead keys)", "kb_variants"), - QObject::tr("Italian (no dead keys)", "kb_variants"), - QObject::tr("Japanese (Dvorak)", "kb_variants"), - QObject::tr("Japanese (Kana 86)", "kb_variants"), - QObject::tr("Japanese (Kana)", "kb_variants"), - QObject::tr("Japanese (Macintosh)", "kb_variants"), - QObject::tr("Japanese (OADG 109A)", "kb_variants"), - QObject::tr("Kabylian (Algeria, Tifinagh)", "kb_variants"), - QObject::tr("Kabylian (azerty layout, with dead keys)", "kb_variants"), - QObject::tr("Kabylian (qwerty-gb layout, with dead keys)", "kb_variants"), - QObject::tr("Kabylian (qwerty-us layout, with dead keys)", "kb_variants"), - QObject::tr("Kalmyk", "kb_variants"), - QObject::tr("Kannada", "kb_variants"), - QObject::tr("Kannada (KaGaPa, phonetic)", "kb_variants"), - QObject::tr("Kashubian", "kb_variants"), - QObject::tr("Kazakh (Latin)", "kb_variants"), - QObject::tr("Kazakh (extended)", "kb_variants"), - QObject::tr("Kazakh (with Russian)", "kb_variants"), - QObject::tr("Kikuyu", "kb_variants"), - QObject::tr("Komi", "kb_variants"), - QObject::tr("Korean (101/104-key compatible)", "kb_variants"), - QObject::tr("Kurdish (Iran, Arabic-Latin)", "kb_variants"), - QObject::tr("Kurdish (Iran, F)", "kb_variants"), - QObject::tr("Kurdish (Iran, Latin Alt-Q)", "kb_variants"), - QObject::tr("Kurdish (Iran, Latin Q)", "kb_variants"), - QObject::tr("Kurdish (Iraq, Arabic-Latin)", "kb_variants"), - QObject::tr("Kurdish (Iraq, F)", "kb_variants"), - QObject::tr("Kurdish (Iraq, Latin Alt-Q)", "kb_variants"), - QObject::tr("Kurdish (Iraq, Latin Q)", "kb_variants"), - QObject::tr("Kurdish (Syria, F)", "kb_variants"), - QObject::tr("Kurdish (Syria, Latin Alt-Q)", "kb_variants"), - QObject::tr("Kurdish (Syria, Latin Q)", "kb_variants"), - QObject::tr("Kurdish (Turkey, F)", "kb_variants"), - QObject::tr("Kurdish (Turkey, Latin Alt-Q)", "kb_variants"), - QObject::tr("Kurdish (Turkey, Latin Q)", "kb_variants"), - QObject::tr("Kyrgyz (phonetic)", "kb_variants"), - QObject::tr("Lao (STEA)", "kb_variants"), - QObject::tr("Latvian (F)", "kb_variants"), - QObject::tr("Latvian (adapted)", "kb_variants"), - QObject::tr("Latvian (apostrophe)", "kb_variants"), - QObject::tr("Latvian (ergonomic, ŪGJRMV)", "kb_variants"), - QObject::tr("Latvian (modern)", "kb_variants"), - QObject::tr("Latvian (tilde)", "kb_variants"), - QObject::tr("Lithuanian (IBM LST 1205-92)", "kb_variants"), - QObject::tr("Lithuanian (LEKP)", "kb_variants"), - QObject::tr("Lithuanian (LEKPa)", "kb_variants"), - QObject::tr("Lithuanian (US)", "kb_variants"), - QObject::tr("Lithuanian (standard)", "kb_variants"), - QObject::tr("Lower Sorbian", "kb_variants"), - QObject::tr("Lower Sorbian (QWERTZ)", "kb_variants"), - QObject::tr("Macedonian (no dead keys)", "kb_variants"), - QObject::tr("Malay (Jawi, phonetic)", "kb_variants"), - QObject::tr("Malayalam", "kb_variants"), - QObject::tr("Malayalam (Lalitha)", "kb_variants"), - QObject::tr("Malayalam (enhanced Inscript, with rupee)", "kb_variants"), - QObject::tr("Maltese (UK, with AltGr overrides)", "kb_variants"), - QObject::tr("Maltese (US layout with AltGr overrides)", "kb_variants"), - QObject::tr("Maltese (US)", "kb_variants"), - QObject::tr("Manipuri (Eeyek)", "kb_variants"), - QObject::tr("Marathi (KaGaPa, phonetic)", "kb_variants"), - QObject::tr("Marathi (enhanced Inscript)", "kb_variants"), - QObject::tr("Mari", "kb_variants"), - QObject::tr("Mmuock", "kb_variants"), - QObject::tr("Moldavian (Gagauz)", "kb_variants"), - QObject::tr("Mongolian (Bichig)", "kb_variants"), - QObject::tr("Mongolian (Galik)", "kb_variants"), - QObject::tr("Mongolian (Manchu Galik)", "kb_variants"), - QObject::tr("Mongolian (Manchu)", "kb_variants"), - QObject::tr("Mongolian (Todo Galik)", "kb_variants"), - QObject::tr("Mongolian (Todo)", "kb_variants"), - QObject::tr("Mongolian (Xibe)", "kb_variants"), - QObject::tr("Montenegrin (Cyrillic)", "kb_variants"), - QObject::tr("Montenegrin (Cyrillic, ZE and ZHE swapped)", "kb_variants"), - QObject::tr("Montenegrin (Cyrillic, with guillemets)", "kb_variants"), - QObject::tr("Montenegrin (Latin, QWERTY)", "kb_variants"), - QObject::tr("Montenegrin (Latin, Unicode)", "kb_variants"), - QObject::tr("Montenegrin (Latin, Unicode, QWERTY)", "kb_variants"), - QObject::tr("Montenegrin (Latin, with guillemets)", "kb_variants"), - QObject::tr("Northern Saami (Finland)", "kb_variants"), - QObject::tr("Northern Saami (Norway)", "kb_variants"), - QObject::tr("Northern Saami (Norway, no dead keys)", "kb_variants"), - QObject::tr("Northern Saami (Sweden)", "kb_variants"), - QObject::tr("Norwegian (Colemak)", "kb_variants"), - QObject::tr("Norwegian (Dvorak)", "kb_variants"), - QObject::tr("Norwegian (Macintosh)", "kb_variants"), - QObject::tr("Norwegian (Macintosh, no dead keys)", "kb_variants"), - QObject::tr("Norwegian (Windows)", "kb_variants"), - QObject::tr("Norwegian (no dead keys)", "kb_variants"), - QObject::tr("Occitan", "kb_variants"), - QObject::tr("Ogham", "kb_variants"), - QObject::tr("Ogham (IS434)", "kb_variants"), - QObject::tr("Ol Chiki", "kb_variants"), - QObject::tr("Oriya", "kb_variants"), - QObject::tr("Ossetian (Georgia)", "kb_variants"), - QObject::tr("Ossetian (Windows)", "kb_variants"), - QObject::tr("Ossetian (legacy)", "kb_variants"), - QObject::tr("Pannonian Rusyn", "kb_variants"), - QObject::tr("Pashto", "kb_variants"), - QObject::tr("Pashto (Afghanistan, OLPC)", "kb_variants"), - QObject::tr("Persian (Afghanistan, Dari OLPC)", "kb_variants"), - QObject::tr("Persian (with Persian keypad)", "kb_variants"), - QObject::tr("Polish (British keyboard)", "kb_variants"), - QObject::tr("Polish (Dvorak)", "kb_variants"), - QObject::tr("Polish (Dvorak, with Polish quotes on key 1)", "kb_variants"), - QObject::tr("Polish (Dvorak, with Polish quotes on quotemark key)", "kb_variants"), - QObject::tr("Polish (QWERTZ)", "kb_variants"), - QObject::tr("Polish (legacy)", "kb_variants"), - QObject::tr("Polish (programmer Dvorak)", "kb_variants"), - QObject::tr("Portuguese (Brazil, Dvorak)", "kb_variants"), - QObject::tr("Portuguese (Brazil, IBM/Lenovo ThinkPad)", "kb_variants"), - QObject::tr("Portuguese (Brazil, Nativo for US keyboards)", "kb_variants"), - QObject::tr("Portuguese (Brazil, Nativo)", "kb_variants"), - QObject::tr("Portuguese (Brazil, no dead keys)", "kb_variants"), - QObject::tr("Portuguese (Macintosh)", "kb_variants"), - QObject::tr("Portuguese (Macintosh, Sun dead keys)", "kb_variants"), - QObject::tr("Portuguese (Macintosh, no dead keys)", "kb_variants"), - QObject::tr("Portuguese (Nativo for US keyboards)", "kb_variants"), - QObject::tr("Portuguese (Nativo)", "kb_variants"), - QObject::tr("Portuguese (Sun dead keys)", "kb_variants"), - QObject::tr("Portuguese (no dead keys)", "kb_variants"), - QObject::tr("Punjabi (Gurmukhi Jhelum)", "kb_variants"), - QObject::tr("Punjabi (Gurmukhi)", "kb_variants"), - QObject::tr("Romanian (Germany)", "kb_variants"), - QObject::tr("Romanian (Germany, no dead keys)", "kb_variants"), - QObject::tr("Romanian (Windows)", "kb_variants"), - QObject::tr("Romanian (cedilla)", "kb_variants"), - QObject::tr("Romanian (standard cedilla)", "kb_variants"), - QObject::tr("Romanian (standard)", "kb_variants"), - QObject::tr("Russian (Belarus)", "kb_variants"), - QObject::tr("Russian (Czech, phonetic)", "kb_variants"), - QObject::tr("Russian (DOS)", "kb_variants"), - QObject::tr("Russian (Georgia)", "kb_variants"), - QObject::tr("Russian (Germany, phonetic)", "kb_variants"), - QObject::tr("Russian (Kazakhstan, with Kazakh)", "kb_variants"), - QObject::tr("Russian (Macintosh)", "kb_variants"), - QObject::tr("Russian (Poland, phonetic Dvorak)", "kb_variants"), - QObject::tr("Russian (Sweden, phonetic)", "kb_variants"), - QObject::tr("Russian (Sweden, phonetic, no dead keys)", "kb_variants"), - QObject::tr("Russian (US, phonetic)", "kb_variants"), - QObject::tr("Russian (Ukraine, standard RSTU)", "kb_variants"), - QObject::tr("Russian (legacy)", "kb_variants"), - QObject::tr("Russian (phonetic)", "kb_variants"), - QObject::tr("Russian (phonetic, AZERTY)", "kb_variants"), - QObject::tr("Russian (phonetic, Dvorak)", "kb_variants"), - QObject::tr("Russian (phonetic, French)", "kb_variants"), - QObject::tr("Russian (phonetic, Windows)", "kb_variants"), - QObject::tr("Russian (phonetic, YAZHERTY)", "kb_variants"), - QObject::tr("Russian (typewriter)", "kb_variants"), - QObject::tr("Russian (typewriter, legacy)", "kb_variants"), - QObject::tr("Saisiyat (Taiwan)", "kb_variants"), - QObject::tr("Samogitian", "kb_variants"), - QObject::tr("Sanskrit (KaGaPa, phonetic)", "kb_variants"), - QObject::tr("Serbian (Cyrillic, ZE and ZHE swapped)", "kb_variants"), - QObject::tr("Serbian (Cyrillic, with guillemets)", "kb_variants"), - QObject::tr("Serbian (Latin)", "kb_variants"), - QObject::tr("Serbian (Latin, QWERTY)", "kb_variants"), - QObject::tr("Serbian (Latin, Unicode)", "kb_variants"), - QObject::tr("Serbian (Latin, Unicode, QWERTY)", "kb_variants"), - QObject::tr("Serbian (Latin, with guillemets)", "kb_variants"), - QObject::tr("Serbian (Russia)", "kb_variants"), - QObject::tr("Serbo-Croatian (US)", "kb_variants"), - QObject::tr("Sicilian", "kb_variants"), - QObject::tr("Silesian", "kb_variants"), - QObject::tr("Sindhi", "kb_variants"), - QObject::tr("Sinhala (US)", "kb_variants"), - QObject::tr("Slovak (QWERTY)", "kb_variants"), - QObject::tr("Slovak (QWERTY, extended backslash)", "kb_variants"), - QObject::tr("Slovak (extended backslash)", "kb_variants"), - QObject::tr("Slovenian (US)", "kb_variants"), - QObject::tr("Slovenian (with guillemets)", "kb_variants"), - QObject::tr("Spanish (Dvorak)", "kb_variants"), - QObject::tr("Spanish (Latin American, Colemak for gaming)", "kb_variants"), - QObject::tr("Spanish (Latin American, Colemak)", "kb_variants"), - QObject::tr("Spanish (Latin American, Dvorak)", "kb_variants"), - QObject::tr("Spanish (Latin American, Sun dead keys)", "kb_variants"), - QObject::tr("Spanish (Latin American, dead tilde)", "kb_variants"), - QObject::tr("Spanish (Latin American, no dead keys)", "kb_variants"), - QObject::tr("Spanish (Macintosh)", "kb_variants"), - QObject::tr("Spanish (Sun dead keys)", "kb_variants"), - QObject::tr("Spanish (Windows)", "kb_variants"), - QObject::tr("Spanish (dead tilde)", "kb_variants"), - QObject::tr("Spanish (no dead keys)", "kb_variants"), - QObject::tr("Swedish (Dvorak)", "kb_variants"), - QObject::tr("Swedish (Dvorak, intl.)", "kb_variants"), - QObject::tr("Swedish (Macintosh)", "kb_variants"), - QObject::tr("Swedish (Svdvorak)", "kb_variants"), - QObject::tr("Swedish (US)", "kb_variants"), - QObject::tr("Swedish (no dead keys)", "kb_variants"), - QObject::tr("Swedish Sign Language", "kb_variants"), - QObject::tr("Syriac", "kb_variants"), - QObject::tr("Syriac (phonetic)", "kb_variants"), - QObject::tr("Taiwanese (indigenous)", "kb_variants"), - QObject::tr("Tajik (legacy)", "kb_variants"), - QObject::tr("Tamil (Inscript)", "kb_variants"), - QObject::tr("Tamil (Sri Lanka, TamilNet '99)", "kb_variants"), - QObject::tr("Tamil (Sri Lanka, TamilNet '99, TAB encoding)", "kb_variants"), - QObject::tr("Tamil (TamilNet '99 with Tamil numerals)", "kb_variants"), - QObject::tr("Tamil (TamilNet '99)", "kb_variants"), - QObject::tr("Tamil (TamilNet '99, TAB encoding)", "kb_variants"), - QObject::tr("Tamil (TamilNet '99, TSCII encoding)", "kb_variants"), - QObject::tr("Tatar", "kb_variants"), - QObject::tr("Telugu", "kb_variants"), - QObject::tr("Telugu (KaGaPa, phonetic)", "kb_variants"), - QObject::tr("Telugu (Sarala)", "kb_variants"), - QObject::tr("Thai (Pattachote)", "kb_variants"), - QObject::tr("Thai (TIS-820.2538)", "kb_variants"), - QObject::tr("Tibetan", "kb_variants"), - QObject::tr("Tibetan (with ASCII numerals)", "kb_variants"), - QObject::tr("Turkish (Alt-Q)", "kb_variants"), - QObject::tr("Turkish (F)", "kb_variants"), - QObject::tr("Turkish (Germany)", "kb_variants"), - QObject::tr("Turkish (Sun dead keys)", "kb_variants"), - QObject::tr("Turkish (intl., with dead keys)", "kb_variants"), - QObject::tr("Turkmen (Alt-Q)", "kb_variants"), - QObject::tr("Udmurt", "kb_variants"), - QObject::tr("Ukrainian (Windows)", "kb_variants"), - QObject::tr("Ukrainian (homophonic)", "kb_variants"), - QObject::tr("Ukrainian (legacy)", "kb_variants"), - QObject::tr("Ukrainian (phonetic)", "kb_variants"), - QObject::tr("Ukrainian (standard RSTU)", "kb_variants"), - QObject::tr("Ukrainian (typewriter)", "kb_variants"), - QObject::tr("Urdu (Pakistan, CRULP)", "kb_variants"), - QObject::tr("Urdu (Pakistan, NLA)", "kb_variants"), - QObject::tr("Urdu (Windows)", "kb_variants"), - QObject::tr("Urdu (alt. phonetic)", "kb_variants"), - QObject::tr("Urdu (phonetic)", "kb_variants"), - QObject::tr("Uyghur", "kb_variants"), - QObject::tr("Uzbek (Afghanistan)", "kb_variants"), - QObject::tr("Uzbek (Afghanistan, OLPC)", "kb_variants"), - QObject::tr("Uzbek (Latin)", "kb_variants"), - QObject::tr("Vietnamese (French)", "kb_variants"), - QObject::tr("Vietnamese (US)", "kb_variants"), - QObject::tr("Yakut", "kb_variants"), - QObject::tr("Yoruba", "kb_variants"), + tr("Akan", "kb_variants"), + tr("Albanian (Plisi)", "kb_variants"), + tr("Albanian (Veqilharxhi)", "kb_variants"), + tr("Arabic (AZERTY)", "kb_variants"), + tr("Arabic (AZERTY, Eastern Arabic numerals)", "kb_variants"), + tr("Arabic (Algeria)", "kb_variants"), + tr("Arabic (Buckwalter)", "kb_variants"), + tr("Arabic (Eastern Arabic numerals)", "kb_variants"), + tr("Arabic (Macintosh)", "kb_variants"), + tr("Arabic (OLPC)", "kb_variants"), + tr("Arabic (Pakistan)", "kb_variants"), + tr("Arabic (QWERTY)", "kb_variants"), + tr("Arabic (QWERTY, Eastern Arabic numerals)", "kb_variants"), + tr("Armenian (alt. eastern)", "kb_variants"), + tr("Armenian (alt. phonetic)", "kb_variants"), + tr("Armenian (eastern)", "kb_variants"), + tr("Armenian (phonetic)", "kb_variants"), + tr("Armenian (western)", "kb_variants"), + tr("Asturian (Spain, with bottom-dot H and L)", "kb_variants"), + tr("Avatime", "kb_variants"), + tr("Azerbaijani (Cyrillic)", "kb_variants"), + tr("Bangla (India)", "kb_variants"), + tr("Bangla (India, Baishakhi Inscript)", "kb_variants"), + tr("Bangla (India, Baishakhi)", "kb_variants"), + tr("Bangla (India, Bornona)", "kb_variants"), + tr("Bangla (India, Gitanjali)", "kb_variants"), + tr("Bangla (India, Probhat)", "kb_variants"), + tr("Bangla (Probhat)", "kb_variants"), + tr("Bashkirian", "kb_variants"), + tr("Belarusian (Latin)", "kb_variants"), + tr("Belarusian (intl.)", "kb_variants"), + tr("Belarusian (legacy)", "kb_variants"), + tr("Belgian (ISO, alt.)", "kb_variants"), + tr("Belgian (Latin-9 only, alt.)", "kb_variants"), + tr("Belgian (Sun dead keys)", "kb_variants"), + tr("Belgian (Sun dead keys, alt.)", "kb_variants"), + tr("Belgian (Wang 724 AZERTY)", "kb_variants"), + tr("Belgian (alt.)", "kb_variants"), + tr("Belgian (no dead keys)", "kb_variants"), + tr("Berber (Morocco, Tifinagh alt.)", "kb_variants"), + tr("Berber (Morocco, Tifinagh extended phonetic)", "kb_variants"), + tr("Berber (Morocco, Tifinagh extended)", "kb_variants"), + tr("Berber (Morocco, Tifinagh phonetic)", "kb_variants"), + tr("Berber (Morocco, Tifinagh phonetic, alt.)", "kb_variants"), + tr("Berber (Morocco, Tifinagh)", "kb_variants"), + tr("Bosnian (US)", "kb_variants"), + tr("Bosnian (US, with Bosnian digraphs)", "kb_variants"), + tr("Bosnian (with Bosnian digraphs)", "kb_variants"), + tr("Bosnian (with guillemets)", "kb_variants"), + tr("Braille (left-handed inverted thumb)", "kb_variants"), + tr("Braille (left-handed)", "kb_variants"), + tr("Braille (right-handed inverted thumb)", "kb_variants"), + tr("Braille (right-handed)", "kb_variants"), + tr("Bulgarian (enhanced)", "kb_variants"), + tr("Bulgarian (new phonetic)", "kb_variants"), + tr("Bulgarian (traditional phonetic)", "kb_variants"), + tr("Burmese Zawgyi", "kb_variants"), + tr("Cameroon (AZERTY, intl.)", "kb_variants"), + tr("Cameroon (Dvorak, intl.)", "kb_variants"), + tr("Cameroon Multilingual (QWERTY, intl.)", "kb_variants"), + tr("Canadian (intl.)", "kb_variants"), + tr("Canadian (intl., 1st part)", "kb_variants"), + tr("Canadian (intl., 2nd part)", "kb_variants"), + tr("Catalan (Spain, with middle-dot L)", "kb_variants"), + tr("Cherokee", "kb_variants"), + tr("Chuvash", "kb_variants"), + tr("Chuvash (Latin)", "kb_variants"), + tr("CloGaelach", "kb_variants"), + tr("Crimean Tatar (Turkish Alt-Q)", "kb_variants"), + tr("Crimean Tatar (Turkish F)", "kb_variants"), + tr("Crimean Tatar (Turkish Q)", "kb_variants"), + tr("Croatian (US)", "kb_variants"), + tr("Croatian (US, with Croatian digraphs)", "kb_variants"), + tr("Croatian (with Croatian digraphs)", "kb_variants"), + tr("Croatian (with guillemets)", "kb_variants"), + tr("Czech (QWERTY)", "kb_variants"), + tr("Czech (QWERTY, Macintosh)", "kb_variants"), + tr("Czech (QWERTY, extended backslash)", "kb_variants"), + tr("Czech (UCW, only accented letters)", "kb_variants"), + tr("Czech (US, Dvorak, UCW support)", "kb_variants"), + tr("Czech (with <\|> key)", "kb_variants"), + tr("Danish (Dvorak)", "kb_variants"), + tr("Danish (Macintosh)", "kb_variants"), + tr("Danish (Macintosh, no dead keys)", "kb_variants"), + tr("Danish (Windows)", "kb_variants"), + tr("Danish (no dead keys)", "kb_variants"), + tr("Default", "kb_variants"), + tr("Dutch (Macintosh)", "kb_variants"), + tr("Dutch (Sun dead keys)", "kb_variants"), + tr("Dutch (standard)", "kb_variants"), + tr("English (Canada)", "kb_variants"), + tr("English (Colemak)", "kb_variants"), + tr("English (Dvorak)", "kb_variants"), + tr("English (Dvorak, alt. intl.)", "kb_variants"), + tr("English (Dvorak, intl., with dead keys)", "kb_variants"), + tr("English (Dvorak, left-handed)", "kb_variants"), + tr("English (Dvorak, right-handed)", "kb_variants"), + tr("English (Ghana, GILLBT)", "kb_variants"), + tr("English (Ghana, multilingual)", "kb_variants"), + tr("English (India, with rupee)", "kb_variants"), + tr("English (Macintosh)", "kb_variants"), + tr("English (Mali, US, Macintosh)", "kb_variants"), + tr("English (Mali, US, intl.)", "kb_variants"), + tr("English (Norman)", "kb_variants"), + tr("English (UK, Colemak)", "kb_variants"), + tr("English (UK, Dvorak)", "kb_variants"), + tr("English (UK, Dvorak, with UK punctuation)", "kb_variants"), + tr("English (UK, Macintosh)", "kb_variants"), + tr("English (UK, Macintosh, intl.)", "kb_variants"), + tr("English (UK, extended, Windows)", "kb_variants"), + tr("English (UK, intl., with dead keys)", "kb_variants"), + tr("English (US, Symbolic)", "kb_variants"), + tr("English (US, alt. intl.)", "kb_variants"), + tr("English (US, euro on 5)", "kb_variants"), + tr("English (US, intl., with dead keys)", "kb_variants"), + tr("English (Workman)", "kb_variants"), + tr("English (Workman, intl., with dead keys)", "kb_variants"), + tr("English (classic Dvorak)", "kb_variants"), + tr("English (intl., with AltGr dead keys)", "kb_variants"), + tr("English (programmer Dvorak)", "kb_variants"), + tr("English (the divide/multiply toggle the layout)", "kb_variants"), + tr("Esperanto (Brazil, Nativo)", "kb_variants"), + tr("Esperanto (Portugal, Nativo)", "kb_variants"), + tr("Esperanto (legacy)", "kb_variants"), + tr("Estonian (Dvorak)", "kb_variants"), + tr("Estonian (US)", "kb_variants"), + tr("Estonian (no dead keys)", "kb_variants"), + tr("Ewe", "kb_variants"), + tr("Faroese (no dead keys)", "kb_variants"), + tr("Filipino (Capewell-Dvorak, Baybayin)", "kb_variants"), + tr("Filipino (Capewell-Dvorak, Latin)", "kb_variants"), + tr("Filipino (Capewell-QWERF 2006, Baybayin)", "kb_variants"), + tr("Filipino (Capewell-QWERF 2006, Latin)", "kb_variants"), + tr("Filipino (Colemak, Baybayin)", "kb_variants"), + tr("Filipino (Colemak, Latin)", "kb_variants"), + tr("Filipino (Dvorak, Baybayin)", "kb_variants"), + tr("Filipino (Dvorak, Latin)", "kb_variants"), + tr("Filipino (QWERTY, Baybayin)", "kb_variants"), + tr("Finnish (Macintosh)", "kb_variants"), + tr("Finnish (Windows)", "kb_variants"), + tr("Finnish (classic)", "kb_variants"), + tr("Finnish (classic, no dead keys)", "kb_variants"), + tr("French (AZERTY)", "kb_variants"), + tr("French (AZERTY, AFNOR)", "kb_variants"), + tr("French (BEPO)", "kb_variants"), + tr("French (BEPO, AFNOR)", "kb_variants"), + tr("French (BEPO, Latin-9 only)", "kb_variants"), + tr("French (Breton)", "kb_variants"), + tr("French (Cameroon)", "kb_variants"), + tr("French (Canada, Dvorak)", "kb_variants"), + tr("French (Canada, legacy)", "kb_variants"), + tr("French (Dvorak)", "kb_variants"), + tr("French (Macintosh)", "kb_variants"), + tr("French (Mali, alt.)", "kb_variants"), + tr("French (Morocco)", "kb_variants"), + tr("French (Sun dead keys)", "kb_variants"), + tr("French (Switzerland)", "kb_variants"), + tr("French (Switzerland, Macintosh)", "kb_variants"), + tr("French (Switzerland, Sun dead keys)", "kb_variants"), + tr("French (Switzerland, no dead keys)", "kb_variants"), + tr("French (US)", "kb_variants"), + tr("French (alt.)", "kb_variants"), + tr("French (alt., Latin-9 only)", "kb_variants"), + tr("French (alt., Sun dead keys)", "kb_variants"), + tr("French (alt., no dead keys)", "kb_variants"), + tr("French (legacy, alt.)", "kb_variants"), + tr("French (legacy, alt., Sun dead keys)", "kb_variants"), + tr("French (legacy, alt., no dead keys)", "kb_variants"), + tr("French (no dead keys)", "kb_variants"), + tr("Friulian (Italy)", "kb_variants"), + tr("Fula", "kb_variants"), + tr("Ga", "kb_variants"), + tr("Georgian (France, AZERTY Tskapo)", "kb_variants"), + tr("Georgian (Italy)", "kb_variants"), + tr("Georgian (MESS)", "kb_variants"), + tr("Georgian (ergonomic)", "kb_variants"), + tr("German (Austria, Macintosh)", "kb_variants"), + tr("German (Austria, Sun dead keys)", "kb_variants"), + tr("German (Austria, no dead keys)", "kb_variants"), + tr("German (Dvorak)", "kb_variants"), + tr("German (E1)", "kb_variants"), + tr("German (E2)", "kb_variants"), + tr("German (Macintosh)", "kb_variants"), + tr("German (Macintosh, no dead keys)", "kb_variants"), + tr("German (Neo 2)", "kb_variants"), + tr("German (QWERTY)", "kb_variants"), + tr("German (Sun dead keys)", "kb_variants"), + tr("German (Switzerland, Macintosh)", "kb_variants"), + tr("German (Switzerland, Sun dead keys)", "kb_variants"), + tr("German (Switzerland, legacy)", "kb_variants"), + tr("German (Switzerland, no dead keys)", "kb_variants"), + tr("German (T3)", "kb_variants"), + tr("German (US)", "kb_variants"), + tr("German (dead acute)", "kb_variants"), + tr("German (dead grave acute)", "kb_variants"), + tr("German (dead tilde)", "kb_variants"), + tr("German (no dead keys)", "kb_variants"), + tr("Greek (extended)", "kb_variants"), + tr("Greek (no dead keys)", "kb_variants"), + tr("Greek (polytonic)", "kb_variants"), + tr("Greek (simple)", "kb_variants"), + tr("Gujarati", "kb_variants"), + tr("Hanyu Pinyin (with AltGr dead keys)", "kb_variants"), + tr("Hausa (Ghana)", "kb_variants"), + tr("Hausa (Nigeria)", "kb_variants"), + tr("Hawaiian", "kb_variants"), + tr("Hebrew (Biblical, Tiro)", "kb_variants"), + tr("Hebrew (lyx)", "kb_variants"), + tr("Hebrew (phonetic)", "kb_variants"), + tr("Hindi (Bolnagri)", "kb_variants"), + tr("Hindi (KaGaPa, phonetic)", "kb_variants"), + tr("Hindi (Wx)", "kb_variants"), + tr("Hungarian (QWERTY)", "kb_variants"), + tr("Hungarian (QWERTY, 101-key, comma, dead keys)", "kb_variants"), + tr("Hungarian (QWERTY, 101-key, comma, no dead keys)", "kb_variants"), + tr("Hungarian (QWERTY, 101-key, dot, dead keys)", "kb_variants"), + tr("Hungarian (QWERTY, 101-key, dot, no dead keys)", "kb_variants"), + tr("Hungarian (QWERTY, 102-key, comma, dead keys)", "kb_variants"), + tr("Hungarian (QWERTY, 102-key, comma, no dead keys)", "kb_variants"), + tr("Hungarian (QWERTY, 102-key, dot, dead keys)", "kb_variants"), + tr("Hungarian (QWERTY, 102-key, dot, no dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 101-key, comma, dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 101-key, comma, no dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 101-key, dot, dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 101-key, dot, no dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 102-key, comma, dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 102-key, comma, no dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 102-key, dot, dead keys)", "kb_variants"), + tr("Hungarian (QWERTZ, 102-key, dot, no dead keys)", "kb_variants"), + tr("Hungarian (no dead keys)", "kb_variants"), + tr("Hungarian (standard)", "kb_variants"), + tr("Icelandic (Dvorak)", "kb_variants"), + tr("Icelandic (Macintosh)", "kb_variants"), + tr("Icelandic (Macintosh, legacy)", "kb_variants"), + tr("Icelandic (Sun dead keys)", "kb_variants"), + tr("Icelandic (no dead keys)", "kb_variants"), + tr("Igbo", "kb_variants"), + tr("Indic (phonetic, IPA)", "kb_variants"), + tr("Indonesian (Arab Melayu, extended phonetic)", "kb_variants"), + tr("Inuktitut", "kb_variants"), + tr("Irish (UnicodeExpert)", "kb_variants"), + tr("Italian (IBM 142)", "kb_variants"), + tr("Italian (Macintosh)", "kb_variants"), + tr("Italian (US)", "kb_variants"), + tr("Italian (Windows)", "kb_variants"), + tr("Italian (intl., with dead keys)", "kb_variants"), + tr("Italian (no dead keys)", "kb_variants"), + tr("Japanese (Dvorak)", "kb_variants"), + tr("Japanese (Kana 86)", "kb_variants"), + tr("Japanese (Kana)", "kb_variants"), + tr("Japanese (Macintosh)", "kb_variants"), + tr("Japanese (OADG 109A)", "kb_variants"), + tr("Kabylian (Algeria, Tifinagh)", "kb_variants"), + tr("Kabylian (azerty layout, with dead keys)", "kb_variants"), + tr("Kabylian (qwerty-gb layout, with dead keys)", "kb_variants"), + tr("Kabylian (qwerty-us layout, with dead keys)", "kb_variants"), + tr("Kalmyk", "kb_variants"), + tr("Kannada", "kb_variants"), + tr("Kannada (KaGaPa, phonetic)", "kb_variants"), + tr("Kashubian", "kb_variants"), + tr("Kazakh (Latin)", "kb_variants"), + tr("Kazakh (extended)", "kb_variants"), + tr("Kazakh (with Russian)", "kb_variants"), + tr("Kikuyu", "kb_variants"), + tr("Komi", "kb_variants"), + tr("Korean (101/104-key compatible)", "kb_variants"), + tr("Kurdish (Iran, Arabic-Latin)", "kb_variants"), + tr("Kurdish (Iran, F)", "kb_variants"), + tr("Kurdish (Iran, Latin Alt-Q)", "kb_variants"), + tr("Kurdish (Iran, Latin Q)", "kb_variants"), + tr("Kurdish (Iraq, Arabic-Latin)", "kb_variants"), + tr("Kurdish (Iraq, F)", "kb_variants"), + tr("Kurdish (Iraq, Latin Alt-Q)", "kb_variants"), + tr("Kurdish (Iraq, Latin Q)", "kb_variants"), + tr("Kurdish (Syria, F)", "kb_variants"), + tr("Kurdish (Syria, Latin Alt-Q)", "kb_variants"), + tr("Kurdish (Syria, Latin Q)", "kb_variants"), + tr("Kurdish (Turkey, F)", "kb_variants"), + tr("Kurdish (Turkey, Latin Alt-Q)", "kb_variants"), + tr("Kurdish (Turkey, Latin Q)", "kb_variants"), + tr("Kyrgyz (phonetic)", "kb_variants"), + tr("Lao (STEA)", "kb_variants"), + tr("Latvian (F)", "kb_variants"), + tr("Latvian (adapted)", "kb_variants"), + tr("Latvian (apostrophe)", "kb_variants"), + tr("Latvian (ergonomic, ŪGJRMV)", "kb_variants"), + tr("Latvian (modern)", "kb_variants"), + tr("Latvian (tilde)", "kb_variants"), + tr("Lithuanian (IBM LST 1205-92)", "kb_variants"), + tr("Lithuanian (LEKP)", "kb_variants"), + tr("Lithuanian (LEKPa)", "kb_variants"), + tr("Lithuanian (US)", "kb_variants"), + tr("Lithuanian (standard)", "kb_variants"), + tr("Lower Sorbian", "kb_variants"), + tr("Lower Sorbian (QWERTZ)", "kb_variants"), + tr("Macedonian (no dead keys)", "kb_variants"), + tr("Malay (Jawi, phonetic)", "kb_variants"), + tr("Malayalam", "kb_variants"), + tr("Malayalam (Lalitha)", "kb_variants"), + tr("Malayalam (enhanced Inscript, with rupee)", "kb_variants"), + tr("Maltese (UK, with AltGr overrides)", "kb_variants"), + tr("Maltese (US layout with AltGr overrides)", "kb_variants"), + tr("Maltese (US)", "kb_variants"), + tr("Manipuri (Eeyek)", "kb_variants"), + tr("Marathi (KaGaPa, phonetic)", "kb_variants"), + tr("Marathi (enhanced Inscript)", "kb_variants"), + tr("Mari", "kb_variants"), + tr("Mmuock", "kb_variants"), + tr("Moldavian (Gagauz)", "kb_variants"), + tr("Mongolian (Bichig)", "kb_variants"), + tr("Mongolian (Galik)", "kb_variants"), + tr("Mongolian (Manchu Galik)", "kb_variants"), + tr("Mongolian (Manchu)", "kb_variants"), + tr("Mongolian (Todo Galik)", "kb_variants"), + tr("Mongolian (Todo)", "kb_variants"), + tr("Mongolian (Xibe)", "kb_variants"), + tr("Montenegrin (Cyrillic)", "kb_variants"), + tr("Montenegrin (Cyrillic, ZE and ZHE swapped)", "kb_variants"), + tr("Montenegrin (Cyrillic, with guillemets)", "kb_variants"), + tr("Montenegrin (Latin, QWERTY)", "kb_variants"), + tr("Montenegrin (Latin, Unicode)", "kb_variants"), + tr("Montenegrin (Latin, Unicode, QWERTY)", "kb_variants"), + tr("Montenegrin (Latin, with guillemets)", "kb_variants"), + tr("Northern Saami (Finland)", "kb_variants"), + tr("Northern Saami (Norway)", "kb_variants"), + tr("Northern Saami (Norway, no dead keys)", "kb_variants"), + tr("Northern Saami (Sweden)", "kb_variants"), + tr("Norwegian (Colemak)", "kb_variants"), + tr("Norwegian (Dvorak)", "kb_variants"), + tr("Norwegian (Macintosh)", "kb_variants"), + tr("Norwegian (Macintosh, no dead keys)", "kb_variants"), + tr("Norwegian (Windows)", "kb_variants"), + tr("Norwegian (no dead keys)", "kb_variants"), + tr("Occitan", "kb_variants"), + tr("Ogham", "kb_variants"), + tr("Ogham (IS434)", "kb_variants"), + tr("Ol Chiki", "kb_variants"), + tr("Oriya", "kb_variants"), + tr("Ossetian (Georgia)", "kb_variants"), + tr("Ossetian (Windows)", "kb_variants"), + tr("Ossetian (legacy)", "kb_variants"), + tr("Pannonian Rusyn", "kb_variants"), + tr("Pashto", "kb_variants"), + tr("Pashto (Afghanistan, OLPC)", "kb_variants"), + tr("Persian (Afghanistan, Dari OLPC)", "kb_variants"), + tr("Persian (with Persian keypad)", "kb_variants"), + tr("Polish (British keyboard)", "kb_variants"), + tr("Polish (Dvorak)", "kb_variants"), + tr("Polish (Dvorak, with Polish quotes on key 1)", "kb_variants"), + tr("Polish (Dvorak, with Polish quotes on quotemark key)", "kb_variants"), + tr("Polish (QWERTZ)", "kb_variants"), + tr("Polish (legacy)", "kb_variants"), + tr("Polish (programmer Dvorak)", "kb_variants"), + tr("Portuguese (Brazil, Dvorak)", "kb_variants"), + tr("Portuguese (Brazil, IBM/Lenovo ThinkPad)", "kb_variants"), + tr("Portuguese (Brazil, Nativo for US keyboards)", "kb_variants"), + tr("Portuguese (Brazil, Nativo)", "kb_variants"), + tr("Portuguese (Brazil, no dead keys)", "kb_variants"), + tr("Portuguese (Macintosh)", "kb_variants"), + tr("Portuguese (Macintosh, Sun dead keys)", "kb_variants"), + tr("Portuguese (Macintosh, no dead keys)", "kb_variants"), + tr("Portuguese (Nativo for US keyboards)", "kb_variants"), + tr("Portuguese (Nativo)", "kb_variants"), + tr("Portuguese (Sun dead keys)", "kb_variants"), + tr("Portuguese (no dead keys)", "kb_variants"), + tr("Punjabi (Gurmukhi Jhelum)", "kb_variants"), + tr("Punjabi (Gurmukhi)", "kb_variants"), + tr("Romanian (Germany)", "kb_variants"), + tr("Romanian (Germany, no dead keys)", "kb_variants"), + tr("Romanian (Windows)", "kb_variants"), + tr("Romanian (cedilla)", "kb_variants"), + tr("Romanian (standard cedilla)", "kb_variants"), + tr("Romanian (standard)", "kb_variants"), + tr("Russian (Belarus)", "kb_variants"), + tr("Russian (Czech, phonetic)", "kb_variants"), + tr("Russian (DOS)", "kb_variants"), + tr("Russian (Georgia)", "kb_variants"), + tr("Russian (Germany, phonetic)", "kb_variants"), + tr("Russian (Kazakhstan, with Kazakh)", "kb_variants"), + tr("Russian (Macintosh)", "kb_variants"), + tr("Russian (Poland, phonetic Dvorak)", "kb_variants"), + tr("Russian (Sweden, phonetic)", "kb_variants"), + tr("Russian (Sweden, phonetic, no dead keys)", "kb_variants"), + tr("Russian (US, phonetic)", "kb_variants"), + tr("Russian (Ukraine, standard RSTU)", "kb_variants"), + tr("Russian (legacy)", "kb_variants"), + tr("Russian (phonetic)", "kb_variants"), + tr("Russian (phonetic, AZERTY)", "kb_variants"), + tr("Russian (phonetic, Dvorak)", "kb_variants"), + tr("Russian (phonetic, French)", "kb_variants"), + tr("Russian (phonetic, Windows)", "kb_variants"), + tr("Russian (phonetic, YAZHERTY)", "kb_variants"), + tr("Russian (typewriter)", "kb_variants"), + tr("Russian (typewriter, legacy)", "kb_variants"), + tr("Saisiyat (Taiwan)", "kb_variants"), + tr("Samogitian", "kb_variants"), + tr("Sanskrit (KaGaPa, phonetic)", "kb_variants"), + tr("Serbian (Cyrillic, ZE and ZHE swapped)", "kb_variants"), + tr("Serbian (Cyrillic, with guillemets)", "kb_variants"), + tr("Serbian (Latin)", "kb_variants"), + tr("Serbian (Latin, QWERTY)", "kb_variants"), + tr("Serbian (Latin, Unicode)", "kb_variants"), + tr("Serbian (Latin, Unicode, QWERTY)", "kb_variants"), + tr("Serbian (Latin, with guillemets)", "kb_variants"), + tr("Serbian (Russia)", "kb_variants"), + tr("Serbo-Croatian (US)", "kb_variants"), + tr("Sicilian", "kb_variants"), + tr("Silesian", "kb_variants"), + tr("Sindhi", "kb_variants"), + tr("Sinhala (US)", "kb_variants"), + tr("Slovak (QWERTY)", "kb_variants"), + tr("Slovak (QWERTY, extended backslash)", "kb_variants"), + tr("Slovak (extended backslash)", "kb_variants"), + tr("Slovenian (US)", "kb_variants"), + tr("Slovenian (with guillemets)", "kb_variants"), + tr("Spanish (Dvorak)", "kb_variants"), + tr("Spanish (Latin American, Colemak for gaming)", "kb_variants"), + tr("Spanish (Latin American, Colemak)", "kb_variants"), + tr("Spanish (Latin American, Dvorak)", "kb_variants"), + tr("Spanish (Latin American, Sun dead keys)", "kb_variants"), + tr("Spanish (Latin American, dead tilde)", "kb_variants"), + tr("Spanish (Latin American, no dead keys)", "kb_variants"), + tr("Spanish (Macintosh)", "kb_variants"), + tr("Spanish (Sun dead keys)", "kb_variants"), + tr("Spanish (Windows)", "kb_variants"), + tr("Spanish (dead tilde)", "kb_variants"), + tr("Spanish (no dead keys)", "kb_variants"), + tr("Swedish (Dvorak)", "kb_variants"), + tr("Swedish (Dvorak, intl.)", "kb_variants"), + tr("Swedish (Macintosh)", "kb_variants"), + tr("Swedish (Svdvorak)", "kb_variants"), + tr("Swedish (US)", "kb_variants"), + tr("Swedish (no dead keys)", "kb_variants"), + tr("Swedish Sign Language", "kb_variants"), + tr("Syriac", "kb_variants"), + tr("Syriac (phonetic)", "kb_variants"), + tr("Taiwanese (indigenous)", "kb_variants"), + tr("Tajik (legacy)", "kb_variants"), + tr("Tamil (Inscript)", "kb_variants"), + tr("Tamil (Sri Lanka, TamilNet '99)", "kb_variants"), + tr("Tamil (Sri Lanka, TamilNet '99, TAB encoding)", "kb_variants"), + tr("Tamil (TamilNet '99 with Tamil numerals)", "kb_variants"), + tr("Tamil (TamilNet '99)", "kb_variants"), + tr("Tamil (TamilNet '99, TAB encoding)", "kb_variants"), + tr("Tamil (TamilNet '99, TSCII encoding)", "kb_variants"), + tr("Tatar", "kb_variants"), + tr("Telugu", "kb_variants"), + tr("Telugu (KaGaPa, phonetic)", "kb_variants"), + tr("Telugu (Sarala)", "kb_variants"), + tr("Thai (Pattachote)", "kb_variants"), + tr("Thai (TIS-820.2538)", "kb_variants"), + tr("Tibetan", "kb_variants"), + tr("Tibetan (with ASCII numerals)", "kb_variants"), + tr("Turkish (Alt-Q)", "kb_variants"), + tr("Turkish (F)", "kb_variants"), + tr("Turkish (Germany)", "kb_variants"), + tr("Turkish (Sun dead keys)", "kb_variants"), + tr("Turkish (intl., with dead keys)", "kb_variants"), + tr("Turkmen (Alt-Q)", "kb_variants"), + tr("Udmurt", "kb_variants"), + tr("Ukrainian (Windows)", "kb_variants"), + tr("Ukrainian (homophonic)", "kb_variants"), + tr("Ukrainian (legacy)", "kb_variants"), + tr("Ukrainian (phonetic)", "kb_variants"), + tr("Ukrainian (standard RSTU)", "kb_variants"), + tr("Ukrainian (typewriter)", "kb_variants"), + tr("Urdu (Pakistan, CRULP)", "kb_variants"), + tr("Urdu (Pakistan, NLA)", "kb_variants"), + tr("Urdu (Windows)", "kb_variants"), + tr("Urdu (alt. phonetic)", "kb_variants"), + tr("Urdu (phonetic)", "kb_variants"), + tr("Uyghur", "kb_variants"), + tr("Uzbek (Afghanistan)", "kb_variants"), + tr("Uzbek (Afghanistan, OLPC)", "kb_variants"), + tr("Uzbek (Latin)", "kb_variants"), + tr("Vietnamese (French)", "kb_variants"), + tr("Vietnamese (US)", "kb_variants"), + tr("Yakut", "kb_variants"), + tr("Yoruba", "kb_variants"), QString() }; } +} diff --git a/src/modules/keyboard/KeyboardLayoutModel.cpp b/src/modules/keyboard/KeyboardLayoutModel.cpp index f1e6a66c6..f412eb7e1 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -20,6 +20,18 @@ static QTranslator* s_kbtranslator = nullptr; +void +retranslateKeyboardModels() +{ + cqDeleter< QTranslator > d{ s_kbtranslator }; + if ( !s_kbtranslator ) + { + s_kbtranslator = new QTranslator; + } + d.preserve = CalamaresUtils::loadTranslator( QLocale(), QStringLiteral("kb_"), s_kbtranslator ); +} + + XKBListModel::XKBListModel( QObject* parent ) : QAbstractListModel( parent ) { diff --git a/src/modules/keyboard/KeyboardLayoutModel.h b/src/modules/keyboard/KeyboardLayoutModel.h index 9c83e41d8..99b204573 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.h +++ b/src/modules/keyboard/KeyboardLayoutModel.h @@ -146,4 +146,8 @@ public: void setVariants( QMap< QString, QString > variants ); }; +/** @brief Adjust to changes in application language. + */ +void retranslateKeyboardModels(); + #endif // KEYBOARDLAYOUTMODEL_H diff --git a/src/modules/keyboard/layout-extractor.py b/src/modules/keyboard/layout-extractor.py index 74b42ea07..44b0d6b50 100644 --- a/src/modules/keyboard/layout-extractor.py +++ b/src/modules/keyboard/layout-extractor.py @@ -58,10 +58,11 @@ def scrape_file(file, modelsset, layoutsset, variantsset): def write_set(file, label, set): file.write("/* This returns a reference to local, which is a terrible idea.\n * Good thing it's not meant to be compiled.\n */\n") # Note {{ is an escaped { for Python string formatting - file.write("static const QStringList& {!s}_table()\n{{\n\treturn QStringList {{\n".format(label)) + file.write("class {!s} : public QObject {{\nQ_OBJECT\npublic:\n".format(label)) + file.write("\tconst QStringList& table()\n\t{\n\treturn QStringList {\n") for x in sorted(set): - file.write("""\t\tQObject::tr("{!s}", "{!s}"),\n""".format(x, label)) - file.write("\t\tQString()\n\t};\n}\n\n") + file.write("""\t\ttr("{!s}", "{!s}"),\n""".format(x, label)) + file.write("\t\tQString()\n\t};\n}\n}\n\n") cpp_header_comment = """/* GENERATED FILE DO NOT EDIT * @@ -84,6 +85,7 @@ if __name__ == "__main__": models=set() layouts=set() variants=set() + variants.add( "Default" ) with open("/usr/local/share/X11/xkb/rules/base.lst", "r") as f: scrape_file(f, models, layouts, variants) with open("KeyboardData_p.cxxtr", "w") as f: From 6863db0dc1bdaef80f39f267efdf5934d4d8355d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 1 Nov 2020 14:19:06 +0100 Subject: [PATCH 13/15] [keyboard] Use the translations if they were loaded --- src/modules/keyboard/KeyboardLayoutModel.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/keyboard/KeyboardLayoutModel.cpp b/src/modules/keyboard/KeyboardLayoutModel.cpp index f412eb7e1..1894ec683 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -23,12 +23,11 @@ static QTranslator* s_kbtranslator = nullptr; void retranslateKeyboardModels() { - cqDeleter< QTranslator > d{ s_kbtranslator }; if ( !s_kbtranslator ) { s_kbtranslator = new QTranslator; } - d.preserve = CalamaresUtils::loadTranslator( QLocale(), QStringLiteral("kb_"), s_kbtranslator ); + (void) CalamaresUtils::loadTranslator( QLocale(), QStringLiteral("kb_"), s_kbtranslator ); } @@ -59,10 +58,13 @@ XKBListModel::data( const QModelIndex& index, int role ) const switch ( role ) { case LabelRole: - if ( s_kbtranslator && m_contextname ) + if ( s_kbtranslator && !s_kbtranslator->isEmpty() && m_contextname ) { auto s = s_kbtranslator->translate( m_contextname, item.label.toUtf8().data() ); - cDebug() << "Translated" << item.label << "to" << s; + if ( !s.isEmpty() ) + { + return s; + } } return item.label; case KeyRole: From 47467543449ddc69d44b512371cc0b9814d0a0d5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 1 Nov 2020 14:28:12 +0100 Subject: [PATCH 14/15] [keyboard] Translate layouts as well --- src/modules/keyboard/KeyboardLayoutModel.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/modules/keyboard/KeyboardLayoutModel.cpp b/src/modules/keyboard/KeyboardLayoutModel.cpp index 1894ec683..abac1cdc2 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -27,7 +27,7 @@ retranslateKeyboardModels() { s_kbtranslator = new QTranslator; } - (void) CalamaresUtils::loadTranslator( QLocale(), QStringLiteral("kb_"), s_kbtranslator ); + (void)CalamaresUtils::loadTranslator( QLocale(), QStringLiteral( "kb_" ), s_kbtranslator ); } @@ -165,7 +165,18 @@ KeyboardLayoutModel::data( const QModelIndex& index, int role ) const switch ( role ) { case Qt::DisplayRole: - return m_layouts.at( index.row() ).second.description; + { + auto description = m_layouts.at( index.row() ).second.description; + if ( s_kbtranslator && !s_kbtranslator->isEmpty() ) + { + auto s = s_kbtranslator->translate( "kb_layouts", description.toUtf8().data() ); + if ( !s.isEmpty() ) + { + return s; + } + } + return description; + } case KeyboardVariantsRole: return QVariant::fromValue( m_layouts.at( index.row() ).second.variants ); case KeyboardLayoutKeyRole: From e023da3f3571c4cf80ee4abfbcc8160d421e914b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 4 Nov 2020 18:30:48 +0100 Subject: [PATCH 15/15] i18n: update Tajik keyboard translations - real ones this time, not my made-up nonsense --- lang/kb_tg.ts | 622 +++++++++++++++++++++++++------------------------- 1 file changed, 311 insertions(+), 311 deletions(-) diff --git a/lang/kb_tg.ts b/lang/kb_tg.ts index fb18f9995..893bed9ae 100644 --- a/lang/kb_tg.ts +++ b/lang/kb_tg.ts @@ -1,205 +1,205 @@ - + - + kb_layouts Afghani kb_layouts - + Афғонӣ Albanian kb_layouts - + Албанӣ Amharic kb_layouts - + Амҳарӣ Arabic kb_layouts - + Арабӣ Arabic (Morocco) kb_layouts - + Арабӣ (Марокаш) Arabic (Syria) kb_layouts - + Арабӣ (Сурия) Armenian kb_layouts - + Арманӣ Azerbaijani kb_layouts - + Озарбойҷонӣ Bambara kb_layouts - + Бамбара Bangla kb_layouts - + Бангла Belarusian kb_layouts - + Белорусӣ Belgian kb_layouts - + Белгиягӣ Bosnian kb_layouts - + Босниягӣ Braille kb_layouts - + Брайл Bulgarian kb_layouts - + Булғорӣ Burmese kb_layouts - + Бирманӣ Chinese kb_layouts - + Хитоӣ Croatian kb_layouts - + Хорватӣ Czech kb_layouts - + Чехӣ Danish kb_layouts - + Даниягӣ Dhivehi kb_layouts - + Дхивеҳӣ Dutch kb_layouts - + Ҳоландӣ Dzongkha kb_layouts - + Дзонгха English (Australian) kb_layouts - + Англисӣ (Австралиягӣ) English (Cameroon) kb_layouts - + Англисӣ (Камерун) English (Ghana) kb_layouts - + Англисӣ (Гана) English (Nigeria) kb_layouts - + Англисӣ (Нигерия) English (South Africa) kb_layouts - + Англисӣ (Африкаи Ҷунубӣ) English (UK) kb_layouts - + Англисӣ (БК) English (US) kb_layouts - + Англисӣ (ИМА) Esperanto kb_layouts - + Эсперанто Estonian kb_layouts - + Эстонӣ Faroese kb_layouts - + Фарерӣ @@ -475,7 +475,7 @@ Russian kb_layouts - + Русӣ @@ -565,13 +565,13 @@ Turkmen kb_layouts - + Туркменӣ Ukrainian kb_layouts - + Украинӣ @@ -583,19 +583,19 @@ Uzbek kb_layouts - + Ӯзбекӣ Vietnamese kb_layouts - + Ветнамӣ Wolof kb_layouts - + Волоф @@ -604,385 +604,385 @@ A4Tech KB-21 kb_models - + A4Tech KB-21 A4Tech KBS-8 kb_models - + A4Tech KBS-8 A4Tech Wireless Desktop RFKB-23 kb_models - + Мизи кории бесими A4Tech RFKB-23 Acer AirKey V kb_models - + Acer AirKey V Acer C300 kb_models - + Acer C300 Acer Ferrari 4000 kb_models - + Acer Ferrari 4000 Acer laptop kb_models - + Лэптопи Acer Advance Scorpius KI kb_models - + Scorpius KI-и пешрафта Apple kb_models - + Apple Apple Aluminium (ANSI) kb_models - + Apple-и Алюминий (ANSI) Apple Aluminium (ISO) kb_models - + Apple-и Алюминий (ISO) Apple Aluminium (JIS) kb_models - + Apple-и Алюминий (JIS) Apple laptop kb_models - + Лэптопи Apple Asus laptop kb_models - + Лэптопи Asus Azona RF2300 wireless Internet kb_models - + Azona RF2300 Интернети бесим BTC 5090 kb_models - + BTC 5090 BTC 5113RF Multimedia kb_models - + BTC 5113RF Мултимедиа BTC 5126T kb_models - + BTC 5126T BTC 6301URF kb_models - + BTC 6301URF BTC 9000 kb_models - + BTC 9000 BTC 9000A kb_models - + BTC 9000A BTC 9001AH kb_models - + BTC 9001AH BTC 9019U kb_models - + BTC 9019U BTC 9116U Mini Wireless Internet and Gaming kb_models - + BTC 9116U Бозиҳо ва Интернети бесим (Хурд) BenQ X-Touch kb_models - + BenQ X-Touch BenQ X-Touch 730 kb_models - + BenQ X-Touch 730 BenQ X-Touch 800 kb_models - + BenQ X-Touch 800 Brother Internet kb_models - + Интернети бародарон Cherry B.UNLIMITED kb_models - + Черри, НОМАҲДУДИ B Cherry Blue Line CyBo@rd kb_models - + Черри, Хати кабуди CyBo@rd Cherry Blue Line CyBo@rd (alt.) kb_models - + Черри, Хати кабуди CyBo@rd. (илов.) Cherry CyBo@rd USB-Hub kb_models - + Черри, CyBo@rd USB-Hub Cherry CyMotion Expert kb_models - + Черри, Коршиноси CyMotion Cherry CyMotion Master Linux kb_models - + Черри, Устои Linux-и CyMotion Cherry CyMotion Master XPress kb_models - + Черри, Устои XPress-и CyMotion Chicony Internet kb_models - + Chicony-и интернетӣ Chicony KB-9885 kb_models - + Chicony KB-9885 Chicony KU-0108 kb_models - + Chicony KU-0108 Chicony KU-0420 kb_models - + Chicony KU-0420 Chromebook kb_models - + Хромбук Classmate PC kb_models - + Classmate PC Compaq Armada laptop kb_models - + Лэптопи Compaq Armada Compaq Easy Access kb_models - + Дастрасии осони Compaq Compaq Internet (13 keys) kb_models - + Compaq-и интернетӣ (13 тугма) Compaq Internet (18 keys) kb_models - + Compaq-и интернетӣ (18 тугма) Compaq Internet (7 keys) kb_models - + Compaq-и интернетӣ (7 тугма) Compaq Presario laptop kb_models - + Лэптопи Compaq Presario Compaq iPaq kb_models - + Compaq iPaq Creative Desktop Wireless 7000 kb_models - + Creative Desktop Wireless 7000 DTK2000 kb_models - + DTK2000 Dell kb_models - + Dell Dell 101-key PC kb_models - + Dell, 101 тугмаи компютерӣ Dell Inspiron 6000/8000 laptop kb_models - + Лэптопи Dell Inspiron 6000/8000 Dell Latitude laptop kb_models - + Лэптопи Dell Latitude Dell Precision M laptop kb_models - + Лэптопи Dell Precision M Dell Precision M65 laptop kb_models - + Лэптопи Dell Precision M65 Dell SK-8125 kb_models - + Dell SK-8125 Dell SK-8135 kb_models - + Dell SK-8135 Dell USB Multimedia kb_models - + Dell, Мултимедиаи USB Dexxa Wireless Desktop kb_models - + Мизи кории бесими Dexxa Diamond 9801/9802 kb_models - + Diamond 9801/9802 Ennyah DKB-1008 kb_models - + Ennyah DKB-1008 Everex STEPnote kb_models - + Everex STEPnote FL90 kb_models - + FL90 @@ -994,37 +994,37 @@ Generic 101-key PC kb_models - Общий 101-ключ + Умумӣ, 101 тугмаи компютерӣ Generic 102-key PC kb_models - Общий 102-ключ + Умумӣ, 102 тугмаи компютерӣ Generic 104-key PC kb_models - Общий 104-ключ + Умумӣ, 104 тугмаи компютерӣ Generic 104-key PC with L-shaped Enter key kb_models - + Умумӣ, 104 тугмаи компютерӣ бо тугмаи Enter дар шакли L Generic 105-key PC kb_models - Общий 105-ключ + Умумӣ, 105 тугмаи компютерӣ Generic 86-key PC kb_models - Общий 86-ключ + Умумӣ, 86 тугмаи компютерӣ @@ -1204,13 +1204,13 @@ Logitech kb_models - + Logitech Logitech Access kb_models - + Logitech Access @@ -1366,25 +1366,25 @@ Memorex MX1998 kb_models - + Memorex MX1998 Memorex MX2500 EZ-Access kb_models - + Memorex MX2500 EZ-Access Memorex MX2750 kb_models - + Memorex MX2750 Microsoft Comfort Curve 2000 kb_models - + Microsoft Comfort Curve 2000 @@ -1462,25 +1462,25 @@ NEC SK-1300 kb_models - + NEC SK-1300 NEC SK-2500 kb_models - + NEC SK-2500 NEC SK-6200 kb_models - + NEC SK-6200 NEC SK-7100 kb_models - + NEC SK-7100 @@ -1492,7 +1492,7 @@ OLPC kb_models - + OLPC @@ -1522,25 +1522,25 @@ SVEN Ergonomic 2500 kb_models - + SVEN Ergonomic 2500 SVEN Slim 303 kb_models - + SVEN Slim 303 Samsung SDM 4500P kb_models - + Samsung SDM 4500P Samsung SDM 4510P kb_models - + Samsung SDM 4510P @@ -1684,61 +1684,61 @@ TypeMatrix EZ-Reach 2020 kb_models - + TypeMatrix EZ-Reach 2020 TypeMatrix EZ-Reach 2030 PS2 kb_models - + TypeMatrix EZ-Reach 2030 PS2 TypeMatrix EZ-Reach 2030 USB kb_models - + TypeMatrix EZ-Reach 2030 USB TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) kb_models - + TypeMatrix EZ-Reach 2030 USB (Реҷаи 102/105:EU) TypeMatrix EZ-Reach 2030 USB (106:JP mode) kb_models - + TypeMatrix EZ-Reach 2030 USB (Реҷаи 106:JP) Unitek KB-1925 kb_models - + Unitek KB-1925 ViewSonic KU-306 Internet kb_models - + ViewSonic KU-306-и интернетӣ Winbook Model XP5 kb_models - + Yahoo! Internet kb_models - + Yahoo! Интернет eMachines m6800 laptop kb_models - + Лэптопи eMachines m6800 @@ -1747,775 +1747,775 @@ Akan kb_variants - + Аконӣ Albanian (Plisi) kb_variants - + Албанӣ (Плисӣ) Albanian (Veqilharxhi) kb_variants - + Албанӣ (Векилхаркшӣ) Arabic (AZERTY) kb_variants - + Арабӣ (AZERTY) Arabic (AZERTY, Eastern Arabic numerals) kb_variants - + Арабӣ (AZERTY, Рақамҳои арабии шаркӣ) Arabic (Algeria) kb_variants - + Арабӣ (Алҷазоир) Arabic (Buckwalter) kb_variants - + Арабӣ (Бакуолтер) Arabic (Eastern Arabic numerals) kb_variants - + Арабӣ (Рақамҳои арабии шаркӣ) Arabic (Macintosh) kb_variants - + Арабӣ (Макинтош) Arabic (OLPC) kb_variants - + Арабӣ (OLPC) Arabic (Pakistan) kb_variants - + Арабӣ (Покистон) Arabic (QWERTY) kb_variants - + Арабӣ (QWERTY) Arabic (QWERTY, Eastern Arabic numerals) kb_variants - + Арабӣ (QWERTY, Рақамҳои арабии шаркӣ) Armenian (alt. eastern) kb_variants - + Арманӣ (илов. шарқӣ) Armenian (alt. phonetic) kb_variants - + Арманӣ (илов. фонетикӣ) Armenian (eastern) kb_variants - + Арманӣ (шарқӣ) Armenian (phonetic) kb_variants - + Арманӣ (фонетикӣ) Armenian (western) kb_variants - + Арманӣ (ғарбӣ) Asturian (Spain, with bottom-dot H and L) kb_variants - + Астурӣ (Испания, бо нуқтаи поёни H ва L) Avatime kb_variants - + Avatime Azerbaijani (Cyrillic) kb_variants - + Озарбойҷонӣ (Кириллӣ) Bangla (India) kb_variants - + Бангла (Ҳиндустон) Bangla (India, Baishakhi Inscript) kb_variants - + Бангла (Ҳиндустон, Инскрипти Байшахӣ) Bangla (India, Baishakhi) kb_variants - + Бангла (Ҳиндустон, Байшахӣ) Bangla (India, Bornona) kb_variants - + Бангла (Ҳиндустон, Борнона) Bangla (India, Gitanjali) kb_variants - + Бангла (Ҳиндустон, Гитанҷалӣ) Bangla (India, Probhat) kb_variants - + Бангла (Ҳиндустон, Пробхат) Bangla (Probhat) kb_variants - + Бангла (Пробхат) Bashkirian kb_variants - + Бошқирдӣ Belarusian (Latin) kb_variants - + Белорусӣ (Лотинӣ) Belarusian (intl.) kb_variants - + Белорусӣ (байналм.) Belarusian (legacy) kb_variants - + Белорусӣ (ворисӣ) Belgian (ISO, alt.) kb_variants - + Белгиягӣ (ISO, илов.) Belgian (Latin-9 only, alt.) kb_variants - + Белгиягӣ (Танҳо лотинии-9, илов.) Belgian (Sun dead keys) kb_variants - + Белгиягӣ (Тугмаҳои хомӯшии Sun) Belgian (Sun dead keys, alt.) kb_variants - + Белгиягӣ (Тугмаҳои хомӯшии Sun, илов.) Belgian (Wang 724 AZERTY) kb_variants - + Белгиягӣ (Ванг 724 AZERTY) Belgian (alt.) kb_variants - + Белгиягӣ (илов.) Belgian (no dead keys) kb_variants - + Белгиягӣ (бе тугмаҳои хомӯшӣ) Berber (Morocco, Tifinagh alt.) kb_variants - + Берберӣ (Марокаш, Тифинагҳӣ, илов.) Berber (Morocco, Tifinagh extended phonetic) kb_variants - + Берберӣ (Марокаш, Тифинагҳӣ, фонетикии васеъшуда) Berber (Morocco, Tifinagh extended) kb_variants - + Берберӣ (Марокаш, Тифинагҳӣ, васеъшуда) Berber (Morocco, Tifinagh phonetic) kb_variants - + Берберӣ (Марокаш, Тифинагҳӣ, фонетикӣ) Berber (Morocco, Tifinagh phonetic, alt.) kb_variants - + Берберӣ (Марокаш, Тифинагҳӣ, фонетикӣ, илов.) Berber (Morocco, Tifinagh) kb_variants - + Берберӣ (Марокаш, Тифинагҳӣ) Bosnian (US) kb_variants - + Босниягӣ (ИМА) Bosnian (US, with Bosnian digraphs) kb_variants - + Босниягӣ (ИМА, бо диграфҳои босниягӣ) Bosnian (with Bosnian digraphs) kb_variants - + Босниягӣ (бо диграфҳои босниягӣ) Bosnian (with guillemets) kb_variants - + Босниягӣ (бо гиллеметҳо) Braille (left-handed inverted thumb) kb_variants - + Брайл (сарангушти чаппаи дасти чап) Braille (left-handed) kb_variants - + Брайл (дасти чап) Braille (right-handed inverted thumb) kb_variants - + Брайл (сарангушти чаппаи дасти рост) Braille (right-handed) kb_variants - + Брайл (дасти рост) Bulgarian (enhanced) kb_variants - + Булғорӣ (такмилёфта) Bulgarian (new phonetic) kb_variants - + Булғорӣ (фонетикии нав) Bulgarian (traditional phonetic) kb_variants - + Булғорӣ (фонетикии анъанавӣ) Burmese Zawgyi kb_variants - + Бирмании завҷӣ Cameroon (AZERTY, intl.) kb_variants - + Камерун (AZERTY, байналм.) Cameroon (Dvorak, intl.) kb_variants - + Камерун (Дворак, байналм.) Cameroon Multilingual (QWERTY, intl.) kb_variants - + Камеруни серзабон (QWERTY, байналм.) Canadian (intl.) kb_variants - + Канадагӣ (байналм.) Canadian (intl., 1st part) kb_variants - + Канадагӣ (байналм. қисми 1) Canadian (intl., 2nd part) kb_variants - + Канадагӣ (байналм. қисми 2) Catalan (Spain, with middle-dot L) kb_variants - + Каталонӣ (Испания, бо нуқтаи миёнаи L) Cherokee kb_variants - + Черокӣ Chuvash kb_variants - + Чувашӣ Chuvash (Latin) kb_variants - + Чувашӣ (Лотинӣ) CloGaelach kb_variants - + CloGaelach Crimean Tatar (Turkish Alt-Q) kb_variants - + Тотории кримӣ (Туркӣ, Alt-Q) Crimean Tatar (Turkish F) kb_variants - + Тотории кримӣ (F-и туркӣ) Crimean Tatar (Turkish Q) kb_variants - + Тотории кримӣ (Q-и туркӣ) Croatian (US) kb_variants - + Хорватӣ (ИМА) Croatian (US, with Croatian digraphs) kb_variants - + Хорватӣ (ИМА, бо диграфҳои хорватӣ) Croatian (with Croatian digraphs) kb_variants - + Хорватӣ (бо диграфҳои хорватӣ) Croatian (with guillemets) kb_variants - + Хорватӣ (бо гиллеметҳо) Czech (QWERTY) kb_variants - + Чехӣ (QWERTY) Czech (QWERTY, Macintosh) kb_variants - + Чехӣ (QWERTY, Макинтош) Czech (QWERTY, extended backslash) kb_variants - + Чехӣ (QWERTY, аломати хати каҷи баръакси васеъшуда) Czech (UCW, only accented letters) kb_variants - + Чехӣ (UCW, танҳо ҳарфҳои вижагӣ) Czech (US, Dvorak, UCW support) kb_variants - + Чехӣ (ИМА, Дворак, дастгирии UCW) Czech (with &lt;|&gt; key) kb_variants - + Чехӣ (бо тугмаи &lt;|&gt;) Danish (Dvorak) kb_variants - + Даниягӣ (Дворак) Danish (Macintosh) kb_variants - + Даниягӣ (Макинтош) Danish (Macintosh, no dead keys) kb_variants - + Даниягӣ (Макинтош, бе тугмаҳои хомӯшӣ) Danish (Windows) kb_variants - + Даниягӣ (Windows) Danish (no dead keys) kb_variants - + Даниягӣ (бе тугмаҳои хомӯшӣ) Default kb_variants - + Стандартӣ Dutch (Macintosh) kb_variants - + Ҳоландӣ (Макинтош) Dutch (Sun dead keys) kb_variants - + Ҳоландӣ (Тугмаҳои хомӯшии Sun) Dutch (standard) kb_variants - + Ҳоландӣ (стандартӣ) English (Canada) kb_variants - + Англисӣ (Канада) English (Colemak) kb_variants - + Англисӣ (Колемак) English (Dvorak) kb_variants - + Англисӣ (Дворак) English (Dvorak, alt. intl.) kb_variants - + Англисӣ (Дворак, илов. байналм.) English (Dvorak, intl., with dead keys) kb_variants - + Англисӣ (Дворак, байналм. бо тугмаҳои хомӯшӣ) English (Dvorak, left-handed) kb_variants - + Англисӣ (Дворак, дасти чап) English (Dvorak, right-handed) kb_variants - + Англисӣ (Дворак, дасти рост) English (Ghana, GILLBT) kb_variants - + Англисӣ (Гана, GILLBT) English (Ghana, multilingual) kb_variants - + Англисӣ (Гана, серзабон) English (India, with rupee) kb_variants - + Англисӣ (Ҳиндустон, бо рупия) English (Macintosh) kb_variants - + Англисӣ (Макинтош) English (Mali, US, Macintosh) kb_variants - + Англисӣ (Малӣ, ИМА, Макинтош) English (Mali, US, intl.) kb_variants - + Англисӣ (Малӣ, ИМА, байналм.) English (Norman) kb_variants - + Англисӣ (Норман) English (UK, Colemak) kb_variants - + Англисӣ (БК, Колемак) English (UK, Dvorak) kb_variants - + Англисӣ (БК, Дворак) English (UK, Dvorak, with UK punctuation) kb_variants - + Англисӣ (БК, Дворак, бо аломатҳои китобатӣ) English (UK, Macintosh) kb_variants - + Англисӣ (БК, Макинтош) English (UK, Macintosh, intl.) kb_variants - + Англисӣ (БК, Макинтош, байналм.) English (UK, extended, Windows) kb_variants - + Англисӣ (БК, васеъшуда, Windows) English (UK, intl., with dead keys) kb_variants - + Англисӣ (БК, байналм., бо тугмаҳои хомӯшӣ) English (US, Symbolic) kb_variants - + Англисӣ (ИМА, Рамзӣ) English (US, alt. intl.) kb_variants - + Англисӣ (ИМА, илов. байналм.) English (US, euro on 5) kb_variants - + Англисӣ (ИМА, евро дар 5) English (US, intl., with dead keys) kb_variants - + Англисӣ (ИМА, байналм., бо тугмаҳои хомӯшӣ) English (Workman) kb_variants - + Англисӣ (Воркман) English (Workman, intl., with dead keys) kb_variants - + Англисӣ (Воркман, байналм., бо тугмаҳои хомӯшӣ) English (classic Dvorak) kb_variants - + Англисӣ (Двораки классикӣ) English (intl., with AltGr dead keys) kb_variants - + Англисӣ (байналм., бо тугмаҳои хомӯшии AltGr) English (programmer Dvorak) kb_variants - + Англисӣ (Двораки барномарезӣ) English (the divide/multiply toggle the layout) kb_variants - + Англисӣ (тарҳбандӣ бо алоҳида/якчанд васлкунак) Esperanto (Brazil, Nativo) kb_variants - + Эсперанто (Бразилия, Нативо) Esperanto (Portugal, Nativo) kb_variants - + Эсперанто (Португалия, Нативо) Esperanto (legacy) kb_variants - + Эсперанто (ворисӣ) Estonian (Dvorak) kb_variants - + Эстонӣ (Дворак) Estonian (US) kb_variants - + Эстонӣ (ИМА) Estonian (no dead keys) kb_variants - + Эстонӣ (бе тугмаҳои хомӯшӣ) Ewe kb_variants - + Ewe Faroese (no dead keys) kb_variants - + Фарерӣ (бе тугмаҳои хомӯшӣ) @@ -3985,127 +3985,127 @@ Russian (Belarus) kb_variants - + Русӣ (Беларус) Russian (Czech, phonetic) kb_variants - + Русӣ (Чехӣ, фонетикӣ) Russian (DOS) kb_variants - + Русӣ (DOS) Russian (Georgia) kb_variants - + Русӣ (Гурҷӣ) Russian (Germany, phonetic) kb_variants - + Русӣ (Немисӣ, фонетикӣ) Russian (Kazakhstan, with Kazakh) kb_variants - + Русӣ (Қазоқистон, бо қазоқӣ) Russian (Macintosh) kb_variants - + Русӣ (Макинтош) Russian (Poland, phonetic Dvorak) kb_variants - + Русӣ (Полша, Дворакии фонетикӣ) Russian (Sweden, phonetic) kb_variants - + Русӣ (Шведӣ, фонетикӣ) Russian (Sweden, phonetic, no dead keys) kb_variants - + Русӣ (Шведӣ, фонетикӣ, бе тугмаҳои хомӯшӣ) Russian (US, phonetic) kb_variants - + Русӣ (ИМА, фонетикӣ) Russian (Ukraine, standard RSTU) kb_variants - + Русӣ (Украина, RSTU-и стандартӣ) Russian (legacy) kb_variants - + Русӣ (ворисӣ) Russian (phonetic) kb_variants - + Русӣ (фонетикӣ) Russian (phonetic, AZERTY) kb_variants - + Русӣ (фонетикӣ, AZERTY) Russian (phonetic, Dvorak) kb_variants - + Русӣ (фонетикӣ, Дворак) Russian (phonetic, French) kb_variants - + Русӣ (фонетикӣ, Франсузӣ) Russian (phonetic, Windows) kb_variants - + Русӣ (фонетикӣ, Windows) Russian (phonetic, YAZHERTY) kb_variants - + Русӣ (фонетикӣ, YAZHERTY) Russian (typewriter) kb_variants - + Русӣ (мошини хатнависӣ) Russian (typewriter, legacy) kb_variants - + Русӣ (мошини хатнависӣ, ворисӣ) @@ -4117,7 +4117,7 @@ Samogitian kb_variants - + @@ -4369,7 +4369,7 @@ Tajik (legacy) kb_variants - Тоҷикӣ (красіво) + Тоҷикӣ (ворисӣ) @@ -4379,37 +4379,37 @@ - Tamil (Sri Lanka, TamilNet '99) + Tamil (Sri Lanka, TamilNet '99) kb_variants - Tamil (Sri Lanka, TamilNet '99, TAB encoding) + Tamil (Sri Lanka, TamilNet '99, TAB encoding) kb_variants - Tamil (TamilNet '99 with Tamil numerals) + Tamil (TamilNet '99 with Tamil numerals) kb_variants - Tamil (TamilNet '99) + Tamil (TamilNet '99) kb_variants - Tamil (TamilNet '99, TAB encoding) + Tamil (TamilNet '99, TAB encoding) kb_variants - Tamil (TamilNet '99, TSCII encoding) + Tamil (TamilNet '99, TSCII encoding) kb_variants @@ -4417,7 +4417,7 @@ Tatar kb_variants - + Тоторӣ @@ -4495,49 +4495,49 @@ Turkmen (Alt-Q) kb_variants - + Туркменӣ (Alt-Q) Udmurt kb_variants - + Удмуртӣ Ukrainian (Windows) kb_variants - + Украинӣ (Windows) Ukrainian (homophonic) kb_variants - + Украинӣ (гомофонӣ) Ukrainian (legacy) kb_variants - + Украинӣ (ворисӣ) Ukrainian (phonetic) kb_variants - + Украинӣ (фонетикӣ) Ukrainian (standard RSTU) kb_variants - + Украинӣ (RSTU-и стандартӣ) Ukrainian (typewriter) kb_variants - + Украинӣ (мошини хатнависӣ) @@ -4573,49 +4573,49 @@ Uyghur kb_variants - + Ӯйғурӣ Uzbek (Afghanistan) kb_variants - + Ӯзбекӣ (Афғонистон) Uzbek (Afghanistan, OLPC) kb_variants - + Ӯзбекӣ (Афғонистон, OLPC) Uzbek (Latin) kb_variants - + Ӯзбекӣ (Лотинӣ) Vietnamese (French) kb_variants - + Ветнамӣ (Франсузӣ) Vietnamese (US) kb_variants - + Ветнамӣ (ИМА) Yakut kb_variants - + Ёқутӣ Yoruba kb_variants - + Йоруба