diff --git a/CHANGES b/CHANGES index 98db4d483..564c5fd0c 100644 --- a/CHANGES +++ b/CHANGES @@ -31,6 +31,8 @@ This release contains contributions from (alphabetically by first name): and usernames). (Thanks Artem) - Various cleanups and documentation improvements in the *partition* module, and configurable GPT name for swap. (Thanks Gaël) + - A long-standing bug related to GPT partition flags in the + *partition* module has been resolved. #1327 #1267 - The *users* module now has a more detailed way to specify user groups -- which may be system groups rather than user-GIDs. A new option in each group can require that the group already 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..08dc54905 --- /dev/null +++ b/lang/kb_en.ts @@ -0,0 +1,4621 @@ + + + + + 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 + + + + + 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 + + + + + Default + 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 + + + + diff --git a/lang/kb_tg.ts b/lang/kb_tg.ts new file mode 100644 index 000000000..893bed9ae --- /dev/null +++ b/lang/kb_tg.ts @@ -0,0 +1,4621 @@ + + + + + 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 + Фарерӣ + + + + 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 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 + + + + 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 + Умумӣ, 104 тугмаи компютерӣ бо тугмаи Enter дар шакли L + + + + 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 + + + + Logitech Access + kb_models + Logitech Access + + + + 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 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 + + + + 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-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 + + + + Northgate OmniKey 101 + kb_models + + + + + OLPC + kb_models + OLPC + + + + 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 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 + + + + 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 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 + + + + kb_variants + + + 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 + Фарерӣ (бе тугмаҳои хомӯшӣ) + + + + 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 + Русӣ (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 + Русӣ (мошини хатнависӣ, ворисӣ) + + + + 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 + Туркменӣ (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 + Украинӣ (мошини хатнависӣ) + + + + 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 + Ӯзбекӣ (Афғонистон, OLPC) + + + + Uzbek (Latin) + kb_variants + Ӯзбекӣ (Лотинӣ) + + + + Vietnamese (French) + kb_variants + Ветнамӣ (Франсузӣ) + + + + Vietnamese (US) + kb_variants + Ветнамӣ (ИМА) + + + + Yakut + kb_variants + Ёқутӣ + + + + Yoruba + kb_variants + Йоруба + + + 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" ) 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; } }; diff --git a/src/libcalamares/utils/Retranslator.cpp b/src/libcalamares/utils/Retranslator.cpp index a03ae9a3b..7781ecf51 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); } @@ -206,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 diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 5d5e80d5f..a2f200a52 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -560,3 +560,9 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) m_writeEtcDefaultKeyboard = true; } } + +void +Config::retranslate() +{ + retranslateKeyboardModels(); +} 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/KeyboardData_p.cxxtr b/src/modules/keyboard/KeyboardData_p.cxxtr new file mode 100644 index 000000000..39783035a --- /dev/null +++ b/src/modules/keyboard/KeyboardData_p.cxxtr @@ -0,0 +1,825 @@ +/* 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. + */ +class kb_models : public QObject { +Q_OBJECT +public: + const QStringList& table() + { + return QStringList { + 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. + */ +class kb_layouts : public QObject { +Q_OBJECT +public: + const QStringList& table() + { + return QStringList { + 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. + */ +class kb_variants : public QObject { +Q_OBJECT +public: + const QStringList& table() + { + return QStringList { + 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 b8cb892f4..abac1cdc2 100644 --- a/src/modules/keyboard/KeyboardLayoutModel.cpp +++ b/src/modules/keyboard/KeyboardLayoutModel.cpp @@ -11,9 +11,26 @@ #include "KeyboardLayoutModel.h" #include "utils/Logger.h" +#include "utils/RAII.h" +#include "utils/Retranslator.h" + +#include #include +static QTranslator* s_kbtranslator = nullptr; + +void +retranslateKeyboardModels() +{ + if ( !s_kbtranslator ) + { + s_kbtranslator = new QTranslator; + } + (void)CalamaresUtils::loadTranslator( QLocale(), QStringLiteral( "kb_" ), s_kbtranslator ); +} + + XKBListModel::XKBListModel( QObject* parent ) : QAbstractListModel( parent ) { @@ -41,6 +58,14 @@ XKBListModel::data( const QModelIndex& index, int role ) const switch ( role ) { case LabelRole: + if ( s_kbtranslator && !s_kbtranslator->isEmpty() && m_contextname ) + { + auto s = s_kbtranslator->translate( m_contextname, item.label.toUtf8().data() ); + if ( !s.isEmpty() ) + { + return s; + } + } return item.label; case KeyRole: return item.key; @@ -93,6 +118,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() ); @@ -138,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: @@ -207,6 +245,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..99b204573 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; }; @@ -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/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; 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 ); } } diff --git a/src/modules/keyboard/layout-extractor.py b/src/modules/keyboard/layout-extractor.py new file mode 100644 index 000000000..44b0d6b50 --- /dev/null +++ b/src/modules/keyboard/layout-extractor.py @@ -0,0 +1,96 @@ +#! /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("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\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 +* +* === 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() + 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: + f.write(cpp_header_comment) + write_set(f, "kb_models", models) + write_set(f, "kb_layouts", layouts) + write_set(f, "kb_variants", variants) + diff --git a/src/modules/keyboard/non-ascii-layouts b/src/modules/keyboard/non-ascii-layouts index 34035c91b..454278a3e 100644 --- a/src/modules/keyboard/non-ascii-layouts +++ b/src/modules/keyboard/non-ascii-layouts @@ -5,3 +5,4 @@ #layout additional-layout additional-variant vconsole-keymap ru us - ruwin_alt_sh-UTF-8 +ua us - ua-utf